Board logo

標題: 你地出道幾多年先寫clean code [打印本頁]

作者: mingming123    時間: 2017-3-16 16:33     標題: 你地出道幾多年先寫clean code

我而加做到舊野出黎就算, 唔夠時間寫得精簡d

via HKEPC Reader for Android
作者: kasterli    時間: 2017-3-16 17:45

我而加做到舊野出黎就算, 唔夠時間寫得精簡d

via HKEPC Reader for Android
mingming123 發表於 2017-3-16 16:33


公司迫用 Viper architecture + TDD,全部都要出 Pull request
焗住一定要 Clean code 如果唔係會俾人打回頭
作者: 梁炳    時間: 2017-3-16 17:51

本帖最後由 梁炳 於 2017-3-16 18:00 編輯

人生苦短,只要係合理時間內寫到main到就得
最緊要創造到user value

"Programming in the large" 又係另一回事,d code要用好多年,經好多手改,咁就真係要clean
樓上師兄應該係寫呢類
不過我覺得clean API重要過clean code

睇你領悟力,基本都5年以上吧
fresh grad頭兩年都拾下拾下
作者: snoopy11hk    時間: 2017-3-16 20:46

人生苦短,只要係合理時間內寫到main到就得
最緊要創造到user value

"Programming in the large" 又係另一 ...
梁炳 發表於 2017-3-16 17:51

API 寫到好古怪, 或者無 API
咁就真係 orz....
作者: Sora    時間: 2017-3-17 01:31

睇老細比幾多資源同時間
作者: DarkHero    時間: 2017-3-17 04:31

公司迫用 Viper architecture + TDD,全部都要出 Pull request
焗住一定要 Clean code 如果唔係會俾人打 ...
kasterli 發表於 2017-3-16 17:45



    通常幾耐先完成一個PR?
作者: gamezz    時間: 2017-3-17 08:55

回復 4 #snoopy11hk

睇下你做in house定per job, 人地無要求又細project, 就唔會寫了。

via HKEPC Reader for Android
作者: seasky    時間: 2017-3-17 09:02

提示: 作者被禁止或刪除 內容自動屏蔽
作者: shing1630    時間: 2017-3-17 10:39

回覆 8# seasky


    agree
作者: 7h1r733n    時間: 2017-3-17 12:34

project仔.. 寫到work就算.... 除非係performance critical先會寫好D同做performance tuning...  (例如Game........ 個"GameScene", 其他Scene只要佢唔死.. 唔爆memroy,  Work到就得...)

Web仔.. App仔.. 郁到就得... 大System有時database tuning返而重要過寫得好唔好...
作者: snoopy11hk    時間: 2017-3-17 23:06

回復 snoopy11hk

睇下你做in house定per job, 人地無要求又細project, 就唔會寫了。

via HKEPC Reader fo ...
gamezz 發表於 2017-3-17 08:55



    有一 set 用開的 api
係好好多, 做野快手又方便
作者: kasterli    時間: 2017-3-19 06:19

通常幾耐先完成一個PR?
DarkHero 發表於 2017-3-17 04:31


通常唔會多過兩日
一個 Sprint 兩個星期,開 Sprint 前個 PM 都拆好晒 Stories / Subtasks,有晒 Jira ticket
所以每個 PR 都唔會大,都好快有 Feedback 可以 Merge 定係有嘢要改
作者: ngtszman000    時間: 2017-3-19 17:50

clean code 定義?
作者: snoopy11hk    時間: 2017-3-19 21:46

