ï»?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  ˜q™ç¯‡æ–‡ç« è¦ä»‹¾lçš„åQŒæ˜¯æˆ‘作ä¸ÞZ¸“业程åºå‘˜˜q™äº›òq´æ¥å¦åˆ°çš„èƒ½çœŸæ£æé«˜æˆ‘çš„ä»£ç è´¨é‡å’Œæ•´ä½“工作效率的 10 件事情ã€?/span>
  1. 永远ä¸è¦å¤åˆ¶ä»£ç
ã€€ã€€ä¸æƒœä»ÖM½•代ähé¿å…é‡å¤çš„代ç 。如果一个常用的代ç 片段出现在了½E‹åºä¸çš„å‡ ä¸ªä¸åŒåœ°æ–¹åQŒé‡æž„它åQŒæŠŠå®ƒæ”¾åˆîC¸€ä¸ªè‡ªå·Þqš„函数里。é‡å¤çš„代ç ä¼šå¯¼è‡´ä½ çš„åŒäº‹åœ¨è¯ÖM½ çš„ä»£ç æ—¶äº§ç”Ÿå›°æƒ‘。而é‡å¤çš„代ç 如果在一个地方修改,在å¦å¤–一个地方忘è®îC¿®æ”¹ï¼Œž®×ƒ¼šäº§ç”Ÿåˆ°å¤„æ˜?bugåQŒå®ƒ˜q˜ä¼šä½¿ä½ 的代ç 体¿U¯å˜å¾—臃è‚Ñ€‚现代的¾~–程è¯è¨€æä¾›äº†å¾ˆå¥½çš„æ–ÒŽ³•æ¥è§£å†Œ™¿™äº›é—®é¢˜ï¼Œ
  2. ç•™æ„ä½ å¼€å§‹åˆ†å¿ƒçš„æ—¶å€?/span>
ã€€ã€€å½“ä½ å‘现自己在æµè§?facebook 或微åšï¼Œè€Œä¸æ˜¯åœ¨è§£å†³é—®é¢˜åQŒè¿™é€šå¸¸æ˜¯ä¸€¿Uä½ éœ€è¦çŸæš‚休æ¯çš„ä¿¡å·ã€‚离开办公桌,åŽÕd–一æ¯å’–啡,或去跟åŒäº‹èŠ 5 分钟。尽½Ž¡è¿™æ ·åšçœ‹è“væ¥æœ‰ç‚¹å直觉åQŒä½†é•¿ä¹…åŽÈœ‹åQŒå®ƒä¼šæé«˜ä½ 的工作效率ã€?/span>
  3. ä¸è¦åŒ†å¿™èµ¶ä“Q务而放弃原åˆ?/span>
  当带ç€åŽ‹åŠ›åŽ»è§£å†³ä¸€ä¸ªé—®é¢˜æˆ–ä¿®æ”¹ä¸€ä¸?bugåQŒä½ 很容易失去自åˆÓž¼Œå‘现自己匆匆忙忙åQŒç”šè‡›_®Œå…¨å¿˜äº†ä¸€ç›´åšæŒçš„é‡è¦çš„æµ‹è¯•过½E‹ã€‚这通常会导致更多的问题åQŒä¼šè®©ä½ åœ¨è€æ¿æˆ–åŒäº‹çœ¼é‡Œæ˜¾å¾—很ä¸ä¸“业ã€?/span>
  4. ‹¹‹è¯•ä½ å®Œæˆçš„代ç
