项目经验!

简介: 技术人生

🚀 个人主页 极客小俊
✍🏻 作者简介:web开发者、设计师、技术分享博主
🐋 希望大家多多支持一下, 我们一起进步!😄
🏅 如果文章对你有帮助的话,欢迎评论 💬点赞👍🏻 收藏 📂加关注

工作中如何快速上手应用开发项目

1.png

2.png

重构

很多人口中的重构就是重写,而不是去改善现有的代码。
现在的有些工程师太浮躁, 动不动就要重构, 就跟很多的团队动不动就要搞一个框架一样。

说实话,以我个人的经验来说,绝大多数开发人员到新公司后,都会觉得代码很烂,但通常他不了解业务逻辑是怎么变化的,这种代码是在什么情况下写出来的,有什么特殊的背景(除了真的是乱搞的,绝大多数的“烂代码”一般都是有原因的:业务需求改改改,这个需求明天就要上线等等等等),有多少坑(很少有人能在极短时间内把所有的坑都找出来)。

小结
如果贸然去重构,风险非常大。而且再说难听点,就算重构完了,也有可能是一堆新的“烂代码”替换老的“烂代码”。所以,进了一家新公司,别动不动就重构,先了解项目的业务逻辑。

产生垃圾代码的原因

如果仅仅因为接手代码太烂,就选择离职,那么你跳槽到下一个公司依然会面对同样的现状,因为几乎每个人,都会觉得自己公司的项目代码很烂。

我们先说说造成这种现象的原因是什么,首先,我们得相信,没有任何一个人故意把自己的代码写的很烂,每个人都想把自己的代码写的很优雅,扩展性很好,但是可能当初水平不够,在当时看似还不错的代码,日后在别人看来就是所谓的垃圾代码。

我们每个人都在进步,别说别人了,你现在看你三个月之前的代码,可能你都会觉得写的很垃圾,如果你没有这种感觉,只能说你在止步不前。

其次,技术更新换代太快,市场的变化也太快,产品自然也一直在演变,也许在当时看起来还不错的代码,随着时间的推移,功能的更新,代码的堆彻,慢慢就变成后来者眼中的烂代码了。

解决项目中的垃圾烂代码

当你被要求接管要离职的程序员的代码时,
如果能注意以下几点,就有可能活着从他的代码里走出来!

1. 产品需求与业务流程文档

产品需求与业务流程文档,这些是你先要找到的,你接手的代码,必然和某个产品需求相对应,必然实现了某个业务流程,先了解产品需求和业务流程,才能更好的读代码。
假如你的团队就是没文档,Ok,也可以要求离职或转移战线的这位程序员把需求描述出来,把业务流程画出来。

2. 测试环境

了解了产品需求和业务流程,最好能体验一下软件,从用户的角度来理解软件的使用。这个时候你要么需要生产环境,要么需要测试环境。哪个环境不重要,重要的是,你需要一个能跑,能体验的软件。
简单的说就是你在接手的时候先从用户的角度来使用一下这个系统! 感觉一下怎么样!

3.给交接项目的离职者压迫力

负责交接代码给你的那位同事,要么在办离职,要么已经介入了其他产品,眼下很可能已无心恋战,但你心里要清楚,只有他才能提供代码层面的东西,比如类图、模块划分说明、数据流图、时序图、状态图等等。

所以,你需要他整理一些文档和图表出来。你可以告诉领导你需要上面的东西,让领导和他沟通,让他在离开之前准备好这些文档给你,并留一些时间以便你熟悉。

4.死磕代码!

有了产品需求,有了业务流程,有了代码设计相关的文档和图表,接下来你就该死磕代码了:

while(不懂)
{
   
   }
5. 开发环境与调试

有的产品需要比较复杂的开发环境配置,一定要提前做好,让即将离开的同事辅导你搭建好开发环境,这样你就可以利用“调试”这个强大的武器来快速理解代码了。

调试是接手别人代码时的利器,如果你看不明白一个业务在代码层面是怎么体现的,也看不懂代码之间的调用关系,那最好的办法就是调试。从一个业务的起点所对应的代码开始调试,一步一步跟进去,就能快速理清函数调用链。

6.让自己有兴趣去读这个项目

程序员的工作交接,尤其是代码交接,怎样才算顺利完成呢?
这简直就是一个谜!
没人说得清楚。
等你慢慢看完后 差不多别人也走了很久了!!!

所以,你最好给自己梳理一些可衡量的、可实现的目标。比如读懂A、B、C三个业务流程……
最好,找一个Bug或者一个新增的功能,带着目的去读代码、修改代码,有目的,有目标,有时间盒,就容易投入,容易读进去,容易掌握与Bug或新增功能相关的代码的逻辑与流程。

7.真正接手项目代码的正确时间

你在读代码时,如果能撇开给你交接工作的程序员提供的文档,按自己的理解,自己绘制类图、数据流图、时序图、关键业务流程对应的函数调用关系链等,就能更快的掌握别人的代码。
如果你还能将你理解到的东西,讲给其他人听,并且讲明白,那Ok,你真的理解了别人交接给你的代码。

