
  最˜q‘阅读Martin Flowerçš„ã€Šé‡æž„》,对自己有许多å¯å‘åQŒä»¥å‰è®¤ä¸ÞZ¸€äº›æ£¼‹®çš„观点现在看æ¥ä¹Ÿä¸é‚£ä¹ˆæ£ç¡®äº†ï¼›åŒæ—¶å‘现寚w‡æž„çš„ç†è§£åªæœ‰åœ¨é˜…è¯ÖMº†ä¹¦ä¹‹åŽæ›´åŠ å½»åº•ï¼›åœ¨é˜…è¯…R€Šé‡æž„ã€‹ä¹‹åŽæˆ‘对其ä¸å‡ ç‚ÒŽœ‰ç‚ÒŽ„Ÿè§¦ï¼š
  1. 在没有具体阅诅R€Šé‡æž„》之å‰ï¼Œæˆ‘è®¤ä¸ºé‡æž„就是将代ç å˜çš„å®ÒŽ˜“ç†è§£åQŒå®¹æ˜“ç»´æŠ¤ï¼Œä½†åœ¨é˜…è¯»äº†ã€Šé‡æž„ã€‹ä¹‹åŽæ‰å‘çŽ°é‡æž„ä¸ä»…å¯ä»¥åˆ©ç”¨åˆ°é‡æ–°æž„é€ å·²æœ‰çš„ä»£ç åQŒä¹Ÿå¯ä»¥å¸®åŠ©æˆ‘ä»¬åœ¨é˜…è¯ÖM»£ç çš„˜q‡ç¨‹ä¸å¢žåŠ æˆ‘ä»¬çš„å¯¹ä»£ç ç†è§£çš„速度。其实我æƒÏx¯ä¸ªå¦ä¹ 编写代ç çš„åŒè¡Œéƒ½åœ¨å¦ä¹ 的过½E‹ä¸é˜…读˜q‡åˆ«äººçš„代ç åQŒç„¶åŽè¿˜æœ‰å¯èƒ½å°†åˆ«ähçš„ä»£ç æ‹¿åˆ°è®¡½Ž—机上编译è¿è¡Œæ¥æŸ¥çœ‹¾l“æžœè¡¨çŽ°ã€‚å®žé™…ä¸Šæˆ‘è®¤ä¸ø™¿™åœ¨æŸ¿Uæ„ä¹‰ä¸Šå±žäºŽé‡æž„åQŒåªæ˜¯é‡æž„çš„¾_’åº¦æœ‰å¤šå¤§ï¼Œæˆ–è®¸ä½ ä¿®æ”¹åˆ«äººçš„ä»£ç ä¸€éƒ¨åˆ†æ¥æŸ¥çœ‹ä¿®æ”¹çš„¾l“æžœåQŒä»Žè€Œå¸®åŠ©è‡ªå·±æŽŒæ¡èÊYä»¶ä¸çš„æ›´å¤šç‰¹æ€§ï¼Œæˆ–者说让自å·×ƒ¿®æ”¹çš„代ç 表现出原æ¥çš„功能。Martin Flower说的ž®±æ˜¯å¦‚æ¤åQŒæˆ‘们如果没有得到别人完整的文档åQŒé‚£æˆ‘们怎么æ äh‰èƒ½ç†è§£åˆ«äººçš„ä»£ç æ¥ï¼Œå¥½çš„办法ž®±æ˜¯æˆ‘们一辚w˜…è¯Õdˆ«äººçš„代ç åQŒä¸€è¾šwƒ¨åˆ†éƒ¨åˆ†çš„修改他äh的代ç ,然压¹‹è¯•æ¯æ¬¡ä¿®æ”¹çš„结果与以å‰çš„结果是å¦ä¸€æ øP¼Œå¦‚æžœä¸€æ øP¼Œé‚£ä¹ˆä½ çš„é‡æž„ä»£ç æ˜¯æ£¼‹®ï¼Œé‚£ä¹ˆä½ 肯定能够ç†è§£ä½ 自己写的代ç å§ï¼ˆè‡ªå·±éƒ½ä¸ç†è§£è‡ªå·±çš„代ç å°±ä¸è¦òq²äº†åQ‰ï¼›åˆ«äh的代ç å°±˜q™æ ·åœ¨æˆ‘ä»¬ä¸€éƒ¨åˆ†ä¸€éƒ¨åˆ†é‡æž„当ä¸è¢«æˆ‘们ç†è§£äº†ã€?
  2. 以剿ˆ‘们写代ç 的时候喜‹Æ¢è®¾è®¡ï¼Œè®¾è®¡çš„æˆ‘们认为很详细了,然åŽå¼€å§‹å°†æ‰€æœ‰çš„功能模å—都写完,接ç€å†è°ƒè¯•,在调试的˜q‡ç¨‹ä¸æˆ‘们å¯èƒ½èбè´Òޝ”写代ç é•¿çš„å¤šçš„æ—¶é—´ã€‚æ˜¯çš„ï¼Œå› äØ“ä½ åœ¨˜qè¡Œä¸€ä¸ªå¤æ‚的东西åQŒå½“ç„¶ä¸å®ÒŽ˜“æžå®šäº†ã€‚Martin Flowerè®¤äØ“æˆ‘ä»¬è°ƒè¯•çš„æ—¶é—´å¯ä»¥ä¸ç”¨é‚£ä¹ˆé•¿åQŒåŽŸå› æ˜¯æˆ‘ä»¬ä¸èƒ½åœ¨å†™å®Œäº†ä¸€ä¸ªå¤æ‚ç³»¾lŸçš„æ—¶å€™å†è°ƒè¯•åQŒæˆ‘们å¯ä»¥å…ˆå»ºç«‹ä¸€ä¸ªå¥½çš„æµ‹è¯•用例,在写˜q™ä¸ª‹¹‹è¯•用例的过½E‹ä¸æˆ‘们更能å¯ÒŽ•´ä¸ªç³»¾lŸäº†è§£ï¼Œä¹Ÿèƒ½å¤Ÿå¸®åŠ©æˆ‘ä»¬å†™ä»£ç åQ›ç„¶åŽæˆ‘们一点点的写åQŒå†™ä¸€éƒ¨åˆ†‹¹‹è¯•一下,ä¿è¯æ¯æ¬¡æ–°å†™çš„代ç 都能棼‹®è¿è¡Œï¼Œä»Žè€Œå½“代ç 写完了,¾pÈ»Ÿè°ƒè¯•也完毕了。这æ ïLš„æƒ…况下å¯ä»¥è®¤ä¸ºæˆ‘们没有在调试上花旉™—´åQŒæˆ‘们把旉™—´èŠ±åœ¨‹¹‹è¯•和编写代ç 上了ã€?/span>
  3. 以å‰è®¤äؓ代ç 当䏿³¨é‡Š‘Šå¤š‘Šå¥½ã€‚Martin Floweråˆä¸€‹Æ¡ç»™æˆ‘们教è®è¯ß_¼Œå†™æ³¨é‡Šæ˜¯å› äØ“ä½ çš„ä»£ç å·²ç»ä¸èƒ½å‘Šè¯‰ä»£ç é˜…è¯»è€…ä»–çš„çœŸå®žæ„æ€äº†ã€‚是的,好的代ç å¯ä»¥é€šè¿‡å¾ˆå¤šæ–¹å¼è¡¨è¾¾å…¶è‡ªíw«çš„å«ä¹‰åQŒä¾‹å¦‚å˜é‡çš„åç§°åQŒå‡½æ•°çš„åç§°½{‰ï¼›ž®±å¦‚一个比较æ¡ä»¶åˆ¤æ–æ¥è¯´å§åQŒæˆ‘们有必è¦çš„æƒ…况下ž®†è¿™ä¸ªå³ä½¿å¾ˆçŸçš„æ¡äšg抽å–一个方法,然åŽç”¨æ–¹æ³•å¿U°æ¥å‘Šè¯‰è¯»è€…判æ–的真实æ„义åQŒå¦‚果这里直接ä‹É用æ¡ä»¶åˆ¤æ–å°±è¦è®©è¯»è€…迷惑åŠå¤©ï¼Œå½“ç„¶˜q™é‡Œçš„å‰ææ˜¯¾l™å˜é‡å’Œå‡½æ•°èµ·ä¸€ä¸ªåˆé€‚çš„åå—åQŒè¿™æ˜¯è€ƒéªŒ½E‹åºå‘˜çœŸåŠŸå¤«çš„åœ°æ–¹äº†ã€‚å¦å¤–,˜q™é‡Œè¯´çš„䏿˜¯è¯´å†™æ³¨é‡Šä¸å¥½åQŒå¦‚我的目的是如果代ç å¯ä»¥æ˜q°æ„义了åQŒæ³¨é‡Šå°±ä¸éœ€è¦å†™äº†ï¼Œ˜q™æ ·ž®Þp®©ä½ çœäº†ä¸€ä»¶äº‹æƒ…:ä¿è¯ä»£ç å’Œæ³¨é‡Šçš„åŒæ¥åQŒè¿™ä¸æ˜¯æ›´å¥½ã€?
  4. åœ¨ä¹‹å‰æˆ‘ä¹Ÿè®¤ä¸ºé‡æž„会èŠÞp´¹å¾ˆå¤§ä»£ç åQŒå› 为我们è¦ç†è§£ä»£ç åQŒé‡æ–°ç¼–å†™ï¼›ä½†äØ“äº†ä¿®æ”¹BUGåQŒMartin Flowerå‘Šè¯‰æˆ‘ä»¬é‡æž„æ˜¯æœ€å¿«çš„ã€‚ä¹Ÿè®æ€¸ç›æ€¿¡åQŒæˆ‘也ä¸ç›æ€¿¡åQŒä½†ä»–说的有é“ç†åQŒå®¹æ˜“修改的BUGåQŒå½“ç„¶æ—©ž®Þp¢«ä¿®æ”¹äº†ï¼Œé‚£ä¹ˆå‰©ä¸‹çš„BUGž®±å¾ˆé𾿉¾äº†ï¼Œä¸»è¦å› 䨓代ç ä¸çš„é€»è¾‘ä¸æ¸…æ¥šï¼Œé‡æž„å¯ä»¥æ”¹å˜˜q™ç§æƒ…况åQŒè®©æˆ‘ä»¬çš„ä»£ç æœ‰æ¡æœ‰ç†ï¼Œé‚£ä¹ˆå½“ç„¶BUGž®±æ— 处è—íw«äº†ã€?
  5. 勇于接å—å˜åŒ–。以å‰è®¤ä¸ºç”¨æˆ·é¢‘¾Jçš„å˜åŒ–需求是ä¸å¯ç†å–»åQŒå®žé™…上是我们自å·×ƒ¸å¯ç†å–»ï¼Œä»–们花钱当然需è¦èƒ½æä¾›é«˜è´¨é‡çš„æœåŠ¡åQ›è€ŒMartin Flowerè®¤äØ“ä¸ç”¨æ€•改å˜ï¼Œæˆ‘ä»¬æœ‰é‡æž„工典P¼Œé‡æž„å¯ä»¥è®©æˆ‘们代ç ä“Q何时候都是清楚的åQŒå®¹æ˜“修改的åQŒé‚£ä¹ˆå˜åŒ–是件快ä¹çš„事情ä¸å†è±¡ä»¥å‰é‚£æ ¯‚‰°éš¾äº†ã€?
  6. 釿ž„ä¸Žæ€§èƒ½ä¸æ˜¯æ˜¯å¯¹ç«‹çš„ã€‚é‡æž„让代ç å®ÒŽ˜“ç†è§£åQŒè€Œæ€§èƒ½è®©ä»£ç å˜çš„难以ç†è§£ï¼Œä¸è¿‡æˆ‘ä»¬åœ¨å¼€å§‹çš„æ—¶å€™åº”è¯¥è€ƒè™‘æ€Žä¹ˆæ ¯‚®©ä»£ç å®ÒŽ˜“ç†è§£å’Œç»´æŠ¤ï¼Œ˜q™æ ·æˆ‘们å¯ä»¥åœ¨åŽé¢é€‚当的时候对代ç çš„æŸéƒ¨åˆ†˜q›è¡Œè½ÀL¾çš„æ€§èƒ½æ”¹è¿›å·¥ä½œã€‚æœ¬äººåšæ€§èƒ½æ”¹è¿›å·¥ä½œæœ‰æ®µæ—‰™—´äº†ï¼Œæƒ³ä»Žåºžå¤§çš„æ‚ä¹±æ— ç« çš„ã€ä¸ç†Ÿæ‚‰çš„代ç 䏿‰‘Ö‡ºæ€§èƒ½çš„bottleneckçš„ç¡®ä¸æ˜¯ä¸€ä»¶å®¹æ˜“的事情åQŒæˆ‘需è¦çš„æ˜¯ç†è§£ä»£ç ,ç†è§£‹¹ç¨‹åQŒé‚£ä¹ˆå¦‚果一个结构很好的代ç 对于我æ¥è¯´å°±å¥½å¯¹ä»˜å¤šäº†ã€‚å› æ¤ä»–们䏿˜¯å¯¹ç«‹çš„åQŒæ€§èƒ½ä»¥é‡æž„äØ“åŸºç¡€çš„ã€?
ã€€ã€€å…¶å®žé€šè¿‡é‡æž„åQŒæœ€ä¸»è¦çš„ç›®çš„æ˜¯è®©æˆ‘ä»¬çš„ä»£ç æ›´æ¸…晎ͼŒæ›´è½»å·§ï¼Œæ›´å®¹æ˜“被¾l´æŠ¤åQŒé‚£ä¹ˆä¹Ÿž®±æ˜¯æˆ‘们有良好的代ç åQŒäºŽæ˜¯æˆ‘们还惧怕什么,什么都å¯ä»¥è½ÀL¾æžå®šã€‚åŒæ —÷€Šé‡æž„》认ä¸ÞZ»£ç éšæ—‰™ƒ½æ˜¯æ¸…æ™°çš„ã€è½»å·§çš„åQŒä¸€èˆ¬ä½ 的代ç ä¸å†å…·æœ‰ä»¥ä¸Šç‰¹ç‚¹ï¼Œé‚£ä¹ˆæˆ‘们ž®±éœ€è¦ä‹Éç”¨é‡æž„了ã€?/span>