场景:为了赶项目进度,你写的代码并不优美(很烂)。你知道,作为 coder,这不是你想要的;作为职员,这也无可厚非; 问题:当你发现一直在赶进度,你也一直再写“烂代码”,你会怎么办?

2019-06-14 11:06:48 +08:00
 NilXuan
实际上,这是我进入导师公司后的真实场景;
个人技术水平中等,但是对技术有着自己的追求,不愿写“烂代码”——不可重用、不可维护、不可扩展;自身水平也能维持项目进度,当然代码质量不高;项目 leader 也没有为提高代码质量降低开发速度的意愿,也就是“能跑就行”这样的态度;
我希望能够通过参与项目,提高编码水平,但是我现在发现,在实际的项目开发中,我只是做着毫无营养的输出,并没有输入。可以预见,这样下去,即便 10 年后,我还是现在的编程水平;
如果是你,你会怎么办呢?是继续在上班时间写着让自己不舒服的代码,一边学习良好的编码规范;还是 say goodbye ?或者还有其他的处理方法?
14340 次点击
所在节点    程序员
130 条回复
index90
2019-06-14 16:48:52 +08:00
Say Goodbye 也是一种办法,逃避虽可耻但有用。

不过 #43 说的我很赞同,什么是优美的代码,各花入个眼。目前可以量化的评价标准基本上是测试覆盖度和成功率(也就是软件质量)。

除了躲,也可以尝试挑战一下现实,个人拙见是,可测试的代码才有机会提高质量,我们都知道软件设计要低耦合高内聚,知道开闭原则,依赖反转等等理论,但实践的时候,却容易陷入纠结。个人经验是,对你所写的代码都编写单元测试,可测试的代码,基本上都能满足上述理论。(时间紧只写 happy path 也可以)
index90
2019-06-14 16:51:25 +08:00
无论躲还是刚,我觉得都 OK,主要看自己能力了。
就像打大 Boss,自己阅历不足,经验不够,那就去野区打野练级。等经验上来了,再挑战。
295464512
2019-06-14 16:54:01 +08:00
@posebear1990 有意思,哈哈
wangfei324017
2019-06-14 17:50:38 +08:00
冒昧问下,楼主离职的说辞是啥……说出真正的原因了还是……
no1xsyzy
2019-06-14 18:18:01 +08:00
@hyuka 当时的全职画家也是白天花大量时间去画些维生的刻奇作(肖像、小动物)。
晚上才是做杰作的时间。
这么说来确实是 “下班优化代码”……
runtu2019
2019-06-14 20:02:25 +08:00
赞同四楼
我就遇到你这么个情况,入职公司接受了一个 php 维护项目,前辈纯脚本式开发的,没有文档,命名不规则,文件命名无迹可寻,各种 include 文件,稍微复杂的逻辑就用十多个 if 堆切起来,我现在找个变量需要 nodepad++文件夹搜索。

近段时间用微框架按照自己定标准重构,扩展了框架一些地方来符合项目数据结构,composer 各种库引入,文件数据结构和 java web 项目差不多,核心代码写了三千多行,但是业务代码我是实在没劲写了,实在是不符合自己的利益呀,有这个时间真的不如刷知乎,你说现在服务跑的好好的,自己重构老板凭什么让你上架?人家只知道我现在服务能跑,没有出问题,反正你写的出了问题,你就倒霉了

至于为什么不写业务代码了,其实把一个微框架扩展到差不多 thinkphp 中型框架还不失灵活性,我觉得我的目的达到了,其他真的是没劲了
NilXuan
2019-06-14 20:50:33 +08:00
@wangfei324017 啊哈,就说项目强度高,没有时间补充新知识呗,我是选导师啊,又不是选老板,然后就离开了。
abcbuzhiming
2019-06-14 20:58:55 +08:00
@broadliyn 你说的非常有道理,公司的利益从来就是和员工的利益不一致的,所以我非常支持该走就要走,管那么多干嘛,不符合你的发展前途,给再多钱也没用
wxkvEX
2019-06-14 21:48:09 +08:00
个人经历,凡是代码烂的无可救药的,往往代表项目本身也有其他问题。
这些项目都凉了。
connection
2019-06-15 01:35:27 +08:00
事实就是产品只看效益。

尽量在添加功能不要太“重”

像 50L 所说的小步重构
fuermosi777
2019-06-15 01:38:39 +08:00
这就是一般程序员和优秀程序员的区别。优秀程序员能够在进度的要求下写出优秀的代码。一般程序员就只能写烂代码,好歹能意识到自己正在写烂代码而不愿妥协。
storypanda
2019-06-15 02:10:30 +08:00
觉得这就是我现在的场景:想开发自己的个人独立作品,又想找 Android 开发工作,一方面指责自己代码不好看,想重构,一方面又希望能赶紧上架有个工作先吃饭。
imsunyh
2019-06-15 04:02:13 +08:00
先完成再完美
lemontv
2019-06-15 04:28:58 +08:00
要求老板涨工资
fanyingmao
2019-06-15 06:52:04 +08:00
已经麻木了,烂代码就让它烂下去吧,如果追求完美这项目还做不做了。当然烂到不可接受就跑路吧。
luozic
2019-06-15 06:55:26 +08:00
Archtect 为啥大部分从外面大公司来,啥原因?
caskeep
2019-06-15 07:42:00 +08:00
感觉也是对应的问题 cpp 的工程引用混乱 没有模块概念 上帝类很多
a719114136
2019-06-15 08:00:20 +08:00
我选择走,到后期我完全不想看之前的代码了。虽然组织过一次重构,但根本没时间进行下去,项目进度太赶,导致一个个优化的想法胎死腹中。
最终无奈离职( ps,离职当然还有其他原因)
Corbusier
2019-06-15 08:46:34 +08:00
我的第一段程序员经历告诉我,代码就是妥协的艺术,要和时间、金钱赛跑就不得不做出让步。可能这里高手比较多吧,混口饭吃,别太较真
boywang004
2019-06-15 08:46:45 +08:00
普遍情况是大家不会在意代码质量,并不代表没有在意代码质量的。

就是因为少,才要好好找的嘛。就跟妹子虽多,女神很少一个道理。

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

https://tanronggui.xyz/t/573848

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

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

© 2021 V2EX