偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

我從優(yōu)秀的開發(fā)者那里學(xué)到的19件事

開發(fā) 前端
三法則是一個(gè)代碼重構(gòu)的經(jīng)驗(yàn)法則,用來(lái)決定什么時(shí)候應(yīng)該用新的代碼/程序/方法來(lái)替換一段復(fù)制的代碼。

 1.三法則

三法則是一個(gè)代碼重構(gòu)的經(jīng)驗(yàn)法則,用來(lái)決定什么時(shí)候應(yīng)該用新的代碼/程序/方法來(lái)替換一段復(fù)制的代碼。

[[350568]]

它規(guī)定,允許你復(fù)制粘貼一次代碼,但當(dāng)同一代碼復(fù)制三次時(shí),應(yīng)提取到一個(gè)新的程序中。主要的概念是使代碼/程序/方法能夠在項(xiàng)目中通用,這樣它就可以在很多地方重復(fù)的使用。

2.穩(wěn)定才是王道

在結(jié)構(gòu)和編碼方式上保持一致。這可以幫助你提高代碼的可讀性和可維護(hù)性。

嘗試并提出一致性的編碼標(biāo)準(zhǔn),這有助于保持一致性,最好精確到你的變量的命名習(xí)慣。另一個(gè)重要的是代碼程序的結(jié)構(gòu),它應(yīng)該是顯而易見(jiàn)的,開發(fā)人員需要做出一些改變或添加一些新的東西。

3.減少嵌套

If中的if可能會(huì)使代碼結(jié)構(gòu)變得很亂,而且很快就很難讀懂。有時(shí)你可能無(wú)法繞過(guò)這個(gè)問(wèn)題,但一定要看看你的代碼結(jié)構(gòu)。對(duì)于 else if 來(lái)說(shuō)也是一樣的,要盡可能避免if嵌套,因?yàn)檫@有時(shí)會(huì)使代碼更難讀。

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

沒(méi)有使用衛(wèi)語(yǔ)句示例:

 

  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.  

 

使用衛(wèi)語(yǔ)句示例:

 

  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.從全局出發(fā)去考慮

對(duì)項(xiàng)目整體有個(gè)認(rèn)知是非常重要的,這能使小細(xì)節(jié)更容易跟進(jìn)。一旦你了解了項(xiàng)目的整體結(jié)構(gòu),小細(xì)節(jié)就不需要再去花太多時(shí)間去研究。

5.花點(diǎn)時(shí)間思考下命名的問(wèn)題

在編碼中給變量、方法或?qū)ο竺抢_我們的事情之一,這可以是給一個(gè)類、方法甚至是一個(gè)變量命名。一個(gè)優(yōu)秀的開發(fā)者會(huì)花時(shí)間考慮相關(guān)的變量名,因?yàn)樗麄冎肋@有助于提高可讀性!

6.技術(shù)負(fù)債是不好的

要求高點(diǎn)可以幫助解決這個(gè)問(wèn)題。盡量一次寫好你的代碼邏輯,否則你就得反復(fù)的去重構(gòu)。

技術(shù)債務(wù)是軟件開發(fā)中的一個(gè)概念,它反映了由于現(xiàn)在選擇一種簡(jiǎn)單的(有限的)解決方案,而不是使用會(huì)花費(fèi)較長(zhǎng)時(shí)間的更好的方法而導(dǎo)致的額外返工的成本。

7.過(guò)高的評(píng)估

根據(jù)您所處部門的不同,您未必喜歡這一點(diǎn)。但優(yōu)秀的開發(fā)人員往往會(huì)高估任務(wù),因?yàn)樗麄冎朗虑榇蟾乓ǘ嚅L(zhǎng)時(shí)間,然后會(huì)給預(yù)期再增加一個(gè)緩沖的時(shí)間,這樣可以幫助你把事情做好。

這可以真正幫助你解決上面的觀點(diǎn)—— "技術(shù)債務(wù)是不好的"。如果你低估或預(yù)估了一個(gè)比較理想的時(shí)間,實(shí)際上可能會(huì)無(wú)法完成,甚至?xí)z留一些技術(shù)債務(wù)。因?yàn)槟愕钠谕皇潜M快的完成并能夠使其正常運(yùn)行,而不是使代碼干凈且易于維護(hù)。

8.文檔和注釋

文檔和注釋有助于幫助自己或者他人更容易的理解和使用。你會(huì)聽到一些有經(jīng)驗(yàn)的人在說(shuō),我們能不能把這個(gè)過(guò)程記錄下來(lái),或者代碼審查失敗,因?yàn)榻涌跊](méi)有相關(guān)注釋等。

9.敢于刪除不好的或沒(méi)用的代碼

你經(jīng)常會(huì)看到很多不太自信的開發(fā)人員將大量代碼注釋掉并留在那里。版本控制是有目的!優(yōu)秀的開發(fā)人員不會(huì)回避刪除應(yīng)用程序中沒(méi)用的代碼。

10.花時(shí)間檢查編寫的代碼

優(yōu)秀的開發(fā)人員將花費(fèi)更多的時(shí)間在代碼審查上,并且知道代碼審查的重要性。

  • 盡早的發(fā)現(xiàn)BUG;
  • 提高開發(fā)人員的技能,并讓團(tuán)隊(duì)其他成員也養(yǎng)成這樣的習(xí)慣;
  • 知識(shí)分享;
  • 一致的設(shè)計(jì)和實(shí)現(xiàn)。

