※ 引述《HZYSoft (PCMan)》之銘言: : 如果有在好好追蹤技術債,定期償還,視情況舉債,有時是一件好事情。 : 重點 hard code 的當下要留下註解,說明前因後果,並且開 bug 追蹤, : 這樣日後不會忘記,要 refactor 也比較好搜尋到這些位置 : 補充: : 註解的使用不是我想回的重點,重點是平衡短期和長期效益 : 按照當下的狀況,調整開發的步調。 : 建議註解單純是加個 TODO: 的註記日後才不會忘了 cleanup : 或是有些緊急的修改有當下的時空背景,怕一忙沒法馬上清 : 日後有空要 refactor 的時候,回想不起來當時狀況。 : 註解不是描述 code 做了什麼,而是描述為什麼會有這 hack : 至於 code 做了什麼,自然是 code 寫好讀 code 就懂了 都說是做專案了,又不是做產品。 做專案當然是做完收錢,Meet Dealine,所以重點是, 照案主的需求,改成他要的,照資安需求,修掉有問題的地方。好好上線。 一案結束,就下一案來了,你還有空refactor? 誰billing你? 我是真的不明白ptt 上一堆天天refactor 掛嘴邊的。 用數字說話吧,台灣是出了幾個產品? 幾個open source project ? 大家不就接案或做公司內部PROJECT。 你一個人爽refactor 讓其他人陪你一起更版,就真的是一個老闆的現象囉。 -- ※ 發信站: 批踢踢實業坊(ptt.org.tw), 來自: 101.12.25.139 (臺灣) ※ 文章網址: https://ptt.org.tw/Soft_Job/M.1717565779.A.2F9
MoonCode: 好奇接案生態 06/05 13:42
CRPKT: 但你不是有寫過象棋 app 嗎,你的 app 總會重構一下吧 06/05 14:07
holebro: 內部project真的東西有在跑就好 06/05 15:10
Lordaeron: 我的app 基本是一次到位,不管加減功能。 06/05 15:26
prag222: 一堆人嘴重構,現實老闆會答應嗎? 06/05 16:41
prag222: 更何況你不用物件導向跟設計模式的方式去重構,結果一樣渣 06/05 16:43
peteryu168: 如果是一人專案,想怎麼改,只要老闆不被 call ,當然 06/05 16:44
peteryu168: 不會有問題,但你想改的絕不是一個人的專案,這時候就 06/05 16:44
peteryu168: 不是你一人的事了。 06/05 16:44
prag222: 實際上有的功能也不可能完全重寫,個人經驗有的是改寫 06/05 16:44
prag222: 包成物件化,後續好使用好維護罷了 06/05 16:45
testPtt: 一開始不做以後大概也不想做 反正要爛一起爛 06/05 19:01
ashlikewing: 呃 06/05 19:20
labbat: 我認識這樣的人,他說自律重於他律因此不屑加入版控 06/05 19:36
peter98: 你的薪水低於100萬~ 這篇沒有說服力 06/05 20:42
wulouise: 台灣也是有做產品的公司,我覺得風格的確差很多 06/05 23:27
kurtsgm: 稍微有點好奇labbat說的不加入版控是啥情況 XD 06/05 23:57
DrTech: 中肯。做過產品的人還真相對少。台灣大部分的工作,哪來那 06/06 08:16
DrTech: 麼多refactor 06/06 08:16
gmoz: 也不一定 如果是有持續擴充維護案 有資源還是能重構的 06/06 13:11
gmoz: 但比較多時候是出現問題再來重構改善XD 06/06 13:11
iamOsaka: 推推 06/07 10:32
tvbic: 這才是臺灣軟體業的現實面,花時間重構程式大多數都是在浪 06/09 22:09
tvbic: 費時間而已,自己看著自己爽,其實都在白費功夫 06/09 22:09
CRPKT: 一次到位就很了不起了,這樣也不需要敏捷方法了 06/11 10:15
Lordaeron: 我9支棋類APP,跨C++,java,Obj-C,Swift。都不去重肥的 06/11 16:39
Lordaeron: 反正AI的強度及CPU usage在同類APP找不到對手。 06/11 16:40
Lordaeron: 我另外的opensource project, FPC開發的container 06/11 16:41
Lordaeron: , 就看一下各任重肥大神去肥一下吧。 06/11 16:42
CRPKT: 好奇可以透露一下棋類 AI 訣竅嗎 06/12 09:33
Lordaeron: negascout+pattern evaluation, 沒了。 06/12 09:59
Lordaeron: 人類下棋也是這兩個方式而已。 06/12 10:00
CRPKT: 那你有機會可以分享一下面對需求擴充與變更如何一次到位嗎 06/12 10:05
CRPKT: 我覺得比起吵要不要重構,這種技能更能帶給大家利益 06/12 10:06
Lordaeron: 你會下棋,不就應該明白,棋要下得好,要如何看的嗎? 06/12 11:54
Lordaeron: 概念是一樣的,在架系統架構時,多留點接口,但不要 06/12 11:55
Lordaeron: 想一個接口做到底,也不要想什麼動態參數的。 06/12 11:56
Lordaeron: 一個功能call 三層都還做不出來,就有問題了。 06/12 11:57
Lordaeron: 跟其它datasource 要三輪都要不到全部,就有鬼了。 06/12 11:58
Lordaeron: 看需求,最好能通盤看,跟下棋一樣只看一角會死很慘 06/12 11:59
Lordaeron: 架構師對業務有了解,是很有幫助的。 06/12 12:00
CRPKT: 我覺得你講到一些很多人都忽略的重點 06/12 12:32
CRPKT: 1.布局優秀創造的效益遠超過事後補救 06/12 12:33
CRPKT: 2.了解脈絡對規劃架構與實作路線非常重要 06/12 12:34
CRPKT: 比較可惜的是並非所有環境都能讓這種布局的效益發揮到極致 06/12 12:36
CRPKT: 同時也不是所有人都有辦法或有意願養成這種視野 06/12 12:38
Lordaeron: 下棋你也無法做到全局最優啊。沒這種情況吧。 06/12 12:38
Lordaeron: 下棋也就是看一個大概的pattern的結果而已。 06/12 12:39
CRPKT: 是,所以我也不會全盤否定所有的重構 06/12 15:34
CRPKT: 畢竟再好的規劃也難免會有小更改,偶爾小型重構很合理 06/12 15:35
CRPKT: 退一萬步,有些產品體質差到先還債就已是新功能的最速解了 06/12 15:37
CRPKT: 那這時候討論要不要重構也沒意義了 06/12 15:37
Lordaeron: 重構,講的是產品,不是專案!! 06/12 15:47
Lordaeron: 重構,要錢的。延申出要多久?要多「好」?誰付你錢? 06/12 15:52
Lordaeron: 說白了,提出重構的兩位老兄,看不到有開發什麼大不 06/12 15:58
Lordaeron: 了的系統。但宗教式的給出了refactor, agile, 06/12 16:01
Lordaeron: extreme programming, DSL 等。讓大家宗教式跟著走。 06/12 16:03