我是如何開發一個項目的

這些年做了很多項目,我從一個菜鳥開發不斷成長,自己積累了一些方法,今天我就來和大家分享下我的項目開發心得。

什么是一個好項目

我認為一個好項目,要做到如下幾點:

  1. 要有好的傳承性;
  2. 總體架構合理,分層清晰;
  3. 實現上能合理貫徹設計目標,選型恰當,代碼清晰易懂;
  4. 部署合理,監控完備,數據統計恰當。

下面我就來逐一說明下:

好的傳承性

我把這一條放在第一位,因為我認為項目的傳承性做的好,比任何東西都更加重要。

因為一個項目,通常需要很多人來共同完成,而且隨著時間推移,會有老同學離開項目,新同學加入項目,甚至項目負責人也會更替。

我們通常在接手一個項目時,很多時候都有重構一版的需求,為什么?我總結大致如下:

  1. 項目現狀混亂,文檔很少,不了解設計;
  2. 代碼有坑,不敢輕易修改;
  3. 開發模式混亂,都找不到最新代碼;
  4. 沒人知道里面的功能還有多少在用。

這些問題十分常見,我接手過的項目,也有上面這種情況的。不知道大家遇到這種情況是什么感覺,是不是很難受?重構吧,都不知道都有哪些功能,風險十分的大;繼續維護吧,覺得越做坑越多。

也就因為這樣,很多項目最終被拋棄,以失敗告終。所以項目能否被傳承,好的文檔十分的重要,雖然會花很多時間,但如果你想讓你的項目活的長,這一點非常的重要!

至于如何做好文檔,我們向開源項目學習即可。我甚至覺得就算代碼寫的不好,但是文檔寫的好些,讓別人明白你到底在干啥,都十分不錯。

其實說白了,做好這件事情,更多的是為了別人能更好的理解你的項目,對自己來說,也能培養個好的習慣。

好的設計

好的設計,就好比一份好的作戰計劃,如果這個沒有做好,那在執行的時候就會十分的混亂,問題層出不窮。

要做到這一點十分的不易,通常在評價一個人的技術能力時,級別越高也越看中這一點。因為我的能力有限,在這里我說下自己的體會,還望大家指正:

  1. 要養成勤于思考的好習慣,平時多積累, 俗話說,好記性不如爛筆頭,所以多記錄總沒有壞處。;
  2. 遇事多問為什么,且得出答案時,建議再對這個答案問為什么,尋找更深層次的原因,這樣不停的折磨自己,直至滿意;
  3. 能夠虛心向別人請教,也不要輕視別人對你的提問,你自己沒什么了不起的;
  4. 做事情要專注,現在那么多新東西,找準自己的方向,理解的越深,對自己做出好的設計抉擇越有幫助;
  5. 不斷反思,永遠不要滿足,看如何能做到更好。

做設計的時候,通常就是在做各種抉擇。比如webserver使用Apache還是Nginx;數據庫使用Mysql還是MongoDB等等,只有自己對知識的理解越深,實踐越豐富,才能做的越好!

好的實現

這個步驟就好比在打仗時,你如何完美的執行作戰計劃,我覺得需要做好如下這些事:

  1. 分工明確,接口合理;
  2. 要有很強的執行力;
  3. 和項目內成員保持良好溝通,敏捷開發是個好的選擇;
  4. 項目的成敗,很多還要依賴外部的合作,所以不要怕麻煩,維護好的合作關系這一點至關重要;
  5. 代碼清晰,避免過于復雜,如果你覺得這一塊邏輯有點復雜,那你應該考慮分層簡化;
  6. log要詳細,出問題時能做到快速排查。

借小說《亮劍》中,一個原來的國民黨作戰廳高級將領的一句話:在解放戰爭期間,國軍的戰術,都是天才制定的,但確是由蠢才執行的。

所以,好的實現非常重要,這一點做不好,再好的設計也是白搭。

部署監控及統計

  • 先說部署,要做好如下幾件事:
  1. 機房選擇合理;
  2. 部署方法簡單易用;
  3. 線上控制簡單易用;
  4. 代碼更新上線簡單易用;
  5. 災備實施簡單。
  • 接下來是監控方面:
  1. 核心服務監控點考慮周全;
  2. 監控服務可靠;
  3. 易于配置升級。
  • 最后說下統計:

產品的發展,離不開數據,通過數據分析來知道產品的發展,好過于拍腦袋做出的決定。

想要有個好的統計,至少也要有下面這些:

  1. 可靠的日志收集;
  2. 易于擴展的日志分析;
  3. 良好的界面展示。

結束語

上面這些,說實話,真是說起來容易做起來難啊!但也正因為這樣,我們才需要不斷努力,不停的鍛煉提高自己。正所謂是活到老、學到老。

Fighting! Fighting! Fighting!

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容