程序员效率的奥义

自我感觉还是蛮在乎效率的人。为了提高效率,我特别重视如下几点:

工具化

我是个典型磨刀不误砍柴工的人。

2011年的时候,在开发一个项目前,我先花了几个礼拜自己开发了一套Web框架。

因为我之前做过一段时间的Ruby程序员,一对比,我发现,Java的Web框架都太不好用了,Java的ORM框架也不好用,Java 的MongoDB Client 也不好用。于是我决定开发一套一站式Web框架。

正好除了搜索的任务以外,公司希望做一个全站通用的标签系统。当时在选型上,老大说用Spring,我当时说,给我点时间,我自己开发一套开发框架出来,老大说,你有信心做好么,我说有。老大给予了肯定的答案

来自:这些年,我工作上走过的路

这套Web框架就是ServiceFramework。自己现在很多开源项目也都是基于这套Web框架是做的。比如StreamingPro编译的时候依赖的Web库是ServiceFramework,配置引擎则是ServiceframeworkDispatcher,都是自己非常常用的工具。

其实都是造轮子,然而这些轮子我们先不说它是否优于其他相似的开源项目,至少我对它们是把控力的,而且解决的也是我工作中比较常遇到的问题,所以用了起来特别的顺手,自然也就效率很高。

所以,积累自己的工具库,是非常有必要的。再提下刚才的StreamingPro,它的诞生是为了解决我使用Spark的问题。而为了解决运维相关的问题,我和同事也做了非常多的工具,有些我们花了一年以上的业余时间在持续完善。

预见和练习

虽然很多人似乎不Care所谓语系,不Care所谓工具,总觉得自己掌握了开发的真谛,其他一切我只要用的时候学下就能搞定了。

实际真不是这样。我们还是以语言为例,我学Scala只用了几天时间。在等火车,以及在火车上把官方的tutorial 看完,觉得差不多了,然后写了些简单的程序后,就能写一些业务了。然而我真正用顺了,用的不堵了,却花了几年的时间。对于一个不趁手的语言,代码质量是否能保证我们先姑且不论,其实也严重影响了开发效率。

所以我工作中潜在的可能会用到的东西,我都会先花很多时间去调研和练习,等真正用到的时候,就能如鱼得水,随心所欲。比如Scala,我早先只是简单用了下Spark,我完全可以用python或者Java去开发Spark 应用。但是我觉得Scala是有必要学习的,所以我花了很多时间去做练习。所谓练习其实就是真的把他应用到项目上。我之前有很多项目是java/Scala 混合的,这就为我后续对Spark Core的研究做好了铺垫。

所以对于一个程序员,对于自己工作技能的预见性能让你未来越来越游刃有余,而高强度的练习,则保证你做事情可以做的很顺手,不会用起来畏首畏尾。

打破惯性

所谓语言之争其实某种角度是守旧势力之争。每个势力都不愿意深入到别的地方看看,然后就说自己的地方是最好的。程序员是拥抱变化的,体现在程序员常说,一天不学习,就感觉自己进入了古代。然而程序员又是害怕变化的,对于自己不熟悉的东西,总是会比较排斥,这或许也是人类的天性。

尤其是在时间比较紧张的情况下,我们会常说,用最笨的办法先把这个解决了吧,这其实是在用蛮力替代一个良好的思考。好比命名可以用一个for循环解决的问题,你非要复制黏贴100遍。

所以,喜欢调研和测试新技术的程序员,往往是具有打破惯性的特质的群体。他们在不断的尝试过程中,不断的更新换代自己的武器,让自己保持某种先进性。这就好比一个国家不断更新自己的武器装备,一家工厂不断更新自己的机床车间。

让你身边的人也高效起来

这个是我直到今天才感悟到的。我一直努力让自己更加高效,不让时间虚度。然而当我们面临越来越复杂,越来越繁琐的任务时,我们不得不借助于团队。道理我都懂,然而却一直不上心。我们一直说团队是最重要的,然而我们终究并没有把心思完全放在团队上,为了自己的那点小九九。

只有身边的人也如你般高效,才可能释放出你来去做更多让更多人高效起来的事。更多的人更加高效,即节约了他们的生命,也反过来再次让你变得高效。

当你能够让身边的人也越来越高效,或许你就真的到了高效的最高境界。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏后端技术探索

Uber工程技术栈(一):看曾经的独角兽背后用了哪些技术

虽然我们希望Uber的用户界面简单,但我们在背后设计了复杂的支撑系统,处理棘手的交互,支持海量的流量。我们将原来的整体式架构分成了许多部分,以便伴随业务成长而扩...

13950
来自专栏高性能服务器开发

在北京做Java开发如何月薪达到两万,需要技术水平达到什么程度?

有人提到这个水平不止2w,其实工资是跟面试表现有关的,也跟其他综合水平有关,比如你是985,top10,或者研究生学历,也或者懂点node,懂点大数据等等,或者...

20420
来自专栏云计算D1net

混合云或成企业云计算最佳选择

随着云计算出现在人们的视野之内,也出现了不少新兴术语,如公有云和私有云,这两个词很好理解,但混合云就不是那么好理解了,它对不同的人有着不同的意义和解释。 也许理...

34760
来自专栏Java社区

加入我们,终身免费获取本公众号所有视频资源

26240
来自专栏后端技术探索

漫谈大型网站架构

作者介绍:陈康贤(花名龙隆),淘宝技术部技术专家,著有《大型分布式网站架构设计与实践》一书,在分布式系统架构设计、高并发系统设计、系统稳定性保障等领域积累了较为...

11410
来自专栏大魏分享(微信公众号:david-share)

工业4.0在Openshift上的落地

工业4.0即第四次工业革命: 由自动化和数据驱动的下一阶段工业发展。它是物联网、工业物联网、大数据、云计算、网络物理系统、人工智能和机器学习等各种技术的统称。预...

72420
来自专栏云计算D1net

云迁移面临遗留安全工具挑战

专为数据中心设计的传统安全工具是无法在云环境中正常运行的。根据安全管理人员的说法,这需要新的方法。本文讲述了企业该如何在夹缝中生存。 与众多企业一样,Fenwi...

32950
来自专栏非著名程序员

GitHub 十年,感谢有你

本文是 GitHub 联合创始人兼 CEO:Chris Wanstrath 在计算机世界杂志写的文章。

17050
来自专栏场景录小程序

这几种情况下,没有公众号的小程序将会“失效”

这个问题没有固定的答案,公众号服务于营销与信息传递,小程序围绕着产品与服务。两者之间可以有交集也可以分开。如张小龙说过,小程序更多是以服务来触发,也能做营销,在...

15540
来自专栏云计算D1net

注意这五点 跳出云供应商的计费陷阱

有一个公认的事实是,将业务迁移到云上将有助于节约小型业务的成本。然而,使用云服务是要付出一些关联代价的,虽然那些代价一开始看起来微不足道,但如果你不加以关注的话...

28140

扫码关注云+社区

领取腾讯云代金券