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

我從優秀的開發者那里學到的19件事

開發 前端
三法則是一個代碼重構的經驗法則,用來決定什么時候應該用新的代碼/程序/方法來替換一段復制的代碼。

 1.三法則

三法則是一個代碼重構的經驗法則,用來決定什么時候應該用新的代碼/程序/方法來替換一段復制的代碼。

[[350568]]

它規定,允許你復制粘貼一次代碼,但當同一代碼復制三次時,應提取到一個新的程序中。主要的概念是使代碼/程序/方法能夠在項目中通用,這樣它就可以在很多地方重復的使用。

2.穩定才是王道

在結構和編碼方式上保持一致。這可以幫助你提高代碼的可讀性和可維護性。

嘗試并提出一致性的編碼標準,這有助于保持一致性,最好精確到你的變量的命名習慣。另一個重要的是代碼程序的結構,它應該是顯而易見的,開發人員需要做出一些改變或添加一些新的東西。

3.減少嵌套

If中的if可能會使代碼結構變得很亂,而且很快就很難讀懂。有時你可能無法繞過這個問題,但一定要看看你的代碼結構。對于 else if 來說也是一樣的,要盡可能避免if嵌套,因為這有時會使代碼更難讀。

衛語句(又稱 提前返回 /提前退出)是幫助解決這一問題的有效方法!衛語句只是用于檢查先決條件,可以是一個返回語句,也可以是一個異常。

