好程式需要你寫至少兩遍
最近這些年,越來越多的人開始轉向敏捷開發。各種敏捷開發技術並不新鮮,大多是在80 和 90年代發展形成。但只是在最近這些年,程式設計師和(更重要的是)一些商業顧問,架構師,客戶開始變得喜歡和擁抱敏捷開發。
進化中的需求
現在的一種普遍的認識是,在開始編碼前,你不可能把所有的需求都寫完備。這些需求的確定是一個逐漸發展進化的過程。使用短開發週期/springts,我們一步步的開發程式,使用多次迭代的方式完成從客戶方得到的最新需求。這些都是基於一個進化的思想。就像生活中,我們總是通過一步步的改進來達到最好一樣。
進化中的程式碼!
可是,這就完事了嗎?如今大部分的程式設計師都認識到了需求必定是一步步的挖掘出來的。但他們卻忘了自己的工作!?他們仍然認為他們的框架和架構在專案開始之初就定型了。同樣,程式碼一旦寫成,程式就完成了… 不是嗎?
錯。以我的經驗,所有好的程式都至少要寫兩遍。第一編是你過於倉促,不能很好的理解需求、實現需求。不錯,當看到了某種業務模式,我們知道要提煉出方法,圍繞著它實現業務職責。你最終寫成的程式碼是非常好的,但,它不是優秀的。
在我們目前的專案中,幾乎所有的重要功能模組都從頭重寫過數次。慢慢的但明顯的,程式碼變得越來越好。一旦你對某段程式做了第三或第四次增補,或又找到了一個bug,你能感覺到這程式什麼地方有異味。你開始躲避觸碰這段程式,你為不需要在處理這段程式而高興。當有了這樣的感覺後我會怎麼做?我會刪了這些程式碼。
可是… 可是… 這樣你就要完全從頭開始了!?
你又錯了! 當然,IDE裡空了,程式碼全沒了,也許一些測試程式會存留下來。但你卻對你的程式碼應該做什麼有了紮實的認識。你也知道以前這段程式碼是什麼樣的,你知道它以前的內傷和異味在哪裡!有了這些認識,你能寫出更好,甚至是非常優秀的程式碼!不錯,我們也可以保留這些程式碼,使用一些重構措施…但你可能再也找不到這樣好的從頭開始、更好的編寫它的機會了。
再次,就像生活中的所有事情:要讓事情變的完美,你需要經過多次的進化迭代。對你的需求是這樣,對你的架構和程式碼也是如此。
寫兩遍,就意味著兩倍的時間嗎?
當告訴人們我的觀點是所有的程式都至少寫兩遍時,他們擔心花費兩倍的專案時間。但事實遠非如此。下面是原因:
- 第二次寫程式碼只是用去你初次寫程式碼的很少一部分的時間。
- 重寫之後,程式碼的質量會有明顯的提高,可維護性,可擴充套件性都有改善,包括程式設計的速度。
祝你好運,堅持重新改進你的程式碼!
相關文章
- 好程式需要你(至少)寫兩遍
- 好的程式碼至少要修改兩遍
- 開發心得之想要好程式碼問世,我們至少要寫兩次
- 如何寫好程式碼?
- 如何寫好程式碼
- 如何寫好前端業務程式碼?前端
- 寫好C程式的秘籍(轉)C程式
- 好程式設計師不寫程式碼程式設計師
- 兩行程式碼 寫個代理行程
- 程式設計師既要寫好程式碼,又要寫好文件程式設計師
- 寫好程式碼十個祕訣
- 編寫程式碼的好習慣
- What-If 工具:無需寫程式碼,即可測試機器學習模型機器學習模型
- 如何寫好 5000 行的 SQL 程式碼SQL
- 如何寫好5000行的SQL程式碼SQL
- 編寫好程式碼的10條戒律
- 寫好程式碼的10個祕密
- 無需編寫程式碼,API業務流程測試,零程式碼實現API
- Mojang可能正在研發至少兩款《我的世界》衍生遊戲遊戲
- 要你命三千:老程式碼中的那些坑
- 《程式設計人生》書評--一本值得讀兩遍的書程式設計
- 程式碼的印象派:寫點好程式碼吧
- Java程式碼寫好後怎麼執行?Java
- 感悟篇:如何寫好函式式程式碼函式
- [轉]寫好程式碼的10個祕密
- Arxan:90%的移動應用至少存在兩項安全問題
- 如何寫一個好的測試?總結起來就這兩點……
- 無需寫程式碼,輕鬆建網站:設計師的福音!網站
- Java面試題:Spring Bean執行緒安全?別擔心,只要你不寫併發程式碼就好了!Java面試題SpringBean執行緒
- 我寫的 Python 程式碼,同事都說好Python
- 寫擴充套件性好的程式碼:函式套件函式
- jquery遍歷子元素的寫法jQuery
- 遍歷物件鍵值對的兩種方法物件
- 無需數學就能寫AI,MIT提出AI專用程式語言GenAIMIT
- Web開發者需養成的8個好習慣Web
- Python要你命三千Python
- 登入密碼長度至少8位,必須符合由數字,大寫字母,小寫字母,特殊符,至少其中三種組成密碼密碼
- leetcode 747. 至少是其他數字兩倍的最大數LeetCode