我見(jiàn)過(guò)的最好的代碼評(píng)審過(guò)程是:

  • 1個(gè)風(fēng)險(xiǎn)不大的小任務(wù)應(yīng)該由1個(gè)開發(fā)人員進(jìn)行審查;
  • 中型/大型更改或有風(fēng)險(xiǎn)的更改應(yīng)由3位開發(fā)人員進(jìn)行審核,其中一位是其辦團(tuán)隊(duì)中的高級(jí)開發(fā)人員;
  • 一個(gè)風(fēng)險(xiǎn)極高的修改或是正在開發(fā)的新功能,應(yīng)該舉行一個(gè)會(huì)議,3個(gè)開發(fā)人員至少有一個(gè)是首席開發(fā)人員,然后一起去看每一行,并提出建議。

11.編寫測(cè)試用例

您會(huì)注意到,經(jīng)驗(yàn)更豐富,實(shí)力更強(qiáng)的開發(fā)人員會(huì)花更多時(shí)間編寫好測(cè)試用例。良好的測(cè)試用例可以幫助您更有信心地?cái)U(kuò)展或修改程序代碼,并有助于減少bug的產(chǎn)生。

12.花時(shí)間去設(shè)計(jì)

在深入研究代碼或?qū)懘a之前,請(qǐng)先進(jìn)行仔細(xì)考慮,然后將其分解為小塊。這有助于幫你如何將所有東西組合在一起,并為創(chuàng)建更簡(jiǎn)潔的代碼做更多準(zhǔn)備。

13.要注重技術(shù)實(shí)現(xiàn)原理而不是語(yǔ)法

這是個(gè)大問(wèn)題! 他們喜歡學(xué)習(xí)基礎(chǔ)知識(shí)大于注重語(yǔ)法。這可以幫助他們更有效的發(fā)現(xiàn)問(wèn)題,也可以幫助他們更明白的google問(wèn)題。

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

他們是Googling的專家,能更好的找到解決問(wèn)題的方法。因?yàn)樯厦嫣岬剿麄兏鼘W⒂诨A(chǔ)知識(shí)而不是語(yǔ)法,所以他們知道該搜索哪些谷歌術(shù)語(yǔ),如果你執(zhí)著于學(xué)習(xí)語(yǔ)法,這是很難做到的!

15.先實(shí)現(xiàn)功能再優(yōu)化

一些初級(jí)開發(fā)人員,似乎一開始就花了很多時(shí)間讓編寫的代碼看起來(lái)很漂亮,這樣如果最后發(fā)現(xiàn)它們無(wú)法正常工作就陷入尷尬。優(yōu)秀的開發(fā)人員會(huì)在早些時(shí)候只實(shí)現(xiàn)功能,這樣把細(xì)節(jié)處理好之前可以盡早的發(fā)現(xiàn)問(wèn)題,有利于保證項(xiàng)目更加順利的進(jìn)行。

16.風(fēng)險(xiǎn)管理和解決問(wèn)題

高級(jí)開發(fā)人員可以把控風(fēng)險(xiǎn),通過(guò)設(shè)計(jì)模式的應(yīng)用提煉出復(fù)雜的問(wèn)題,并且根據(jù)過(guò)去的經(jīng)驗(yàn),可以獨(dú)立解決不同的問(wèn)題。

17.多問(wèn)

優(yōu)秀的開發(fā)人員想了解的多一點(diǎn)。即使聽起來(lái)很簡(jiǎn)單,他們也不介意提出問(wèn)題。這些可能是與技術(shù)或業(yè)務(wù)相關(guān)的問(wèn)題。了解業(yè)務(wù)需求有助于他們編寫更好的代碼!他們對(duì)自己的能力充滿信心,因此不怕問(wèn)問(wèn)題。

18.盡可能地將邏輯從數(shù)據(jù)庫(kù)中分離出來(lái)

這一點(diǎn)要看你構(gòu)建的應(yīng)用類型,只有在不會(huì)影響性能的情況下才可以。

他們知道要把數(shù)據(jù)庫(kù)查詢控制在簡(jiǎn)單的CRUD操作中。

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

然后,業(yè)務(wù)邏輯層應(yīng)該將這些內(nèi)容整合在一起。這有助于開發(fā)人員知道在哪里尋找業(yè)務(wù)邏輯。如果在數(shù)據(jù)庫(kù)查詢和代碼中有邏輯,這很快就會(huì)變得混亂。

19.保持代碼簡(jiǎn)潔

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

 

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

這通常是可行的,但是閱讀起來(lái)非常困難!

總結(jié):

這就是我看到的優(yōu)秀的開發(fā)人員每天都會(huì)做的事情。您會(huì)發(fā)現(xiàn)其中許多與實(shí)際編碼無(wú)關(guān),而與過(guò)程以及它們?nèi)绾翁幚砣蝿?wù)有關(guān)......

責(zé)任編輯:華軒 來(lái)源: 新鈦云服
相關(guān)推薦

2016-04-07 10:49:28

游戲開發(fā)者

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

物聯(lián)網(wǎng)數(shù)字健康自動(dòng)化

2013-01-14 17:11:24

2013移動(dòng)開發(fā)者開發(fā)者

2010-05-21 09:21:48

PHPPHP開發(fā)者

2014-04-09 11:19:12

創(chuàng)業(yè)創(chuàng)業(yè)前期

2011-02-14 14:10:14

PHPWeb

2019-11-23 23:38:51

開發(fā)者微服務(wù)安全

2013-12-18 10:01:36

CIO開發(fā)者

2014-09-05 13:37:29

程序員

2014-05-13 13:54:35

Esri

2013-08-13 09:44:42

iOS 7開發(fā)者

2020-10-23 12:58:21

開發(fā)編碼代碼

2022-06-22 15:18:29

開發(fā)

2012-06-13 01:23:30

開發(fā)者程序員

2020-05-08 15:30:42

PostgreSQL數(shù)據(jù)庫(kù)數(shù)據(jù)

2012-03-05 10:01:43

移動(dòng)開發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)