前言
--- 文后有小彩蛋 ---
因为众所周知的全球性问题,在家躺了近三个月,期间老东家正月初五就催我项目进度,且又不赞同我远程办公,期间各种支持最后还是闹掰了,算了!直接一拍两散,"我要命!不要钱!",老子走人!
运气不错!整个期间一直有面试,但数量确实比去年少了很多!到深圳第二天拿了offer也就是今天要说的公司,从hr->面试->hr->薪资->offer整个过程没超30分钟。拿了offer心里有底了直接和老东家拜拜,办离职走人。
美中不足的就是:降职加薪,只有时间才能证明是否值得!
过程
这里不是要说面试过程,而是新员工入职阶段。
来新公司两周了,除了知道公司主要的运营业务外,了解的最清楚的就是企业文化和代码规范了,还专门安排了时间学习和考试,一个比喻可以恰当描述学习内容:我去酒店当面点师,酒店的培训是从小麦种植到研磨面粉。这是要培养小当家啊
整个学习周期要持续一个月,而且是非工作时间。

除了学习和业务无关的企业文化外,另一个学习重点就是规范了。规范细分为:Android、iOS、数据库、Java、前端等等,还有其他非研发规范。
其中Java的规范与阿里手册的内容有重合,但优点是添加了详尽的解释与示例,将以前项目中出现过的问题拿出来讲解。主讲人是代码审查人员,负责审查我们日常的代码质量,属于质检部。
这里带一下组织结构
整体的组织架构有:架构部、质检部(代码质量)、研发部、测试部、运维部
项目开始前由架构部负责出ER图、系统架构图、基础框架等(目前我还不确切了解),这个过程是和后端高工配合进行的,接着由研发部完成业务功能。
感触
在培训规范的时候我感触颇深。
作为研发人员每个人都有自己的代码风格百花齐放百家争鸣,随着级别升高这种差异会淡化。
也是因为这种人为的差异性,所以各个公司乃至业内都有规范约束,但即便如此我们看到的项目代码仍是一堆屎。毕竟有一颗老鼠屎的汤就是坏汤,更何况有好几颗!!
我也是作为leader后才发现规范是一个很难推广的事,类的命名、提交记录信息、模块的划分、成片的注释代码、成片的重复代码。。。。。。慢慢的我麻木了,团队这么多人改变意味着,沟通成本的增加、拖慢了项目进度更有甚者和你对着干。
久而久之,管理者有心无力,编码者放飞自我,这就是大家眼前项目的由来
直到今天我才看到刻薄但有效的管理方法。
解决
很简单就一个字“钱”,挂上KPI
以我司现在的要求为例
代码规范分了四个级别,审查人员根据具体的要求提bug,根据级别重量级不同扣分,月末直接挂钩薪资。

还好本人就是规范本规 o( ̄︶ ̄)o
彩蛋
培训Java代码规范的过程中有一条:在循环集合时先确定集合长度
例:
for(int i=0; i<list.size(); i++){
}
培训时讲师说每次循环时size()方法会损耗性能,但熟悉源码的猿会知道,此方法仅仅返回了对象内的变量而已。
int size=list.size();
for(int i=0; i<size; i++){
}
反倒是这种写法,平白无故多了个临时变量,给GC增加了根稻草。
也许是Java1.6之前源码有差异,有知道的留言告知。
有些不知道面试做何准备的,可以去学习下规范手册,把里面所有规范搞明白,规范为什么要求这么做。
能做到这些的人,不说是高级,但最差也得是个中级