《程序员修炼之道:从小工到专家》阅读笔记(3)

发布时间 2023-10-31 20:35:57作者: 痛苦代码源

26解耦与得墨忒耳法则

将复杂问题分解成简单的模块,以降低整体系统的复杂性。解耦意味着两个或多个模块之间减少直接的依赖关系,遵循“单一职责”原则。这提高了软件的可维护性、可扩展性和长期的稳定性。得墨忒耳法则强调模块间的交互应通过最少的公共接口,以减少变更带来的影响。

27元程序设计:

借助于元数据来描述应用程序的结构和行为。这种设计方式让程序更容易适应需求变更,因为很多细节可以通过修改元数据来完成,而不改动程序核心逻辑。它有助于提高软件的可扩展性、可维护性和可定制性。

28关于时间耦合:

将与时间相关的依赖从代码中解耦,使得程序更容易进行优化和并发。这涉及诸如异步处理、多线程和消息传递等技术,以实现程序的并行执行。UML活动图可用于识别并发瓶颈,进一步提高系统性能。

29只是视图:

通过观察者模式和Model-View-Controller (MVC)模型来管理模块间的通信和事件处理。分离关注点,保证数据层和视图层之间的松耦合。使数据更新时不对前端视图有显著影响,视图变更不影响数据结构。

30黑板模式:

通过一个共享的“黑板”数据结构来组织独立的事件,以便多个模块在不直接交互的情况下协同工作。这种模式有助于降低模块间的耦合度,提高系统的可扩展性和可维护性。

31靠巧合编程:

需要避免一种编程方式,是指由于偶然原因导致一段代码能够正常工作,而非因为良好的设计原则。这可能导致难以维护、难以理解的代码,以及难以预测的副作用。要确保编程时明确知道代码执行过程和目的,理解各模块之间的依赖关系,并遵循最佳实践。

32算法效率:

在不同数据规模下,探讨不同算法的效率,并掌握评估算法时间复杂度的技巧。合理选择和优化算法对提升程序性能至关重要。

33重构:

在代码实现功能后,逐步优化代码结构以提高质量、可读性和易维护性。重构应成为开发过程的组成部分,以持续改进软件的质量。

34易于测试的代码:

编写易于测试的代码,确保软件在各环境中稳定运行。从设计阶段就关注测试,并遵循测试驱动开发(TDD)的原则。构建完善的测试体系,包括单元测试、集成测试和端到端测试。

35邪恶的向导:

自动生成的代码可能会引入问题,特别是不熟悉如何工作的情况下。因此,应当了解生成代码的原理和逻辑,并能够对其进行适当的调整。自动生成代码可能会导致难以维护或难以调试的场景,需要权衡利弊。