在华为写了 13 年代码,都是宝贵的经验

点击上方“Java基基”,选择“设为星标”

做积极的人,而不是积极废人!

源码精品专栏

 

  • 原创 | Java 2020 超神之路,很肝~

  • 中文详细注释的开源项目

  • RPC 框架 Dubbo 源码解析

  • 网络应用框架 Netty 源码解析

  • 消息中间件 RocketMQ 源码解析

  • 数据库中间件 Sharding-JDBC 和 MyCAT 源码解析

  • 作业调度中间件 Elastic-Job 源码解析

  • 分布式事务中间件 TCC-Transaction 源码解析

  • Eureka 和 Hystrix 源码解析

  • Java 并发源码

来源:dwz.cn/dqgOrbQo

在华为写了 13 年代码,都是宝贵的经验
幽默的“祭天”说明

好代码长什么模样

记得几年前部门第一次评选优秀代码,我成为“金码奖”获得者之一。是因为代码很炫吗不是。我参与评选的代码,遵循着简单的原则:简洁、逻辑清晰、函数职责单一、合理的数据结构设计。并没有使用高深的编码技巧,也没有应用某某设计模式。正如公司最新的C/C++语言编程规范,也是将编写简洁的程序放在首位。简洁、逻辑清晰的代码,易于阅读和维护,这段代码后面也因需求变化而被修改,但却从来没有引入过网上问题。

当然,简单不代表没有思考,恰恰相反,更需要我们在写代码之前谋定而后动、三思而后行。有一次项目组安排我做性能优化,通过反复分析热点函数、反复测试比对不同话务模型下的性能差异,前前后后花了3个星期的时间,我找到了引起性能恶化的最关键因素。最终我决定采用修改备份机制、减小备份数据的优化措施。这些方案代码改动都很小、很简单,但实际优化效果却很好,满足了未来几年业务发展的需求。

再来看另一个例子,某局点升级新版本后出现CPU负载上升的问题。经过近两周的攻关,我最终定位是新版本在业务处理流程中新增了直接读取DB内核的操作。直接读取DB内核,代码处理简单,也能正常实现业务功能,但是性能却非常差。如果开发过程中能多想一步,采用缓存的方案,性能会有天壤之别,也是更好的代码。

人们常说唯一不变的就是变化,客户需求一直在变化,我们的代码也会被动或者主动地在变化。设计出可扩展、自动适应客户需求变化的软件架构,是软件工程师永恒的追求。这说说容易,做起来却很难。需要我们不停积累业务知识,扩展知识面,勤于思考,识别技术未来演进趋势。我们无法从一开始就做一个无所不能的架构,来包含未来的千变万化,即使能,交付节奏也不一定允许。满足当前及未来一定时间内业务需要的设计,或许就是最合适的。

练好扎实的基本功

能写出好代码,更要能持续地写出好代码,需要我们深刻理解技术原理和业务逻辑。前提是具备扎实的编程基础,即基础软件能力,如基础的数据结构和算法、编译原理等。

去年底,我跟部门几个软件高手一起,去外部参加了一次互联网架构大会。AI、区块链、物联网、云、中间件等时尚、热点、风口相关的议题非常多。但是我没想到,最火爆的却是一些基础软件设计、架构设计和演进之类的专题。就像武侠小说写的一样,练好基本功、练好内功,后续无论什么精妙招式,都会信手拈来。

另外,一些编程习惯,如果坚持下去,对于编程修养提升也是非常有用的。比如快捷键的使用、有效的代码注释、命名规则、代码风格等。每次写代码除了追求好代码之外,我都会时刻去思考软件上的优化,能否能使用更少的内存,能否有更好的性能。重视数据结构中的每一个字段,重视每一处小的代码优化,都有可能给我们带来意想不到的收获。比如去年做性能优化,我们仅仅是将流程中的一处动态内存申请修改为静态内存池,却意外获得了30 CAPS(每秒呼叫次数)的性能提升。

在华为写了 13 年代码,都是宝贵的经验

已在知识星球更新源码解析如下:

在华为写了 13 年代码,都是宝贵的经验

在华为写了 13 年代码,都是宝贵的经验

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

在华为写了 13 年代码,都是宝贵的经验

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92727 人正在系统学习中

来源:Java基基

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月13日
下一篇 2020年9月13日

相关推荐