101
winterbells 2019-10-29 13:59:40 +08:00 via Android
@hanxiaodi #66 差不多,我 dev 分支打的包还提示我要升级。。。
|
102
galikeoy 2019-10-29 14:05:01 +08:00
看到你们都这样,我就放心了
|
103
iyu90 2019-10-29 14:06:41 +08:00 2
任何高质量的项目,都能让一个新手 /菜鸟给破坏殆尽
|
104
loudefa 2019-10-29 14:09:44 +08:00
看到大家这么回复我就放心了
|
105
userdhf 2019-10-29 14:16:44 +08:00
被人喷过代码写得像 shit
谁来给我讲讲不像 shit 的代码长什么样 尤其是那种 1 周干仨月的项目 |
106
llllboy 2019-10-29 14:17:56 +08:00
看到大家这么回复我就放心了
|
107
shanlan 2019-10-29 14:20:43 +08:00
注释都没有
|
108
niucility 2019-10-29 14:22:31 +08:00
业务导向 + 需求频繁改动
|
109
yazhouli01 2019-10-29 14:31:53 +08:00
你说的是对的,别谈开源了 ,我自己都看不下去呢
|
110
daguaochengtang 2019-10-29 14:44:43 +08:00
你听说过 shit mountain 吗?
|
111
blackccc 2019-10-29 14:52:35 +08:00
能用就行
|
112
Justin13 2019-10-29 14:59:05 +08:00 via Android 3
我们组底下有一句话:“小车不倒只管推”
|
113
murmur 2019-10-29 15:01:34 +08:00
@hantsy 这就是现实,尤其是 APP,如果你半年不能上线,拿不到投资或者不被收购,要么结局是你的产品太垃圾,脱离市场,直接倒闭,要么是大厂拿着你的创意,迅速用更高的技术、更优秀的设计收割你的市场,尤其是腾讯,导入微信 QQ 用户,这推广简直恐怖
|
114
bailao 2019-10-29 15:08:02 +08:00
让我想起某普通话成绩查询官网的源码
|
116
toyuanx 2019-10-29 15:12:19 +08:00
我们公司大家写代码的风格都不一样,一个离职的同事代码注释基本没有,交接的同事看代码得看半天才理清楚;有一个同事用 vim 写,不太注意缩进;有一个同事写代码很冗余;有一个同事代码风格很好就是交流困难( PM 太烂了我觉得他是故意这么交流的);为什么我知道这么清楚呢----------因为我在组里资历最小,我会去总结他们的代码风格,取其精华去其糟粕。
|
117
random0O 2019-10-29 15:25:09 +08:00 via Android
在国外大厂的新组,感觉我们的代码单个模块拿出来质量都不错,差就差在模块设计上面。用的框架和服务都是公司内部的,外界积累的经验用不上,组内没有资历特别老的员工带,现在在讨论重构。
|
118
kayv 2019-10-29 15:25:33 +08:00 3
高,每个 commit 都有 code review,都有对应的连接,能找到修 bug 还是 feature。几乎每个逻辑都有单测,覆盖率要求 80%,服务之间有集成测试,全部流程都是自动化,没有 QA 和 OP。Code review 基本能来回讨论几次,增进感情和知识分享。
|
119
ackfin01 2019-10-29 15:26:58 +08:00
刚开始挺高的,后来就不高了。
|
120
hmxxmh 2019-10-29 15:28:08 +08:00
和你差不多,上一家和现在得都是做的 to B 系统,用户少,基本逻辑走得通就行,基本不考虑性能优化,所以很肯定的是代码质量不佳,想做 to C 的。
|
121
yufeng0681 2019-10-29 15:30:33 +08:00
逻辑 /业务复杂的功能 /特性, 就要先写文档再开发; 重性能的就要关注数据结构的设计;
简单的增删改查类的功能就放低要求,在上线过程中纠正,也不会很痛苦。 这样重要模块增加的设计成本(文档,数据结构),就不那么多。 |
123
learnshare 2019-10-29 15:40:26 +08:00
多数项目都是面向上线编程(能用就行)
+ 文档资料缺失,后续更新维护很难 + 没有测试代码,甚至没有完善的测试方案 + 代码没法看,有 lint 不敢开 + 领导甚至其他成员还不让你优化重构 代码和应用质量通常跟公司业务好坏关系不大,所以领导们不想在这方面多花时间和精力 |
124
hantsy 2019-10-29 15:40:57 +08:00
@random0O 国外公司很多有自身的考虑,而不是说他们不愿意用成熟的框架。我之前遇到一个项目也是这样,他们不用 Spring 这些流行的框架,每个第三 LIB 引用全部要审核它的协议,保证使用没有法律风险。
|
125
fengjianxinghun 2019-10-29 15:43:32 +08:00
@hantsy 从来没听说过有什么 code review。
|
126
specita 2019-10-29 15:46:35 +08:00
一言难尽,毕业后在大厂,发现同事写的代码好厉害,简单明了,模块化
后来回家乡的其它厂,一言难尽,反正他们的标准就是能运行起来就行了,其它无所谓 |
127
hantsy 2019-10-29 15:52:35 +08:00
@murmur 没错,国内很多创业公司上线都是在 3-6 个月左右。我之前参与过两个公司,都不到一年灰飞烟灭。只能说我没法适合国内的创业模式,各种套路招人,想各种方法(股权啊,什么发一部分以后融资了再补一部分工资)降低工资,加班加点,最后市场不接受,大家一起 88。以我的观点,那些没有两年以上规划的创业公司,基本上浪费人的青春。
|
128
gabezhao 2019-10-29 16:08:04 +08:00
原来都这样呀,哎
|
129
duanxianze 2019-10-29 17:13:21 +08:00
大家都一样啊。。。
|
130
zr8657 2019-10-29 17:18:16 +08:00
说真的,对绝大部分公司来说,能上线就不错了,剩下的过后再说,然后就没然后了
|
131
tt67wq 2019-10-29 17:19:47 +08:00
垃圾到爆炸
|
132
random0O 2019-10-29 17:58:34 +08:00 via Android
@hantsy 内部的东西倒是都挺成熟,但就是设计得和市面上常见的框架们不一样。数据库不支持外键,函数中一旦创建一个事务对象,所有被它调用的子函数只能使用这个事务,想再建都不行。Java 代码里每一步异步操作必须单独写个函数还不让调用,想在其他函数用它的结果必须将其返回值列为一个参数,框架会去找哪个函数的返回值匹配这个类型然后调用它。内部的其他服务,都因为历史原因各有一系列大坑。
|
133
hantsy 2019-10-29 18:33:27 +08:00
@kayv
1. Code Review 大部分在 PR 上进行(创建 PR 之前的 Commits 可能是 Partial work,属于 Work in Progress 状态),反复讨论修改,Commit,直到所有没有什么意见,测试全部通过为止,合并代码。 2. 到了一定规模的应用程序,可能不会每次合并就部署到生产环境前,加入有一个缓冲阶段,依然需要 UAT 环境部署,QA 测试,正式部署到 Production 之前进一步优化用户体验。 3. DevOps 工程师有时还是不缺少的,虽然 Infrastructure as Code 可行,有时脚本也要人维护,而一些特殊的生产环境可能与开发环境完全脱离,部署人员也可能有专职的维护那些环境。还有有的公司出于安全考虑,开发人员可能接触不到部署环境的一些配置参数。 |
134
ZSeptember 2019-10-29 18:40:17 +08:00
哈哈哈,大家都一样。
|
135
youyeku 2019-10-29 19:11:08 +08:00
不高和你情况差不多。迭代又快新手害人。我自己都看不下去那写的代码,而且有些还是历史遗留问题,写的连重构的欲望都没有。
|
136
hslx111 2019-10-29 19:33:27 +08:00
代码越多坑越多,哪里都一样
|
137
52coder 2019-10-29 19:51:20 +08:00
我怀疑我们在同一个公司。
|
138
BenjaminReed 2019-10-29 19:59:37 +08:00
嘶 早上九点到十二点是解决线上问题时间 你说惨不惨 日哦~这种情况已经延续一年多了。
|
139
donyee 2019-10-29 20:32:16 +08:00
java 项目代码不分层...一个类实现所有功能...
有个公共类是小写的... |
140
akira 2019-10-29 20:34:55 +08:00
所以 ,高质量的代码 的存在 只是一个传说?
|
141
UserANullPointer 2019-10-29 21:01:52 +08:00
每次产品升级时都告诉产品这块代码问题太多,要求延长时间。如果准了,就重构。
|
142
locoz 2019-10-29 21:19:03 +08:00 via Android
人少的就高…人多的就屎…
|
143
ARhen 2019-10-29 21:42:41 +08:00
我觉得我写的代码像是翔~ ;(
|
144
sumarker 2019-10-29 21:43:44 +08:00 2
举个🌰
··· return count > 0 ?true :false; ··· |
145
Dkngit 2019-10-29 22:35:34 +08:00
同一个世界,同一个屎码
|
146
catinsides 2019-10-29 23:09:04 +08:00
害,主业务能跑通就行了
|
147
loveuqian 2019-10-29 23:16:04 +08:00 via iPhone
第一版的代码挺漂亮
后面慢慢改着改着就。。。 前几天刚被自己 1 年半前写的代码恶心到了 |
148
gbin 2019-10-29 23:23:30 +08:00 via Android
你们的网站有完整的测试代码吗?包括单元测试,集成测试,e2e 测试这些。
我司做的软件( UI 是个网站,但不是互联网产品)就有完整的测试链路,测试代码差不多是业务代码的 2-3 倍。代码逻辑不一定是最优的,但是代码质量真的还不错,总的来说,参与这样的项目我觉得挺荣幸的。 |
149
gbin 2019-10-29 23:28:01 +08:00 via Android
@akira 个人认为不是传说,可能国内互联网大部分是业务驱动,但大部分软件公司的产品代码质量还是可以保证的。
|
150
wangyzj 2019-10-29 23:49:14 +08:00
研发作为底层
又能怎么样呢 |
152
kuangwinnie 2019-10-30 01:10:45 +08:00
@random0O 从字里行间看到了这个公司的技术沉淀之深
一般这种限制都是之前有人踩过的坑 总结出来的 |
153
applehater 2019-10-30 01:23:29 +08:00
@loveuqian 我写的几年的都是这个鬼样,十行功能三十行 BUG。
|
155
MrGba2z 2019-10-30 02:38:04 +08:00
看人 也看 review 的人
之前写代码翻到过 guido 写的一部分底层核心代码 几千行的代码读起来真特么爽 自己写过两次 Java 一次被(一个很严格的 senior ) review 了很久 翻来覆去改 基本被(一个很话痨逗比的 senior )直接 approve |
156
MrGba2z 2019-10-30 02:39:19 +08:00
|
159
pecopeco 2019-10-30 07:47:23 +08:00 via Android
默默重构
|
160
Kontinue 2019-10-30 08:37:09 +08:00
有注释都谢天谢地了。。。
|
161
zhanglihow 2019-10-30 08:46:29 +08:00
接手公司老的项目,那个框架,那个写法,渍渍,真心懒得改,也改不动。
|
162
Varobjs 2019-10-30 08:48:21 +08:00 via Android
|
163
lei2j 2019-10-30 09:01:25 +08:00 via Android
我怀疑你偷看了我们公司代码
|
164
sunmoon1983 2019-10-30 09:19:24 +08:00
@loveuqian 同感,往往是第一次出需求以后的程序代码看着还不错,后来越加需求代码就余越烂!现在再看看以前的代码,感觉恶心!
|
165
kahoyip 2019-10-30 09:21:11 +08:00
我朋友:“已发布到测试环境”
他领导:“上线” 我朋友:“不先测试?” 他领导:“先上线” ------上线后------ 他领导:“这里不对,不是 A,应该是 B,那里有问题” |
166
caviar 2019-10-30 09:32:33 +08:00 via Android
实习呆过微软中国( azure ),开的第一个大 pr 一共改了 16 个 iterations,尽管我已经按照自己的最高标准要求自己了 233 感觉在那边每天主要的任务不是写代码,而是讨论 design.....不过后来我翻了翻 repo 里的代码,其实很多并没有那么高的质量(小声
|
167
qsbaq 2019-10-30 09:38:12 +08:00
公司自己弄的框架,4 个 function 文件,每个 3 万+行。还在持续增加中。
已不想吐槽。。。 |
168
strongcoder 2019-10-30 09:41:49 +08:00 via iPhone
垃圾,太垃圾了,构建个包要 20 分钟,构建包的时候电脑不能动
|
169
pimpl 2019-10-30 09:56:02 +08:00 via iPhone
看到你们都这样,我就放心了。
|
170
Danielhu229 2019-10-30 11:16:24 +08:00
本来不高,被我强制搞了一波 Feature Branch 和单元测试,就高了
|
171
CoverL 2019-10-30 11:18:26 +08:00
看到你们都这样,我就放心了。
|
172
sudanlan 2019-10-30 12:26:46 +08:00 via iPhone
七拼八凑,一个 jQuery 有五六个版本,乱引用+随意增删,不同框架之间强行移植。。。公司国企,做的政府项目,前后端混合 😊
|
173
sumarker 2019-10-30 13:47:37 +08:00
所有的代码都 让步给了排期 ,
结果.. 本来并不宽裕的排期 还要考虑兼容 /重构原来的功能 时间更不够了... |
174
zzzzzzzzyp 2019-10-30 14:07:29 +08:00
低的亚批
|
175
crazytudou 2019-10-30 14:13:03 +08:00
改别人的 Bug,维护开发的系统,每次看代码脑子都是脏话。而且为了节省时间加快进度,还得学着一样写垃圾。
|
176
ofblyt 2019-10-30 15:15:42 +08:00
现在越来越觉得代码维护就是击鼓传花,谁倒霉就在谁手里炸了
|
177
ken0328 2019-10-30 15:21:26 +08:00
看到大家这么回复我就放心了
|
178
doublechenpaul 2019-10-30 15:30:43 +08:00
像看完 21 天学通 Java 就来找工作的那种水平,培训班都不如
|
179
v2hh 2019-10-30 15:33:03 +08:00
我之前公司的系统没有 bug,就老板一个人用。。。
|
180
linZ 2019-10-30 16:54:10 +08:00
@crazytudou 刚刚写了好多*代码,感觉后面的人没法接了
|
182
dosmlp 2019-10-30 17:28:41 +08:00
真的是"能跑起来能用就行"毫不夸张
|
183
charlie21 2019-10-30 19:13:00 +08:00
@timle1029 这是一项单独的工作,要考虑成本的,所以 如果没专人去做测试 ( 而是让 dev 开发 ) 那么结果就是 测试覆盖率很低很低,等于没有,等于自欺欺人
|
184
LunaSentinel 2019-10-30 19:49:32 +08:00
看到项目的时候很惊讶它竟然能跑起来,后来改造了 gradle 来优化项目结构和依赖,迁移了 k8s,增加了 ELK 支持,换了 zipkin, pinpoint, skywalking 链路追踪...但是独木难支,现在项目太急了,没空闲搞这些东西了,遇事不决就申请机器,拉个新项目,写的公共项目一引用,再也不想重构同事的代码了,管好自己就行,jenkins 编译的时候顺便就出 sonar 报告了,勤快看看就好了,严格律己宽容待人。
|
186
xiaotianhu 2019-10-31 08:52:49 +08:00
@kayv 啥公司?
|
187
random0O 2019-10-31 15:12:30 +08:00 via Android
@kuangwinnie 也许设计成这样真的避免了很多 bug,但是几年十几年修修改改下来还是一团糟。今天我们依赖的众多存储服务之一出了一个 bug,导致我们核心功能整体挂掉。具体 bug 还没被找到,但是我去看了一下出事的那个文件,一万两千多行一个 Java 类,有九个方法,名字是 stageOne 到 stageNine。。。这个存储服务的体量是按 EB 计算的。
|
188
kuangwinnie 2019-10-31 22:17:18 +08:00
@random0O 哈哈哈哈哈哈哈好惨啊哈哈哈哈哈
能不能打断点看看是哪边出了问题? |
189
jourdon 2019-11-01 11:24:32 +08:00
进公司看到代码就后悔了,就是一坨屎。
想着算了,跟老板说重构吧,想着说不同意就走人了,结果同意了(尴尬不). 重构的过程是真痛苦,基础功能没写完就要求上线,老板说了,让用户去测试就好了,所以是一边写 BUG,一边等用户发现 BUG,然后改 bug,同时改需求,一个功能不管写没写完,一个字,改,又急着上线,结果出 BUG,再改,根本不知道要做个什么东西,一切随缘。 |
190
hp66722667 2019-11-01 12:01:09 +08:00
哈哈哈哈哈哈
|
191
dashixionglihai 2019-11-01 13:34:09 +08:00
甲方:我想要一个小汽车,能在告诉上跑的那种。
乙方:容易,两个月开发完毕。 一个月后 甲方:能不能加个翅膀,我现在想让他可以飞。 乙方:可以,加钱吧。 半个月后 甲方:能不能再加个炮桶?我想谁挡我路我就炸飞它。 乙方:。。。 十天后 甲方:能不能加个车斗,有些货我想可以拉一些。 乙方:出门左拐。 |
193
kayv 2019-11-04 16:33:34 +08:00
血汗工厂亚马逊
|
195
monkeydream 2021-04-19 17:04:14 +08:00
技术不断更迭,需求不断变化,质量再好的代码也会面临重构;所以只要基础架构 OK,前期还是要求快,等业务稳定了再来抓质量。
|