【警告:评论区凡是类似『不现实』之类的蠢话的,直接折叠。】
【更新】
从评论区看,主要的不理解在于第6条。第6条的关键其实不在于具体的行数限制,而在于确保code review是可执行的。具体来说有以下几点:
关于一个功能是否能用100行写完。当然很可能是不行的。但是谁说一个功能要直接对应到PR的?我们希望工程师合理拆分功能,功能需求本身可能是一坨,但对应的技术模块可能是若干个,完全可以也应该一个一个来啊。我们还希望工程师合理规划,分步骤进行设计和编码,谋而后动。人经常高估自己的能力,觉得自己已经搞明白了,真的实现起来才知道不是那么回事情,结果做了很多无用功,走了很多弯路。人也经常低估自己的能力,觉得太难了,做着做着就放弃了。把大任务拆细拆小,能让工程师和技术管理者时刻心里有底,更容易摆脱这种高估和低估的困扰。
另外一些细节问题,比如feature branch、boilerplate code是否可以超过100行之类的?见评论区我的回应。
首先,你得要有流程。
其实让新人按照流程开发并不难,问题是你的描述显示出你公司根本就没有流程。也根本没有人来维护这个流程。
你希望凭空诞生一个莫须有的流程,然后在没有任何人维护流程的情况下它能够自主自然的运转起来,这是不现实的。
所以题主,你需要的是先建立你公司的流程,只要你真的建立好了流程,那么流程自然会出现在新人开发的过程中,无法规避,不会因为他是新人就变得不存在了。
高票说的那个方案,同样也建立在这个前提下,首先要有流程,然后还要有专人来保证这个流程的执行。如果那个 code reviewer 的人不存在,那么高票的那个方案就没法执行。
为什么 code reviewer 需要专人?因为如果让他写代码,他的产出可能比看代码要高;让他写代码,可能获得更大的成就感;让他写代码,可能会觉得更有趣。——对于大多数程序员来说,看代码都是比写代码更痛苦的事情,如果可以,不会有人愿意把时间浪费在看与自己无关的代码上。。。一个能写代码的人自然会抗拒 code review 这件事情,除非完全剥夺他写代码的任务,才能让一个人安心看代码。
我觉得需要引导正确的流程的是贵公司吧,一个程序员可以随便改改代码就上线?
很多新人刚开始的时候真的是战战兢兢的,生怕犯错,生怕问stupid的问题。反正就是诚惶诚恐的。作为老人,帮帮他们呗。让他们脱敏,一般大公司也有新人会犯错误的预期,大家都会遇到the first one million mistake,然后一般也是no blame的政策。
如果你想让新人按照正确的流程进行开发,很好呀!
那你先给新人写出规范的流程,然后让他们刚开始的时候学习流程,回答他们遇到的问题,手把手教一下重要的地方。
上面就是大部分正规it公司有的流程吧。而且不管是实习还是全职,刚开始肯定会给个一两周的ramp up,然后也有training sessions。跟着这些走完应该对公司的写代码,review代码,提交代码有个大概的认识,然后有问题就赶紧问。写两个starter tasks就差不多了。
而且一般mentor或是组里的人还算nice的,毕竟以后要共事那么久,大家也都是从啥都不懂开始的,最好还是对新人好一点点吧。
等他们搞个两三个月,能力提升了,也慢慢不需要手把手教了吧。