从在家工作时代中学到的主要经验教训
|
Ron初入行就在战略空军司令部(Strategic Air Command)编写Fortran程序,此后几乎在每种机器上编写过每种语言的代码。他的言论值得咀嚼。 近年来,我开始研究贝克的简单代码规则,差不多也都琢磨透了。简单代码,依其重要顺序:
在以上诸项中,我最在意代码重复。如果同一段代码反复出现,就表示某种想法未在代码中得到良好的体现。我尽力去找出到底那是什么,然后再尽力更清晰地表达出来。 在我看来,有意义的命名是体现表达力的一种方式,我往往会修改好几次才会定下名字来。借助Eclipse这样的现代编码工具,重命名代价极低,所以我无所顾忌。然而,表达力还不只体现在命名上。我也会检查对象或方法是否想做的事太多。如果对象功能太多,最好是切分为两个或多个对象。如果方法功能太多,我总是使用抽取手段(Extract Method)重构之,从而得到一个能较为清晰地说明自身功能的方法,以及另外数个说明如何实现这些功能的方法。 消除重复和提高表达力让我在整洁代码方面获益良多,只要铭记这两点,改进脏代码时就会大有不同。不过,我时常关注的另一规则就不太好解释了。 这么多年下来,我发现所有程序都由极为相似的元素构成。例如“在集合中查找某物”。不管是雇员记录数据库还是名-值对哈希表,或者某类条目的数组,我们都会发现自己想要从集合中找到某一特定条目。一旦出现这种情况,我通常会把实现手段封装到更抽象的方法或类中。这样做好处多多。 可以先用某种简单的手段,比如哈希表来实现这一功能,由于对搜索功能的引用指向了我那个小小的抽象,就能随需应变,修改实现手段。这样就既能快速前进,又能为未来的修改预留余地。 另外,该集合抽象常常提醒我留意“真正”在发生的事,避免随意实现集合行为,因为我真正需要的不过是某种简单的查找手段。 减少重复代码,提高表达力,提早构建简单抽象。这就是我写整洁代码的方法。
Ron以寥寥数段文字概括了本书的全部内容。不要重复代码,只做一件事,表达力,小规模抽象。该有的都有了。 同样,我们可以使用家庭中各种设备的数据来加强安全措施。与存在或热探测器结合使用的摄像机可以通过为“更大的画面”提供更多的数据点来进行操作,从而消除小错误-合并使用所有智能设备。 我们不能仅仅依靠智能设备为我们做出决策,但是我们可以做的就是改善设备处理,以便在我们介入时,我们已经掌握了所有必要的信息,可以评估适当的行动呼吁。 5G将让房主在自己的房屋内做什么? 目前,使用4G的智能家居采用整合Wi-Fi、蓝牙和其他网络协议的方式以分散的方式运行。与4G不同,5G将与低功耗设备一起使用,使其可用于更广泛的连接产品。这意味着我们将能够连接所有设备,以允许所有设备之间进行集成通信。 例如,你的冰箱和其他厨房电器可以连接在一起,与家庭系统一起协同工作,以创建一个完全自动化的家庭。如果你的冰箱已连接互联网,则如果断电,你可能会收到通知,但是由于家里的其他所有设备也都已连接,因此你可以立即确定是电源故障还是产品故障。更快的连接性意味着用户可以快速利用其智能设备提供的数据,例如可以监控水位并允许进行行为更改以限制用水的用水传感器。
车辆同样适用。未来的汽车将是自动驾驶的,并包括一个集成的行车记录仪,然后可以将其连接到你的安全系统,以在你的房屋外围提供现场增强的安全性,在潜在的入侵者到达你的前门时提醒你。 (编辑:南昌站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