ã€€ã€€ä½ çŸ¥é“ä½ çš„ä»£ç 能åšä»€ä¹ˆï¼Œè€Œä¸”è¯•äº†ä¸€ä¸‹ï¼Œå®ƒç¡®å®žå¥½ç”¨ï¼Œä½†ä½ å®žé™…ä¸Šéœ€è¦å……分的验è¯å®ƒã€‚åˆ†æžæ‰€æœ‰å¯èƒ½çš„边界情况åQŒæµ‹è¯•在所有å¯èƒ½çš„æ¡äšgä¸‹å®ƒéƒ½èƒ½å¦‚æœŸçš„å·¥ä½œã€‚å¦‚æžœæœ‰å‚æ•°åQŒä¼ 递一些预期范围外的倹{€‚ä¼ é€’ä¸€ä¸?null 倹{€‚如果å¯èƒ½ï¼Œè®©åŒäº‹çœ‹çœ‹ä½ 的代ç ,问他们能å¦å¼„å它。å•元测试是到达˜q™ç§ç›®çš„的常规方法ã€?/span>
  5. 代ç 审查
  æäº¤ä½ 的代ç 之å‰åQŒæ‰¾ä¸ªåŒäº‹ä¸€èµ·å下æ¥åQŒå‘ä»–è§£é‡Šä½ åšäº†å“ªäº›ä¿®æ”¹ã€‚通常åQŒè¿™æ ·åšçš„过½E‹ä¸ä½ 就能å‘çŽîC»£ç ä¸çš„错误,而ä¸éœ€è¦åŒäº‹è¯´ä¸€å¥è¯ã€‚这比自己审查自å·Þqš„代ç è¦æœ‰æ•ˆçš„多得多ã€?/span>
  6. è®©ä»£ç æ›´ž®?/span>
ã€€ã€€å¦‚æžœä½ å‘现写了大é‡çš„ä»£ç æ¥è§£å†³ä¸€ä¸ªç®€å•的问题åQŒä½ 很å¯èƒ½åšé”™äº†ã€‚下é¢çš„ boolean 用法是一个很好的例ååQ?/span>
  if (numMines > 0)
  {
  enabled=true;
  }
  else
  {
  enabled=false;
  }
  ˜q™æ—¶ä½ 应该写æˆè¿™æ øP¼š
  enabled = numMines > 0;
ã€€ã€€ä»£ç ‘Šå°‘‘Šå¥½ã€‚这会ä‹É bug æ›´å°‘åQŒé‡æž„å¯èƒ½æ€§æ›´ž®ï¼Œå‡ºé”™çš„å‡ çŽ‡æ›´ž®ã€‚è¦é€‚度。å¯è¯ÀL€§åŒ½{‰é‡è¦ï¼Œä½ å¯ä¸èƒ½˜q™æ ·åšè€Œä‹É代ç 丧失å¯è¯»æ€§ã€?/span>
  7. ä¸ÞZ¼˜é›…的代ç 而努åŠ?/span>
  优雅的代ç éžå¸¸çš„æ˜“读åQŒåªç”¨æ‰‹è¾¹å¾ˆž®‘的代ç ã€è®©æœºå™¨åšå¾ˆž®‘çš„˜qç®—ž®Þpƒ½è§£å†³é—®é¢˜ã€‚在å„ç§çŽ¯å¢ƒä¸éƒ½åšåˆ°ä»£ç 优雅是很隄¡š„åQŒä½†¾l过一ŒD‰|—¶é—´çš„¾~–程åQŒä½ ä¼šå¯¹ä¼˜é›…çš„ä»£ç æ˜¯ä¸ªä»€ä¹ˆæ ·åæœ‰ä¸ªåˆæ¥çš„æ„Ÿè§‰ã€‚优雅的代ç ä¸ä¼šé€šè¿‡é‡æž„æ¥èŽ·å¾—ã€‚å½“ä½ çœ‹åˆîC¼˜é›…çš„ä»£ç æ˜¯ä¼šå¾ˆé«˜å…´ã€‚ä½ ä¼šäØ“å®ƒè‡ªè±ªã€‚ä¾‹å¦‚ï¼Œä¸‹é¢ž®±æ˜¯ä¸€ä¸ªæˆ‘è®¤äØ“æ˜¯ä¼˜é›…çš„æ–¹å¼æ¥è®¡½Ž—多边åÅžé¢ç§¯çš„æ–¹æ³•:
  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. ¾~–写ä¸è¨€è‡ªæ˜Žçš„代ç ?/span>
  勿庸¾|®ç–‘åQŒæ³¨é‡Šæ˜¯¾~–程ä¸å¾ˆé‡è¦çš„一部分åQŒä½†èƒ½å¤Ÿä¸è¨€è‡ªæ˜Žçš„ä»£ç æ›´èƒœä¸€½{¹ï¼Œå› äØ“å®ƒèƒ½è®©ä½ åœ¨çœ‹ä»£ç æ—¶å°±èƒ½ç†è§£å®ƒã€‚函数åå˜é‡åè¦æ…Žé‡é€‰æ‹©åQŒå¥½çš„å˜é‡?æ–ÒŽ³•åå—æ”‘Öˆ°è¯è¨€è¯ä¹‰çŽ¯å¢ƒä¸æ—¶åQŒä¸æ‡‚ç¼–½E‹çš„人都能看懂。例如:
  void DamagePlayer (Player player, int damageAmount)
  {
  if (!player.m_IsInvincible && !player.m_IsDead)
  {
  player.InflictDamage ( damageAmount );
  }
  }
  能自我说明的代ç ä¸èƒ½ä»£æ›¿æ³¨é‡Šã€‚注释是用æ¥è§£é‡Šâ€œäؓ什么â€çš„åQŒè€Œè‡ªæˆ‘è¯´æ˜Žçš„ä»£ç æ˜¯æ¥æè¿°â€œæ˜¯ä»€ä¹ˆâ€çš„ã€?/span>
  9. ä¸è¦ä½¿ç”¨¾U¯æ•°å?/span>
  直接把数å—嵌入代ç 䏿˜¯ä¸€¿Uæ¶ä¹ ï¼Œå› äØ“æ— æ³•è¯´æ˜Žå®ƒä»¬æ˜¯ä»£è¡¨ä»€ä¹ˆçš„ã€‚å½“æœ‰é‡å¤æ—¶æ›´ç³Ÿ¾p•——相åŒçš„æ•°å—在代ç 的多个地方出现。如果åªä¿®æ”¹äº†ä¸€ä¸ªï¼Œè€Œå¿˜è®îCº†å…¶å®ƒçš„。这ž®±å¯¼è‡?bug。一定è¦ç”¨ä¸€ä¸ªå‘½å叏釿¥ä»£è¡¨ä½ è¦è¡¨è¾¾çš„æ•°å—,å³ä‹É它在代ç 里åªå‡ºçް䏀‹Æ¡ã€?/span>
  10. ä¸è¦åšæ‰‹å·¥åŠ³åŠ?/span>
  当åšä¸€¾pÕdˆ—动作æ—Óž¼Œäººç±»æ€ÀL˜¯å–œæ¬¢çŠ¯é”™è¯¯ã€‚å¦‚æžœä½ åœ¨åšéƒ¨çÖv工作åQŒåÆˆä¸”ä¸æ˜¯ä¸€æ¥èƒ½å®Œæˆçš„ï¼Œé‚£ä½ ž®±æ˜¯åœ¨åšé”™äº‹ã€‚å°½é‡çš„让工作能自动化的完æˆåQŒå‡ž®‘äh为错误。当åšå·¥ä½œé‡å¾ˆå¤§çš„ä“Q务时åQŒè¿™ž®¤å…¶é‡è¦ã€?/span>
  11. é¿å…˜q‡æ—©ä¼˜åŒ–
ã€€ã€€å½“ä½ è¦åŽ»ä¼˜åŒ–ä¸€ä¸ªå·²¾lå¥½ç”¨çš„åŠŸèƒ½ä»£ç æ—Óž¼Œä½ 很有å¯èƒ½ä¼šæ”¹å它。优化åªèƒ½å‘ç”Ÿåœ¨æœ‰æ€§èƒ½åˆ†æžæŠ¥å‘ŠæŒ‡ç¤ºéœ€è¦ä¼˜åŒ–的时候,通常是在一个项目开å‘的最åŽé˜¶ŒDüc€‚性能分æžä¹‹å‰çš„优化活动纯属浪è´ÒŽ—¶é—ß_¼Œòq¶ä¸”会导è‡?bug 出现ã€?/span>
  好å§åQŒæˆ‘说是 10 ä¸ªï¼Œä½†ä½ å´å¾—åˆîCº†é¢å¤–èµ é€çš„一个ï¼
  ˜q™äº›ž®±æ˜¯æˆ‘è¦è¯´çš„åQŒæˆ‘å¸Œæœ›å®ƒä»¬èƒ½å¸®åŠ©ä½ æ”¹è¿›¾~–程开å‘过½E‹ã€?/span>