当前位置:网站首页>How to carry out "small step reconstruction"?
How to carry out "small step reconstruction"?
2022-07-05 04:19:00 【Zachary-Fan】
Here is Z Brother's official account
Five a week 11:45 Deliver on time
Yes, of course , I will add a meal from time to time ~
My number 「227」 From the original
Hello everyone , I am a Z Brother .
I have written two articles about refactoring before :
《 Take over old projects with a long history , dry or run ?》
《 Good refactoring methods can get rid of “ Shishan mountain ”》
But these two articles mainly talk about the ways and methods of refactoring . stay Z In my opinion , In addition to ways and methods, there is another point that is also important for refactoring , Is how to achieve “ Small steps to refactor ”.
Because only “ half step ” To reconstruct , To achieve that kind of preparation 、 Preventive effect , Strangle the risk in the cradle .
So-called “ Those who are good at war have no illustrious achievements ”, I don't advocate using “ nulling ” The way to rewrite a new system at some time , It is not only risky but also costly .
But to achieve “ Small steps to refactor ”, You need to pay attention to some details at ordinary times , Now let me share some of my experience .
First , In the final analysis, reconstruction is to repay technical debt . So before small-scale reconstruction, we must first have a better way to deal with technical debt .
I don't know if you've ever had such an experience :
When coding a function , It is found that there is a logic that needs to be changed in many places if it is considered comprehensively , It may even overturn some of the code that has been written at present , But now there are not so many actual scenes , The current implementation can already meet . Forget it , Let's do that first. , How the follow-up business develops is unknown , We'll see .
This is a very common kind of debt , And this kind of debt is easy to ignore , Because it doesn't make you do anything curvilinear to save the country at the moment , It's just a “ myopia ” Compromise . But once there are more compromises , Subsequent iterations often have many large and small patches to cover scenes that were not considered before , In the end, it's hard to return , Rewritten because the project is difficult to continue maintenance .
As mentioned above “ Large and small patches ” In fact, it is another common debt , These patches are often accompanied by if-else This kind of code appears . You know that ,if-else If there is too much code , Reading to people is very unfriendly .
There are still many technical bonds , I think every programmer can actually recognize . Treat them differently , Finally, the difference of work results between different people will be formed .
Z Brother recommends that you treat technical debt in a simple way . Is to add todo, Then clean up todo As a fixed task arrangement , On a regular basis .
remember todo It seems to be a simple thing , But it's still worth taking time to improve efficiency . Common scenarios, such as :
There are some changes that need to cover multiple places , Then you can use some kind of logo ( I am used to using the current time to the minute ) Let's mark it uniformly , In this way, there will be no subsequent changes. Only half of the changes lead to bug The situation of .
Some refactoring may depend on other changes , Then you can also write down the dependent change information , If the place it depends on happens to be in this project , You can also note the relevant file name and method name .
Some refactorings may also have some deadline Constraints , For example, we need to xx Complete by , Then you can also note .
I usually use todo The format is :
//todo: Describe what refactoring needs to be done .(202206121536). Depend on xxx Method in file xxx. Need to be in 2022.7.30 Complete before
Make notes , The rest is regular cleaning todo 了 , This needs to be arranged according to the current job saturation , but Z Brother suggested , Even if you are very busy , At least 1 Once a month .
Okay , How about this one Z Brother shared with you my views and experience on small step reconstruction .
Refactoring must be the best way to run in small steps , It can not only reduce the risk , In the long run, the cost is also the lowest . The specific method is also very simple, that is to remember todo And regular cleaning .
For some ways and means of refactoring, please refer to the two articles I wrote before .
《 Take over old projects with a long history , dry or run ?》
《 Good refactoring methods can get rid of “ Shishan mountain ”》
I hope it helped you .
by the way , Finally, I strongly recommend you . Just delete the methods that are not called as soon as possible , Don't keep it and think it may be used in the future . According to my experience for so many years , The probability of using it again in the future is very small , Keeping it increases the cost of subsequent code refactoring . Because when you modify a method or field , And then through IDE When looking for references , These methods that have not been called will also be associated with .
Recommended reading :
Originality is not easy. , If you think this article is good , Just 「 give the thumbs-up 」 perhaps 「 Looking at 」 Let's go. , Encourage my creation :)
You can also share my official account name card with my friends .
If you have anything to do with software architecture 、 Distributed systems 、 product 、 The confusion of operation
Try clicking on 「 Read the original 」
边栏推荐
- Threejs implements labels and displays labels with custom styles
- Threejs clicks the scene object to obtain object information, and threejs uses raycaster to pick up object information
- Longyuan war "epidemic" 2021 network security competition web easyjaba
- Learning notes 8
- How to remove installed elpa package
- 如何优雅的获取每个分组的前几条数据
- Containerd series - what is containerd?
- A應用喚醒B應該快速方法
- How to realize real-time audio and video chat function
- 电源管理总线 (PMBus)
猜你喜欢
阿里云ECS使用cloudfs4oss挂载OSS
在线文本行固定长度填充工具
How does the applet solve the rendering layer network layer error?
JVM garbage collection
【虛幻引擎UE】實現UE5像素流部署僅需六步操作少走彎路!(4.26和4.27原理類似)
MacBook安装postgreSQL+postgis
Looking back on 2021, looking forward to 2022 | a year between CSDN and me
How to get the first few pieces of data of each group gracefully
Kwai, Tiktok, video number, battle content payment
EasyCVR平台出现WebRTC协议视频播放不了是什么原因?
随机推荐
Is "golden nine and silver ten" the best time to find a job? Not necessarily
PR video clip (project packaging)
Laravel8 export excel file
[Chongqing Guangdong education] 2408t Chinese contemporary literature reference test in autumn 2018 of the National Open University
Why can't all browsers on my computer open web pages
电源管理总线 (PMBus)
Threejs Internet of things, 3D visualization of factory
Uni app change the default component style
How to get the first few pieces of data of each group gracefully
level17
概率论与数理统计考试重点复习路线
MySQL: view with subquery in the from clause limit
Ctfshow 2022 Spring Festival welcome (detailed commentary)
【FineBI】使用FineBI制作自定义地图过程
All in one 1413: determine base
Realize the attention function of the article in the applet
基于TCP的移动端IM即时通讯开发仍然需要心跳保活
[uniapp] system hot update implementation ideas
在线文本行固定长度填充工具
TPG x AIDU|AI领军人才招募计划进行中!