野生程序员在大厂三个月的体验

2020-07-12 00:10:47 +08:00
 yuanfnadi
我在小厂做了接近 2 年的 Java 后端,1 年多的 React 前端,前段时间跳槽到了福报厂当 webpack 工程师,说一下三个月的体验。

部门太多,不同的部门的体验完全不一样,我说的只是我的感受,不代表其他部门也是这样的。

流程更规范

代码提交有 CR,有自动化测试。发布讲究三板斧(灰度,监控,止血)。

项目更深度

做的是小程序 IDE,在外部真的很难接触到这么复杂的前端项目。虽然有开源的 VS Code,但是你只能生啃源码,没有人带你熟悉,给你小需求让你熟悉整个项目 /

基建更完善

所有内部工具都是自研的,没有网络问题,遇到问题可以找人修,不行还能自己 PR 。
8114 次点击
所在节点    职场话题
35 条回复
Jooooooooo
2020-07-12 14:17:47 +08:00
三板斧

可灰度, 可监控, 可回滚

很重要, 但是能每次上线都做好的人并不多
hantsy
2020-07-12 15:40:42 +08:00
@wenlele 赶工期可以说是国内我听到最多的借口了。国内的程序员都是自己机器跑一下就完了(然后测试人员测出问题,他们还有一句经典的话,“在我的机器上是没问题的”),然后依赖人工 Exploratory Test,按一些统计来看,这种测试方法覆盖率仅 15-20%,一不小心引发线上系统的致命漏洞问题,所以在产品变得复杂的时候,这种全部依赖人工才是真正的浪费时。结果就常常就引发了全员加班改 Bug,常常很多时间去找问题所在。长期的结果,对技术完全没兴趣,对工作仅仅应付老板。

一般项目只要超过三个月,写测试的收益就可以收回,开始阶段你可能会认为花了太多时间去做基础,没有将注意力转移到业务上来。如果长期的产品开发,到了半年的时候,你的产品已经上线一两个大版本,有一定种子用户,每次上线必须保证兼容性,这时候你就会发现,在项目初期,投入几周去重点做 Insfrastruture (定制一系列产品发布自动化流程 Pipeline 脚本)有多么重要。只有平时写代码花时间积累足够的测试,每次修改都通过 CI Replay 去验证所有的测试场景都不会因为代码变更而罢工,在产品进入相对平稳的阶段,才可以做到真正意义上的省人省力。
wenlele
2020-07-12 15:42:57 +08:00
@hantsy I can't agree with you any more.
uxstone
2020-07-12 17:53:56 +08:00
说到小程序 IDE, 特别想吐槽下
能不能不要在我的用户目录下创建那么多的隐藏文件夹 !!!!
配置文件啥的都统一到一个隐藏文件夹下很难吗????
bthulu
2020-07-12 18:12:39 +08:00
@uxstone 历史遗留问题, 要化大力气才改的了, 成本太高不合算
abcbuzhiming
2020-07-12 20:50:48 +08:00
@hantsy 赶工期才不是借口,你要是在国内呆的足够多的地方,就会明白技术实施依赖于组织框架,很多问题的根源指向老板,不是你技术人员想的那么美好
utodea
2020-07-12 22:06:46 +08:00
@wenlele 一次性功能其实在电商的活动类应用中挺多的,比如只是在某次大促的玩法非常业务化,这种功能做成配置化的成本又相对较高,很多时候这种功能只需要集中精力一两个小时就搞定了。

很多时候这种功能其实开发自己是知道沉淀不出来什么东西的,甚至很多团队是把这种功能集中放在一个独立的应用上,便于不影响核心功能,这时候基本就是开发做完功能自测没问题就提交给测试来测了,很少写单测;而 CR 就完全看开发自己有没有信心了,如果你自己觉得不放心就在测试测完后再提给有空的人来帮忙看看。
az22c
2020-07-12 22:34:21 +08:00
我要是楼主,连面试机会都没有。楼主的确很厉害
1010543618
2020-07-12 22:43:23 +08:00
说到开发规范最近能力才够参与一些被广泛的使用的项目,发现为开源项目贡献代码和产出公司的业务代码差距真大啊。

终于体会到什么是提交完代码可以去吃饭回来还没跑完测试,比如 jsdom 只跑一部分 https://github.com/web-platform-tests/wpt 的测试就得半个小时。。
1010543618
2020-07-12 23:11:11 +08:00
可能我接触的行业比较少,感觉做项目 /外包的都是几个人就能做 1 产品、1 UI 、1 前端 、1 后端,大的也就加上一两个前后端、加个测试,小的就去掉 UI 直接前端开搞,产品也去掉直接开发对需求。

有的东西只能内网搞,内网最多有个 Git 。能外网搞的项目想上 CI/CD 直接给你 Jenkins 的账号自己配,中间用什么技术也没太大的限制后来的人能上手就行,写不写测试没有要求,代码基本不用考虑合并也不用审。后端倒是可能有时候会有数据量很大的时候,但不管用什么技术能解决就好。感觉主要还是因为有的地方的需求就只是想有录入数据的地方,有一些页面并且上面有真实的数据,稳定性要求不高,有 bug 也能容忍,别出致命的问题就行。

但这么搞有一点恨不能忍,就是出了问题总得有人背锅,没有运维和测试锅就直接穿到开发头上了。
KunMinX
2020-07-13 00:26:58 +08:00
谈谈自动化测试:在回归测试上的效用比较高,因为总不能改一个功能,全部人力从头穷举一遍。
wenlele
2020-07-13 07:54:33 +08:00
@utodea 受教了。
hoythan
2020-07-13 10:26:37 +08:00
@wenlele 微软 日常 bug 这么多,看来自动化解决不了啥问题呀。
jethroWush
2020-07-13 14:29:09 +08:00
赶工期当如果是商业行为也就算了,当它称谓政治行为那就是不可抗力了
zhouyg
2020-07-13 19:17:23 +08:00
小程序 ide ?又卡又难受,求快速优化

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

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

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

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

© 2021 V2EX