2020 年的工作正式开启,大多数开发者的开工方式是云办公。对开发者来说,云办公意味着什么?如何开始云办公?云办公的发展趋势会怎样?基于此,腾讯云开发者社区联手知乎科技,从知乎云办公相关话题中精选内容落地社区专题「 开发者云办公模式洞察 」。
本文为相关“开发者云办公模式洞察之如何开始云办公“的精华问答分享。
一对程序员和产品经理在经历了漫长的沟通、纠结、讨论、争论、妥协、哭求、威逼、利诱……之后,终于在需求和实现上达成了一致。产品经理喘着粗气说,你说让你做点东西容易吗?我特么要会编程,有这功夫,Demo 都能写出来。程序员冷冷的说,你知道 Demo 离最终发布有多遥远吗?
多远?
Demo 是从望京到五环,发布是从五环到呼和浩特,走八达岭高速,还得堵车。
没那么远,这次需求就提到了八达岭!
眼看着就杵到官厅水库了……你们产品经理就不能自律一点?你看人家微信朋友圈的产品经理,发布了这些年,现在看起来还是一样一样的……
人家那叫节制!咱这产品特性,再节制,发布时就只能写「修复了 bug,提升了性能」了。你们才需要自律,多写点程序,少埋点 bug,咱们就能多几回迭代!
程序员不需要自律!
那你们需要自重?
你们才需要自重!我们需要休假……
讨论不欢而散,现在问题来了,程序员到底需不需要自律呢?
程序员当然需要自律,事实上每个人都应该自律!
生活上的自律
我们从一出生看到没熟人就放声大哭的开始,就以为自己是世界的中心,万事万物都是围绕着自己旋转。时光流逝,终于有一天,我们发现了事情的真相,连太阳都不是宇宙的中心,这时候我们获得了第一次成长。成长就会有边界,有诱惑,有些需要突破,有些需要节制。在这个阶段有一部分人拥有了自律的能力,并获得了第二次成长。很多人终其一生都不具备自律的能力,因为我们的大脑从来就不是个「顺从的仆人」。
我们给计算机输入指令,它就会严格执行,即使指令是错的。计算机不会顶嘴和自作主张(至少目前还不会),但是大脑不同,它很有主见。我们告诉大脑要多吃青菜少吃肉,多锻炼少赖床,大脑哈哈一笑不置一词,等看见望京小腰依然会冲上去吃得像个开心的孩子。
「你伤害了我,还一笑而过……」。嗯,这首歌就是给大脑写的。
如果你发现自己也是这样,别担心,这是基因决定的。在如何长出啤酒肚、乱花钱、睡懒觉、暴饮暴食方面,我们每个人都是行家里手,都是专家。特里·博纳姆在《本能》里写道:
日常生活中,存在这么两条路。一条路诱惑我们只根据自己的冲动和直觉来生活。这条路可以称为「宠物之路」,因为所有的动物,包括家里养的宠物狗走的都是这条路。饿了就吃,吃完就算。只在得到回报时才会献出忠诚。感觉什么好,就再来;什么有害,就躲开。
而另一条路没什么明显的标志,是充满抗争的路。在这条路上,我们说了算,自己当家。除了激情,基因还赋予我们意志力和有意识控制自己行为的能力。拥有这些特殊的人类能力,我们就能超越自己的动物本能。
第二条路就是自律之路。
写出自律的代码
很多人以为程序员呆板、枯燥、无趣,你们多自律啊,你们不学习还能干啥,世界上最厚的砖头书不都被你们啃了么?其实这是个彻头彻尾的错觉。与普通人喜欢扎堆扯淡相比,大部分程序员只是更喜欢和机器待在一起,但这不意味着他们不热爱生活。女生能投入多少时间在衣服和化妆品上,程序员们就能花多少时间在电子设备、游戏和互联网上。没有自我约束,刷个朋友圈,一下午就过去,再刷个美剧,一个周末就过去了。你会发现,除了规划外的事情,什么都没有发生。
目前看来,IT 领域是这个星球上知识和讯息更新换代最为猛烈的行业,无论你想成为全栈式(链接)、半栈式、一栈式,想要站立在潮头不到,你就需要不停的 keep on doing sth,刻意练习,让正确的事持续发生。要做到这一点,没有强大的内心和自我控制能力,是不可能实现。
除了生活中的自律,程序员还要写出自律的代码。
记得有一段时间设计模式非常流行,我在做 Code Review 的时候,发现一个程序员写的代码极度复杂,简单的业务逻辑,搞出了一堆接口、抽象类和类,相互依赖、扭曲、缠绕在一起。当你以为在执行 A 方法的时候,扑进去一看,原来丫在调用超类的子方法;当你纠结于某个实例是怎么 new 出来的时候,最终发现有些子类是配置到了模板文件里,用的时候动态加载。我把这个程序员叫过来,问,这么简单的业务逻辑你搞这么多花活干嘛?觉得我 Code Review 的工作量不饱满吗?他支吾着说,嗷,我只是想试验一下设计模式的弹性。我说您以为自己钱钟书呢吧,改去!
这不是自律的代码。
自律的代码应该是简单的、直接的、容易读懂的、便于调试的。剔除一切炫技和刻意的设计,返璞归真。很多人经常把 Java 和设计模式等同在一起,其实完全可以使用 Java 写出非常简单的代码,而不使用设计模式。专注于问题,而不是去追求最新最酷的语法,你会发现可以用自律的代码去解决问题,而且解决得干净利落。
其实有些设计原则已经包含了自律的逻辑在里面,比如:
- 定义含义明确的接口:通过接口名称和参数让调用者知道这个接口的功能。如果一个开发人员为了使用一个组件必须要去研究它的实现,那么就失去了封装的意义。
- 无副作用函数和职责单一原则:保证函数的独立性,对传入参数的修改,不会影响原来的对象。让某个类或函数尽可能具备且只具备一个职责,避免把更多的功能耦合在一个类或方法里。
- 概念轮廓原则(Conceptual Contour):通过坝或其他手段把一个湖分割为几块,在任何一块中投入石子都不会影响其他部分。把设计元素(行为、接口、类、聚合等)分解为内聚单元。通过重构,找出模型中经常变化的部分和基本稳定的部分,分别实现。
- ……
自律的代码可以让程序获得更长久的生命力,也会获得更大的空间和自由。最早死去的,最早被抛弃的,永远是那些不懂节制和功能繁复的代码,不要问我是怎么知道的。
身体上的自律
每个人都希望拥有一个健康甚至健美的身体,但是并没有,因为具备强大自控力的人始终是少数。饮食的控制就不说了,光是运动这件事已经可以刷掉95%以上的人。在大部分人的脑海里,去健身房跑40分钟再做半小时的无氧运动,无论有多大的好处,始终是一件苦差事。所以,健身房的常客永远是那些身材健美面色红润的美女和硬汉,他们早已克服了早期的不适,战胜了大脑,并享受了长期坚持健身的诸多好处,并乐在其中。
坚持有多难?我一个极为优秀和聪明的朋友,承诺了每天早晨7点钟起来跑步,也经常以各种理由和接口躲避这个行为。
坚持有多重要?你练习了十个月,然后在第十一个月由于某个漫不经心的事件意外中止了。不要以为这十个月的成果你可以一直拥有,很快,它会像落到人行道上的夏日冷雨,悄然逝去,了无踪迹。
写到这里我想起了 Facebook 的创始人扎克伯格,这哥们可谓是自律程序员的典范。扎克从小就开始编写代码,中学时期开发出了 Zucknet,号称 AOL 通信软件原型;高中时代创作了名为 Synapse Media Player 的音乐程序,通过人工智能来学习用户听音乐的习惯,被 PC Magazine 的五星评价为3颗星;在哈佛大学里花费9天时间开发thefacebook,Facebook 的原型,随后创建了知名社交网站 Facebook,名扬天下。
成为亿万富翁之后,扎克依然保持了朴素的生活态度,并且为自己制定了每年一项新挑战。2009年的挑战是每天打领带,2010年是学中文,2012年是坚持每天写代码,2015年是阅读,每两周读完一本书,2016年,是跑步……
写完这篇文章,我就去健身房了。
原文首发公众号「MacTalk」,有兴趣的话可以搜索「sagacity-mac」关注一下。
作者:池建强 青峰之巅,山外之山
链接:https://zhuanlan.zhihu.com/p/21688333
来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。