‌公司最近新入职了一个三四年工作经验的程序员,自己写了一套编程框架,总共三万多行,说是要接下来的项目想要用自己编写的编程框架来写,于是我劝他,不管这个框架他认为多好,暂时还是放一放,但是,这个程序员很不理解,一直问我为什么,我即使解释了,他似乎也听不进去,最后把我搞急了,对他说:“不行,我走?”

打开网易新闻 查看精彩图片

这个程序员下称小李,因为招小李时我不在公司,所以是老板亲自面试的,入职以后,老板就想让我带带他,让我看看他的能力到底怎么样,而我手上正好有个项目快验收了,但是验收前还有一个需要解决的小问题,问题也不复杂,我认为即使是刚毕业的程序员,只要不是太差,大概要全职花一个星期也能解决这个问题,但是我现在手上有其他项目也很紧,所以这个事情就一直拖着,正好小李来了,我就准备让他去解决!

这个快验收的项目,出现的问题是可以独立出来的,而我写的这个项目总共有将近15000行代码,项目框架是我根据公司的项目情况写出来的,其中,有将近3000行是框架代码,比较简单,剩下的都是业务代码,本身代码量不多,但是理解这套框架和业务代码也需要时间。为了不影响小李的试用期考核,于是我决定,将项目遇到的问题独立出来,让他先解决,然后我再告诉他怎么在正式项目代码里面添加他写的代码。

吩咐完这一切,我就去忙别的事情去了,转头回来时,发现小李正沉浸在自己的代码世界之中,我习惯性地站在他旁边看了一会儿,紧接着我就皱起了眉头!

我看小李在IDE里面打开的项目似乎不像刚刚新建的,这里需要解释下,我们公司所使用的技术栈是C#,通常我们在新建一个项目时会先建一个叫作“解决方案”的东西,它就是一个项目的最底层的文件夹,解决方案下就是实际的项目代码,像一些通用代码,或者是分过层的代码,基本上都会在解决方案下面通过新建项目独立出来,主项目引用即可,当然,也可以引用外部解决方案的项目,这种引用,其实就是项目依赖。

我之所以说小李的项目不像是新建的,是因为他一个解决方案下总共引用了将近二十个其他项目,我以为他不在干我安排给他的活,于是就问他他现在在做什么。

结果小李回答我,正在做我安排给他的工作。

我不解得问:“但是,我看你现在这个项目不像是新建的!”

小李似乎有点骄傲得跟我说:“对,这是我自己搭的框架!”

我想都没想,直接告诉他不要用,然后他问我为什么!

因为我前面说了,他写的代码最后我是要集成到我现在的项目里面去的,并不是想要给他练手的意思,他如果用其他框架且,最后又怎么集成呢?

结果他回答我:“没事,我这边的项目引用很灵活的,到时候直接引用一下包就可以用!”

听他说完,我愣了一下,然后反问:“引用你这将近20个项目的包啊?”

他点点头!

最后一番沟通下来,他还犟得很,非要用自己写的框架,从头到尾就没松过口。

最后把我搞急了,我脱口而出:“要不你来坐我的位置,我走?”

我不用他框架的原因很简单。

第一,经过沟通,我发现他自己写的这套框架总共有三万多行代码,就像我刚开始说的,我自己为公司写的项目框架总共也就3000多行,在这种情况下,我都不敢轻易让一个刚刚入职的程序员去用,更何况是一个已经写了三万多行的代码框架,按道理,你一个刚入职的程序员应该琢磨的应该是现有项目的情况,而不是盯着你过去写的代码不放!

第二,即使他最后能把项目问题解决掉,我们还要考虑维护成本。

首先,我们不能为了用框架而去用框架,目前GitHub上成熟的、能够为我们公司所用的框架有很多,我们为什么不去用?肯定有原因嘛!

此时,不管小李写的框架有多么好,我也得暂时放一放!

首先就是理解小李这套框架的时间,如果不经过专门的培训,你让一个程序员去研究一个三万多行代码的框架,即使是全职去研究,我估计没有十天半个月也下不来吧!

然后就是即使我愿意让小李用他的框架去解决现在的问题,但是一想为了解决一个小问题,后面要引用将近20个包,我想想都冗余!我自己现在项目用的代码,框架本身也不超过5个引用!

其次,现在这个项目是我和他在维护,后面万一我和他都有事,这个项目出现了问题,接手这个项目的其他同事不光要研究我这15000行代码,还得研究他那三万多行代码!想想都能把人逼疯!

除非他是研发总监级别的人物,可以让大家强制学习他写的框架,否则谁面对这三万多行代码不头疼啊!以后这代码大概率也就只能他自己来维护了!

第三,有个实际的问题!那就是他才刚入职!

即使他写的框架代码写得比我写的代码还要优雅、效率比我写的还要高,万一他没过试用期呢?

说到最后,我感觉小李都对我有意见了,看我的眼神感觉我像是在欺负他,搞得我都有点不好意思了!但是我一想,心软不行,于是让他暂时抛弃这套框架,重新新建一个项目写!

结语

我觉得,不管他写的框架有多么优秀,现在这种情况都不是用的时候,等大家都有时间了,他再去内部推广他写的框架也不是不行!好的东西,我们是乐于接受的,不管他工作经验有几年,只要是好的东西,我都乐于学习!

但是,话说回来,如果抛开框架,代码就写不了了,这才是真的有问题!