资源描述:
《写好代码的十个秘诀》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、10ThingsYouCanDoToWriteBetterCode写好代码的十个秘诀林斌DevelopmentManagerMicrosoftResearch,China1一流代码的特性鲁棒-SolidandRobustCode简洁-MaintainableandSimpleCode高效-FastCode简短-SmallCode共享-Re-usableCode可测试-TestableCode可移植-PortableCode一流代码2Whyisthiscodebad?voidMyGirlFriendFunc(CORP_DATAInputRec,i
2、ntCrntQtr,EMP_DATAEmpRec,floatEstimRevenue,floatYTDRevenue,intScreenX,intScreenY,COLOR_TYPEnewColor,COLOR_TYPEPrevColor,STATUS_TYPEstatus,intExpenseType){inti;for(i=1;i<100;i++)InputRec.revenue[i]=0;for(i=1;i<100;i++)InputRec.expense[i]=CorpExpense[i];UpdateCorpDatabase(EmpR
3、ec);EstimRevenue=YTDRevenue*4.0/(float)CrntQtr;NewColor=PreColor;Status=Success;if(ExpenseType==1)for(i=1;i<12;i++)Profit[i]=Revenue[i]-Expense.Type1[i];elseif(ExpenseType==2)Profit[i]=Revenue[i]-Expense.Type2[i];elseif(ExpenseType==3){Profit[i]=Revenue[i]-Expense.Type3[i];}
4、3Whyisthiscodebad?voidMyGirlFriendFunc(CORP_DATAInputRec,intCrntQtr,EMP_DATAEmpRec,floatEstimRevenue,floatYTDRevenue,intScreenX,intScreenY,COLOR_TYPEnewColor,COLOR_TYPEPrevColor,STATUS_TYPEstatus,intExpenseType){inti;for(i=1;i<100;i++)InputRec.revenue[i]=0;for(i=1;i<100;i++)
5、InputRec.expense[i]=CorpExpense[i];UpdateCorpDatabase(EmpRec);EstimRevenue=YTDRevenue*4.0/(float)CrntQtr;NewColor=PreColor;Status=Success;if(ExpenseType==1)for(i=1;i<12;i++)Profit[i]=Revenue[i]-Expense.Type1[i];elseif(ExpenseType==2)Profit[i]=Revenue[i]-Expense.Type2[i];else
6、if(ExpenseType==3){Profit[i]=Revenue[i]-Expense.Type3[i];}4Because…Badfunctionname–MaintainabilityCrashifCrntQtrequals0–RobustnessNocomments–MaintainabilityUnnecessaryforloop–PerformanceThefunctionhasnosinglepurpose–ReusabilityBadlayout–Simplicity&MaintainabilityNonetestable
7、ifExpenseTypeis1–TestabilityManymore:toomanyarguments,abuseusageof100,4.0,etc,un-useparameters,none-documentedparameters…5代码高手十大秘诀集百家之长,归我所用-FollowBasicCodingStyle取个好名字-UseNamingConventions凌波微步,未必摔跤-Evilgoto’s?MaybeNot…先发制人,后发制于人-PracticeDefensiveCoding见招拆招,滴水不漏-HandleTheErr
8、orCases:TheyWillOccur!6代码高手十大秘诀(Cont.)熟习剑法刀术,所向无敌-LearnWin32APISeriously双手互