开发者眼中的“道、法、术、器”

DD的博客全面升级,阅读体验更佳(尤其是系列教程),后续不再通过这里发布新文章,而是改到 www.didispace.com 发布啦,奔走相告!点击直达~

“道、法、术、器”,出自老子的《道德经》,是我们老祖宗的智慧结晶。经过了两千多年的历史,细细想来,依然是那么具有深意!

今天我就结合开发者的视角,给大家聊聊开发者眼中的这四个层面!

如果你现在正碰到职业发展的瓶颈,那么可以看看下面的内容,也许会有所感悟和帮助。我们将分别从“道、法、术、器”,聊聊我们在这四个层面上的不同表现,重新审视下目前的你所付出的努力都集中于哪一层,并思考接下来更应该从哪点去进一步提高更有价值?

“器”

什么是“器”?假设,现在要开发一个电商网站,我们可以用什么去实现?可以用Java、可以用PHP、可以用Go… 我们可以听到很多答案。而这里我们所说的各种编程语言,就是“器”,是一种工具。

“PHP是世界上最好的语言”,这是所有程序员都知道的一个梗,因为这句话就是关于最底层的“器”的争论,由于争论的点很基础,所以就被广为流传。

那么这类问题是否有最优答案呢?纵观所有成功案例,你会发现各种语言都会出现,所以在“器”问题的争论上往往并没有标准答案。

所以,什么是世界上最好的语言,这是一个永远不会停止的争论。

“术”

继续思考,为什么”什么编程语言最好”这样的问题不会有标准答案呢?

因为“器”是一种工具,工具能否发挥作用还取决于使用它的人。而”术”就是如何使用”器”的方法。所以,抛开”术”,光靠“器”来比较是否能完成某个目标,是很难断定结果的。

比如:即使Go在网络编程方面很有优势,但如果你让一个初学者来实现一个复杂目标的时候,与一个资深Java开发者来实现做比较,仅仅依靠“器”的优势,是不一定能战胜虽然“器”上有劣势、但“术”上存在优势的Java开发者的。

所以,对于做好某件事来说,”器”与”术”都很重要!要成为一名好的开发者,”器”与”术”是必须双修的。

“法”

那么如果选择的“器”有优势,开发者的“术”也到位,就一定能做很好的达成目标吗?那也未必。

这就到了“法”的级别,这个级别我们更关注于路线。什么是路线?我们那架构的观点去看,可以具体到如何根据成本去演进式的利用“器”与“术”来逐步达成目标的路线设计。

再具体一点,比如:架构路线的选择。有的可能架构师可能一开始直接紧跟潮流,选择微服务的架构风格来做;而有的可能因为成本跟不上,会选择单体应用开始,逐步的演进到分布式架构来做。

这就是“术”上的决策,你为了实现目标,所选择的不同发展道路。好的发展道路,可以让你的团队前进没那么陡峭,一步一个脚印,最终达成目标。不好的发展道路,可能中间还会有下坡路,延误业务的发展。

“道”

继续上升,如果我们在“法”、“术”、“器”上都有很大的优势,那么“道”又是什么呢?

我们技术的目标是啥?是不是服务业务?只有业务越做越好,我们才能获得更大的收益与成就?那么业务与什么有关?雷军说过“要顺势而为”,所以,大方向,大趋势就是我们要关注的“道”。

关于“道”,最好的例子现在就在发生,如果当初你选择了一家做K12课外培训的公司,就算“法”、“术”、“器”都很棒。这个时候,也可能正在面临被裁员重新找工作的情况。还有一些深刻的例子:想想那些互联网公司上市时候的造富时刻,这些人中间,他们的“法”、“术”、“器”都比你棒吗?

小结

关于“道”和“法”,是不是你是不是很少关心?甚至有时候觉得他们很虚?所以,大量的时间都花在了“术”和“器”上?

我们不断的花大力去学习各种“器”:Java、Go、Python等等;不断的花大力气学习各种“术”:海量数据的分表分库、多级缓存的数据读取加速等等。

很快,我们就会发现道瓶颈了,而接下来能做的,其实就是在“法”与“道”的突破上。

  • “术”方面,你要去积累更多的经验,在“法”上做突破,学习和总结更大的架构思维和管理思维,才能继续往前进。
  • “道”方面,你要去多了解市场环境,去预测大趋势,如果能够顺势而为,选择对了大方向,就算你的主要工作依然还在“器”和“术”上,你也会比其他“道”上的兄弟获得更高的收益。

说了那么多,相信聪明的你一定也有所感悟了!如果你有任何想法,不防留言跟大家一起分享一下吧!