多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 程序人生 > 怎樣用10步讓你成為更優秀的程序員

怎樣用10步讓你成為更優秀的程序員

來源:程序員人生   發布時間:2017-04-06 16:16:03 閱讀次數:4365次
篇文章要介紹的,是廈門萬策智業作為廈門程序員培訓(peixun.wanczy.com)專業這些年來學到的能真正提高我的代碼質量和整體工作效率的10件事情。
 
1、永遠不要復制代碼
 
不惜任何代價避免重復的代碼。如果一個常用的代碼片段出現在了程序中的幾個不同地方,重構它,把它放到一個自己的函數里。重復的代碼會導致你的同事在讀你的代碼時產生困惑。而重復的代碼如果在一個地方修改,在另外一個地方忘記修改,就會產生到處是bug,它還會使你的代碼體積變得臃腫?,F代的編程語言提供了很好的方法來解決這些問題,例如,下面這個問題在以前很難解決,而如今使用lambdas卻很好實現:
/// <summary>/// 一些函數含有部分重復代碼/// </summary>void OriginalA(){ DoThingsA(); // unique code DoThingsB();}/// <summary>/// 另外一個含有部分重復代碼的函數/// </summary>void OriginalB(){ DoThingsA(); // 沒有重復的代碼 DoThingsB();}
現在我們重構含有部分相同代碼的函數,用delegate模式重寫它們:

/// <summary>/// Encapsulate shared functionality/// </summary>/// <param name="action">User defined action</param>void UniqueWrapper(Action action){ DoThingsA(); action(); DoThingsB();}/// <summary>/// New implmentation of A/// </summary>void NewA(){ UniqueWrapper(() => { // unique code });}/// <summary>/// New implementation of B/// </summary>void NewB(){ UniqueWrapper(() => { // unique code });}


2、 留意你開始分心的時候
 
當你發現自己在瀏覽facebook或微博、而不是在解決問題,這通常是一種你需要短暫休息的信號。離開辦公桌,去喝一杯咖啡,或去跟同事聊5分鐘。盡管這樣做看起來有點反直覺,但長久去看,它會提高你的工作效率。
 
3、不要匆忙趕任務而放棄原則
 
當帶著壓力去解決一個問題或修改一個bug,你很容易失去自制,發現自己匆匆忙忙,甚至完全忘了一直堅持的重要的測試過程。這通常會導致更多的問題,會讓你在老板或同事眼里顯得很不專業。
 
4、 測試你完成的代碼
 
你知道你的代碼能做什么,而且試了一下,它確實好用,但你實際上需要充分的驗證它。分析所有可能的邊界情況,測試在所有可能的條件下它都能如期的工作。如果有參數,傳遞一些預期范圍外的值。傳遞一個null值。如果可能,讓同事看看你的代碼,問他們能否弄壞它。單元測試是到達這種目的的常規方法。
 
5、 代碼審查
 
提交你的代碼之前,找個同事一起坐下來,向他解釋你做了哪些修改。通常,這樣做的過程中你就能發現代碼中的錯誤,而不需要同事說一句話。這比自己審查自己的代碼要有效的多得多。
 
6、 讓代碼更少
 
如果你發現寫了大量的代碼來解決一個簡單的問題,你很可能做錯了。下面的boolean用法是一個很好的例子:
if (numMines > 0){ enabled=true;}else{ enabled=false;}
這時你應該寫成這樣:
enabled = numMines > 0;
代碼越少越好。這會使bug更少,重構可能性更小,出錯的幾率更小。要適度。可讀性同等重要,你可不能這樣做而使代碼喪失可讀性。
 
7、 為優雅的代碼而努力
 
優雅的代碼非常的易讀,只用手邊很少的代碼、讓機器做很少的運算就能解決問題。在各種環境中都做到代碼優雅是很難的,但經過一段時間的編程,你會對優雅的代碼是個什么樣子有個初步的感覺。優雅的代碼不會通過重構來獲得。當你看到優雅的代碼是會很高興。你會為它自豪。例如,下面就是一個我認為是優雅的方式來計算多邊形面積的方法:

static public double GetConvexPolygonArea(Vector2[] vertices){ double area = 0; for (int i = 0; i < vertices.Length; i++) { Vector2 P0 = vertices[i]; Vector2 P1 = vertices[(i + 1) % vertices.Length]; area += P0.Wedge(P1); } return area / 2;}


8、編寫不言自明的代碼
 
勿庸置疑,注釋是編程中很重要的一部分,但能夠不言自明的代碼跟勝一籌,因為它能讓你在看代碼時就能理解它。函數名變量名要慎重選擇,好的變量/方法名字放到語言語義環境中時,不懂編程的人都能看懂。例如:
void DamagePlayer(Player player, int damageAmount){ if (!player.m_IsInvincible && !player.m_IsDead) { player.InflictDamage( damageAmount ); }}
能自我說明的代碼不能代替注釋。注釋是用來解釋“為什么”的,而自我說明的代碼是來描述“是什么”的。
 
9、不要使用純數字
 
直接把數字嵌入代碼中是一種惡習,因為無法說明它們是代表什么的。當有重復時更糟糕——相同的數字在代碼的多個地方出現。如果只修改了一個,而忘記了其它的。這就導致bug。一定要用一個命名常量來代表你要表達的數字,即使它在代碼里只出現一次。
 
10、不要做手工勞動
 
當做一系列動作時,人類總是喜歡犯錯誤。如果你在做部署工作,并且不是一步能完成的,那你就是在做錯事。盡量的讓工作能自動化的完成,減少人為錯誤。當做工作量很大的任務時,這尤其重要。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧洲乱码专区一区二区三区四区 | 在线播放a 1 | 欧美一级毛片高清毛片 | 69xx在线观看视频 | 亚洲黄色在线观看网站 | 亚洲国产精品成人综合久久久 | 在线免费视频国产 | 免费xxxxx在线观看网站 | 亚洲制服一区 | 久久天堂成人影院 | 噜噜嘿在线视频免费观看 | 国产不卡福利 | 久久久日本精品一区二区三区 | 日韩欧美一区二区中文字幕 | 伊人久久综合成人网小说 | 美女福利影院 | 精品国产一区二区三区19 | 日产高清卡一卡二无卡三区 | 看一级毛片免费观看视频 | 美日韩一区二区三区 | 日韩特级片| 欧美一级人与动毛片免费播放 | 国产免费叼嘿视频 | 精品国免费一区二区三区 | 边摸边吃奶边做3p视频 | 亚洲大成色www永久网 | 国产欧美日韩另类 | 请看一下欧美一级毛片 | 亚洲国产天堂久久综合9999 | 欧美三区在线观看 | 国产欧美精品国产国产专区 | 动漫网站在线观看 | 日本欧美不卡一区二区三区在线 | 高清一级毛片免免费看 | xxxxxxx国产精品视频 | 欧美一级aa毛片禁片 | 奇奇影院理论片在线观看 | 日本一区二区高清 | 精品视频在线播放 | 欧美成人性色大片在线观看 | 成人国产亚洲欧美成人综合网 |