project仔.. 寫到work就算.... 除非係performance critical先會寫好D同做performance tuning...  (例如Game ...
7h1r733n 發表於 2017-3-17 12:34



    起碼唔好 copy and paste.....
執番好 D function, pack 埋一齊 砌個 basic library
作者: kasterli    時間: 2017-3-20 02:48

clean code 定義?
ngtszman000 發表於 2017-3-19 17:50


咁你要睇吓 Uncle Bob 啲書喇
作者: 3ldk    時間: 2017-3-22 01:25

公司迫用 Viper architecture + TDD,全部都要出 Pull request
焗住一定要 Clean code 如果唔係會俾人打 ...
kasterli 發表於 2017-3-16 17:45



你公司係寫邊類型既program? 同埋係咩野language?
任何類型既program同language都可以套用TDD的嗎?
作者: kasterli    時間: 2017-3-22 20:20

回覆 16# 3ldk

我全公司唔同 team 由 Frontend 到 Backend 都係行 XP + TDD
呢個係一套 methodology / process,係一個 mindset 而唔係一個 tool
所以唔會受限於你係咩 application / language
作者: 7h1r733n    時間: 2017-3-22 21:40

回覆  3ldk

我全公司唔同 team 由 Frontend 到 Backend 都係行 XP + TDD
呢個係一套 methodology / proce ...
kasterli 發表於 2017-3-22 20:20


有資源($$$)當然可以TDD...
作者: spike    時間: 2017-3-22 22:50

有錯請指正!

以我理解,Clean Code 主要唔係要做 performance improve 之類既事,反而係 improve 自己寫既 code 易唔易比人睇得明白同修改。
例如:variable naming 用a/b/c 或meaningless 同 meaningful 係電腦上係冇分別,唔會因為長短有影響(當然長啲可能用 ram 會多啲 ),但整體上速度係冇咩分別。但下一手就會比較難去理解,如果用一堆 a/b/c 或meaningless 黎命名 variable。

另外,Clean Code 係想要用最少effort 黎改善到 code quality,例如點命名 variable/function/class 或 code style 之類(當然仲有好多)。簡而言之,就係用一些 "rule" 黎改善自己寫 code 既方法。但當然點樣演繹就睇自己同Team 點樣配合。

我自己做Programmer 都做咗5﹑6年,都係近呢個月嘗試緊Clean Code,自己都係摸索緊一套啱自己既Clean Code。而且亦嘗試緊Clean Code 用落堆stored procedure 到
作者: 3ldk    時間: 2017-3-23 02:40

回覆  3ldk

我全公司唔同 team 由 Frontend 到 Backend 都係行 XP + TDD
呢個係一套 methodology / proce ...
kasterli 發表於 2017-3-22 20:20



雖然我無玩過TDD, 亦無好深入了解, 但以我既理解應該會受限application / language

或者我舉個好簡單既例子
用vc++, 寫一個window, 入面有三個textbox, 一個button, 頭兩個textbox各入一個數字, 按一下button, 第三個textbox出sum

就係一個咁簡單既program, 試問你有咩tools, 可以寫個program去入兩個數字去人地個program, 再按埋人地個program粒button?

如果話係Java, 超碼都叫有JUnit, vc++就無VUnit了

如果係無GUI, 就可以寫script test, 否則你點做auto test?
作者: KinChungE    時間: 2017-3-23 10:14

雖然我無玩過TDD, 亦無好深入了解, 但以我既理解應該會受限application / language

或者我舉個好簡單既 ...
3ldk 發表於 2017-3-23 02:40


如果情況係複雜少少
個window layout唔係固定
係俾個user open一個file, 然後跟據個file再出唔同layout (入面save住要出乜button/textbox, x/y/width/height)
咁呢D情況就應該點寫test case?
作者: 7h1r733n    時間: 2017-3-23 13:14

雖然我無玩過TDD, 亦無好深入了解, 但以我既理解應該會受限application / language

或者我舉個好簡單既 ...
3ldk 發表於 2017-3-23 02:40


https://msdn.microsoft.com/en-us/library/hh212233.aspx
作者: justlazy    時間: 2017-3-23 13:15

雖然我無玩過TDD, 亦無好深入了解, 但以我既理解應該會受限application / language

或者我舉個好簡單既 ...
3ldk 發表於 2017-3-23 02:40


師兄形容嘅係 e2e (end-to-end) test case。呢種 test case 盡量模仿 user flow,一次過 test 曬由 frontend 到 backend 到 database 所有嘢。

除咗 e2e,仲有 unit test 同 functional test。佢地嘅分別就唔詳述,但一般嚟講 unit test : function test : e2e test 嘅比例應該大約係 6 : 3 : 1。 e2e test 佔最少因為 implementation effort 大之餘仲要成日 update。
作者: LoneGumMan    時間: 2017-3-26 23:52

雖然我無玩過TDD, 亦無好深入了解, 但以我既理解應該會受限application / language

或者我舉個好簡單既 ...
3ldk 發表於 2017-3-23 02:40

巿面上有好多做 UI test o既系統. Mercury Test Director / Quick Test Pro (後來俾 HP 買左) 用VB script 左個 UI interaction, 做web 有 selenium...

不過學樓上師兄講, UI testing update 到仆街 :)
作者: wfu2009    時間: 2017-4-17 23:42

其實clean code就係寫D 畀人類睇得明既改

所以點解要改名, 玩行數, 玩indention, 拆大function
仲有unit test既意義都係為左有live documentation





歡迎光臨 電腦領域 HKEPC Hardware (https://www.hkepc.com/forum/) Powered by Discuz! 7.2