老读者都知道的,我在三线小镇洛阳工作。公司很小,开发人员最多的时候也就十来个,最少的时候也就我一个光杆司令。由于掌握着公司所有的核心代码,所以我一直很嚣张。老板也拿我没办法,有时候为了追加一个功能,还得看我脸色。而我呢,经常甩给老板的一句话就是:“这个需求技术上无法实现。”
有时候,老板被我逼急了,就在办公室大发雷霆,但我仍然毫不示弱:“实现不了就是实现不了,你发脾气也没用。”老板的需求也没有太过分,无非就是让我追加一些类似“自动赚钱”的功能。哈哈哈,开个玩笑。
说句实在话,老板有些需求的确很难在技术上实现,但有些不是的。我抛出“技术上无法实现”这个说法无非是想堵住老板的嘴,因为需求是做不完的,还不如拿这些时间写点文章和各位分享一下。看到没,我对写作是真爱啊,对各位读者朋友们是真爱啊。
01、技术很渣
不得不承认啊,我的技术是很渣的。虽然已经有十年的工作经验了,但也就是一个初级程序员的水平。这话不是出于自谦,而是出于自知之明。
举个例子,自我批评一下。前几天我在某园上更新了一篇技术文,题目叫做《Stack Overflow 上 370万浏览量的一个问题:如何比较 Java 的字符串?》,我觉得写得蛮有趣的,蛮深入的。结果呢,被喷了,截图羞辱一下自己。
由于技术很渣的原因,有时候老板提出来的需求就会令我束手无措。记得有一次,他想做一个“二维码海报分享”的功能:用户点击“我的海报”,后台获取用户的微信昵称和头像后,根据自定义的海报模板,生成用户专属的二维码海报。
二维码海报我见过很多,大家应该也司空见惯了,但要我用代码实现出来,以前还真的没有做过。于是我就扔下一句话:“这个需求技术上无法实现。”
虽然技术很菜,但我不想自暴自弃。晚上睡觉的时候,我就在琢磨:“这个二维码海报还真的有必要花点时间研究一下,如果说这个需求都实现不了,可真的有点说不过去。”
第二天到公司后,我就开始动手研究。花了不到一个小时的功夫,我就有了大致的思路。
- 用户点击菜单的时候,获取用户名和用户头像的地址。
- 加载海报背景,并获取 Graphics2D 对象。
- 利用 Graphics2D 在海报上打印用户昵称。
- 利用 Graphics2D 在海报上打印用户头像。
- 利用 Graphics2D 在海报上绘制用户专属二维码。
- 将生成的二维码海报文件上传至微信的临时素材库。
- 调用微信 API 返回临时素材 ID。
思路有了,就需要动手实操。经过一番试错后,发现老板这个需求在技术上是可以实现的。等我把这个功能更新上去后,老板得意洋洋地拍着我的肩膀说:“王二,你真牛逼啊。”
PS:大家如果对二维码海报比较感兴趣的话,可以查看我另外一篇文章《Java生成仿金山词霸的二维码分享海报》,源码在 GitHub 上已经开源,地址如下:
https://github.com/qinggee/poster/tree/jinshanciba
说实话,老板拍我肩膀的时候,我有点脸红——“这个需求技术上无法实现”竟然成为了我的遮羞布。如果大家对技术有追求的话,请不要轻易地说出这句话。
02、懒得做
关于公司的事情,我很少提过。但经常有读者问我:“二哥,你在洛阳做什么工作呀?”为了满足大家的好奇心,这里就透露一下:做一个微信商城。
这下要失望了吧。其实不管做什么,只要能生存下去就不算差。我们还在“苟延残喘”,哈哈哈(苦笑)。
既然是微信商城,微信支付是少不了的。但老板偏偏不放过我,还要做支付宝支付。大家都知道的,微信公众号里是不允许使用支付宝支付的;也不能说不支持吧,需要跳转到手机自带的浏览器,复制一长串字符,再跳转到支付宝等等。特别麻烦,并且没啥必要。
基于这样的场景,我义正言辞地回绝了老板:“这个需求技术上无法实现。微信公众号,怎么支付宝支付嘛?要做你自己做!”
老板的脸色瞬间铁青。但还是得忍住,谁叫我这么横呢。
隔天,我们再碰面的时候,老板又贼心不死,非要我研究研究,说在某某个商城上就见到了支付宝支付;另外,微信支付需要有 90 天的试用期,试用期是没办法下发资金的,做支付宝支付很有必要,虽然支付不好用,但最起码可以解决下发资金的问题啊。
出于“给钱就办事”的职业操守,我极不情愿地开始了支付宝支付的研究,没想到,挺简单的。API 上说得清楚,SDK 也对支付做了相关的封装,于是我花了不到一天的时间就完成任务了。
等我把这个功能更新上去后,老板再次得意洋洋地拍着我的肩膀说:“王二,你真牛逼啊。”
说实话,老板拍我肩膀的时候,我脸上泛起了红晕——“这个需求技术上无法实现”竟然成为了我推脱的借口。如果大家对工作有担当的话,请不要轻易地说出这句话。
03、反思
在一线大厂的同学可能很少有机会像我这样,直接和老板硬刚,除非是公司草创阶段。但我想,应该免不了要和产品硬刚。
很多时候,产品提出的需求,总会认为技术上实现绝对没有问题,然后经过技术评估后,得到的反馈是不建议这么做,然后问题就来了:产品认为,是开发人员不想做,故意提出各种难题或者有意卡壳。
真的是这样吗?我想答案除了开发人员不想做,还有就是不会做。当然了,还有真的做不出来。
讲道理,“只要想做,没有什么是技术上实现不了的”这句话就等同于“世上无难事,只怕有心人。”要想反驳,绝非易事。但也有几个靠谱的答案,比如说“停机问题”、“钱给到位”。
就我们程序员自身的成长来说,出于对技术的敬畏,出于职业的发展,我们应该尽量少说“这个需求技术上无法实现”,多说“哦,我想一想,我研究研究。”
04、鸣谢
好了各位读者朋友们,以上就是本文的全部内容了。**能看到这里的都是最优秀的程序员,升职加薪就是你了。如果觉得不过瘾,还想看到更多,我再推荐几篇给大家。
如果大家有什么问题需要我的帮助,欢迎留言哟。如果想发泄一下情绪的话,求轻喷。
日常操作来了!如果是二哥的铁杆读者的话,求点赞,让更多需要营养的同学看到这篇文章。如果想要第一时间看到二哥更新的文章,可以扫描下方的二维码,关注我的公众号。bye-bye,我们下篇文章见!