程序员的遮羞布:这个需求技术上无法实现

简介: 老读者都知道的,我在三线小镇洛阳工作。公司很小,开发人员最多的时候也就十来个,最少的时候也就我一个光杆司令。由于掌握着公司所有的核心代码,所以我一直很嚣张。老板也拿我没办法,有时候为了追加一个功能,还得看我脸色。而我呢,经常甩给老板的一句话就是:“这个需求技术上无法实现。”有时候,老板被我逼急了,就在办公室大发雷霆,但我仍然毫不示弱:“实现不了就是实现不了,你发脾气也没用。”老板的需求也没有太过分,无非就是让我追加一些类似“自动赚钱”的功能。哈哈哈,开个玩笑。说句实在话,老板有些需求的确很难在技术上实现,但有些不是的。我抛出“技术上无法实现”这个说法无非是想堵住老板的嘴,因为需求是做不

老读者都知道的,我在三线小镇洛阳工作。公司很小,开发人员最多的时候也就十来个,最少的时候也就我一个光杆司令。由于掌握着公司所有的核心代码,所以我一直很嚣张。老板也拿我没办法,有时候为了追加一个功能,还得看我脸色。而我呢,经常甩给老板的一句话就是:“这个需求技术上无法实现。”

有时候,老板被我逼急了,就在办公室大发雷霆,但我仍然毫不示弱:“实现不了就是实现不了,你发脾气也没用。”老板的需求也没有太过分,无非就是让我追加一些类似“自动赚钱”的功能。哈哈哈,开个玩笑。

说句实在话,老板有些需求的确很难在技术上实现,但有些不是的。我抛出“技术上无法实现”这个说法无非是想堵住老板的嘴,因为需求是做不完的,还不如拿这些时间写点文章和各位分享一下。看到没,我对写作是真爱啊,对各位读者朋友们是真爱啊。

01、技术很渣
不得不承认啊,我的技术是很渣的。虽然已经有十年的工作经验了,但也就是一个初级程序员的水平。这话不是出于自谦,而是出于自知之明。

举个例子,自我批评一下。前几天我在某园上更新了一篇技术文,题目叫做《Stack Overflow 上 370万浏览量的一个问题:如何比较 Java 的字符串?》,我觉得写得蛮有趣的,蛮深入的。结果呢,被喷了,截图羞辱一下自己。

由于技术很渣的原因,有时候老板提出来的需求就会令我束手无措。记得有一次,他想做一个“二维码海报分享”的功能:用户点击“我的海报”,后台获取用户的微信昵称和头像后,根据自定义的海报模板,生成用户专属的二维码海报。

二维码海报我见过很多,大家应该也司空见惯了,但要我用手机号拍卖平台代码实现出来,以前还真的没有做过。于是我就扔下一句话:“这个需求技术上无法实现。”

虽然技术很菜,但我不想自暴自弃。晚上睡觉的时候,我就在琢磨:“这个二维码海报还真的有必要花点时间研究一下,如果说这个需求都实现不了,可真的有点说不过去。”

第二天到公司后,我就开始动手研究。花了不到一个小时的功夫,我就有了大致的思路。

用户点击菜单的时候,获取用户名和用户头像的地址。
加载海报背景,并获取 Graphics2D 对象。
利用 Graphics2D 在海报上打印用户昵称。
利用 Graphics2D 在海报上打印用户头像。
利用 Graphics2D 在海报上绘制用户专属二维码。
将生成的二维码海报文件上传至微信的临时素材库。
调用微信 API 返回临时素材 ID。
思路有了,就需要动手实操。经过一番试错后,发现老板这个需求在技术上是可以实现的。等我把这个功能更新上去后,老板得意洋洋地拍着我的肩膀说:“王二,你真牛逼啊。”

PS:大家如果对二维码海报比较感兴趣的话,可以查看我另外一篇文章《Java生成仿金山词霸的二维码分享海报》,源码在 GitHub 上已经开源。

说实话,老板拍我肩膀的时候,我有点脸红——“这个需求技术上无法实现”竟然成为了我的遮羞布。如果大家对技术有追求的话,请不要轻易地说出这句话。

02、懒得做
关于公司的事情,我很少提过。但经常有读者问我:“二哥,你在洛阳做什么工作呀?”为了满足大家的好奇心,这里就透露一下:做一个微信商城。

这下要失望了吧。其实不管做什么,只要能生存下去就不算差。我们还在“苟延残喘”,哈哈哈(苦笑)。

既然是微信商城,微信支付是少不了的。但老板偏偏不放过我,还要做支付宝支付。大家都知道的,微信公众号里是不允许使用支付宝支付的;也不能说不支持吧,需要跳转到手机自带的浏览器,复制一长串字符,再跳转到支付宝等等。特别麻烦,并且没啥必要。

