寫在前面的話
最近突然非常看重對事情的反思與總結,以前看書有做筆記但太少,沒有把當時的第一感受記錄下來,所以要開始補筆記了。
第一章 注重實效的哲學
1.我的原始碼讓貓給吃了
半年前總是因為在出現需求與實現不符合的情況下與一起開發的同事起爭執,為了給自己開脫找了一堆的理由,在出現問題的一瞬間思考的是把責任歸咎於他人從未想著如何解決問題。現在也會時不時會看到幾個同事因為一個bug相互推脫,開始述說很久以前的故事最後再加一句難道你忘記了?
我們都應該更加的為公司負責、為專案負責、為自己負責。
2.軟體的熵
最近在做的一個專案的坑,原有的設計在對外部資料判斷是不嚴謹,結果在執行時需要對資料進行檢測。這是一個非常不好的設計,外部資料應該在系統一開始就應該檢測,不能讓非法資料通過。由於系統的那套機制已經用很久了,上級領導不讓動,這樣只能讓自己也符號這套設計。
一次跨部門開發,我問另一個同事你的程式碼靜態程式碼檢查了?單元測試了?他給我的回答是之前開發的人員都沒做所以我也沒做,這讓我感到很尷尬,可想而知之後的元件測試就是我一直在幫他們找Bug,並且看了下他們程式碼的註釋,哦,我的天。
所以我們必須要保持良好的設計、註釋、編碼等,儘量不要留下“破窗戶”,不然又會出現“之前的開發人員也這樣”這樣的話。
3.石頭湯與煮青蛙
在有些情況下,你也許確切的知道需要做什麼,以及怎樣去做。整個系統就在你眼前--你知道它是對的。但請求許可去處理整個事情,你會遇到拖延和漠然,讓大家主動參與的成功率比強制性參與要高。
在專案的開發過程中,為了防止煮青蛙的情況發生,每天的站會也許是一個不錯的選擇。
4.足夠好的軟體
有一個同事認為系統中的一個核心模組設計的不夠好,想要重構它,但他忽視了一個問題,那套裝置每月固定的銷售量挺多的,目前沒有收到需要修改模組的使用者反饋,由於公司的不妥協那位同事還辭職了,我認為他作為程式設計師不夠專業。
5.你的知識資產
做IT這行知識的投資確實至關重要,我們需要合理的進行知識投資。
1.多元化
你知道的不同事情越多,你就越有價值。作為底線,你需要知道你目前所用的特定技術的各種特性。
2.管理風險
根據具體情況判斷,該出手時就出手。
3.低買高賣
就像過去的Java如今的人工智慧。
4.重新評估和平衡
需要重溫自己已經掌握的技能。
目標
1.每年至少學習一種新語言
就像最近自己在學習《大話設計模式》就是為了掌握物件導向的思想,能夠更好的用純C程式設計。
2.每季度閱讀一本技術書
在開發專案時閱讀專案相關的書,也可以閱讀專案無關的一些技術書。
3.也要閱讀非技術書籍
目前這塊自己是想看一些管理方面的書籍,以後有很大的概率會轉管理。
4.上課
看到這個異常興奮,感覺真的可以重回大學旁聽感興趣的課程,還有想參加一些開發者大會,拓寬自己的視野。
5.參加本地使用者組織
這一點對自己來說比較困難,朋友圈太小,但也可以嘗試打聽同事的朋友們是怎樣的。
6.實驗不同的環境
用Keil開發一年半多了,年前準備用linux開發幾個驅動試試水。
7.跟上潮流
自己有關注挺多公眾號的,偶爾也會看一些部落格,但感覺還是不夠。
8.上網
在網際網路上找資料也是一門學問,需要加強。
把自己所學的東西應用到當前的專案中,或是產生髮散性思維。之前自己就因為專案中用到Lua而後悔半年前為什麼沒有研究,Lua的原始碼在資料夾中沉睡了半年之久。
需要合理安排時間學習,帶有批判性的去思考哪些東西有用哪些沒用,需要有這種分辨能力。
待續。