为什么有人可以堂而皇之的写出如此难维护的代码??
为什么有人可以堂而皇之的写出如此难维护的代码??
|
as94boyMar 1, 2019
1
在错误的时间,错误的人做了错误的事,然后就这样咯。
|
|
ThirdFlameMar 1, 2019
2
另外 开发工具、技术的革新 带来很多的变化
|
|
nicevarMar 1, 2019
3
不仅仅是时间关系,还有语言其他因素有关,五年前十年前的 c/c++项目变化能有多大
|
|
cristMar 1, 2019
4
因为这个世界上垃圾程序员太多了。属于那种赚一笔是一笔的人。
|
|
ayase252Mar 1, 2019 via iPhone
5
五年前的 JavaScript 和今天的理念都变了不少
|
|
6
@as94boy
@ThirdFlame @nicevar 其实想知道的是一些编程思想的变化,比如前端的模板,哪怕 10 年也有这样的思想。10 年的模板代码 放到现在的话,绝对比那些拼接字符串的好维护多,比较好奇那些拼接一大串字符串的人怎么想的。 |
|
7
代码好不好真的不重要,重要的是功能要求满足了,这就是好代码。因为你不是搞学术,你是工程师。
|
|
8
@zwh2698 只是好奇为什么不写出容易维护的代码,也不是多优秀 搞学术 优化什么的
|
|
aaahhh123Mar 1, 2019
9
不知道为啥,我看以前的一些项目,看起来还更直接简洁,没这么多复杂的框架,但是确实维护起来有时候会烦会很花时间
|
|
aaahhh123Mar 1, 2019
10
写不好维护的代码,我想的是,一个可能是懒,不想按照标准规范格式去写,二是不想别人插手?这样自己可以一直跟下去?
|
|
11
@aaahhh123 像现在前端框架多了,带来的学习成本稍微高点。不过总比各种垃圾代码写满了,没文档什么都没有的好
|
|
12
@aaahhh123 之前有时候自己写垃圾代码的时候,就是不想动脑子,怎么简单怎么来。一个 if 不行就两个,无脑撸,以多自然就不好维护了。
|
|
13
“容易维护”其实是一个很高的要求了,大多数代码的诞生仅仅是为了能运行,能运行多久是没人管的
|
|
learnshareMar 1, 2019
14
取决于写的人有没有意识,以及有没有能力写好这段代码。跟年代关系不大
|
|
15
十年前的前辈,代码能一直留到现在,能让你看得到,从某种角度上来说已经很了不起了。
五年前十年前是什么情况?不先了解就直接开喷以前的人写的代码烂。十年前会写快排就进大厂了,现在只能算是基本技能。 抛开时间维度来讨论问题,只能说明你太嫩了。 不是贬低楼主,这是普遍现象,没经历过十年的职业生涯,很难自己就能深刻理解。普遍都是用现在的目光,去看待“古代”的问题。 自问一句,你如今写的代码,不管优不优雅,能让两三年后的人看到吗? |
|
Light3Mar 1, 2019
16
你要想清楚 他那个时间写代码的目的 很多的时候 都是能运行就行了..
|
|
daimenMar 1, 2019
17
以前我也是调侃以前的人,直到领导要我一个月写个 数据接收 + 事件调度 + 规则引擎 + 具体业务实现 + 自己看专业书籍整理业务规则 + 可部署可热更新+直接上线 的系统的时候,我就能理解之前的人为什么代码是这么个吊样子。 领导不懂啊,他觉得对你们写程序的来说,不是 so easy 么。
|
|
18
@index90 手上也没有十年前的代码 ,五年 十年只是好奇,因为工作年限才两年多,比较好奇工作的时间长的人看以前久的代码什么感觉。
|
|
nicevarMar 1, 2019
19
@MuscleOf2016 你要说 web 前端的话这就更正常了,10 年前前端的代码在大家的脑海里应该是算“字符串”,不是代码,那时候前后端代码基本上都是同一人写的。
|
|
cstj0505Mar 1, 2019
20
和语言有关系,不过更多是写代码的人的素养问题。
你看看一些 glibc,postgresql 这些大神十来年前的代码,照样是好代码 |
|
janxinMar 1, 2019
21
我们只是临时实现一个功能-》哎呀这功能反馈不错,我们完善一下-》哎呀怎么这么复杂,我们还是打打补丁吧-》卧槽!祖传屎山!
|
|
22
@cstj0505 另外 有什么网站公开一下久远的代码的?
|
|
smeraldoMar 1, 2019
23
反正 gang of four 是二十几年前的东西了🙃
code smell 也是上世纪 90s 开始流行的概念 |
|
index90Mar 1, 2019
24
@cstj0505 拿 glibc 和 postgresql 来比有点欠妥,这些都是基础软件。现在大部分国内开发者都是互联网开发者。
过去的是软件产品,现在是产品软件。过去能开发软件的没有几家公司,软件就摆在那,用户自己来用,是用户适应软件。而现在是把软件包装成产品,送到用户面前,软件去适应用户。 前者可以按照瀑布模式或者小瀑布模式开来发,软件在编写之前就已经设计好了,过程不接受变更,自然容易写出规范的代码。而后者则需要快速响应用户的需求变化,快速开发(不能说是快速迭代),快速发布是关键。 产品如果活不下来,你代码再优美,也只剩下程序员自嗨罢了。 |
|
iamsheepMar 1, 2019 via Android
25
破窗效应,可维护性又不会计入绩效,又没有 code review,加班都是在写新需求(新 bug ),代码转个几手就根本没眼看了,这种事要预防根本不能依赖个人自觉,还是要优化流程。
|
|
BanxiaozhuanMar 1, 2019
27
其实不是代码垃圾,而是维护这个代码的人一波又一波的换。
新上的人在没有完全熟悉这款业务的时候又不敢随便改,等熟悉了以后,又想着跳槽,或者偷懒。 除非遇到一个极其负责的人维护,但是这种人很少。 所以不要喷以前的老代码写的很差,如果差,请你把他改好。 |
|
zhenizhuiMar 1, 2019
28
我估计需求都没搞清楚
|
|
gamexgMar 1, 2019
29
有些是菜,有些是懒,还有一些是需求的变更逼得代码结构越来越烂。
|
|
dorentusMar 1, 2019
30
十年前不就是才 2009 年吗,Stack Overflow 和 Github 都有了……
|
|
inrenpingMar 1, 2019
31
能稳定运行十年的代码还是有可取之处的,不要只看缺点。
|
|
mingl0280Mar 1, 2019
32
五年十年这个时间有点短了,我司 99-05 年的代码到现在都还是很易于维护的,规范的代码很重要……
|
|
cstj0505Mar 1, 2019
33
@MuscleOf2016 搜一下吧,很容易找到的,包括 linux 内核的。pg 的代码在官网能找到
|
|
sugarsMar 1, 2019
34
有些人为了实现功能而写代码,都不往长远地考虑
|
|
k9990009Mar 1, 2019 via Android
35
开发时需求不明确,开发后需求变更,时间又逼着紧,当然代码堆砌来的快咯。给时间啥都好说
|
|
x86Mar 1, 2019
36
你敢保证你写的东西 5 年,10 年后还在被使用吗
|
|
37
设计模式可以十年不变,但成品代码 3 年不变就没前途,5 年不变就可以扔垃圾箱了。一个 5 年不变的代码,如果能用,那绝对是过度超前设计,开发成本要数倍于垃圾代码推到重做。
|
|
jrtzxh020Mar 1, 2019
38
能稳定运行这么多年,代码已经很好了吧。。。
|
|
39
@jrtzxh020 我哭了,append 已经解释了,不是说我遇到五年十年前的代码,是讨论下五年十年前的设计模式
|
|
40
@passerbytiny 说的很有道理。我们有个项目就是从十多年前继承下来的代码,到现在已经到了没办法维护的地步了,不得不整体重构。在我看来,如果是设计模式问题,很可能是因为产品定位和需求变更,这么多年,可能产品经理,架构,开发都换了几波了,公司的业务结构重心也变化很多。之前设计的人不可能预见到 10 年后的需求是怎么样的。并且像很多大佬说的,作为工程师,设计的架构主要是满足需求,over-design 一样会给项目带来不好的结果。
|
|
yongzhzMar 1, 2019
41
因缺思厅
哈哈哈哈哈啊哈哈 |
|
berumottoMar 1, 2019
42
5 年后维护你现在写的代码的人也会发出这样的抱怨。。。。(逃
|
|
wemoreMar 1, 2019
43
接替我项目的人:“为什么有人可以堂而皇之的写出如此难维护的代码??”
|
|
yongzhzMar 1, 2019
44
稳定压倒一切啊,革新需要莫大的勇气。
不是每个人都有这种勇气和毅力去革新的。 |
|
PainSwimMar 1, 2019
45
很多时候,需求不明确,然后今天写好,明天又要改掉了,但是重写又赶上不进度,然后写出很多难以维护的代码,现在我自己都嫌弃自己写的代码。
|
|
Kaiv2Mar 1, 2019
46
最近在重构前两年的代码。。。
|
|
MohansonMar 1, 2019 via Android
47
人家代码已经跑了 10 年了,这就是好代码
|
|
48
我知道模板这个概念,大约是 3 年前的事情。
最早我写代码是大约 15 年之前了。那个时候我是一个网站的 ASP 程序员。我记得步骤如下: 1. 连接数据库(可以共享代码),所有的页面用同样的数据库连接代码 2. 拼接 SQL 3. 执行 SQL 4. 拼接 HTML 字符流。 上面的所有步骤我记得都是用 VB 脚本完成的。当时一个页面文件里的代码分成 2 个部分,一个部分是 VB script,这部分在服务器端执行,另外一部分则是 HTML 和 Jscript,则在客户端执行。但是这两部分代码可以用<%%>一起混用,于是导致的后果就是自己写的代码,过 2 周再回去看的时候,弄不清楚某一行到底是 VB 还是 HTML....一定要在脑子里把程序过一遍。 后来.net 出现了,我当时的感觉简直就是一个新天地,虽然没实际用于生产环境,但是确实引入了很多新的概念。 再后来我作为 BA 开始了解 JSP,当时的想法就是:这和 ASP 没啥差异,就是把 VB 换成 Java 而已。 其实代码架构的演化,这些年一直都是在为程序员服务,主要目标是提高代码复用程度,减少单个文件的复杂度。但是带来的后果就是整个项目的文件结构复杂度是在增加的。现在的 Flask 或者 Django 那样的框架,对于项目文件结构的要求其实比以前是提高了。 |
|
49
@saulshao 感谢回答,只能点击下感谢了,很多年轻的程序员 其实很难了解到这样的经历。
|