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

林斌博士写好代码的十个秘诀 林斌博士写好代码的十个秘诀,很有用的 林斌博士写好代码的十个秘诀,很有用的 立即下载

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

软件的质量属性

鲁棒 - 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.养成良好习惯,形成自己的编码过程检查单,多请教老员工可能事半功倍。

写好代码的十大秘诀pdf版 写好代码的十大秘诀pdf版 10 Things You Can Do To Write Better Code 立即下载

相关推荐

写好代码的十个秘诀——一个编程高手的新的体会!

写好代码的十个秘诀——一个编程高手的新的体会!

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

软件的质量属性鲁棒 - Solid and Robust Code 简洁 - Maintainable and Simple Code高效 - Fast Code & 简短 - Small Code共享 - Re-usable Code可测试 - Testable Code可移植 - Portable Code一、集百家之长, 归我所用 - Follow Basic Coding St

博采人生 418

Miniconda3迁移(附图详细过程)

服务器上目录占满,想要将conda迁移到其他目录下的操作方法,详细教程。

2301_77554343的博客 6942

教你如何写好代码

软件的质量属性 鲁棒 - Solid and Robust Code k] 简洁 - Maintainable and Simple Code 高效 - Fast Code & 简短 - Small Code 共享 - Re-usable Code 可测试 - Testable Code 可移植 - Portable Code 一、集百家之长, 归我所用 - Follow B

lycos的六度空间 1898

AIDC智算中心建设:资源池化核心技术解析

AI 应用的POD在运行的时候,通过池化运行时访问虚拟GPU、执行AI任务,池化运行时拦截对虚拟GPU的访问请求、转递给池化服务代理执行,池化服务代理通过向智算池化控制器查询虚拟GPU所对应的真实智算资源位置、规格,按查询结果分配智算资源、执行AI任务,如果真实的智算资源位于远程计算节点,则由本地池化服务代理将访问请求转递给远程计算节点上的池化服务代理处理,相关通信经由参数面网络。

u013891230的博客 2431

项目回顾一:《高速多端口共享缓存模块》

本帖子仅为了回顾一下一年前自己动手完成的第一个数字ic设计项目的历程,为复试做一下准备,完成的这个sramc模块花了整整四个月的时间,从0到12个模块的代码产出以及模块的验证,虽然没有拿奖,也没有进入复赛,设计过程中使用的技术手段和算法也不太成熟,但这这是一个值得记录的过程!

weixin_60261760的博客 1254

写好代码十个秘诀

软件的质量属性鲁棒 - Solid and Robust Code简洁 - Maintainable and Simple Code高效 - Fast Code简短 - Small Code共享 - Re-usable Code可测试 - Testable Code可移植 - Portable Code 集百家之长, 归我所用 - Follow Basic Coding Style1.

荣植华的专栏 1198

疾病负担研究(GBD)——如何使用joinpoint软件计算AAPC

疾病负担研究(GBD)——如何使用joinpoint软件计算AAPC

weixin_44240228的博客 1万+

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

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

flynetcn的专栏 2050

工业级隔离CAN FD收发器ISO1042设计实战:从原理到EMC防护

在工业自动化与伺服驱动系统中,CAN总线是实现设备间可靠通信的关键技术。其核心原理是通过差分信号传输和仲裁机制,在复杂电磁环境中实现多节点实时数据交换。这项技术的核心价值在于为高噪声、高干扰的工业现场提供了稳定、确定性的通信基础,是构建分布式控制系统不可或缺的环节。其典型应用场景包括新能源汽车电池管理、工业机器人伺服控制以及光伏逆变器集群通信等。本文将聚焦于如何通过高性能隔离CAN FD收发器(如TI的ISO1042)来应对地电位差、浪涌和高压串扰等现场挑战,深入解析其集成的电气隔离、±70V总线故障保护和

weixin_26834815的博客 387

英飞凌Tricore问题排查01_Det/Reset/Trap排查宝典

软件跑飞进Det或发生Reset或进Trap了,怎么查?有固定套路可以follow吗?英飞凌Tricore又有哪些专门的定位办法?本篇为您娓娓道来。

initiallizer的博客 4416

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

鲁棒 - Solid and Robust Code简洁 - Maintainable and Simple Code高效 - Fast Code简短 - Small Code共享 - Re-usable Code可测试 - Testable Code可移植 - Portable Code集百家之长, 归我所用 - Follow Basic Coding Style1.代码能够清晰的表达你的思路2

lgz7667597的专栏 396

分享Charles抓包 显示<unknown> 解决方案 !

首先电脑上需要安装charles,然后需要设置手机上的WiFi设置,修改配置中的代理设置,把服务器的主机名设置成你电脑当前的ip地址(需要注意的是,你的代理服务器主机名的ip地址要和你当前连的ip地址的网段需要一致)。像 Charles 这样的工具,虽然功能强大,但仍然需要用户具备一定的配置和排障能力,以应对各种复杂的网络环境。通过将 Charles 的 SSL 证书正确安装到移动设备中,并在设置中启用“允许不安全的内容”选项,最终成功解决了这一问题,并准确抓取到所有请求数据。Charles 显示。

朱雀随云记的博客 8105
上一篇: oracle安装后系统自动建的一些用户说明
下一篇: [C++]使用std::stringstream小心内存,适时清空缓冲。
opendba
博客等级 码龄16年 43粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值