Re: [請益] coding style差太多怎辦?
※ 引述《prag222 (prag)》之銘言:
: 大家好
: 小弟上上份工作快離職前
: 聽到新進的同事說
: 他都習慣把程式寫成一個一個小的function
: 後來離職我花了一點時間學習設計模式
: 和了解SOLID原則
: 我越覺得這種作法很OK
: 我大概也知道這應該是重複說高手說過的話
: 所以後來找到工作
: 專案自己一個人開發
: 也沒主管強制要求程式該怎麼寫
: 變照著 之前同事說的話去開發
: 讓程式碼 程式碼也是有結構性架構性的
: 而不是一個function寫幾百行幾千行
: mvc Model層也是切得很乾淨
: Model層寫的就像api
: controller帶參數給MODEL層撈資料出來
: 不過我最近的公司
: 完全不是這種做法
: 雖然是MVC不過還是下SQL查出資料
: 看到function寫幾百行我看了就昏(業務邏輯)
: 為了符合公司專案的coding style有點辛苦
: 基本上我速度也差不多折損一半也有了
: 不過盡可能把程式碼寫成一個一個小單元應該也沒錯吧
: 畢竟單元測試
: 跟我最近看重構的書也是建議這樣
: 上份工作有改到open source的專案
: 好像也是這樣
: 是很難看的懂 但擴充維護修改都很輕鬆
重構取決於你對自己的程度有多自信
假設已經發現問題 也覺得自己有能力修改 試著跟主管溝通看看
說「在自己任務時程不耽誤的前提下 有路過看到程式碼就稍微整理一下」
若有得到主管或同事許可就下去改
沒把握自己可以改好的話 量力而為 先從小區塊開始改起
盡量多用輔助工具來幫助你重構
一些基礎的設置例如linter的檢查
不必要的語法、不合規則的命名或者nested if之類的他會提示你請你修改
或者是根據引用的rename之類的
比較怕大幅度的重構改壞 亦即版控很重要
因此先從小區塊開始 每次改完若有提升一點可讀性 就還不錯
在不改動代碼邏輯的前提下 其實現在的IDE很進步 要重構都很方便了
先把雜亂的程式模塊化 考慮一下誰依賴誰的問題 小心搬就好
慣用的IDE、語言都摸很熟 重構大多數情況都是手法問題
大部分都有個固定的套路可以依循
常用會越來越熟 個人觀點給你參考
--
很讚的建議
有沒有那一個linter比較推薦for python C++ etc?
有個好方法就是專案下載某個版本,自己亂改亂修,看
怎麼調整,改個幾次後就知道是自己不熟悉邏輯還是真
的寫不好
23
首Po大家好 小弟上上份工作快離職前 聽到新進的同事說 他都習慣把程式寫成一個一個小的function 後來離職我花了一點時間學習設計模式12
原Po 研究過 Allman Style , K&R style, GNU style 還有 ISO c99 c++2011 c++2014 c++2022 實際撰寫過 Linux kernel, Zephyr, Android framework & App, Python3 for AI Scala for Risc-V, IOS Object-C .m .mm, tracing gcc source, C#, Inline assembly buildroot, bash, Makefile
35
[討論] 重構跟kpi的考量假設以下情境 有個功能A、B都會用到相同邏輯,且有兩份重覆的code (沒有unit test保護,而且年久失修 要加入unit test會需要更多時程) 現在要加入C,也會用到相同邏輯 身為合格的工程師 應該會把ABC重覆的部份提取出來26
[討論] 重構之前要寫測試 不然不要重構想想這應該算是一種迷思吧 理論上是這樣沒錯 但事實上之前都沒寫測試了 你怎麼證明他之前是對的呢? 所以我大多都直接給他改下去26
[請益] 這種情況要怎麼重構我現在遇到一個情況 同時跟其他人開發很相似的功能 舉例來說 我跟B同時開發兩個電商網站 一個叫博客來,一個叫蝦皮好了 B已經建好博客來商品列表頁面 我也要建立蝦皮的商品列表 想把B建的博客來頁面拿來用24
重構的幾個迷思覺得最近很多文章都有些不求甚解的問題,來寫點論述。 1. 重構不是什麼了不起的事情 2. 變更程式碼,重寫舊的程式碼成自己爽的樣子,不一定是重構。 3. 重構是一種相對安全的工具型開發方法論, 但仍然有不少風險跟誘惑。18
[心得]以策略模式重構switch case或if (影片)最近在客戶那邊一起 pair 重構 legacy code, 碰到了一大段 if/else statement,用來判斷什麼時候該使用哪一種cache, 並依照不同 cache 的邏輯來決定回傳的內容。 發現還是有蠻多風氣比較封閉的公司對這類型的基本功跟處理不是很熟悉, 可能是對 code smell 不熟,對重構不熟,對 design pattern 不熟,對工具不熟。16
Re: [請益] 這種情況要怎麼重構1. 你不應該去動別人開發中的 code, 除非 pair 或你是有被授權的人. 2. 你可以使用他的 code , 建 common, 但你不應該改回他的部分(理由1). 3. 假設改完會有衝突, 那表示你做的不是重構. 4. 如果完成再重構會花更多時間, 那表示你做的不是重構. 5. 你要用他的 code , 跟你要整理重構, 是兩回事.15
Re: [請益] 這種情況要怎麼重構我這篇寫的跟原原PO的狀況無關 ※ 引述《tbpfs ( )》之銘言: : 其實我真的不懂為什麼要急著重構 : 有好處嗎? : 一般而言,重構都是發生在農閒的時候3
Re: [請益] 這種情況要怎麼重構其實我真的不懂為什麼要急著重構 有好處嗎? 一般而言,重構都是發生在農閒的時候 就是沒有新案子在趕,老闆又要想辦法把人力資源給排滿 以免被上面丟一坨賽過來的最好理由2
Re: [請益] 這種情況要怎麼重構如果專案有deadline的壓力建議是先各自發展以不相互影響為前提,最後再用剩餘時間開 一個分支做重構。其實這就是在規劃專案時沒有一個主要主導的設計人,沒有定義從系統 到功能的分工,導致代碼重工,而且缺乏溝通。 真的建議未來有機會在主導你還是要自己學會定義好工作,先學習不寫code就可以訂出功 能以及架構。我自己工作後常常遇到工程師很喜歡自幹,還沒開始就急著寫code,而不是