`
caozuiba
  • 浏览: 919174 次
文章分类
社区版块
存档分类
最新评论

写好代码的十个秘诀--林斌博士

 
阅读更多
如果你是一名软件开发人员,你是不是经常因为程序的性能而受到老板的指责?你是不是经常因为程序的性能而被用户刁难?你是不是经常因为程序的性能而饱受等待之苦?那么怎样才能尽量优化应用程序,提高其性能呢?本章,林斌根据自己多年在微软进行软件开发的实践经验,为我们提供非常棒的提高性能的方法,并列举了具体的案例学习,最后,还为我们详细介绍了令无数软件开发人员头痛的内存问题。如果你是一名软件开发人员,看完本章,立即将这些方法应用到你的应用程序中,体验一下性能提高的喜悦吧。

软件的质量属性
鲁棒 - Solid and Robust Code
简洁 - Maintainable and Simple Code
高效 - Fast Code
简短 - Small Code
共享 - Re-usable Code
可测试 - Testable Code
可移植 - Portable Code
集百家之长, 归我所用 - Follow Basic Coding Style
1.代码能够清晰的表达你的思路
2.代码应该具备自解释能力,注释代码别是单纯解释语句,这种注释毫无疑义
3.编码的缩进和排版规范
4.所有的函数和变量应有他人容易理解的名字
5.将Tab键改用为4个空格字符
6.减少单个函数的长度,控制在50-100行以内
7.避免幻数,多使用枚举和常量的定义
取个好名字 - Use Naming Conventions
1.采用匈牙利命名法对变量进行命名
2.名字要清晰表达含义,不要怕长
凌波微步, 未必摔跤 - Evil goto’s? Maybe Not…
1.goto的使用应该遵循原则,而不是全盘否定
2.不用写高深晦涩的语句,不要一味追求性能忽视代码可读性
3.模式并不是一味正确,特定问题更需要考虑反模式
先发制人, 后发制于人- Practice Defensive Coding
1.尽量保持代码的简洁和简单
2.调用其它接口和函数时候首先对返回值进行检查
3.避免有符号/无符号,32位/16位,被零除等误算情况
见招拆招, 滴水不漏 - Handle The Error Cases: They Will Occur!
1.通过异常处理机制来保证程序代码的健壮性
2.异常处理中一定要注意资源的释放
3.异常处理要关注日志的详细记录,便于后续BUG分析
4.不用把后台编码或系统异常直接抛给用户
熟习剑法刀术, 所向无敌 - Learn Win32 API Seriously
1.Win32 API是微软平台编程根本
2.对系统强大的公用类库的熟悉和整理将事半功倍
双手互搏, 无坚不摧 - Test, but don’t stop there
1.如果你没有进行测试,你完成的代码将仅仅是个半成品
2.尽可能多的对自己的代码进行测试
3.编码人员应该更专注于百盒测试和单元测试
4.要善于使用JUnit,NUnit,PureCoverage,Compuware,NCover等测试工具
5.相互间的Review和走查是对代码可维护性的重要测试手段
6.有特殊性能要求时候需要对相关功能或模块单独进行性能测试
活用段言 - Use, don’t abuse, assertions
1.断言可以很好的描述假设和不可能的情况
2.断言对程序Debug很有用,可以尽早的发现程序问题
草木皆兵, 不可大意 - Avoid Assumptions
1.考虑到用户使用的各种场景
2.不用假设用户会正确输入数据,要做好各种完整性和边界的检验
3.程序中70%左右代码是为了保证这种完整性服务的,正常条件下功能可能30%代码就实现了
最高境界, 无招胜有招 - Stop writing so much code
1.一味拷贝粘贴代码就是在制造拷贝BUG,这种代码对系统无任何意义
2.编码过程注意重用,函数级->组件级->系统级
3.通过重构持续改进代码质量,改进自我逻辑思维
最后总结下:
1.养成良好编码习惯,你面试的一小段代码可能就足一展现你全部陋习。
2.熟练使用好各种辅助工具,但不要全部依赖工具,最主要是学习分析和设计的思考方式
3.注重单元测试,关注程序性能,可维护性,可测试性是编码技能提升重要手段
4.通过重构使编码过程形成完整闭环的反馈回路,重构能力可以很好体现自己的设计能力
5.养成良好习惯,形成自己的编码过程检查单,多请教老员工可能事半功倍
分享到:
评论

相关推荐

    写好代码十个秘诀(林斌博士)

    林斌博士在其著作《写好代码十个秘诀》中,分享了一系列宝贵的编程经验和技巧,旨在帮助开发者们提高代码的质量,提升软件的性能与可维护性。下面,我们将对林斌博士提出的这十个秘诀进行深入解析,希望能为读者带来...

    林斌博士写好代码的十个秘诀

    林斌博士是微软中国研究院的开发经理,他分享了写好代码的十个秘诀,这些秘诀对于提高代码质量、可维护性和可读性至关重要。以下是这十个秘诀的详细解析: 1. **鲁棒性(Solid and Robust Code)**:编写能够处理...

    持续集成实践(姜林斌)

    持续集成是一种软件开发实践,它鼓励开发团队频繁地将代码集成到共享仓库中,通常每人每天至少集成一次。每次集成都需要通过自动化构建(包括编译、测试和发布)来验证,以便尽早发现集成错误。这种实践可以减少集成...

    [精选]林斌:企业内部控制讲义.pptx

    [精选]林斌:企业内部控制讲义.pptx

    S7-200型PLC在破碎系统中的生产应用.pdf

    在硬件配置方面,根据控制需求,选型需用到西门子S7-200 PLC CPU224模块,它具备14个输入点和10个输出点,输入口共36点,输出口共41点。为了实现手动/自动控制的连锁,配置扩展模块EM223*2和EM222*2,分别具备8/8点...

    SQL sever 实训

    --单元十 创建于管理视图 --创建视图V_Sale1,并显示销售日期、客户编号、客户姓名、产品编号、产品名称、单价 --销售数量、销售金额 CREATE VIEW V_Sale1 AS SELECT SaleDate,Customer.CusNO,CusName,Product....

    天然产物(-)-Jiadifenolide的不对称全合成

    作者沈洋、李林斌和张延东通过改良前次合成中的关键中间体制备方法,利用高效的二碘化钐/水还原环化策略,结合他们新发展的[4+1]环化反应,成功完成了(-)-Jiadifenolide的全合成。这种方法的总产率达到15.7%,对于一...

    副立井提升机更换主提升绳组织安全技术措施.docx

    #### 十、换绳过程中的注意事项 - 所有参与人员需提前熟悉换绳流程及安全措施; - 认真检查设备及工具的安全性和可靠性; - 换绳前召开安全会议,明确职责和注意事项。 通过以上详细规划与周密准备,可以确保副立...

    2001-2023年内部控制指数,包含内部控制指数、评级、分项指数和信息披露指数

    内部控制指数(截止到报告期2022-12-31),包含内部控制指数、评级、分项指 ...[1]周美华,方温柔,林斌.内部控制与纳税诚信[J].审 计研究,2019(04):119-128. 4.内部控制信息披露指数(较多使用, 可做进一步分析)

    2001-2022年内部控制指数,包含内部控制指数、评级、分项指数和信息披露指数

    内部控制指数(截止到报告期2021-12-31),包含内部控制指数、评级、分项指 ...[1]周美华,方温柔,林斌.内部控制与纳税诚信[J].审 计研究,2019(04):119-128. 4.内部控制信息披露指数(较多使用, 可做进一步分析)

    深入浅出Netty

    资源名称:深入浅出Netty资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    【2019-2020春学期】数据库作业9:SQL练习6 – INSERT / UPDATE / DELETE / NULL / VIEW

    数据更新 首先要了解数据更新操作有三种:向表中添加若干行数据、修改表中的数据和删除表中的若干行数据。 插入数据 1、插入元组 ...将一个新学生元组(学号:201215128,姓名:陈冬,性别:男,所在

    副立井井筒悬挂光缆安全措施.docx

    1. 施工时间与地点:施工时间为2021年的一个特定时间段,每日在特定时段进行。地点位于沙曲矿的副立井井筒。 2. 组织结构与职责:施工总负责人是任吉玉,施工现场负责人包括张全胜和林斌,施工人员包括李国平等数人...

    2021-2022年收藏的精品资料中国资本投资回报率的估算和影响因素分析.doc

    作者辛清泉和林斌通过借鉴Mueller和Reardon(1993)的市场价值基础模型以及Baumol等人(1970)的会计盈余基础模型,对上市公司的资本投资回报率进行了估算。研究发现,中国上市公司的平均资本投资回报率仅为2.6%,远...

    会计基础学习.pdf

    会计基础学习.pdf

    商业模式--小米模式分析非常详细.ppt

    小米的创始人团队包括雷军、林斌、黎万强、黄江吉、洪锋、刘德、周光平等人,他们分别来自金山软件、谷歌中国、微软等知名公司,拥有丰富的技术和管理经验。 雷军,作为小米的创始人、董事长兼CEO,他在金山软件、...

    业绩评价标准与质量管理.pptx

    林斌教授通过“乔的故事”阐述了一个观点,即短期的利润追求可能导致长期战略的缺失。乔削减了如广告、研发等对未来成长至关重要的投入,虽然短期内增加了利润,但这并不是可持续发展的策略。这种做法最终导致了他的...

    地下室消防预案.doc

    消防总指挥与副总指挥分别由施芝元和邱仲担任,而义务消防员和值班人员包括林斌、文、黄锐、林斌、蔡国荣和智伟。他们负责贯彻“预防为主,防消结合”的消防方针,确保灭火器材的配备,并确保所有人员熟悉灭火器材的...

Global site tag (gtag.js) - Google Analytics