再进一步,如果你在理解现有代码的基础上,可以识别出哪些部分实现得逻辑不清晰或有待改善,然后可以结合业务与自己的理解将其重构,那就真的是完全接手了别人的代码,别人的代码与你的代码就没有差别了,它们终将成为你的代码。

最后的寄语

如果你总是看见代码多就发愁,看见代码脏乱差就诅咒埋怨,看见代码逻辑复杂就头疼,搞不清调用关系就放弃,那你可能永远也变不成代码的主人,只能一次又一次被代码蹂躏。

所以,其实交接代码最重要的事儿,就是:

不要被浩渺如烟并且陌生怪诞的代码吓得不敢动弹,现在就开始读,立刻,马上,坚持十分钟,再坚持十分钟,你就能妙悟真谛。

最后,当你再碰到这种事儿的时候,请记住老前辈的这句警世良言:
那些不能将你击溃的代码,都将成为你成长的垫脚石.

如果你被烂代码所困扰 ,
或者正在接手别人代码 、
被烂代码逼的想要重构 、
如果你人生迷茫了 就来看看这篇文章,也许能够在你人生黑暗的时候带来一丝光明!

3.png


相关文章
|
网络协议 算法 数据可视化
TCP/IP与ISO/OSI模型的差异解析
TCP/IP与ISO/OSI模型的差异解析
461 0
|
前端开发 数据可视化 API
顶级好用的 React 表单设计生成器,可拖拽生成表单
React 前端开发中,表单组件是排在前三的高频使用的组件,如何快速构建表单,节省力气,避免重复造轮子呢,选择一款适合自己的前端表单设计生成器就非常重要了。本文介绍 3 款顶级好用的 React 表单设计器,其中最后一款卡拉云,是新一代低代码开发工具,不仅能自动生成各类表单,还可以拖拽生成其他常见的前端组件,一行代码连接前后端数据,可快速接入数据库/api。它是表单设计器的超集,可直接生成属于你的后台管理工具,无敌好用。
3806 0
|
10月前
|
数据采集 存储 调度
BeautifulSoup VS Scrapy:如何选择适合的HTML解析工具?
在Python网页抓取领域,BeautifulSoup和Scrapy是两款备受推崇的工具。BeautifulSoup易于上手、灵活性高,适合初学者和简单任务;Scrapy则是一个高效的爬虫框架,内置请求调度、数据存储等功能,适合大规模数据抓取和复杂逻辑处理。两者结合使用可以发挥各自优势,例如用Scrapy进行请求调度,用BeautifulSoup解析HTML。示例代码展示了如何在Scrapy中设置代理IP、User-Agent和Cookies,并使用BeautifulSoup解析响应内容。选择工具应根据项目需求,简单任务选BeautifulSoup,复杂任务选Scrapy。
223 1
BeautifulSoup VS Scrapy:如何选择适合的HTML解析工具?
|
4月前
|
消息中间件 前端开发 JavaScript
如何开发工程项目部管理系统中的WBS分解板块(附架构图+流程图+代码参考)
本文详细解析了如何将工程项目中的WBS(工作分解结构)系统化,通过拆解“大工程”为可执行的小单元,实现责任明确、变更可控、联动管理与风险降低。内容涵盖系统架构、业务流程、数据模型、前后端实现、关键路径算法及最小可跑代码(MVP),并提供数据库设计、接口定义与React前端示例,助力快速落地工程项目管理系统。
|
XML 数据格式 索引
xpath模块使用教程
XPath 是一种在 XML 文档中查找信息的语言,广泛用于 HTML 解析。本文介绍了 XPath 的安装与使用,包括 lxml 库的安装、解析流程、基本语法、路径表达式、谓语、通配符、多路径选择、逻辑运算、属性查询、索引查询、模糊查询、内容查询、属性值获取及节点内容转换等。通过实例详细说明了各种用法,帮助读者快速掌握 XPath 的应用技巧。
811 39
|
11月前
|
Cloud Native 关系型数据库 MySQL
无缝集成 MySQL,解锁秒级数据分析性能极限
在数据驱动决策的时代,一款性能卓越的数据分析引擎不仅能提供高效的数据支撑,同时也解决了传统 OLTP 在数据分析时面临的查询性能瓶颈、数据不一致等挑战。本文将介绍通过 AnalyticDB MySQL + DTS 来解决 MySQL 的数据分析性能问题。
|
前端开发 JavaScript 数据库
Web的B/S架构
Web的B/S架构
1492 1
|
安全 网络协议 网络安全
IPSec的特征与功能
【9月更文挑战第4天】IP Sec提供的安全服务包括访问控制、完整性、数据来源认证等。
|
机器学习/深度学习 分布式计算 数据处理
|
Java
【Java】已解决java.nio.channels.ClosedChannelException异常
【Java】已解决java.nio.channels.ClosedChannelException异常
1453 1