怎样才能把代码写成让接手的人维护不动?

2019-06-11 10:43:18 +08:00
 huoguodiliao

要走了,不玩了

6520 次点击
所在节点    问与答
49 条回复
cyssxt
2019-06-11 15:16:40 +08:00
注意素质
ac2sherry
2019-06-11 15:17:10 +08:00
曾就职的公司里经常会出现人名、拼音、拼错了的单词、拼错了的拼音、拼错了的人名(前后鼻音)命名的变量和函数。上古代码看着真是想死。
HuHui
2019-06-11 15:21:21 +08:00
混淆编译再反编译就 ok 了
strcmp
2019-06-11 15:24:38 +08:00
把版本控制捣毁就行了
mnzlichunyu
2019-06-11 15:50:04 +08:00
就正常写
Greendays
2019-06-11 15:58:08 +08:00
感觉不需要特意处理,因为一般情况下,楼主的编码水平不会有多高,接手的人也不会有多高(狗头
whp1473
2019-06-11 16:18:21 +08:00
一、混淆器
1.方法、变量混淆,名字全会变成 a1、a2、a3,fun1 这样,所有方法名称和变量名都不会在遵循代码即是注释的良好习惯
2.逻辑混淆,会增加不影响功能的额外逻辑
3.结构混淆,可以把多个方法聚合成一个
4.自动去除注释
二、动态字节码技术
关键的逻辑你可以转成文本文件(JVM 语言),在服务启动时往 JVM 中再加载,一堆类似汇编语言的脚本恶心死人。
三、git 相关
1.记得清除 git log 日志,这样找不到原来的注释
2.git 绝对不打 tag,一堆 branch 绝不删,名字都是时间戳
四、灵活运行 maven
有些包可以手动引用一下就绝对不要用 maven,如果自己再把相关类库拆分成几个类库,打包到私服,那更改难度就翻倍玩上涨了,需要维护好几个项目
五、绝对不要留文档,尤其是数据库设计、业务流程设计、项目结构架构设计文档、部署文档。
六、不留单元测试,这样对方要重构的成本大大增加,同时更难理解业务
七、单元测试不可重复执行,比如单元测试有清库的 SQL,但是不回滚,没法重复执行就意味着炸弹在里面

好了,你已经是一名成熟的跑路开发了~
(以上都是玩笑)
这些不要去做或者反过来做,你就是一名有职业素养的优秀开发了(狗头)
javaWeber
2019-06-11 16:26:45 +08:00
自己已经受害了,何必再去迫害后面的兄弟?(来自一位接手屎山而痛苦不堪的码农)
hstdt
2019-06-11 17:31:14 +08:00
Emmm,那就只能祝你即将接手的项目没法维护了😎
otakustay
2019-06-11 17:36:37 +08:00
你就正常写,接手的人自然维护不动的,别太觉得自己很厉害
winterbells
2019-06-11 17:37:48 +08:00
@passerbytiny 交接一个月走人
sheeta
2019-06-11 17:38:36 +08:00
我劝你善良
mooncakejs
2019-06-11 17:40:04 +08:00
找个混淆工具混淆一下?
passerbytiny
2019-06-11 17:47:06 +08:00
@winterbells #27 如果你拒不配合交接或者交接不完整,即使你离职了,公司也可以告你。
glaucus
2019-06-11 17:49:19 +08:00
作为 Java 岗位开始用 Kotlin 重构代码
Yoefs
2019-06-11 17:49:42 +08:00
@mooncakejs 那太刻意了,容易看出来,就要像一楼兄弟所说杀人于无形 [doge]
coolair
2019-06-11 17:50:39 +08:00
何必呢?与人为善,与己为善。
GANLE
2019-06-11 18:09:28 +08:00
一楼笑尿
37Y37
2019-06-11 18:28:33 +08:00
我劝你善良
x7395759
2019-06-11 18:34:03 +08:00
一楼的这个文章太强了,我都没有勇气看完

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/572728

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX