掰掰手指, 试用期都快结束了

2017-11-26 21:25:07 +08:00
 fulvaz

嫌长的话就看两句话. 1.有人的地方就有江湖; 2.工程就是妥协.

以下内容的讨论语境是前端.


人情世故并不是简单的事, 懂得和会做真是两码事. v2 常常给人一种错觉, 如果我技术够牛, 我就能为所欲为. 然而做工程, 我觉得一半技术, 另一半是人.

糟糕的代码

落后的框架版本, 随意编写的构建文件, 随处可见的重复代码. <重构>中管这个为代码的坏味道, 应该考虑重构, 或者重新封装, 甚至书中给你提供了大量实战经验告诉你可以这样这样这样. 很美好, 很牛掰, 然后就掉进了过度设计的坑里面. 书里面没明确告诉大家的是, 什么时候应该重构? 什么时候应该处理代码中的"坏味道", 只是隐晦地说了几句, "软件工程没有银弹", 还有序里面对自己重构项目, 然后导致项目失败的经历.

书中"高质量"的代码和实战经验其实都是有代价的. 如封装, 封装可以隔离实体间的联系, 以降低耦合, 代码改起来容易, 理解起来也舒服. 然而封装的优点同时是其缺陷, 特别是写业务代码时, 由于业务变化, 封装时 api 设计不完善, 导致组件之间信息无法通信, 说白了就是需要的功能没有 api, 这时候要么用 hack 方法, 违背设计原则使父子组件直接通信, 要么引入全局状态管理, 要么写个全局服务共享状态.

都不是什么特别好的方案, 用 hack 方法那么为什么还有抽出两个组件? 全局状态管理添加许多代码只为了实现原本几行就能实现的功能? 软件工程充满争议的原因是到处都只能凭经验. 我得到的最大经验是, 先有点职业道德, 把事情做了, 然后再追求自己的匠人情怀. 何况菜鸡如我, 再怎么努力自己想, 还不如去看看人家的代码实际一点.

别人的代码

接手其他人的代码并不愉悦, 总会觉得"这 TM 写的是个啥?". 先收起质疑, 首先, 这是业务代码, 无论你怎么设计, 业务代码最后肯定看起来像坨屎, 需求一直在变, bug 一直在修, 不这样赶不及进度, 只能妥协, 大不了以后再补锅. 其二, 批判之前, 请了解这个项目什么时候开始的, 项目开发过程, 赶进度的代码高不到哪里去.

接手了, 可以减轻痛苦的方法是...沟通. 尽可能不引入新的依赖, 也不要考虑造轮子, 原来代码用了什么库, 封装了什么组件, 乖乖用就是, 看不懂代码就去找人家问. 遇到问题也不要想着自己解决, 都去问, 效率高太多(有时候太过独立也不是什么好事).

(对前端, 接手后代码尽可能不写页面......因为沟通过程很烦人)

沟通

如前面所说, 太过独立并不是什么好事. 我这个人很小开始就接触互联网, 搜索引擎玩得贼溜, 结果就是, 任何问题都 google 解决, 特别是那篇"如何正确提问"深得我心, 我自己也很不耐烦人家问我百度就能解决的问题. 然而, 过了. 事实上在团队中有疑问应该马上就提出, 首先如果只是小问题, 人家指点几下解决, 你能节约大量时间; 其次, 如果是大问题, 及早发现及早解决, 有什么不好呢? 我对自己解决问题的能力就是过于自信了, 导致浪费了很多时间.

我忽然想起了件事情, 我哥当年在大学, 距离期末考还有 3 天, 结果宿舍 6 个都没上过课, 书快 1000 页厚. 结果他们 6 个每人看 1000/6 页书, 然后第三天, 6 人相互教对方自己的看书得到的要点, 然后再通宵, 最后通过考试. 唔, 这大概就是团队的意义.

ps: 握草, 这不就是 map/reduce 吗 ps2: 忽然明白了城市人口增加的益处, 因为第三产业劳动中, 人多会效率变高, 然后做大蛋糕啊.

嗯, 下次做项目想把 PM 拉过来, 让丫给我说明白设计细节和交互细节, 还要拉项目负责人和我说明架构问题和注意事项, 特别是他挖的坑.

写得有点乱, 请见谅.

ps: mock 服务器很好用, 千万不要依赖后端给你的 api 做开发, 怎么死的都不知道.

4917 次点击
所在节点    程序员
19 条回复
NxiJSiOS
2017-11-26 21:36:26 +08:00
接手其他人的代码并不愉悦, 总会觉得"这 TM 写的是个啥?"
BensonJ
2017-11-26 21:43:56 +08:00
楼主肯定是在维护公司自己的项目吧?
suliuyes
2017-11-26 22:05:59 +08:00
太独立这点我深有同感。以前我也是什么都是自己解决,觉得自己解决能力特别强,就走入了另外一个极端。在团队中这样很不好。 不过如何把握度很重要,老是问别人,有时候别人也会怀疑你的能力。
tgxh
2017-11-26 22:07:12 +08:00
这 TM 写的是个啥?
azh7138m
2017-11-26 22:28:26 +08:00
> 违背设计原则使父子组件直接通信

这有啥,之前一个老铁直接修改父组件传进来的变量达到修改父组件 state 的效果,看呆了我
bigbyto
2017-11-26 22:36:32 +08:00
楼主能有这样的心态真不错,平时见过的程序员大多都是很有个性的,尤其是刚毕业不久的。
watzds
2017-11-26 22:46:44 +08:00
不错
calpamomo
2017-11-26 22:51:51 +08:00
"软件工程没有银弹",这一句话已经很重要吧。。。
fulvaz
2017-11-26 23:27:17 +08:00
@suliuyes 问 google 找不到的
zhlssg
2017-11-26 23:48:04 +08:00
最近也遇到这样的事情,有些怀疑前端的价值了
shyling
2017-11-27 01:51:11 +08:00
独立还是问别人要看具体问题吧。考虑一下自己解决的成本,沟通的成本,对方目前的情况等等。。

说实话,很多时候有人问我我以前写的东西... 也没什么印象,得看代码才能想起来
fenixan2010
2017-11-27 07:12:12 +08:00
总结起来就是“做工程太委屈我这样的牛人了”
carlclone
2017-11-27 07:36:43 +08:00
你可能需要提高搜索技巧
angith
2017-11-27 09:07:33 +08:00
为了重构而重构,不断的造轮子
llllllm
2017-11-27 09:30:31 +08:00
接收别人的代码总会觉得“这 tm 谁写的代码,写得很好嘛”,改了一会儿发现是自己写的。(#滑稽)
llllllm
2017-11-27 09:34:36 +08:00
另外后端文档写好的话还是不存在的,每次调整及时更新文档就还好吧~
agui2200
2017-11-27 10:25:25 +08:00
@llllllm 滑稽,你指望后端出最新的文档,还不如叫他给你生成 mock 服务
kuro1
2017-11-27 15:29:36 +08:00
试用期有点长
jiangfan
2017-11-27 23:10:56 +08:00
我遇到问题一般是自己先思考一下,然后再搜索,搜不到才会问同事;这样就避免了自己一遇到问题就打断别人的工作,毕竟同事不是自己的私人顾问。

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

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

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

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

© 2021 V2EX