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

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

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

流程更规范

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

项目更深度

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

基建更完善

所有内部工具都是自研的,没有网络问题,遇到问题可以找人修,不行还能自己 PR 。
8114 次点击
所在节点    职场话题
35 条回复
wenlele
2020-07-12 07:19:11 +08:00
原来野生这么“野生”啊 = =

有点理解为什么有些关于程序员基础技术素养的书总建议要做 code review,要搭建自动化构建流程,要将代码规范自动化起来之类的话。从我的理解,这不都是常识吗?
peapods
2020-07-12 08:09:34 +08:00
@wenlele 他的意思是相对于小厂吧😅
becauseOf
2020-07-12 09:16:36 +08:00
Java 转前端?
wenlele
2020-07-12 09:23:20 +08:00
@peapods 嗯,你指正的对。
hantsy
2020-07-12 09:43:55 +08:00
阿里的相当混乱,写测试,做自动化测试的项目估计没几个,看看阿里开源的项目就知道样子了。大部分人和一般公司一样,出了问题还是靠人的嘴扯皮,还是人肉测试,人肉运维,反正 996 可以加班赚加班费的嘛 。

@wenlele 这些本来就是常识啊,我开始工作的时候,工作主要是 70,80 后,对这些东西代码质量等都有公司的要求,那时候 CI 可能没有今天这么丰富,用 Apache ANT 时代的只知道有经典的 AntHill 。

现在 CI 都云化了,这些东西给以前简单多了。只是在国内的新一代的程序员中,这些都成了装逼,不符合国情,拖延进度等等借口。
Loserzhu
2020-07-12 09:44:36 +08:00
那么难用的蚂蚁开发者工具原来就是楼主搞的😂
wenlele
2020-07-12 09:53:59 +08:00
@hantsy wow 。突然想到一年前看到抖音里某阿里研发部门的视频,一个程序员问另一个程序员写不写单元测试,对方说当然不写然后不屑地呵呵一笑,然后问的程序员也表示露出了表示认同的邪笑。当时我还觉得应该是开玩笑的段子,看来有可能是真的。

在微软,自动化测试还是相当重要的。没法自动化测试,改代码的代价太大了。我们没有单独的测试和运维,全是工程师干;也许这样自己就不想给自己挖坑了。
jason94
2020-07-12 09:54:06 +08:00
每天几点下班😳
utodea
2020-07-12 11:01:24 +08:00
@hantsy @wenlele 阿里内部虽然没有一致的要求,写不写单测和自动化测试完全取决于是否核心应用、基础设施、程序员素养。
1.核心应用和基础设施:单元测试、CR 要求是必须的,自动化测试会有独立的测试人员来写,集成测试很多应用已经基于线上采集的真实流量来测试了,这对于核心应用都是必须的。出了事情大家都得背锅...
2.非核心应用(业务应用):是否写单元测试完全取决于程序员自己的素养,而 CR 都同样也看团队主管或者程序员的自信心,对于容易出问题的代码大家都会互相帮忙看看。这时候自动化测试一般就没人来写了,而集成测试还是必须的。
3.以我个人的拙见,单测、CR 、自动化测试本质是软件质量和效率,而质量、效率本质是为商业服务。一个大概率只用一两次的功能有必要花数倍的时间去做这些吗?
raaaaaar
2020-07-12 11:55:36 +08:00
代码规范,自动化部署,测试这些东西一般自己都能学吧,我还在学校经常看 github 就有意识学这方面的东西了。。
fengjianxinghun
2020-07-12 12:16:46 +08:00
@utodea 业务应用代码写单测真是浪费时间。。。说不定明天需求就改了。。一直在小公司混,从来没见人写过什么单元测试。。
fengjianxinghun
2020-07-12 12:17:47 +08:00
@wenlele 一般常识,写自动化测试时间是业务代码的 2-3 倍,也就微软会给你这么长工期。。
azh7138m
2020-07-12 13:03:42 +08:00
实际上很多开源项目是更加规范的
提交后会有大量的自动化测试+预览

大点的开源项目会有 good first issue 的 issue,是用来熟悉项目的

基建完善见仁见智了。。。
第一周看了天马 /奥创 /dx,这轮子一层又一层,看得我十分迷惑

没有网络问题是啥,我平时看的很多文档还是加载慢,得用自己的 **,而且园区出口 ip 虽然与 ** 一个网段,但是似乎并不走 CN2,也很迷惑

感觉阿里的数据平台不如字节的 Data 简单易用

感觉 alilang 体验也不如字节的 Seal,第一次连的时候那个提示我就没看明白

阿里很多英文文案 /场景感觉没有被 review 过,混着中文和词不达意的问题很多
azh7138m
2020-07-12 13:08:37 +08:00
说到小程序 IDE
我是用 VSCode,所以自己做了一份简易的标签提示
https://github.com/muzea/ali-mp-custom-data/blob/master/ali-mp.html-data.json

我看 IDE 似乎是自己嗯糊的一个提示,还带着捉鸡的 snippets,不考虑迁移到标准的 custom data 上面吗?
https://code.visualstudio.com/blogs/2020/02/24/custom-data-format
blurh11E27
2020-07-12 13:20:57 +08:00
那图标就像便秘了一样
yuanfnadi
2020-07-12 13:21:32 +08:00
@raaaaaar 我这些都学过,也参与过贡献过的开源项目 ( VS Code ,Ant Design )。

自己的开源项目 lint CI 持续集成都有搞。


就拿 VS Code 说,他们有专门团队来维护,你除非自己入职,不然就只能修修小 Bug,也没人来带你熟悉项目。
yuanfnadi
2020-07-12 13:22:16 +08:00
@jason94 9:30 吧,上家公司虽然 6:00 下班,但是我还是会呆在公司看代码,所以对我来说差不多。
wenlele
2020-07-12 13:23:35 +08:00
@fengjianxinghun 不做自动化测试的代价可不小。

即使最后是别人再修改代码后引起线上故障,复盘的时候如果没有自动化测试把住缺陷,根因会被认为是一开始没加自动化测试。 写自动化测试,主要目的不是测试这次改动,而是把住以后的改动。

如果说是添加自动化测试成本太大,导致大多数人不想做这个事情,那么在总结事故的根因的时候会认为缺乏高效的自动化测试的编程框架也是其中一个原因,需要相应的团队在中长期( 1-3 月)解决这个问题,比如优化自动化测试流程,从而减轻写自动化测试的成本。

为了赶工期而跳过写自动化测试,我觉得这只是将一些工作放在未来而已。在工程上,我并不觉得发生这种事很稀奇,哪怕在微软。只是我们在做这个选择的时候,明白要承担的风险,以及需要后续做减轻这个风险,比如之后一周内补自动化测试,等。

如果为了短期的工期牺牲了代码缺陷率,未来的工期怎么都快不了了。不过,我不知道在小公司是不是不需要考虑未来。。
yuanfnadi
2020-07-12 13:24:22 +08:00
@azh7138m

内部有提供 vs code 插件,可以去搜一下。
wenlele
2020-07-12 13:28:02 +08:00
@utodea 谢谢分享。基本认同。 工程的基础设施是很重要的,如果测试的基础设施太差,我们测试的欲望也会受打击。如果测试的效率成为了产品工程流程的瓶颈,自然也会投入资源去改善。

我对最后一句话有点疑惑,如果大概率只用一两次的功能,为什么要实现它? 😂

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

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

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

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

© 2021 V2EX