|
|
51CTO旗下网站
|
|
移动端

想从程序员变成架构师?看100篇架构设计的文章,不如干1次这个

有位名人说过,程序都有两面性,一是程序今天可以做什么,二是程序明天可以做什么。通常,我们只关心,准确地说,是老板只关心,程序今天能做什么。

作者:沙茶敏碎碎念来源:头条科技|2019-06-18 10:19

有位名人说过,程序都有两面性,一是程序今天可以做什么,二是程序明天可以做什么。通常,我们只关心,准确地说,是老板只关心,程序今天能做什么。虽然老板口头上天天喊着关心程序员成长,程序质量最重要,但实际上还是进度最重要。

什么是重构

什么是重构呢?重构是对软件内部的结构性调整,在保持原有的功能的前提下,提高程序的可理解性,降低修改的成本,提升程序的运行性能。

想从程序员变成架构师?看100篇架构设计的文章,不如干1次这个

让代码更容易理解

我们的程序,无论多么优秀的设计,往往随着我们不停的维护,代码总会变烂,特别是代码往往是不同人的维护,每个人的代码习惯,对业务的认识,对系统的理解都不一样,最重要的是,开发时间太赶了,导致代码越来越难以理解。

代码越多,就越来越难以理解,一个逻辑,可能散落在系统各个地方,我们常常把线上代码必成盗墓机关,稍有不慎,就会带来Bug。这是次要,为什么我们总在加班,因为很简单的功能,本来预估2个小时,后来写着写着才发现还要花18个小时来兼容其他逻辑问题。

发现原有的Bug

伟大的程序员,不是天生的。每一个程序员都会犯错误,也会留下埋得很深的Bug。重构,需要我们去深入梳理业务,深入了解每一行代码,对每一个代码中的“机关”做出假设,***总能发现意想不到的Bug。

想从程序员变成架构师?看100篇架构设计的文章,不如干1次这个

提高程序的运行速度与编译速度

我们的代码中,常常有一些烂代码,最常见的情况莫过于几个一些重复的函数,无关紧要的类,无关紧要的逻辑。举个简单的例子,我们写一个电商计算运费系统,去数据库里面查询了用户的地址,快递公司的信息,用户有没有相关卡券,***却发现用户买的商品是虚拟产品,压根就不需要去计算运费!

架构师都是从重构开始的

这个其实才是最重要的,每一个架构师,都是从重构系统开始的!如果一个架构师没有重构过一个系统,那只能说他夸夸其谈,纸上谈兵。重构,对一个程序员的成长有多大?

  • 对业务的代码非常熟悉,很快就能成长为骨干
  • 重构的时候适合使用新技术,新框架,更有利于你的成长。
  • 重构,又称高速上换轮胎,如何保证系统的稳定,是考验你真正实力的时候
  • 重构的结果,必定会让你的上级对你刮目相看。
  • 即便是重构出问题,损失的更多的还是老板,对于程序员,最多也只是丢掉饭碗。当然,出于职业道德,我们当然不能故意搞出问题。
想从程序员变成架构师?看100篇架构设计的文章,不如干1次这个

何时开始重构,需要注意什么

重构,一般都在比较大的需求变更的时候,当然,我们要选择在时间比较富余,公司有其他资源支持的情况下。重构的时候,我们当然要先深入理解业务,知会相应的测试,自己编写测试用例。当然,我们能引入自动化测试那就更好了。如果经理支持,那是***的情况,当然我一般都是先斩后奏,把需求做好的基础上,进行小规模的重构,完成后才向老板进行汇报。(这种还是要看老板而异,哈哈,只能说我运气好,遇到的老板都支持我折腾)

总结

重构,很多人很讨厌,大家都喜欢堆代码,追求完成功能。但其实,重构是对一个程序员***的成长机会,是让你成为架构师***的垫脚石,希望大家能够好好珍惜这个机会,学好相关的重构技巧,大胆尝试!

【编辑推荐】

  1. iOS开发者向苹果发起集体诉讼:指称其触犯竞争法
  2. 一文了解苹果WWDC 2019发布的开发者工具有哪些亮点
  3. 5G测试视频火爆网络,在风口中程序员的机遇
  4. 微软为 Java 开发者推出 VSCode 安装程序
  5. 在东京生活的中国IT程序员
【责任编辑:张燕妮 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

这就是5G

这就是5G

5G那些事儿
共15章 | armmay

115人订阅学习

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

371人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

758人订阅学习

读 书 +更多

JAVA并发编程实践

本书既能够成为读者的理论支持,又可以作为构建可靠的、可伸缩的、可维护的并发程序的技术支持。本书并不仅仅提供并发API的清单及其机制,...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微