成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

敲代碼也要講“基本法”:​程序員應該遵守的編碼原則

開發 前端
如何在人數眾多的情況下管理如此龐大的代碼呢?這就要求大家去遵守一些原則,讓每個成員都編寫干凈且易于維護的代碼。畢竟,敲代碼也得講“基本法”呀。

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)

怎樣才能算作是一名優秀的程序員?Martin Fowler如是說:“任何傻瓜都可以編寫計算機可以理解的代碼。優秀的程序員只編寫人類可以理解的代碼。”

能夠理解問題,以可行的方式向最終用戶展示解決方案,并團結協作共同實現這個最終目標,這才能算作是好的程序員。那么問題來了,如何在人數眾多的情況下管理如此龐大的代碼呢?

這就要求大家去遵守一些原則,讓每個成員都編寫干凈且易于維護的代碼。畢竟,敲代碼也得講“基本法”呀~

[[326525]]

單一職責

編碼一段時間之后,你的代碼很可能會將變得笨拙,也許具有執行多種功能的類/模塊,最終你將得到成百上千行代碼的類。

單一職責就是針對這一問題——程序中的類或模塊應該只負責一個特定功能的任務,這有助于保持模塊最小且干凈。

迪米特法則

當模塊相互依賴時,它們就變得緊密耦合,這意味著一個類將對其他模塊產生依賴關系。而緊密耦合降低了代碼的靈活性和可重用性。

迪米特法則是由伊恩·荷蘭(Ian Holland)1987年在東北大學首次提出。該原理總結如下:

  • 每個單元對其他單元的了解應該有限:只了解與當前單元“緊密”相關的單元。
  • 每個單元只能與朋友交談;不要跟陌生人說話。
  • 只與直系朋友交談。

該原理可以擁有獨立的類和代碼,因為依賴性較弱,其之間的關聯也更加松散,而你所做的任何更改都應反映在最直接的朋友身上。

干凈的代碼比聰明的代碼好

一些程序員在寫代碼時會忍不住“炫技”,然而這種看起來很厲害的代碼比實際易懂的代碼更難理解。

這相當于對于讀者來說并不友好,相當于給他們出難題。事實上,只要代碼干凈且易于理解,沒人會真正在乎代碼有多聰明。

例如,有些人想用三元運算來執行傳統的if-else語句。三元操作是標準編程操作,這當然沒問題,但問題出在嵌套三元語句時。

  1. let A = 10
  2. let B = 3
  3. let C = 25;(A>B?A:B)// fine(A>B?(A>C?A:C):(B>C?B:C))//notfineif(A>B){ 
  4.     (A>C?A:C) 
  5. }else{ 
  6.     (B>C?B:C) 
  7. }//better 

YAGNI(You Aren’t Gonna Need It)

生活中,人們做一件事時會提前計劃并做好準備。但這在編程中不是很適用。YAGNI原則就在談這一點,永遠不要為將來可能需要的功能編寫代碼。它很可能不需要,這是在在浪費時間。

你可以將這一條其視為對KISS原則的具體應用,同時也是對那些認真遵循DRY原則的人的回應。缺乏經驗的程序員通常會盡最大努力避免編寫最抽象和通用的代碼,避免使自己代碼變得笨拙。但是太多的抽象最終會導致無法維護的代碼膨脹。

你要做的是,只在看到需要抽象的代碼時才抽象代碼。相反,不要將DRY原則應用于將來可能會反復編寫的代碼。

簡而言之,就是活在當下,而不是將來。

用正確的工具去運用這些規則

有一些工具可以幫助更輕松地遵循這些原則,例如,前端開發人員使用像Bit.dev這樣的云組件中心來發布獨立的組件。你需要去尋找這些工具。

那么它們又是如何幫助程序員遵循這些原則的呢?

  • 將組件構建為獨立的代碼段(旨在作為獨立代碼進行發布,重用和協作),自然使每個開發人員都更加注意單一職責原則。
  • 從任何代碼庫發布組件的自由意味著可以共享和重用更多代碼,也免不了遵循DRY原則。這也意味著不會用從不使用的UI組件來構建完整的設計系統,而是遵循YAGNI原則,僅在需要時才構建和發布每個組件。

[[326526]]

圖源:unsplash

編寫干凈易懂的代碼聽起來簡單,實際做起來卻并不容易。如今,這已經成為一項必不可少的要求了。我們需要不斷實踐,必須慢慢改變處理問題的方式,并以一種清晰的方式得出解決方案。這不是一夜之間的過渡,而是需要幾個月和幾個項目的積累。

編程是一項團隊合作任務,項目成功與否很大程度上取決于團隊表現。在爭取不做“豬隊友”的基礎上,努力去做那個帶飛團隊的大神吧!

 

責任編輯:趙寧寧 來源: 讀芯術
相關推薦

2014-11-10 09:46:57

程序員

2012-08-06 17:10:37

2022-02-19 18:39:34

AI數據訓練

2010-01-19 09:14:46

.NET編碼習慣

2024-04-03 12:14:15

微服務架構監控

2009-02-23 20:45:54

程序員基本素質

2011-03-14 10:56:56

程序員人才

2014-10-22 10:54:14

程序員

2015-08-20 09:06:48

程序員

2012-03-13 09:24:30

Java

2015-07-02 11:20:17

程序員代碼

2011-12-19 09:40:21

程序員

2020-03-27 09:24:39

程序員技能開發者

2011-03-18 10:05:05

2009-03-13 15:18:45

程序員飲食雜談

2013-04-19 10:44:05

程序員禪道

2016-04-11 17:49:33

程序員外包

2017-12-19 20:35:22

程序員中興事件自殺

2013-04-01 15:51:09

程序員管理

2017-12-20 15:42:13

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 羞羞视频免费在线观看 | 久久久国产一区二区三区四区小说 | 日本一区二区三区在线观看 | 西西裸体做爰视频 | 欧美成人一区二区 | 亚洲成人久久久 | 亚洲激情网站 | 国产精品免费一区二区三区 | 91久久综合 | 在线中文视频 | 国产成人久久精品一区二区三区 | 欧美成人自拍视频 | 久久久久久久国产 | 久久国产视频播放 | 国产一区二区中文字幕 | 久久婷婷香蕉热狠狠综合 | 人妖一区 | 免费的一级视频 | 亚洲视频免费在线播放 | 一级做a爰片性色毛片16美国 | 九九综合 | 日本激情视频在线播放 | 亚洲精选一区 | 96久久久久久 | 51ⅴ精品国产91久久久久久 | 91精品国产综合久久久动漫日韩 | 91国内精品 | 中文在线一区 | 在线一区视频 | 蜜桃在线视频 | 国产一区二区在线播放 | 亚洲成人av在线播放 | 欧美一级做性受免费大片免费 | 欧美专区在线视频 | 欧美黄色一区 | 久久久青草 | 国产精品久久久久久久粉嫩 | 日本精品视频一区二区三区四区 | 午夜影院官网 | 日韩一二三区视频 | 九九成人|