作者viper9709 (阿达)
看板Soft_Job
标题Re: [请益] 工作四年多开始迷惘
时间Tue Apr 17 23:02:27 2018
※ 引述《accessdenied (存取违规)》之铭言:
: 还是很多人对 clean code 的乌托邦有着不切实际的梦想....
: 醒醒看看 real world 的例子吧......
: 下面都是真人真事
这真是个不错的案例
简单整理一下目前看到的做法
顺便看看有没更好的解法:P
1.直接写死在Code里 (cid==xxx)
这个就没甚麽好说的了,公认的止血法
明天就要...大多数都会这样改吧XD
2.另外写个Class/Define/Const
这个算是1的改良版吧
将例外的cid统一保管,要加要删甚至要重构都会方便点
比较有经验的应该都会采用这一种(明天就要的话XD)
3.新增一个特殊的Level
某方面来说应该算最佳解了?
针对某个特殊需求直接开个对应的LV给他
以後要改也很方便,改完直接拿掉这个LV就好了
不过这个要考虑系统上新增LV是不是很容易
毕竟有的系统LV会绑很多,不是只有身分&功能而已
甚至有的系统新增LV还要过签呈甚麽的,算大事一件
完全看系统的大小与设计~这个要改动的可大可小
4.将功能&Level完全独立成两张表,分别做设定
目前看来这个应该是最终解吧
直接开两张表去设定各LV对应的各项功能
基本上弹性非常大,几乎要怎麽做都可以
不过这个也是改动最大的解法,可以说整个系统要重做了
做完还要全部重新测试,可以说是大工程一件
如果系统已经上线而且稳定运作中,应该不会有人敢用这种解法...吧@@
最後附带一提
其实客户有种需求,客服真的应该帮忙挡的
毕竟这是误解而不是有什麽损失
除非是超级大客户,不然先例一开,以後一定会有第二个第三个需求
到时候整个系统就千疮百孔了@@
一点点小浅见,分享一下^^"
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.250.208.116
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1523977350.A.B29.html
1F:推 Masakiad: 将系统改成容易新增各种level(及可以hook其特殊的handle 04/18 02:08
2F:→ Masakiad: r)就行了。 04/18 02:08
3F:推 zanyking: 这本来就是该挡掉的,挡不下来还洋洋得意这什麽鬼? 04/18 04:40
4F:推 guest0079: RD跟客服在公司地位小到跟屎一样 档的下来才有鬼 04/18 07:35
5F:推 guest0079: RD写两行code就搞定了 谁想站出来跟上面的人吵 04/18 07:38
6F:推 guest0079: 软体RD帮人擦屎的情况还会少过吗 04/18 07:41
7F:推 mathrew: 挡不下来就是老板的问题,那也根本不必 clean code 了 04/18 07:43
8F:推 guest0079: 你站出来档 PM就跑出来说这麽多年来你的学长长官都马上 04/18 07:45
9F:→ guest0079: 帮客户改 就你毛一堆 你难道要骂他干你娘滚啦干 04/18 07:45
10F:推 guest0079: 而且系统能否活过下个月都不知道了 谁还管你克宁扣 04/18 07:47
11F:推 guest0079: 还有啦 辛苦坚持clean code是为谁辛苦为谁忙啊? 04/18 07:50
12F:→ guest0079: 公司每个人都为了自己个人利益不管公司死活了 谁还白痴 04/18 07:50
13F:→ guest0079: 在那边坚持我维护的系统要clean要好维护 大家都看的懂 04/18 07:51
14F:→ guest0079: 然後为了pm能爽爽赚钱去酒店干妹子 我就要加免费的班 04/18 07:52
15F:→ guest0079: 还真以为无偿加班是忙公司咧 只是帮到想爽不干事的人啦 04/18 07:53
16F:→ guest0079: 还不如随便改完 好有更多时间上班看看A片滑滑手机啊 04/18 07:54
17F:→ guest0079: 上班打混有钱赚 这麽爽的事摆在眼前 坚持啥鬼clean cod 04/18 07:55
18F:→ guest0079: 是上班上到脑子烧掉了吗 人蠢没药医啦 04/18 07:55
19F:推 crainlin: 水喔楼上 04/18 08:31
20F:推 EightXD: 干 怨念这麽深喔 XD 04/18 08:47
21F:推 sorryla: 这种鸟公司也就不能怪强者都往其他地方跑,真强者谁想跟 04/18 08:56
22F:→ sorryla: 你淌浑水。 04/18 08:56
23F:推 sorryla: 反正公司也没准则,东西随便弄就好。花少少的钱请个只想 04/18 08:58
24F:→ sorryla: 打混领钱的工程师刚好适得其所,反正改改if大一就会了。 04/18 08:58
25F:推 nichinichi: 怨念好深xd 04/18 09:30
26F:推 Argos: 怎麽崩溃成这样?XD 是受过什麽伤?其实随手改 最後RD也还 04/18 09:32
27F:→ Argos: 是要加班 而且往後工作可能更痛苦啊 04/18 09:32
28F:→ Argos: 你想想 需求是一直在变 随手改完 等哪天需求又大改 你不但 04/18 09:33
29F:→ Argos: 要做新东西 还要非常小心不能睬到之前的雷 这如果是你自己 04/18 09:34
30F:→ Argos: 写的你比较熟那还OK 别人写的 你要怎麽办? 04/18 09:35
31F:→ Argos: 到最後就是加班加到死 bug满天飞 PM还是爽去酒店干妹 你还 04/18 09:35
32F:→ Argos: 是免费当奴工 XD 04/18 09:35
33F:→ Argos: 怎麽会有随手写就等於有更多时间打混这观念? 04/18 09:36
34F:推 Masakiad: 不用这麽崩溃啦,我们公司RD就很大啊。 04/18 09:37
35F:→ MOONY135: 0079怨念很深 04/18 09:37
36F:→ Argos: 然後你一定会扯 反正到时我也已经离职惹不关我的事罗~ 04/18 09:38
37F:→ Argos: 然後金履历每三个月每半年就换工作 好棒棒 04/18 09:38
38F:→ x000032001: 乱写到最後没人改的动的时候 炸弹就爆了 proj也死了 04/18 09:45
39F:→ x000032001: 接到最後一棒的最虽 XDD 04/18 09:45
40F:→ Argos: 然後老板就会花大钱 请一个经验老道的clean coder来整个重 04/18 09:46
41F:→ Argos: 写 来一次大改版 一次解决 结果到最後也还是得好好做 04/18 09:47
42F:推 BBSealion: 坚持clean code当然是RD主管甚至是CTO的责任,小工程师 04/18 10:03
43F:→ BBSealion: 不用想太多,只需要想如果RD头都不坚持,要不要跑XD 04/18 10:04
44F:→ BBSealion: clean code也是可以换算成成本,CTO提出clean与维护的 04/18 10:04
45F:→ BBSealion: 成本,BD提出得罪客户的成本,Boss两相比较取其轻,就 04/18 10:05
46F:→ BBSealion: 这麽单纯而已,至於两边怎麽吵, Boss怎样判断就是实力 04/18 10:05
47F:→ BBSealion: 体现了,至於基层RD只要考量解决眼前问题&该走该留就好 04/18 10:06
48F:推 BBSealion: 至於小公司... 就有意见就提啊,向上管理也是重要能力 04/18 10:09
49F:推 guest0079: A大你不要幻想了 你什麽时候有技术债要自己还的错觉啊 04/18 10:43
50F:→ guest0079: 我写的烂程式只有我懂 增加自己的不可取代性 新人来半 04/18 10:43
51F:→ guest0079: 年还看不懂程式当然就来骂一下啊 骂人可爽的勒 难道我 04/18 10:43
52F:→ guest0079: 要花超多时间 面对pm与长官的压力写出新人好懂的程式 04/18 10:43
53F:→ guest0079: 让新人取代我吗 04/18 10:43
54F:→ Argos: 就怕你的烂程式连你自己都看不懂 然後搞死自己阿 XD 04/18 10:44
55F:→ Argos: 老实说 好好写clean code 更多的是为了自己好吗?XD哪有那 04/18 10:45
56F:→ Argos: 麽佛 还为公司为同事 就是一次把他改好 之後过了半年一年 04/18 10:45
57F:→ Argos: 突然有东西要改 当初你已经写好架构 几小时就做完了 但烂 04/18 10:46
58F:→ Argos: code的话 你还要先看三天 再改三天 再找bug三天 XD 04/18 10:46
59F:→ Argos: 重点是你就算几小时做完 你还是可以报半个月时程阿XDDDDDD 04/18 10:47
60F:→ Masakiad: 0079 第一个在软体版让我不忍嘘的... 04/18 10:47
61F:→ Argos: 首先我真不懂 为何很多人先预设一个立场 你写的烂code你自 04/18 10:48
62F:推 guest0079: bug满天飞? 踩到之前的雷?那是来接手的新人才会遇到 04/18 10:48
63F:→ guest0079: 的问题 这时我当然是以救世主的身份下凡尘来下指导棋 04/18 10:48
64F:→ guest0079: 啊 再痛骂新人发泄一下昨晚老婆不给干的怨气 04/18 10:48
65F:→ Argos: 己一定看得懂 改得动?XD 自己搞死自己不敢承认吗? 04/18 10:49
66F:→ Argos: 所以你还是写得出好东西才会下凡阿 XDDDDDDD 04/18 10:49
67F:→ Argos: 下凡来写垃圾 跟新人有何不同 XD 04/18 10:50
68F:→ landlord: 所以很多人干了十几年还是没有话语权的基层RD 04/18 10:57
69F:推 guest0079: 还有你的幻想太虚幻了 系统写烂掉要重构的时候 你以为 04/18 10:57
70F:→ guest0079: 上面长官会去请clean coder高手来做吗 整个系统搞烂的 04/18 10:57
71F:→ guest0079: 时候是一整个共犯结构的问题 你敢随便推RD出来负责 RD 04/18 10:57
72F:→ guest0079: 就说是当初长官 PM 业务 董事长亲口要我这样改的 你敢 04/18 10:57
73F:→ guest0079: 乱咬到时整个共犯结构联合起来反咬你 04/18 10:57
74F:→ landlord: 很多人养code自重让别人无法接手,但自己也出不去 04/18 10:58
75F:→ landlord: 也没什麽,都是每个人自己的选择而已。 04/18 10:58
76F:→ landlord: 有能力的碰到这种没能力的老鸟,干不掉他就换老板就好 04/18 10:59
77F:推 guest0079: 就算要重构也是找我重构啦 别傻了 系统我模了好几年了 04/18 11:03
78F:→ guest0079: PM业务客服要什麽也是我最清楚 你要去哪找一个高手来 04/18 11:03
79F:→ guest0079: 淌这趟浑水啊 要担历史共业的耶 要下来吃屎的耶 要重新 04/18 11:03
80F:→ guest0079: 确认需求的耶 跨部门沟通比写程式麻烦的耶 04/18 11:03
81F:→ Argos: 你没遇过不代表就是虚幻阿?XD 找人来救火满街都是吧? 04/18 11:04
82F:→ Argos: 那待的公司少 朋友也少 没听过我也不怪你罗 04/18 11:05
83F:→ pttworld: 对於外包工程师要怎麽反抗需求,没有人讲得清楚 04/18 11:07
84F:推 guest0079: 你说的是救火队 吃力不讨好的救火队啊 就是共犯结构把c 04/18 11:14
85F:→ guest0079: ode写烂了 在紧急情况找人来擦屁股的救火队 救完火功 04/18 11:14
86F:→ guest0079: 劳当然是写烂code的人拿走啊 别忘了你们只是来救火的 04/18 11:14
87F:→ guest0079: 救火失败则是你们救火不力 饭桶!! 04/18 11:14
88F:推 guest0079: 怎麽看都宁愿当把code写烂的人 也不要当 clean coder 04/18 11:18
89F:→ guest0079: 救火队啊 04/18 11:18
90F:推 Sirctal: 当救火队 上来也看不到你的考绩 04/18 11:23
91F:→ Sirctal: 还会嫌你怎麽都没贡献什麽新功能 04/18 11:23
92F:→ Sirctal: 上面 这就是台湾大部分的上头都这样想 不要怀疑 04/18 11:24
93F:→ Sirctal: 这里是台湾 04/18 11:24
94F:→ Sirctal: 所以找东西真的要慎选 在面适时就要问清楚 04/18 11:25
95F:→ Sirctal: 上头主管重不重视这个 04/18 11:25
96F:推 guest0079: 光听你说一句「老板会花大钱 请一个经验老道的clean co 04/18 11:43
97F:→ guest0079: der来整个重写」我就笑到翻过去了 哈哈哈哈哈 老板会 04/18 11:43
98F:→ guest0079: 花大钱舍弃原有能用又稳定的系统 冒险请一个不熟的人 04/18 11:43
99F:→ guest0079: 来重写 只因为code不乾净??我合理怀疑你是学生 去打 04/18 11:43
100F:→ guest0079: 工啦 04/18 11:43
101F:推 Beersheep: 我有遇过整个专案重写的欸 不过是把 rails 3 升级到 5 04/18 11:48
102F:→ pttworld: 自己写的code看不懂来战有点硬凹了,要符合比例原则 04/18 11:48
103F:→ Beersheep: 原本的 Code 也是整个悲剧 豆页超痛 04/18 11:48
104F:→ pttworld: 这篇level解的关键是一个人是否可以二个level以上 04/18 11:49
105F:推 vi000246: 将心比心 当你处理不了自己留下的粪坑 跑去别家公司时 04/18 11:50
106F:→ vi000246: 也不会想处理别家公司前人留下的粪坑吧 04/18 11:50
107F:→ pttworld: 可以才能算是个解 04/18 11:51
108F:→ lovdkkkk: 我有遇过整个银行系统重写的, C++ 转 JAVA 04/18 11:56
109F:推 TAKADO: 其实0079大的状况在台湾应该不少,遇到这种环境只能一起 04/18 12:05
110F:→ TAKADO: 当共犯或换个老板。 04/18 12:05
111F:→ TAKADO: 软工好环境好上司比伯乐更难求 04/18 12:06
112F:→ Argos: 「舍弃原有能用又稳定的系统」<-- 我以为我们在讨论的是破 04/18 12:06
113F:→ t64141: 0079,以前面试过一间公司,工作内容就是重构旧系统 04/18 12:06
114F:→ Argos: 烂到已经完全改不动 也时常爆炸的系统耶 XD 04/18 12:07
115F:→ Argos: 能用又稳定为何要找经验老道clean coder????? 04/18 12:08
116F:→ Argos: 老实说 写烂code的人很多 通常都有自知之明 惦惦写不敢张杨 04/18 12:10
117F:→ Argos: 反正写程式本来就是混口饭吃 每天看烂东西改烂东西 日子也 04/18 12:10
118F:→ Argos: 就过了 钱还不是照拿?出bug照样被骂 没差啦 04/18 12:11
119F:→ Argos: 但写烂东西还这麽振振有词 找一堆理由塘塞的 真的不多 XD 04/18 12:11
120F:→ Argos: 居然还衍生出「烂code但很稳的系统不用改阿?」这种脑补 04/18 12:12
121F:→ Argos: 打从一开始就是在讨论「烂code到不能work的东西」好吗? 04/18 12:12
122F:→ Argos: 还是说你只是想表达 拎北写烂code系统也超稳 怎样? 04/18 12:13
123F:推 guest0079: A大真的是外行人无误 在老板看来是能用又稳定的系统 在 04/18 12:18
124F:→ guest0079: 工程师看来是烂到改不动 完全不冲突 就是因为这样才会 04/18 12:18
125F:→ guest0079: 养出烂code啊 老板觉得随便改一改就好(当然嘴巴不会说 04/18 12:18
126F:→ guest0079: 随便改改就好,但给工程师的时间压力也只能随便改改就 04/18 12:18
127F:→ guest0079: 好)能动 不出问题 就是稳定的系统 04/18 12:18
128F:推 guest0079: 谁不知道又烂有不能work的东西不能用啊 这根本没有讨 04/18 12:24
129F:→ guest0079: 论的空间 不要鬼打墙了 要讨论的是:能动能用不出包 04/18 12:24
130F:→ guest0079: 但可能会慢慢长成烂到要爆炸很难维护的code 04/18 12:24
131F:推 guest0079: 打从一开始就是在讨论「烂code到不能work的东西」是吗 04/18 12:25
132F:→ guest0079: ? 04/18 12:25
133F:→ guest0079: 没人在讨论这个 没人会让不能work的东西上线 04/18 12:26
134F:推 guest0079: 你RD写一个不能动的东西 pm业务客服长官一定马上出来干 04/18 12:29
135F:→ guest0079: 爆你 根本没机会把又烂又不能work的东西拿出去 根本连 04/18 12:29
136F:→ guest0079: 上线都没机会 你还想维护它?? 04/18 12:29
137F:→ guest0079: 就说A大一直都在幻想 不存在的事也在扯 04/18 12:31
138F:推 Masakiad: 0079的工程师人格被扭曲成这样还真是觉得心酸 04/18 12:46
139F:推 jojojen: 结果这篇底下推文这麽长没人陪原po认真讨论怎写 04/18 12:54
140F:推 Masakiad: 有啊 我开头第一个就讲了。解不是单纯解问题而是要重新 04/18 12:57
141F:→ Masakiad: 架构成有弹性可扩充啊 04/18 12:57
142F:推 applehpsh: 0079讲得的确比较像是真实世界碰到的状况 04/18 13:06
143F:→ applehpsh: 当老板的赶得是市场和产品上线的时程 根本不管啥clean 04/18 13:07
144F:→ applehpsh: code 一开始的确大家会有冲劲去做好 但每当时程缩减 04/18 13:08
145F:→ applehpsh: 之类的鸟事一再发生後 渐渐地就没人管这事了 04/18 13:08
146F:→ applehpsh: 毕竟工作还是得对人 这比写code难太多了 04/18 13:08
147F:推 jojojen: 那请问按原本例子有什麽理由不一开始使用原po第4点写法呀 04/18 13:13
148F:→ Argos: 「没人会让不能work的东西上线」到底是谁在幻想啊XDDDD 04/18 14:04
149F:→ Argos: 还是你觉得能work的是会动就好就叫能work?好吧 我不晓得你 04/18 14:05
150F:→ Argos: 标准这麽的低耶 老板看来很稳?就是在讨论老板都觉得整天出 04/18 14:05
151F:→ Argos: 问题啊 自顾自讲自己的 好吧都给你说XD 04/18 14:06
152F:→ Argos: 是说 假设这个APP可以打开 但非常容易当掉 有时会有时不会 04/18 14:07
153F:→ Argos: 你觉得这叫做「能work」吗?你觉得这叫「稳」吗? 04/18 14:08
154F:→ Argos: 现在外面产品 满满都是这样子的东西喔?XD 不能上线?谁在 04/18 14:08
155F:→ Argos: 跟你幻想勒? 04/18 14:08
156F:→ Argos: 还是说你觉得只要能动就叫稳?不定时坏掉不算不能work? 04/18 14:11
157F:→ Argos: 那谁是外行?还是你拿A来讨论我讲的B?XD 04/18 14:11
158F:→ Argos: 你的前提是「老板觉得没问题」 我的前提是「老板已经觉得这 04/18 14:12
159F:→ Argos: 样不行了」然後再来讲别人幻想 明明就你一个人再那边自言自 04/18 14:13
160F:→ Argos: 语吧?XD 我知道工程师写code写久了有些容易活在自己世界啦 04/18 14:14
161F:→ Argos: 但你也未免太严重了一点 XDDD 04/18 14:14
162F:→ Argos: 要不要回去翻一下推文?老板找clean coder我是接上一楼的聊 04/18 14:16
163F:→ Argos: 上一楼的前提是啥?「已经爆了」OK?谁在跟你讲老板觉得稳? 04/18 14:16
164F:→ Argos: 连推文都看不懂 还在那边跟人家讲一堆 功力很高啊 XD 04/18 14:17
165F:推 accessdenied: 其实code很糟跑起来很稳的系统真的存在,这就是黑箱 04/18 14:52
166F:→ accessdenied: 和白箱的不同,例如弹性和稳定性本来就有些冲突 04/18 14:52
167F:推 accessdenied: 老板看到的是黑箱,操作正常,没有客诉。工程师打开 04/18 14:54
168F:→ accessdenied: 看到一堆hardcode和retry loop达成的功能... 04/18 14:54
169F:推 accessdenied: COBOL很不弹性啊,全都是业务逻辑写死,但是银行就 04/18 14:56
170F:→ accessdenied: 爱这样,因为够稳定 04/18 14:56
171F:→ y3k: 大部分现在还在用COBOL的银行都是迫於无奈吧 04/18 14:57
172F:推 APTON: 写一堆烂CODE,只会让自己出包的机会越来越大啊。烂code还 04/18 15:00
173F:→ APTON: 不会妨碍到RD只是因为问题还不够大,可以靠细心跟谨慎去避 04/18 15:00
174F:→ APTON: 免。等到要避免的事情庞大到一个程度,出包的频率只会越来 04/18 15:00
175F:→ APTON: 越高.... 04/18 15:00
176F:→ APTON: 当然可以在问题太严重前转换跑道,但是能这样几次?除非永 04/18 15:04
177F:→ APTON: 远只当junior。 04/18 15:04
178F:→ APTON: 或许不小心转职成为小主管,但是这时候烂系统出包就真的成 04/18 15:10
179F:→ APTON: 为你的kpi。 04/18 15:10
180F:→ APTON: 又或许当个拥code自重的老鸟,赌公司永远不敢改革,但是赌 04/18 15:10
181F:→ APTON: 的是自己的职涯发展,赢了能得到一份稳定的工作以外,你的 04/18 15:10
182F:→ APTON: 职涯只剩这包烂code.... 04/18 15:10
183F:→ APTON: 不觉得人生这样有点唏嘘吗... 04/18 15:10
184F:→ APTON: 如果不是公家机关的资讯部门,这样的生活我觉得蛮抖的@@ 04/18 15:12
185F:推 Argos: 我最後只再说一次 我针对的是烂code又不稳的东西 你们硬要 04/18 15:16
186F:→ Argos: 去讨论烂code但很稳的东西 然後再拿这东西反证烂code也没 04/18 15:16
187F:→ Argos: 差 那就是倒因为果 是非不分 04/18 15:16
188F:→ Argos: 通常烂code又稳的东西 多半都是东西很小 而且需求非常稳定 04/18 15:17
189F:→ Argos: 照一开始讲没两天就改需求改功能的 系统够大你烂code有可能 04/18 15:18
190F:→ Argos: 写到很稳吗?XD 拜托回到现实里来好不好 XD 04/18 15:19
191F:推 vi000246: 请定义"稳"... 不是能动就是稳 04/18 15:20
192F:推 Argos: 还有一种可能啦 就是该专案顶多就是公司官网 有个後台可以 04/18 15:25
193F:→ Argos: 上上公司最新消息这样 那你都接这种案子 什麽clean不clean 04/18 15:26
194F:→ Argos: 当然差没有很多啦 接案接久了 就讲软体工程技术都是屁 XD 04/18 15:27
195F:→ ku399999: 烂code稳定 然後呢? 是不是不敢乱动?加功能很难加? 04/18 16:16
196F:→ ku399999: 去叫startup 烂code稳定看看 大家都开银行? 04/18 16:18
197F:→ ku399999: clean code不是圣旨 但把他当垃圾就太超过了吧 04/18 16:20
198F:→ y3k: 我觉得大家可以这样认为 就是个写了烂code被洗脸上来讨拍的XD 04/18 16:22
199F:推 Ekmund: 我自己遇到的循环是 04/18 16:29
200F:→ Ekmund: 根据现有需求 跟预想到的 架构一个系统 04/18 16:29
201F:→ Ekmund: 因市场改变、主管换人 习惯xxx...->新增对应机制A 04/18 16:30
202F:→ Ekmund: 接着冒出B, C, D... 04/18 16:30
203F:→ Ekmund: 改到X时发现一堆东西重复、打架、用不到了etc 04/18 16:31
204F:→ Ekmund: 於是某个公司的老江湖发布重构计画 04/18 16:32
205F:→ Ekmund: 老板照常发案 用人主管尽量排开该老人 但仍以案子需求为主 04/18 16:32
206F:→ Ekmund: 接下一年左右时间 新架构诞生 或是胎死腹中 04/18 16:33
207F:→ Ekmund: 由老板因为不敷需求主动提出改架构的情况 倒没发生过 04/18 16:34
208F:→ Ekmund: 老板动的都是组织 除非严重影响营收 不然不管凡尘事 04/18 16:37
209F:→ Ekmund: 新架构出来一定是clean code 前架构的ABCD会被系统化 04/18 16:40
210F:→ Ekmund: 直到新的ABCD诞生 04/18 16:40
211F:→ Ekmund: 正常循环下两者都难以避免 只是有优先权 04/18 16:46
212F:→ Ekmund: 照时程出版 > clean > 写特例 04/18 16:47
213F:→ Ekmund: RD在这中间的义务是分析需求 规划时程给上面评估 04/18 16:49
214F:→ Ekmund: 主管单位方案选择负责 RD对方案时程负责 04/18 16:50
215F:→ Argos: 主动提的老板我也从没见过XD 一般都马是老板吵吵闹闹 最後 04/18 17:01
216F:→ Argos: CTO或技术部最大头受不鸟 只好哭着重构 哈 04/18 17:01
217F:→ Ekmund: 是说我家RD头子才对业务头子呛 有本事你下来写..XD 04/18 17:01
218F:推 expup: 我有遇过老板主动提的因为业务需求大到原本架构已经撑不下 04/18 17:03
219F:推 Awenwen: 看完有些推文,深深体会进怎样的公司果然很重要… 04/19 02:03
220F:推 zanyking: 回accessdenied:那种银行系统我看过,他的稳定是建立在 04/19 02:09
221F:→ zanyking: 不能改上头的,能改的也就是加点栏位之类的东西 04/19 02:10
222F:→ zanyking: 一但真的有会改变流程的需求,那就只好测到天荒地老 04/19 02:11
223F:→ zanyking: 10几年前在中国信托永吉大楼地下室,看过一拖拉库IBM 04/19 02:12
224F:→ zanyking: 外包商就是进驻在那边,每到下午就一小群在骑楼休息 04/19 02:12
225F:推 zanyking: 然後时间到就回去跟AS400 还有DB2奋战 04/19 02:14
226F:→ zanyking: 架构是为了适应变化而存在的,也就是哪天有谁要接手 04/19 02:15
227F:→ zanyking: 怎样可以最快载入这段系统的所有细节,给改code的人最大 04/19 02:16
228F:→ zanyking: 的信心去更改系统,介面、封装、层次规划都是为了这些 04/19 02:17
229F:→ zanyking: 古时候compiler比较笨,还会需要手工inline,但现在 04/19 02:19
230F:→ zanyking: 已经不是这样了 04/19 02:20
231F:推 Clain66: 就面试时注意一下公司 RD 的话语权,没办法进到那种注重 04/19 07:33
232F:→ Clain66: 程式架构的公司就自己摸摸鼻子想想要不要一起沉沦,都是 04/19 07:33
233F:→ Clain66: 自己的选择罢了。 04/19 07:33
234F:推 accessdenied: zanyking搞不好我们见过捏,十几年前我也在永吉地下 04/19 08:06
235F:→ accessdenied: 室待了一年左右,还经历过那次台北市大淹水,永吉地 04/19 08:06
236F:→ accessdenied: 下室完全被水埋,里面所有设备全部报废的日子 04/19 08:06
237F:推 EightXD: 某大A真的破功了 以为经验丰富 後面讲的东西根本完全脱 04/19 08:47
238F:→ EightXD: 离现实 真的感觉就是0079大讲的还没出社会的学生 04/19 08:47
239F:→ lovdkkkk: 曾是 IBM 外包团里的小咖, 九年前兆丰银行福洲街二楼 04/19 08:51
241F:推 senjor: 为什麽大家预设都是要加班加到死,准时下班就不用管这些了 04/19 10:10
242F:→ senjor: 上面有啥鬼需求都满足他们,反正准时下班就好。 04/19 10:10
243F:→ pttworld: 提到话语权,专案外包驻点工程师能嘴什麽 04/19 11:20
244F:→ pttworld: 甲方动不动叫你明天不用来,我的下属这一年已经换了4个 04/19 11:21
245F:推 SilvesterW: RD的话语权当然是要靠自己啊,能够自我提升、做事有 04/19 11:58
246F:→ SilvesterW: 成果,说话自然就会有份量 04/19 11:58
247F:→ SilvesterW: 不过我想这种RD也不太会去驻点变成p大的下属吧XD 04/19 11:59
248F:→ pttworld: 能否带专案要看人格特质,强调自我实现或喜欢当出头鸟, 04/19 12:52
249F:→ pttworld: 通常是往顾问的方向,自己选择钱有赚到就好 04/19 12:54
250F:推 oneheat: 贴薪资单就知道是不是学生了啦! 04/19 14:48
251F:推 oneheat: 吵成这样,什麽学生不学生的,薪资单一贴一目了然 04/19 14:53
252F:→ WiseLin1125: 之前不是都贴过薪资单了?自己google都有吧? 04/19 20:37
253F:→ Argos: 自己只能在那种等级的公司问还质疑别人是学生 我也是笑笑 04/19 22:37
254F:嘘 THEWORLDS: zanyking银行系统建立在不能改,请问我来到学生版了吗? 04/19 22:40
255F:→ THEWORLDS: 你他妈写哪间死人银行的专案不能回头改,银行专案屌就 04/19 22:40
256F:→ THEWORLDS: 屌在分层架构就是细,你可以抽取一个CLASS掉没问题这个 04/19 22:41
257F:→ THEWORLDS: 在银行专案算是最最最基本的,但是你能够直接解藕工程 04/19 22:41
258F:→ THEWORLDS: 师,让pm sa去协调写文件就好这才叫真正的架构好吗 04/19 22:41
259F:→ THEWORLDS: 不要自己不懂系统分析师在干小就嫌人家code脏 04/19 22:42
260F:→ THEWORLDS: 真的看不下去一堆没实际做过的在那边说code多难读,讲 04/19 22:42
261F:→ THEWORLDS: 的好像code写很脏很烂,是很烂那你怎不反思你会觉得难? 04/19 22:42
262F:→ THEWORLDS: 阅读? 他烂那他的code根本就秒解,烂人写烂code也不会 04/19 22:43
263F:→ THEWORLDS: 有分层架构更不会有一堆界面你根本不需要追多少CODE 04/19 22:43
264F:→ THEWORLDS: accessdenied我就不想说了,人家年薪300都开不了FORK了 04/19 22:44
265F:→ THEWORLDS: 一个工程师会讲到CODE很糟糕跑起来很稳是因为黑箱白箱 04/19 22:44
266F:→ THEWORLDS: 这种话,大概就学生会去当他的迷迷而已,用嘴巴写CODE 04/19 22:44
267F:→ THEWORLDS: COBOL也敢拿出来说,银行还有哪间再用COBOL的你跟我讲 04/19 22:45
268F:推 stfang925: XD 04/19 23:33
269F:推 sharku: 随手写clean code不难啊,有没有心而已 04/19 23:42
270F:推 zanyking: THEWORLDS我讲哪个年代你骂哪个年代?然後我哪里说银行 04/20 03:07
271F:→ zanyking: 系统建立在不能改? 04/20 03:07
272F:→ zanyking: 我说的是『那种』系统不能改,而我指的不能改後面也 04/20 03:09
273F:→ zanyking: 解释了,是他很难改下去没问题,会测到天荒地老 04/20 03:10
274F:→ zanyking: 全称特称搞清楚很难? 04/20 03:10
275F:推 mrforget: 一堆银行还在用COBOL阿,104还有在徵人维护阿。 04/20 10:23
276F:推 APTON: 还是有银行用cobol喔,只是一线银行的确开始在淘汰了 04/20 13:22
277F:→ Void956: 看完了整篇 有些人真的跟年轻的我一样 天真 04/21 01:17
278F:→ Void956: 现在我已经不太天真了 04/21 01:18
279F:→ Void956: 烂CODE?? 怎麽定义? 你看不顺眼的吗? 04/21 01:18
280F:→ Void956: 那这样 这世界上 还真的没有什麽好CODE了 04/21 01:19
281F:→ Void956: 很糟的CODE 成因很多 04/21 01:20
282F:→ Void956: 重点是 老板不太可能请人来整理 04/21 01:21
283F:→ Void956: 没有老板会花那种闲钱去改CODE 然後没有办反制造任何营 04/21 01:23
284F:→ Void956: 收的功能 04/21 01:23
285F:→ Void956: 没有老板会想浪费钱在 无法赚钱的东西上面 这就是现实 04/21 01:25
286F:→ Void956: 还有 这世界上没有所谓好的CODE 04/21 01:27
287F:→ Void956: 对你来说好的CODE对其他人而言 未必是好的CODE 请先搞清 04/21 01:28
288F:→ Void956: 楚这一点 04/21 01:28
289F:→ Void956: 光思维方式就不一样了 所以建构出来的CODE 本身就会有差 04/21 01:29
290F:→ Void956: 异 04/21 01:29
291F:→ Void956: 不是你看不懂 或者 看不惯的CODE 就是烂CODE 04/21 01:32
292F:→ Void956: 在台湾 写好的CODE未必有高薪 牵涉到职场 文化生态 04/21 01:33
293F:→ Void956: 这是个很现实的问题 理想VS薪水 二选一 04/21 01:35
294F:推 WiseLin1125: 还没到大神level的话,推理想vs薪水二选一 04/21 07:19
295F:→ sorryla: 自己遇不到好老板就说世界上没有,看来看的还不够多 04/21 10:34
296F:→ sorryla: 好CODE有很多可以讨论,但烂CODE通常一看就知道了 04/21 10:35
297F:→ sorryla: 一个function塞五千行,copy paste重复code,命名乱用 04/21 10:37
298F:→ sorryla: 如果你是有能力写好但故意写烂,只能说找自己和别人麻烦 04/21 10:39
299F:→ sorryla: 如果是本来能力就写不出好CODE,那也不用说啥写好CODE未 04/21 10:40
300F:→ sorryla: 必有高薪这种话,因为你从来没有踏进那个门槛 04/21 10:40
301F:→ sorryla: 就跟考不上四大的人最爱讲四大出来也不一定有高薪一样 04/21 10:41
302F:→ Void956: 一个func里面5000多行 code 现在正常运作 你赶去改它吗 ? 04/21 12:20
303F:→ Void956: 改了 以後出 Bug 算你头上 你要背黑锅吗? 04/21 12:21
304F:→ Void956: 然後你改善它後 客户没有感觉 你觉得 老板会愿意让你花 04/21 12:21
305F:→ Void956: 那种诡时间去做吗 ? 04/21 12:21
306F:→ Void956: 好老板有是有 但是很看机率 04/21 12:22
307F:→ Void956: 但是大多人都是 非洲血统而不是欧洲血统 04/21 12:24
308F:→ Void956: 重点是 大家都写烂code 你写好code 那出问题的 肯定是你 04/21 12:35
309F:推 Argos: 到底在讲什麽碗糕啦?烂code之所以会被人唾弃 是因为烂code 04/21 17:26
310F:→ Argos: 「影响」到人或公司了啊?对人或公司没影响谁管它啊 到底搞 04/21 17:26
311F:→ Argos: 不搞得清楚状况阿?在那边说烂code不改它根本很稳没事?讲 04/21 17:27
312F:→ Argos: 这什麽干话废话?公司产品通通都不会变不会改 谁管他code长 04/21 17:27
313F:→ Argos: 怎样?东西很稳 谁要去动它? 04/21 17:28
314F:→ Argos: 今天就是因为「需求一直在变」「东西一直在改」所以才要你 04/21 17:28
315F:→ Argos: 把code写好一点 func五千行你不改它当然没事 但每周都有新 04/21 17:29
316F:→ Argos: 需求 三天一小改五天一大改 这能不出bug?这不分层行吗? 04/21 17:30
317F:→ Argos: 什麽烂code定义是啥?很简单就是这东西整天要改 然後你工程 04/21 17:31
318F:→ Argos: 师整天都改不好 改东错西 改南错北 整天出bug老板一直该 04/21 17:31
319F:→ Argos: 一打开code大概90%是垃圾啊 04/21 17:32
320F:→ Argos: 今天讨论的重点就是在这边 一堆还在那边一直跳针跳针跳针 04/21 17:32
321F:→ Argos: 是在跳什麽鬼东西啦 对墙璧讲话腻啦? 04/21 17:33
322F:→ Argos: 讲什麽烂code不改他很稳又没差?烂code稳稳的我干麻去动? 04/21 17:33
323F:→ Argos: 阿就是今天就是在讨论有需求有改变时的状况是在跳针三洨啦 04/21 17:34
324F:→ Argos: 一堆写code真的都活在自己世界耶 自己设乱设前提讲一堆屁 04/21 17:35
325F:→ Argos: 我最後再讲一次 重点在「改变」 04/21 17:36
326F:→ Argos: 改变改变改变改变改变改变改变改变改变改变改变改变改变改 04/21 17:36
327F:→ Void956: 好code 烂code 定义很模糊 04/21 17:45
328F:→ Void956: 观点不同答案也不同 04/21 17:45
329F:→ Void956: 对老板来说 能赚钱的Code就是好code 04/21 17:47
330F:→ Void956: 对开发团队来说 好完成任务需求的 就是好code 04/21 17:48
331F:→ Argos: 问题就是你根本没有办法完成任务需求阿XDDDDDDDDDDD 04/21 17:49
332F:→ Argos: 老板要赚钱开一堆需求 开发团队写垃圾狂出包 04/21 17:49
333F:→ Argos: 你不因应这些一改再改的需求作封装作架构 还在一个func五千 04/21 17:50
334F:→ Argos: 行?阿这不是写垃圾是啥?重点是还引以为傲 04/21 17:51
335F:→ Void956: 而团队内正常是大多数人的公认好不好 04/21 17:51
336F:→ Void956: 不过也常常是老大说的算 04/21 17:51
337F:→ Void956: 那你就得跟老板说 你要改那坨很鸟的Code所以 相关功能到 04/21 17:52
338F:→ Void956: 时候要重新测试 04/21 17:52
339F:→ Void956: 很多时候这种东西都是前人留下的东西 04/21 17:53
340F:→ Void956: 虽然我也讨厌烂code但是很多前人留下来的烂code 你还是必 04/21 18:01
341F:→ Void956: 须解决 04/21 18:01
342F:→ Void956: 这就是现实 04/21 18:01
343F:→ Void956: 另外很多好code 04/21 18:01
344F:→ Void956: 经过多次需求变更後 04/21 18:01
345F:→ Void956: 会变成烂code 04/21 18:01
346F:→ Void956: 而上头不会给你时间去解决他们 04/21 18:01
347F:→ Void956: 这就是现实状况 04/21 18:01
348F:推 sharku: 回楼上 改的时间就可以慢慢解决了 不能解决是你的问题 04/21 19:44
349F:→ Void956: 问题就是上头不给时间 04/23 10:20
350F:→ Void956: 另外你以为你改完就没事了吗? 04/23 10:28
351F:→ Void956: 你怎麽验证你有没有该的正确? 04/23 10:28
352F:→ Void956: 以及到底改善多少? 04/23 10:28
353F:→ Void956: 这都要花时间 04/23 10:28
354F:→ Void956: 你来上班 对老板来说就是烧钱 04/23 10:28
355F:→ Void956: 改完後对於 客户而言没有感觉 04/23 10:28
356F:→ Void956: 这种修改你要怎麽说服老板给时间? 04/23 10:28
357F:→ sharku: 看来是位不写测试的朋友呢 04/24 21:44
358F:→ Argos: 他会跟你说写测试要花时间 而且写了测试也不一定没bug 嘻嘻 04/24 22:51
359F:→ sharku: 不写测试->改A坏B->改很慢->没时间->怪老板 04/24 23:11
360F:嘘 accessdenied: 真把写测试当万灵丹的天真娃 04/24 23:20
361F:→ sharku: 楼上在说自己吗? 但没写测试真的废,不否认 04/24 23:43
362F:→ Void956: 楼上的老板真有闲钱资源可以玩啊 要不要报一下名号啊 04/25 19:22
363F:→ sharku: 我涵盖率没个60~70%是不能放心的 也从没delay过时程 04/25 23:49
364F:→ sharku: 不知道写测试会慢的理论哪来的, 写太慢吗还是? 04/25 23:50
365F:→ sharku: 不会写测试也没关系啊,学就好了,但这种论调真的呵呵 04/25 23:52