前言
終於搬到了租的房子裏,作息也日趨規律。住的房子到公司步行大約15分鐘,一般晚上11:30到12:30打卡下班,回到房子洗漱完大概1點鐘,第二天九點起牀,看會兒記的筆記,10點洗漱,10:30左右出發去公司。希望自己的水平也能早日步入正軌,爲團隊貢獻自己的力量💪。
設計的重要
這周終於完成了一個小需求的開發。整體代碼行數不多(大概200~300行),但在實現的過程中還是有很多值得反思的地方。
- 實現代碼邏輯的時間大約花了20%,找bug的時間卻花了60%。
- 在開始寫代碼的前,沒有考慮各種情況的發生,開始寫的時候遇到各種問題,因爲對系統不熟,連着去問了好幾次的師傅,花費了額外的時間。
寫完回過頭來總結下,發現導致上面問題的原因只有一個,就是沒有提前做好設計(對,就是**《軟件工程》**中的設計)。
在設計階段,我們應該把這樣幾件事做好:
- 增加或者改動的流程
- 預計改動或增加哪些模塊/文件/函數
- 可能會存在哪些異常情況,應該如何處理
在做完設計後,寫代碼便是水到渠成的一件事。所以說,我們在寫代碼的時候,不僅僅是寫代碼,而是在寫邏輯。
如果一個人邏輯思維混亂或者過於跳躍(比如我),那麼他在寫代碼的時候,會遇到的各種各樣的問題(如異常情況如何處理?函數的執行的結果通過return返回還是通過形參返回?相似的代碼是否需要抽出來成爲新的函數?等等),更會引入難以尋覓的Bug,花費更多的去找代碼裏的Bug(或者說去校正以往的邏輯)。
因此一定要提前做好設計,對設計中的每個細節進行充分論證,這樣才能寫出高質量的代碼。沒有或者不好的設計往往會導致你寫的是Bug,而不是代碼。
題外話
寫到這裏的,忽然想起了小學時候的一篇短文,《三個砌牆工人的故事》
三個工人在砌一堵牆.有人過來問:“你們在幹什麼?”
第一個人沒好氣地說:“沒看見嗎?砌牆.”
第二個人擡頭笑了笑,說:“我們在蓋一幢高樓.”
第三個人邊幹邊哼着歌曲,他的笑容很燦爛開心:“我們正在建設一個新城市.”
10年後,第一個人在另一個工地上砌牆;第二個人坐在辦公室中畫圖紙,他成了工程師;第三個人呢,是前兩個人的老闆了
貌似可以套用到程序員上來,哈哈。
計劃
這周也在堅持做俯臥撐,並且每天要比前一天多做一個,寓意每天都要進步一點點。
加油💪。