大學時專業是機械,工作后來才干了軟件。所以對于軟件我可以說是半路出家。但一路走來還真應該感謝幾位導師以及他們的幾句話,這些話讓我在鉆研技術的同時也在不斷思考。
1 可以理解的才是代碼,無法理解的是垃圾
這是我進入公司后印象深刻的第一句話,這句話也讓我立刻意識到我之前寫過的成千上萬行曾經還讓我自信滿滿的代碼很可能就是垃圾,因為自從我寫過后就不想再去看。從那以后,我就開始為不制造垃圾而努力!
2 最難的是命名
那時導師無論對設計還是代碼都要求很嚴格。代碼檢查的時候會不時地提出一些命名問題。有的是詞不達意,有的是牛頭不對馬嘴。對于命名問題,被指出后可以很快有更改方表明對問題還是有比較深刻的認識,只是命名時沒有太在意。如果很難給出更改方案,那很有可能有更深層次的問題,要么函數結構不合理,要么根本沒有理解問題域。有時命名不是單純的名字問題,同時還和分析設計有密切聯系。
3 對自己放松就是對他人苛刻
無論是做設計還是寫代碼,很多時候都要和團隊成員交流或者交付給他們使用。如果在這過程中不嚴格要求自己,凡事都差不多就行,到最后可能就會苦了團隊成員,這很有可能還是包括自己。試想下,如果經過一段時間后自己要重新面對以前做過的,是不是很有可能會掉進當初自己設下的陷阱呢?
4 分清事實和假設
這是遇到問題的時候,導師教給我的一句話。我在一次連續一周的“抓蟲”行動中對這句話的感受尤為深刻。開始的幾天每天都在懷疑不同的東西,而且不斷地改變方向。這樣下來感覺每天都很忙,但都沒有進展和頭緒。到了后來不得不改變策略,嚴格分清事實和假設并開始明確方向,隨著更多的假設被證實,“蟲蟲”也就無處藏身了。
5 這不是在設計,而是拼湊
再后來加入了一個新的團隊,遇到了新的導師。不過我還是用原來的方式努力設計編碼。但每每我提交設計的時候,導師都會告訴我“這不是在設計,而是拼湊”。開始確實感覺很受打擊,而且有些不服氣,“以前我都這樣的,也沒有人指出什么不是,為什么到你這里就這樣啊。人和人差別咋就怎么大呢?”但隨著一次次被否定后一次次的修改,我開始感受到了不一樣,看到了欣喜的變化。最后我不得不承認當初自己確實在拼湊,而且拼湊得理所當然。
6 程序員應該為這樣的代碼感到慚愧!
這是一次代碼檢查中的事。那時為了滿足公司的一個編碼規約,我把很自然的邏輯反過來寫,不僅代碼多了,而且也更難理解。當被指出問題后,我理直氣壯地說這是編碼規約規定的。這時導師就指出了“程序員應該為這樣的代碼感到慚愧!編碼規約是死的,人是活的,認為對的就應該堅持和嘗試”。會后我反思了下,其實寫代碼的時候我就很矛盾,但一念之差我還是選擇了編碼規約。后來在遇到類似的情況,我就更有勇氣聽自己的心,至少嘗試一下。否則感覺對不起這樣一個職業。
上面的很多話都已經過去很久了,但每當想起總還感覺就在耳邊。這也許是因為他們真正觸到了我的心,并讓我的大腦不斷思考。
來源:51CTO