-
1 # 執著的百香果1L
-
2 # drinkingcode
前言
軟體工程師之於程式碼的審美,就好比於人之於美的定義。隨著閱歷的增加,人對美的觀點會發生變化。同樣,軟體工程師至於程式碼的審美,也會隨著不同的成長階段而發生著變化。
下面我們從以下三個階段來看看程式碼漂亮的定義標準:
1.零基礎
2.入門級
3.中高階
零基礎零基礎在我們還未進入軟體行業時,軟體對於我們而言,充滿著神秘和好奇。對於零基礎階段的我們來說,能編寫並執行第一個程式,就是很大的一種滿足。因此,在零基礎階段,我們會認為能輸出一個Hello World就是一段最漂亮的程式碼。
入門級在經過零基礎的洗禮之後,我們便進階到入門級。在入門級中,我們會根據公司任務需求來進行開發。此時,對於入門級別的我們來說,能在規定時間內把公司分配的任務給完成,就是一種很大的成就感。所以,對於入門階段的我們來說,完成功能性需求的程式碼就是一種美。
中高階在經歷過入門級洗禮後,我們已足夠勝任自己手頭的工作。此時,我們的眼光便不再侷限於功能性的開發。取而代之,追求的是程式碼的高內聚,低耦合和擴充套件性等標準,以此來更好適應未來業務的拓展需求。在此階段,我們認為:程式碼的高內聚,低耦合以及易於擴充套件等標準就是一種美。
-
3 # 大唐李衛公
不同程式設計師
寫程式碼確實有很大的水平差異,程式碼格式、演算法優劣,這些都能夠反應一個人的程式碼水平,我就記得學生時代有個同學,他寫的前端程式碼就是要比我們都寫得好一些,寫出來的介面也更美觀和合理一些,這就屬於天賦。今天就說三段程式碼吧,這三段程式碼真的是我覺得非常有意義的程式碼,或者說我認為很漂亮。
王垠的40行程式碼王垠這個人,這兩年想必大家聽得比較少了,不過至少在我讀書那個年代,是聽到過不少的故事的,作為一個CS專業的科班生,我自己也算是驕傲的,但是不得不說王垠確實還是讓我很佩服,得承認王垠確實是個很有才華的人,甚至可以說他在這個行業算是一個天才,也是因為性格的原因,他沒能取得什麼代表性的學術成就和工業成就。
王垠這幾行程式碼,說實話作為一個半吊子的Lisp和Scheme函數語言程式設計業餘愛好者,我大多數時間也只是用Emacs寫C/C++程式碼而已,不太可能用太多時間來學習函數語言程式設計,不過用我僅有的一點知識來看,王垠這段程式碼確實還是很出色的,我甚至認為王垠厲害之處不在於他精妙地實現了CPS演算法,而是他的思維能力確實不錯。
去年王垠去了阿里面試,是曾經在Facebook工作過的趙海平親自面試,大家也都知道趙海平在阿里的職級是P10,面試之後王垠對於趙海平頗有微詞,甚至上升到了對阿里的不滿,這次面試不光是鬧得不慌而散,最終還嫌棄了一番熱議,後來趙海平還親自出來解釋。
vi寫下第一行可視“Hello World”想必大家都知道肯湯普森,就是和丹尼斯里奇一起開發了C語言和Unix系統的那位大神,可以說肯湯普森是我們這個行業的祖師爺了。
那時候沒有視覺化的環境,老爺子也沒能給Unix打造一個視覺化的開發工具,後來老爺子回到自己的母校加州大學伯克利分校,他還在那裡開了課,在機房閒逛的時候,老爺子隨手寫了一個Pascal編譯器,不過因為時間緊確實不太完善,一個叫做Bill Joy的學生髮現了這個編譯器的問題,他就著手想把這個編譯器改好。
改這個編譯器,那時候也沒有視覺化IDE繼承開發環境,Bill Joy同樣用的是老爺子寫的EX編輯器,很快他就把這個Pascal編譯器改好了,改好了之後深受伯克利學生喜歡,不過他開始對ex編輯器不滿了,於是他就給ex編輯器加了視覺化模式,這個編輯器一直演化,最終也就成為了現在的vi編輯器,後來發展成Vim已經很完善了,Vim是跟Emacs齊名的文字編輯器。
Google C++ Style每一個程式設計師都應該養成好的程式碼習慣,《程式碼大全》、《程式設計珠璣》、《程式碼之美》等等這些都是幫你養成好的程式碼習慣的書籍,還有些大名鼎鼎的《C陷阱》、《Effective Java》等書籍,這些書籍又能夠幫助你很好的規避開發風險。
除了這些之外,我覺得Google C++ Style是每一個程式設計師都應該看的,Google的C++程式碼規範可以說是目前為止全行業最好的工業程式碼規範,是Google多年來C++大廠工業實踐留下的精華,基本上該注意的,能夠迴避的坑基本上都幫你解決掉了。一個優秀的程式設計師,你的程式碼一定要是可維護的,可讀性還要高,Google C++程式碼規範能夠很好的幫你養成好的程式碼習慣。
在我看來程式設計師不管是從事科研還是立足於工業,都應該有一個原則,那就是寫有價值的程式碼,不管是做學術產品還是做工業產品,儘可能為你寫過的程式碼負責,要寫可維護的程式碼,保障你寫過的程式碼是可讀性很高的,這樣的程式碼才是真正漂亮的程式碼。
-
4 # 蘇格拉底學堂
作為14年的老碼農,閱碼無數,好的,醜的都見過,見過卡巴斯基的原始碼,俄羅斯人寫得有點複雜,技巧型強,因為人家數學好,也有幸見過Windows的程式碼,寫的非常規範,也接過年代久遠90年代的程式碼,彙編裡沒註釋,全靠除錯驗證功能。還有三無程式碼,沒文件,沒配置,資料庫還是殘的,程式碼漂亮不見得有用,久而久之,不維護了,不重構,程式碼就廢了,與其在別人的上面補,不如自己重寫,見過幾朵牛逼的程式設計師奇葩,註釋裡有討論哲學,寫詩的,罵人的,出題招人的都有。程式碼好看只是視覺上舒服,關鍵裡面的設計要合理,功能要單一,命名規範,要一看能懂,有沒有註釋,文件是其次,說專業術語就是耦合性要底,依賴少一點,出現莫名其妙問題,低階問題的往往是新手較多,新手先讓處理資料,CRUD寫熟,再接功能,小架構。不過現在都很少見到炫技的碼神,都是遵從程式碼規範來,上了百K,不統一,維護起來就難了,別太關注程式碼漂不漂亮,技術不是搞介面設計的,適當遵從規範就可以了。
-
5 # 嵌入式宏思微想
我覺得uc/OS的程式碼就很漂亮,包括架構、模組、函式、變數、註釋。FreeRTOS的程式碼更加簡潔明瞭,而且也很工整美觀。如果你是從事嵌入式軟體開發,並且有使用或者接觸過上述的兩個嵌入式作業系統的話,我建議你深入學習一下,包括它們的程式碼規範,架構思想,實現方法。
俗話說,字如其人。對於程式設計師來講,其實程式碼如其人。雜亂無章,隨心所欲的程式碼,其作者要麼水平低能力有限,要麼就是沒有整體規劃逐步分解的思想,通俗來說,沒有核心觀,沒有主體觀。
日常的開發,一般都是需求變更快,功能繁雜,專案週期短,所以很多人寫程式碼,尤其是應用程式碼,根本就是能跑就好,能用就行。什麼稽核,什麼規範,什麼傳承,通通都拋到一邊去咯。
好的程式碼,應該漂亮,應該賞心悅目。好程式碼的真正核心,我認為是要完全地充分地使用大家可以理解的方式方法,透過約定俗成的程式碼習慣呈現出作者的思路和目的,這就是漂亮的程式碼。
不良的程式碼,看起來想笑又笑不起來,因為你可能看不懂或者看得很煩躁。
程式碼習慣一般在從事開發的頭三年養成,所以畢業生一定要慎重地嚴格地要求自己。如果入職的是大公司,一般你就遵循公司或者部門的程式碼規範就好了。如果是入職的小公司或者沒有規範要求的公司,那麼我建議你找找一些開源的優秀程式碼來參考,例如Linux。如果你是從事嵌入式軟體開發,uc/OS,FreeRTOS的程式碼,都是不錯的典範。
規範的程式碼對於程式設計師的成長很有幫助,它有很多好處,例如規範你的思想,規範你的習慣,規範你的手法。隨著從業經驗的深入,你會慢慢地發現,其實厲害的程式設計師,程式碼規範都很不錯,寫出的程式碼都很漂亮。
漂亮的程式碼,如漂亮的女人,人人都愛。
-
6 # 彩雲之南大老表
對於業務程式碼來說,
風格統一,第一眼看上去要感覺緊湊可讀性強,如不能太長,變數命名規則,巢狀不能太深等。git提交的格式要符合規範 -
7 # 王多魚財團
spring 原始碼裡的這一段就很好。把一個複雜的任務,拆成一個一個相對獨立的小任務,每個小任務裡對應一個方法。方法名的就足以讓人知道方法是幹嘛用的了,註釋也是錦上添花。一眼望去,就知道這個方法幹啥用的,第一步做什麼,第二部做什麼……分而治之的思想,一個方法不要寫太長,容易把人看暈,適當的拆解。
回覆列表
這款品牌的口紅 當然能用了 ,它的質地是屬於那種清爽不油膩的 ,而且他的膏體也很順滑 ,這款口紅它的上色度非常高 保溼度也非常好 ,最主要的是一抹均勻 不結塊 ,而且這款口紅她的外觀設計非常精巧可愛 ,方便放魚 包包中隨身攜帶 ,可以隨時隨地補妝 ,是一款價效比很高的口紅