基于这样的场景,我义正言辞地回绝了老板:“这个需求技术上无法实现。微信公众号,怎么支付宝支付嘛?要做你自己做!”

老板的脸色瞬间铁青。但还是得忍住,谁叫我这么横呢。

隔天,我们再碰面的时候,老板又贼心不死,非要我研究研究,说在某某个商城上就见到了支付宝支付;另外,微信支付需要有 90 天的试用期,试用期是没办法下发资金的,做支付宝支付很有必要,虽然支付不好用,但最起码可以解决下发资金的问题啊。

出于“给钱就办事”的职业操守,我极不情愿地开始了支付宝支付的研究,没想到,挺简单的。API 上说得清楚,SDK 也对支付做了相关的封装,于是我花了不到一天的时间就完成任务了。

等我把这个功能更新上去后,老板再次得意洋洋地拍着我的肩膀说:“王二,你真牛逼啊。”

说实话,老板拍我肩膀的时候,我脸上泛起了红晕——“这个需求技术上无法实现”竟然成为了我推脱的借口。如果大家对工作有担当的话,请不要轻易地说出这句话。

03、反思
在一线大厂的同学可能很少有机会像我这样,直接和老板硬刚,除非是公司草创阶段。但我想,应该免不了要和产品硬刚。

很多时候,产品提出的需求,总会认为技术上实现绝对没有问题,然后经过技术评估后,得到的反馈是不建议这么做,然后问题就来了:产品认为,是开发人员不想做,故意提出各种难题或者有意卡壳。

真的是这样吗?我想答案除了开发人员不想做,还有就是不会做。当然了,还有真的做不出来。

讲道理,“只要想做,没有什么是技术上实现不了的”这句话就等同于“世上无难事,只怕有心人。”要想反驳,绝非易事。但也有几个靠谱的答案,比如说“停机问题”、“钱给到位”。

就我们程序员自身的成长来说,出于对技术的敬畏,出于职业的发展,我们应该尽量少说“这个需求技术上无法实现”,多说“哦,我想一想,我研究研究。”

04、鸣谢
好了各位读者朋友们,以上就是本文的全部内容了。**能看到这里的都是最优秀的程序员,升职加薪就是你了。

目录
相关文章
|
前端开发 JavaScript 算法
程序员必须掌握的技术
程序员必须掌握的技术
97 1
|
程序员
你可能没发现你只是程序员不是工程师
你可能没发现你只是程序员不是工程师
109 0
你可能没发现你只是程序员不是工程师
|
前端开发 架构师 Java
1.5 从程序员到工程师
1.5 从程序员到工程师
|
设计模式 移动开发 前端开发
我的程序员之路——2015年和2016年至今
 这次也是创业公司,但与以往不同的是,起点很高,起步资金有1500W,而且给我开的工资破万,对我也很有吸引力。这家公司我待的时间蛮长的,有一年半,而且同事之间的感情也比前面两家要好。我在这家公司主要做PHP,兼顾页面的制作。
我的程序员之路——2015年和2016年至今
|
前端开发 JavaScript 程序员
我的程序员之路——2013年和2014年
我的程序员之路——2013年和2014年
我的程序员之路——2013年和2014年
|
Java 程序员 API
程序员的遮羞布:这个需求技术上无法实现
程序员的遮羞布:这个需求技术上无法实现
121 0
|
程序员
软技能,程序员编程之外的升值之道!
程序员,除了编码之外的软技能有哪些呢?《软技能——代码之外的生存指南》33岁实现职业自由、财富自由的作者给出了解读。
6466 0
软技能,程序员编程之外的升值之道!
|
设计模式 Cloud Native 算法
程序员修炼之路:你该知道的 7 个必经阶段
数据结构、算法、设计模式被认为是程序员必修的三大内功,你对设计模式有什么理解?你是什么时候意识到自己需要好好学习设计模式的?本文将分享作者多年编程道路上的一些思考和心得,以及对如何提升设计能力的几点建议。
程序员修炼之路:你该知道的 7 个必经阶段
|
分布式计算 算法 NoSQL
如果说程序员的硬通货是技术,那么软技能是什么?
程序员往往一心扑在编程技术上面,学习编程语言,算法,网络,自己子领域相关的知识等等。这非常正确,也是作为coder的核心竞争力所在,姑且称之为“硬技能”吧。 对于有一个程序员来说除了日常码代码之外,其实也需要很多编程之外的软件能,非专业上面的技能可以更好的展现你的情商,与人合作的能力等。
|
人工智能 安全 物联网
程序员:除了技术,还有什么更重要?
本文分享崮德老师关于危机感、结构化思考、演讲力及商业化思考方面的经验心得,希望能带给大家一些启发。

相关实验场景

更多