一個人開發(fā)一個項目時怎么糾錯
我曾經(jīng)有一年一個人開發(fā)一個富客戶端App,目前它已經(jīng)在盈利了。但我記得在剛開始的時候我的技能就像生銹的鈍刀,主要是因為代碼的問題,而這里我們僅僅討論代碼的問題,架構(gòu)、結(jié)構(gòu)以及交互的問題我們暫且都放一邊。
當時我在這個項目上花了太多的時間,以至于很難抽出身來思考這個問題——從另一個角度來看深埋在地下的設(shè)計缺陷。所以我的問題就是我怎樣走出自己的局限,以新的的方式看待并讓它變得更好?我的幾個朋友給了我下面幾個建議:
一. 學(xué)習(xí)新語言或者程序庫
- 找到一個有類似技術(shù)問題的人,然后跟他聊聊,個人開發(fā)者團隊用這個辦法是很有效的。
- 先做下別的項目,也許一周過后你突然有了什么新點子。
- 查看相似的項目或者產(chǎn)品,比如存在的開源產(chǎn)品,但不要直接復(fù)制人家的代碼。
- 學(xué)習(xí)一種新語言、程序庫或者框架,這些技術(shù)也許會讓你輕易洞察出你有困難的問題,然后找到解決辦法。
- 讀一本好的設(shè)計或者語言/架構(gòu)方面的書。
二. 大聲地把代碼讀出來
坐下來對一段代碼、一個模塊、一個特性自己大聲地朗讀和解讀,當你發(fā)現(xiàn)你自己說的聽起來有問題、很蠢,就把它記下來然后想辦法去解決。
三. 縮小范圍再找bug
看看你經(jīng)常修改的源代碼控制文件,哪一部分代碼是最難處理的,哪一部分代碼產(chǎn)生了最多的bug, 哪種類型的變化會引起整個代碼的連鎖反應(yīng),一旦縮小了范圍,你開始尋找那里為什么會出問題,然后可以看一些系統(tǒng)的分類設(shè)計問題的書,比如 Martin Fowler的Refactoring, Herb Sutter的C++ Coding Standards, Robert Martin的Clean Code 等。
當然如果別人能幫你看下代碼更好,但總不如你自己想來的有用,因為你比任何人都知道它的問題可能出現(xiàn)在哪里。
四. 跟用戶們交流一下
跟用戶們交流一下,然后看他們覺得哪里有問題,不管是UX還是速度問題,然后想著怎么讓這個系統(tǒng)更流暢,不管是API還是其他的測試驅(qū)動開發(fā),很多時候,你會發(fā)現(xiàn)只用把這些API放進代碼,不用做很大的轉(zhuǎn)變。
Via arstechnica