揭秘程序员在「外包」、「技术导向型」和「业务驱动型」公司的日常生活
这是代码架构设计上的一个review,是跟mentor或者leader对接确认的,在编写代码之前完成,避免设计不行,被全部推翻。这块也要写在github的issue,一方面为后人留下痕迹,便于后面维护或者迭代复盘。而且高层也经常翻阅issue,design review做的不好,也会被指出来,及时发现问题。 5.代码编写(阿里巴巴手册,UT,IT) 写好代码是新手的基本要求,不写低质量代码。这边要求按照effect java以及阿里巴巴代码手册进行约束,以及每写完代码都要通过UT或者IT进行覆盖。 6.Test plan 当你写完代码之后,你需要制定一个测试计划,也就是测试用例,去解决之前相同操作下会出现的bug或者验证你的新功能。 7.Test evidence 也就是Test plan制定完之后进行实施,将验证成功的截图进行保留,贴到issue,作为你完成功能的证据。 8.CI Continuous Integration-持续集成服务,它会自己运行构建和测试,反馈过程中是否存在Bug或者其他问题,看是否与我们预期的结果一致。我们是在Jenkins上完成的,当你的代码有点改动你就需要去跑CI,避免影响到系统的其他模块。 9.Code review 当你写完代码并且通过测试之后,通过pr的方式先给导师review,导师review完之后提交给leader,对于一些比较重要的模块,在leader看完代码之后还要进一步提交给CTO。看完这个你还敢提交烂代码?别说烂代码了,一个变量名定义的不好都得被打回来。 刚开始入职的时候觉得这些操作很烦,改一行代码就得去issue上面写一堆,而且也要跑个几小时的CI。当后来吃了几次亏,真香。别看除了代码编写还有很多其他操作,其他操作也是为了让你更好地去编写代码,帮你梳理整个开发流程,也不自觉地提升你工作的严谨性。所以到现在,我来公司解决的第一个bug,我都还知道Root cause,以及其他细节。其他人也知道,因为我都贴在issue上面。 由于我在第一段工作中养成很多不好的习惯,比如说代码写的又快又烂,debug各种log乱打,为了实现功能破坏了设计模式等等。所以在第二段工作经历中被骂的狗血淋头,国庆7天看了4本关于代码设计的书籍并做了总结,对项目源码进行深入阅读,学习一些设计模式等等。 在第二家公司,虽然被怼了很多,但是收获非常大,可以看我在第三家的表现。 ③业务驱动型 业务驱动型的公司处于外包和技术型之间,也是以实现功能为主,又要注重后期维护,对规范处于中立状态,不挖坑,不矫情。 由于我从第二家公司出来后,对代码有一定的洁癖,所以到了第三家公司一有空就重构项目代码,leader也赞同我的行为,经常找我聊代码设计和规范。我也主动申请要补充部门的开发流程规范,数据库的字段规范,并补全项目代码的UT、IT等等。这也是我能提前转正的原因之一。 四、如何在不同类型的公司提高核心竞争力 在外包公司,不能局限于一个点进行开发,外包公司需要的是全能型人才,哪里缺哪里补上。在外包公司不需要你技术多厉害,但需要你会利用现成的资源以最快的速度完成项目开发。你会的方面越多,公司需要你的地方也就越多,你得到的也更多。 在技术型公司,不需要你会的有多广,你只需要针对公司产品的一个点进行深入了解,不断地进行优化,这个点就是你的核心竞争力。再由这个点切入到相关模块,技术深度才是王道。 在业务驱动型公司,不能光会技术,当其他开发人员只会跟老板讲技术,而你能将具体技术落实到业务,并且能从业务层面反推到技术实现,老板能不喜欢吗?但也要记住,技术是生存之道,别顾此失彼,耍小聪明。 技术人员的核心竞争力终究是技术,但技术也分广度、深度、与业务结合的能力,在不同的环境下,应该学会取舍。 五、一些中肯建议 1.外包公司能不能去? 在没有更好的选择下,能去,有总比没有好。并不是所以的外包公司都是一个模样,说不定你的leader好,服务的又是又好又有钱的甲方,好吃好喝好款待。但大部分的外包还是不咋地,这边调查好背景就行。 2.技术型公司哪里找? 所有开源项目背后的公司都是技术型公司。比如开源Kylin的Kyligence,开源Dubbo、RocketMQ的阿里、开源Flutter的谷歌等等。而像阿里、腾讯这种大公司,每个BU就是一个类型的小公司,有些负责技术,有些负责业务,有些外包。 3.对于应届生的选择? 建议去技术型公司或者核心技术部门。从我的案例就可以看到,技术型公司对我一个整体的塑造帮助最大,可能贯彻职业生涯。当你习惯了低标准的东西久了,就很难对高标准产生兴趣。 4.我对于这三种公司的看法? 对于外包公司来说,我觉得会缺失「归属感」和「认同感」,毕竟做的不是自家的产品,还得去客户现场驻扎,而且对于外包的技术也是不太看好。 对于技术型公司来说,对于个人成长帮助绝对很大,但在这种公司由于周围都是level比你高的人,解决的问题也都是比较难的,所以无形中会有压力并且会产生焦虑。 对于业务型公司来说,最好是选择你比较擅长的并且有相关工作经验的业务。我第一段实习做的是电商项目,所以我现在的工作也是找的电商,毕竟业务逻辑都是相通的,就算之后跳槽,也会选择电商行业,毕竟除了技术,行业知识也是竞争力之一。 选什么类型公司,仁者见仁,可以根据自己的兴趣以及擅长的地方做选择。 【编辑推荐】
点赞 0 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |