千万不要相信码农说的,任务太紧,没时间优化代码

2020-04-15 18:08:39 +08:00
 hbolive

没办法写得像一坨屎,这类的言语。。

我们公司,自己的产品,二三线城市,岗位实际很闲,下班到点走人,有任务来了也从来不赶着做。。 有码农若干,包括以前来来去去的,也是不少了,但实际上没一个人说,会把自己代码优化好,都是怎么实现任务了事。 做完了测试也是大概测一下就提交,等出了问题( bug 或者性能上的)再改。

23552 次点击
所在节点    程序员
221 条回复
sherblue
2020-04-16 10:10:16 +08:00
有些优化==从 0 开始,你干不干。/doge
ShotaconXD
2020-04-16 10:17:08 +08:00
开发的一个原则, 如无必要(重点), 基本上不会修改现有逻辑.
我赞同题目, 但不赞同无脑优化.
如果你并不能针对这个功能为什么要优化, 说出来个一二三, 那我觉得你在无中生有 你在暗度陈仓 你在凭空想象 你在凭空捏造 你在无言无语 你在无可救药 你是逝者安息 你是一路走好 你是傻子巴拉 你是永无止境 你是没钱买药 你是头脑有病 你是眼里有泡 你是嘴里刘能 你是污言秽语 你是咎由自取 你是殃及无辜 你是祸害众生 你是仓皇失措 你是暗度陈仓 你是无可救药 你是无颜面对江东父老 你是人模狗样 你是臭气熏天
lucky215
2020-04-16 10:17:21 +08:00
不一定要加班才能解决优化的问题吧,如果真觉得需要优化,就规划安排计划,一点点执行下去,这样不行吗
ShotaconXD
2020-04-16 10:18:11 +08:00
@ShotaconXD #102 玩个梗 不喜勿喷昂= ,=
bk201
2020-04-16 10:20:05 +08:00
1.优化出问题你如果保证兜底
2.优化好了你保证有奖励
3.优化给额外时间
先做到上面 3 点再说吧。
AngryMagikarp
2020-04-16 10:20:50 +08:00
不排除有人拿“以后优化”作为借口。但也不能一棒子打倒。
我以前工作的时候能看到很多可以优化的点,但项目不是一个人做,要优化牵扯的东西太多,一个人根本推不起来。另一方面,时间也不允许。有的需求早上说,下午就要,确实不能指望代码多好。

优化绝对不是一个人的事,而是团队的事。对于很多公司来说,代码能跑起来就好了,管他什么优不优化。这个时候去苛责程序员做优化的事,未免有些舍本求末。
AngryMagikarp
2020-04-16 10:21:32 +08:00
@bk201 说到点子上了。
dog82
2020-04-16 10:22:35 +08:00
代码再烂,能满足业务需求就行。优化一下带来新的 bug,谁承担责任?
一定要定期对关键代码做 review,其它边缘的就算了
bayker
2020-04-16 10:28:28 +08:00
实际无数次证明:开发的时候就就优化好,测试好,比生产上出了问题再去处理更节约劳动力。节约大概 10 倍。

比如:开发的时候多测试一下 多发现了一个 BUG 就处理了,可能就多花 20 分钟。 但因为这个 bug 导致了生产上大量数据错乱,系统崩溃,这时候再去处理可能就会花 2 天时间。

楼主说的没错的。
whp1473
2020-04-16 10:34:17 +08:00
读取一个用户列表,这个列表有些属性要从另外一张表读(比如所在城市),做法是:先读取列表数据成数组,然后再遍历这个数组,遍历的时候再根据城市 id,再去查询地区表,得到城市的名字。

大家说说这个怎么优化,见过很多代码都是这样实现的,其实我倒觉得一般这么查询也没什么,效率低而已,多次请求 DB 。
优化考虑:
(1)设计用户表时冗余显示城市字段,但是这样会造成城市表修改后不变
(2)查询时按照一次性取出所有用户城市,Map<User,城市>形式填充 User
(3)Left join 形式查询,就怕关联表特别多
(4)异构专门的查询表,或异构到 Es 中做查询,性能有保障,会牺牲部分实时性

