首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

厦门北大青鸟:写给程序员的圣经,编码之道

在我们的编码过程中,处于经常性变动的,就是术。与之相反的是,基本处于一种变化很小的状态或几乎不会变化的,则是道。对于一个程序员来说,理解编码的道就是至关重要的。举例说来,编程语言从出现以来,可以基本归为三大类:面向过程的语言,面向对象的语言以及面向函数的语言。无论编程语言如何发展,新的语言层出不穷,始终没有脱离这三大类。道就是这样,它的变化非常小,甚至不会变化。

理解道与术

术是易变的,道是难以变化的。

我们使用的各种编程语言也好,流行的框架也好,一个明显的特点就是:它们都非常容易改变。

今年流行的东西,可能明年就不再流行了,被另一种新的语言或框架给取代了。这几乎是一种必然。术是易变性,具体表现在:

功能及特性易于改变

包括语言或框架也好,不可能存在一种不会改变的版本,基本隔多久就会更新一个版本,这就是表现为术的功能及特性是非常易于改变的。比如Java 8出了很多函数式风格的特性,lambda,流等,这些特性深受喜好,但它们是新的功能特性。

术的东西非常容易被取代

还记得前些年非常流行的JQuery么,今天在前端编码中,已经比较少见到它的身影了。再比如iOS的OC编程语言,大家都清楚它被新的Swift语言替换掉了。这就是术,无论是语言还是框架,几乎没有常青树,被取代或替换只是时间的问题。就算是一直常青的Java语言,有谁能保证它不会有一天被取代?没有人能保证,因为术是易变的。而与之相对应的则是,道几乎是难以变化的,而且很难被取代。

比如设计模式的二十多种模式,它几乎是永恒存在的,无论你使用的是什么编程语言,这个语言是十年前,今天或是十年后,设计模式基本永远存在并且不会过时。这便是道,几乎所有的道都具有这样的特性,比如面向对象的三大基本特性,它几乎不会被取代。再比如重构,无论何时,编程发展到何种地步,重构都是编程的应用之道,你都得去不断的重构。

术是具体的,而道是抽象的

编码的过程,几乎完全是在使用术来编写代码。使用各种各样的语言,技术框架,来实现目标。实现目标的过程中,我们打交道的是术,它是具体的东西。比如使用JPA来做数据存储,使用Swift来编写新的iOS客户端,或是使用TypeScript做前端编程语言,这一切,都是具体的东西。而这些背后,当我们说设计模式的时候,它则非常抽象,类似的还有重构,一些架构风格或模式,它们并不是指的某种特定的技术或语言,而是一种思想或方法论的抽象。这意味着,道更具普遍性与适应性。测试驱动开发(TDD)没有限定任何语言,无论你使用何种语言,它们几乎都可以使用这个理念。

无论你从事的是什么编码,几乎没有任何一种语言或框架是不可替换的对吧。在后端,就算最流行的Java,也不是不可替换的,没有说哪个是非用不可的。术基本具有类似的特性,它是可轻易替换的,或者更本质的谈论它,术只是工具。工具这种东西,意味着我今天可以用这个,明天则可以用那个,并不是不可或缺的。当然你可以说你不用设计模式,不去重构你的代码,不用TDD的模式来编码,不遵守面向对象的五大基本原则,不选择一些架构风格或模式。确实可以这样做,但坦率的说,这样编码的价值何在,这样能写好代码吗?所以,用更确切的说是:想要编写出好的代码,难道是不可替换的东西,而术则是可以轻易替换的。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210924A0BENP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券