沒有使用衛語句示例:

 

  1. if (account != null
  2.  
  3.  
  4.     if (order != null
  5.  
  6.     { 
  7.  
  8.         if (order.term == Term.Annually) 
  9.  
  10.         { 
  11.  
  12.             // term annually 
  13.  
  14.         } 
  15.  
  16.         else if (order.term == Term.Monthly) 
  17.  
  18.         { 
  19.  
  20.             // term monthly 
  21.  
  22.         } 
  23.  
  24.         else 
  25.  
  26.         { 
  27.  
  28.             throw new InvalidEnumArgumentException(nameof(term)); 
  29.  
  30.         } 
  31.  
  32.     } 
  33.  
  34.     else 
  35.  
  36.     { 
  37.  
  38.         throw new ArgumentNullException(nameof(subscription)); 
  39.  
  40.     } 
  41.  

 

使用衛語句示例:

 

  1. if (account == null
  2.  
  3.  
  4.         throw new ArgumentNullException(nameof(account)); 
  5.  
  6.  
  7. if (order == null
  8.  
  9.  
  10.     throw new ArgumentNullException(nameof(order)); 
  11.  
  12.  
  13. if (order.term == Term.Annually) 
  14.  
  15.  
  16.     // term annually (return here) 
  17.  
  18.  
  19. if (order.term == Term.Monthly) 
  20.  
  21.  
  22.     // term monthly (return here) 
  23.  
  24.  
  25. throw new InvalidEnumArgumentException(nameof(order.term)); 

 

4.從全局出發去考慮

對項目整體有個認知是非常重要的,這能使小細節更容易跟進。一旦你了解了項目的整體結構,小細節就不需要再去花太多時間去研究。

5.花點時間思考下命名的問題

在編碼中給變量、方法或對象命名是困擾我們的事情之一,這可以是給一個類、方法甚至是一個變量命名。一個優秀的開發者會花時間考慮相關的變量名,因為他們知道這有助于提高可讀性!

6.技術負債是不好的

要求高點可以幫助解決這個問題。盡量一次寫好你的代碼邏輯,否則你就得反復的去重構。

技術債務是軟件開發中的一個概念,它反映了由于現在選擇一種簡單的(有限的)解決方案,而不是使用會花費較長時間的更好的方法而導致的額外返工的成本。

7.過高的評估

根據您所處部門的不同,您未必喜歡這一點。但優秀的開發人員往往會高估任務,因為他們知道事情大概要花多長時間,然后會給預期再增加一個緩沖的時間,這樣可以幫助你把事情做好。

這可以真正幫助你解決上面的觀點—— "技術債務是不好的"。如果你低估或預估了一個比較理想的時間,實際上可能會無法完成,甚至會遺留一些技術債務。因為你的期望只是盡快的完成并能夠使其正常運行,而不是使代碼干凈且易于維護。

8.文檔和注釋

文檔和注釋有助于幫助自己或者他人更容易的理解和使用。你會聽到一些有經驗的人在說,我們能不能把這個過程記錄下來,或者代碼審查失敗,因為接口沒有相關注釋等。

9.敢于刪除不好的或沒用的代碼

你經常會看到很多不太自信的開發人員將大量代碼注釋掉并留在那里。版本控制是有目的!優秀的開發人員不會回避刪除應用程序中沒用的代碼。

10.花時間檢查編寫的代碼

優秀的開發人員將花費更多的時間在代碼審查上,并且知道代碼審查的重要性。

  • 盡早的發現BUG;
  • 提高開發人員的技能,并讓團隊其他成員也養成這樣的習慣;
  • 知識分享;
  • 一致的設計和實現。

我見過的最好的代碼評審過程是:

  • 1個風險不大的小任務應該由1個開發人員進行審查;
  • 中型/大型更改或有風險的更改應由3位開發人員進行審核,其中一位是其辦團隊中的高級開發人員;
  • 一個風險極高的修改或是正在開發的新功能,應該舉行一個會議,3個開發人員至少有一個是首席開發人員,然后一起去看每一行,并提出建議。

11.編寫測試用例

您會注意到,經驗更豐富,實力更強的開發人員會花更多時間編寫好測試用例。良好的測試用例可以幫助您更有信心地擴展或修改程序代碼,并有助于減少bug的產生。

12.花時間去設計

在深入研究代碼或寫代碼之前,請先進行仔細考慮,然后將其分解為小塊。這有助于幫你如何將所有東西組合在一起,并為創建更簡潔的代碼做更多準備。

13.要注重技術實現原理而不是語法

這是個大問題! 他們喜歡學習基礎知識大于注重語法。這可以幫助他們更有效的發現問題,也可以幫助他們更明白的google問題。

14.讓谷歌成為你的好朋友

他們是Googling的專家,能更好的找到解決問題的方法。因為上面提到他們更專注于基礎知識而不是語法,所以他們知道該搜索哪些谷歌術語,如果你執著于學習語法,這是很難做到的!

15.先實現功能再優化

一些初級開發人員,似乎一開始就花了很多時間讓編寫的代碼看起來很漂亮,這樣如果最后發現它們無法正常工作就陷入尷尬。優秀的開發人員會在早些時候只實現功能,這樣把細節處理好之前可以盡早的發現問題,有利于保證項目更加順利的進行。

16.風險管理和解決問題

高級開發人員可以把控風險,通過設計模式的應用提煉出復雜的問題,并且根據過去的經驗,可以獨立解決不同的問題。

17.多問

優秀的開發人員想了解的多一點。即使聽起來很簡單,他們也不介意提出問題。這些可能是與技術或業務相關的問題。了解業務需求有助于他們編寫更好的代碼!他們對自己的能力充滿信心,因此不怕問問題。

18.盡可能地將邏輯從數據庫中分離出來

這一點要看你構建的應用類型,只有在不會影響性能的情況下才可以。

他們知道要把數據庫查詢控制在簡單的CRUD操作中。

Create, read (aka retrieve), update, and delete

然后,業務邏輯層應該將這些內容整合在一起。這有助于開發人員知道在哪里尋找業務邏輯。如果在數據庫查詢和代碼中有邏輯,這很快就會變得混亂。

19.保持代碼簡潔

他們知道保持代碼簡單是最好的方法。即使這意味著有時要多寫代碼。您將看到許多初級開發人員編寫如下所示的代碼:

 

  1. return dir.Keys.Any(k => k >= limit) ? dir.First(x => x.Key >= limit).Value : dir[dir.Keys.Max()]; 

這通常是可行的,但是閱讀起來非常困難!

總結:

這就是我看到的優秀的開發人員每天都會做的事情。您會發現其中許多與實際編碼無關,而與過程以及它們如何處理任務有關......

責任編輯:華軒 來源: 新鈦云服
相關推薦

2016-04-07 10:49:28

游戲開發者

2019-07-08 09:36:57

Angular前端框架

2010-03-01 10:20:27

Flex

2010-07-28 14:21:43

Flex

2011-05-26 11:13:36

Flex

2019-12-12 15:40:08

物聯網數字健康自動化

2010-05-21 09:21:48

PHPPHP開發者

2014-04-09 11:19:12

創業創業前期

2013-01-14 17:11:24

2013移動開發者開發者

2011-02-14 14:10:14

PHPWeb

2013-12-18 10:01:36

CIO開發者

2019-11-23 23:38:51

開發者微服務安全

2014-09-05 13:37:29

程序員

2014-05-13 13:54:35

Esri

2013-08-13 09:44:42

iOS 7開發者

2020-10-23 12:58:21

開發編碼代碼

2022-06-22 15:18:29

開發

2012-03-05 10:01:43

移動開發

2020-05-08 15:30:42

PostgreSQL數據庫數據

2021-03-09 15:03:03

iOS 15Android蘋果
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久中文字 | 日韩成人影院在线观看 | 日本a视频 | 密色视频 | 日本精品一区二区三区视频 | 黄色亚洲 | 狠狠操狠狠搞 | 国产一区视频在线 | 天天影视网天天综合色在线播放 | 欧美精品91 | 精品亚洲第一 | 99久久精品国产毛片 | 天天干天天玩天天操 | 欧美毛片免费观看 | 久久久久中文字幕 | 在线视频日韩 | 成年视频在线观看福利资源 | 精品九九久久 | 中文字幕日韩一区 | 久久久精品一区二区 | www.久久久久久久久久久久 | 在线观看亚洲 | 国产主播第一页 | 9久9久9久女女女九九九一九 | 久久免费视频1 | 国产午夜精品一区二区三区四区 | 国产精品久久久久久久久久久免费看 | 国内精品久久久久 | 成人黄在线观看 | 欧美日韩一区二区在线 | 九九精品在线 | 国产免费一区二区 | 色婷婷一区二区三区四区 | 久久精品国产久精国产 | 欧美精品video | 一区二区在线免费播放 | 国产aa | 成人妇女免费播放久久久 | 一级黄色裸片 | 久草视频观看 | 久久噜噜噜精品国产亚洲综合 |