我们这边的代码,很多都是这样写的,我一般都不会改。改了不算绩效、之前需求产品都说不清是什么、不用多改错一次可能就 3.25 。或者直接找 P7,同时给他时间,别今天需求,明天上线。
Hbris
2020-04-16 10:34:58 +08:00
后续优化不如前期设计。所以需求分析还有详细设计十分的重要,但现在很多公司因为项目紧就把这两个给砍了或者压缩的特别紧。写某块代码时,我有很多个想法,但要一一实现并分析出其中的区别是需要时间的。但可惜,我通常为了完成任务,只会选择最简单,最傻脑的方案(简单,无脑,开发快)。
oatw
2020-04-16 10:37:38 +08:00
破窗效应。

如果接手的代码就是一陀屎,大概率不会有人有心情去优化,工作是永远做不完的,老板不会因为你优化了代码涨工资,也不会因为维护起来效率高了就让你闲着。更可能的情况是又为了迁就这陀屎,不得不写更多屎一样的代码。

理想化的持续重构针对的是设计良好的代码,对屎一样的代码唯一的解决办法是全部重写!

反过来讲,如果接手的就是干净、清爽、有设计、上层次的代码,也不好意思去污染。所以,前期打基础的那批人很重要。
shiguiyou
2020-04-16 10:39:23 +08:00
看情况吧,需求写完转测阶段我本来有时间优化的,但还是选择摸鱼
keepeye
2020-04-16 10:39:25 +08:00
我觉得这事吧 你也有责任 不会管理
caola
2020-04-16 10:43:38 +08:00
我对优化的理解就是重构……[dog]
inhal
2020-04-16 10:46:43 +08:00
看工资来吧,工资低的话,谁有心情优化。拿我自己来说,公司就给 5k,我前后端都得写,真的懒得管代码质量,写得好又不涨工资。
NotFoundEgg
2020-04-16 10:55:52 +08:00
我曾经也想把自己之前写过的代码重构 后来想想算了 从今以后规范就好
私自优化代码出了问题 谁来背锅?
私自优化代码的时间从哪来?
私自优化代码算不算工作量 算不算绩效?
neilq
2020-04-16 10:57:16 +08:00
根据我的观察,有的人呢,不管给多少时间,写的代码就像楼主例子那样的一坨屎。有的人呢,不管给多少时间,随手写出来的代码都是干干净净的。这个就是程序员之间的能力差异,不用找那么多借口。

作为管理人员,碰到楼主所说这种例子,如果时间紧,我不会介意他们这么做。

如果时间很充裕,不好意思,下次汇报我会直接说这个人不行,建议不要涨工资或者少涨点意思意思。我绝对不会这么说:哎呀,他只是工资少才会这样,多给他涨点工资写的代码就很厉害了,不可能的,工资多少他都是这种水平。你有高水平,我会想办法给你高工资,而不是我给你高工资,你就会有高水平,有些人不要搞反了,别动不动就什么精神股东,你不行就是不行。也不要说什么优化会有 bug,怕后期优化有 bug,那你代码出厂就是优化好的不行吗,我觉得遍历 id 读 10 次 db 改成读 1 次 db,这样优化一下还能改出 bug 都不自测的人那实在太水了?别优化有 bug 了,有些人不优化都能有一堆 bug,我还见过拿非全局变量来做全局锁的人呢。

睁大眼睛,看好前提,时间很充裕。
wr410
2020-04-16 11:00:05 +08:00
不存在的,有时间只能是摸鱼,优化就只能等到这块需求完全变动或者大版本升级的时候,你想自己优化测试才不帮你回归呢
asAnotherJack
2020-04-16 11:01:56 +08:00
本来能用的东西,优化好了没功,但是不小心改出问题可是要担责的

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

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

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

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

© 2021 V2EX