代码质量对系统的影响

简介:

读了InfoQ中国的一篇新闻,题目为《代码永远是罪魁祸首吗》,有些想法不吐不快。代码质量一直是我较为关注的一个话题。我在许多场合提到过这一点,也就此写过博客来阐述我的观点。例如,在2010年5月InfoQ《架构师》篇首语——不积跬步无以至千里中,我写到:

架构师的成长漫长而充满艰辛。是否能够成功,除了需要远大的目标,还需要脚踏实地。最近,我阅读了两本好书。一本是Kent Beck所著的《实现模式》,另一本是Robert  C. Martin的《代码整洁之道》。他们是举世公认的设计大师,但在这两本书里,他们谈的不是架构,而是代码,是实现。荀子曰:“不积跬步,无以至千里;不积小流,无以成江海!”架构师站得高,所以望得远,但如果根基不稳,就极容易跌下来,摔得屁滚尿流。

最近,我分享了我的一个架构观,我称之为MMN架构,即宏观架构、微观架构与纳米架构,其中纳米架构所有关注的正是代码质量。

纳米架构可以说是代码级的架构,体现在代码的清晰度、健壮性以及可读性。 
纳米架构极为重视方法与类的粒度,以及类与类之间的协作。 
纳米架构与编码风格有关,重视代码结构的改善与重构。

这里所谓的纳米架构,与Christine Hofmeister等所提及的代码架构还不尽相同。在Applied Software Architecture一书中,Hofmeister提到了架构的4种视图,其中的代码架构更多地还是关注设计,包括源代码级的设计、组件的设计。我始终认为,即使有好的设计,如果在编程实现上由糟糕的代码来完成,给系统带来的危害并不亚于宏观架构的影响。我之所以提出纳米架构【准确地说,不是我提出,而是我借来的概念,详细情况可以阅读我的文章《对架构的思考》】,就是希望强调代码质量的重要性,诸如编码风格、防御式编程、重构,以及测试驱动开发等,都是保证代码质量的一些必要手段。这仍然是架构!所以,我才会说:“所有程序员都是架构师!”

Uncle Bob在Clean Code一书中,已经充分地展现了他对代码质量的重视程度。而在《代码永远是罪魁祸首吗》一文中,报道更旗帜鲜明地表达了他的观点,坚信糟糕的代码所带来的成本之大足够让一个项目失败。这就将代码质量放到了生死攸关的重要程度。虽然,这一观点招来了众多持不同意见者。然而,他们攻击仅限于置疑代码质量问题的重要程度究竟有多高,但绝不会否认代码质量问题的重要性。

我的观点很简单:代码是架构的一部分!这已经充分说明了代码的重要性。当然,我们不能片面地强调某一方面,却因而忽视另外的一些作用力。我之所以提及MMN架构,就在于宏观、微观与纳米架构必须是统一的。MMN的架构过程是从上至下,而由自下驱动,形成一种迭代、增量的架构过程。例如,我们可以把代码写得非常漂亮,优雅,有很好的可重用性与可扩展性,但如果你根本用错了力,没有明白客户的真正需要,那就是南辕北辙了。这意味着在宏观架构过程中,我们需要首先明确架构的目标。反过来,即使你拥有最优秀的系统架构师,解决方案清晰、完整、一致,但如果代码写得一团糟,如乱麻或者意大利面条,最后构建出来的系统,仍旧会成为豆腐渣过程。因此,从宏观到微观再到纳米粒度的架构,都必须将一些基本架构和设计原则一以贯之,强调统一而一致的过程,否则,就会在架构和实现的过程中,发生角色腐败【贪污某些具体的实现或细节】,从而导致系统腐烂。维护过遗留系统的人,必然对此深有体会。









本文转自wayfarer51CTO博客,原文链接:http://blog.51cto.com/wayfarer/460413,如需转载请自行联系原作者

相关文章
|
3天前
|
设计模式 测试技术 持续交付
深入白盒测试:提升软件质量与性能的关键策略
【4月更文挑战第20天】 在软件开发的复杂世界中,确保产品的质量和性能始终是至关重要的任务。白盒测试,作为软件测试领域的重要分支,提供了对程序内部结构和逻辑的深入分析手段。本文将探讨如何通过有效的白盒测试策略来优化软件性能,减少缺陷,并最终提高用户满意度。通过剖析代码检查、单元测试、集成测试等白盒测试技术,我们将了解这些方法如何揭示潜在的问题点,并为改进提供方向。
|
13天前
|
算法 安全 测试技术
深入探索白盒测试:提升软件质量与效率的关键策略
【4月更文挑战第11天】 在软件开发的生命周期中,确保代码质量和功能的正确性是至关重要的。白盒测试,作为一项关键的验证手段,允许测试者通过检查内部结构、设计和编码逻辑来识别软件中的缺陷和漏洞。本文将探讨白盒测试的核心概念、方法及其在提升软件测试效率和质量上的重要性。我们将分析静态分析和动态测试的策略,并讨论如何通过白盒测试优化软件开发过程。
|
16天前
|
供应链 测试技术
深入白盒测试:提升软件质量的关键策略
【4月更文挑战第7天】 在软件开发的复杂世界中,确保代码质量和性能的可靠性是至关重要的。白盒测试作为一种重要的软件测试方法,允许测试者通过检查内部结构、设计和编码来验证软件的正确性。本文将探讨白盒测试的核心概念、优势以及如何有效利用它来提高软件产品的质量。我们将深入分析不同的测试技术,如静态分析和动态测试,并讨论如何将这些方法应用于实际测试场景中,以便发现和修复潜在缺陷。通过案例研究和最佳实践的分享,本文旨在为读者提供一套全面的白盒测试策略,以支持他们在不断变化的技术环境中保持竞争力。
|
1月前
|
存储 安全 测试技术
软件测试:确保代码质量与用户满意度的关键步骤
软件测试:确保代码质量与用户满意度的关键步骤
|
1天前
|
算法 测试技术 持续交付
深入白盒测试:提升软件质量与效率的关键策略
【4月更文挑战第23天】 在软件开发的复杂多变的环境中,确保产品的质量和可靠性是至关重要的。白盒测试作为一种重要的软件测试方法,允许测试者通过检查内部结构、设计和编码来验证软件的功能性和正确性。本文将探讨白盒测试的关键概念、技术及其在提升软件测试效率和质量中的应用。我们将重点讨论如何借助白盒测试发现潜在缺陷、优化测试用例设计,并通过具体案例分析展示其在实际中的应用效果。
|
1天前
|
存储 算法 测试技术
深入探索白盒测试:提升软件质量与效率的关键
【4月更文挑战第23天】 随着软件开发的复杂性日益增加,确保代码质量和性能的压力也随之升高。在多种软件测试方法中,白盒测试以其对内部结构和工作原理的透明性而受到重视。本文旨在探讨白盒测试的核心概念、技术及其在提升软件测试效率和质量中的应用。通过分析控制流测试、数据流测试以及静态分析等关键技术,我们将揭示如何有效运用白盒测试以发现潜在的逻辑错误和缺陷。
|
2天前
|
算法 Java 测试技术
深入解析白盒测试:提升软件质量与效率的关键
【4月更文挑战第22天】 在软件开发的复杂多变的世界中,保证代码质量和功能的正确性是至关重要的。白盒测试作为一种重要的软件测试方法,提供了一种透视软件内部逻辑结构的途径。本文将详细探讨白盒测试的概念、技术手段和实际应用,旨在帮助读者理解如何通过这种测试提高软件系统的稳定性和性能。文章还将讨论白盒测试中面临的挑战以及应对策略,以期为软件质量保证提供实用的指导。
10 2
|
13天前
|
算法 测试技术 持续交付
深入探索白盒测试:提升软件质量的关键策略
【4月更文挑战第11天】 在软件开发的复杂世界中,确保代码的健康性与可靠性是至关重要的。白盒测试作为一种软件测试方法,允许测试者深入到程序的内部结构,以检查其逻辑和算法的正确性。本文将探讨白盒测试的核心概念、技术及其在提高软件质量方面的应用,特别是如何通过有效的白盒测试策略来优化测试过程并降低错误率。
|
20天前
|
敏捷开发 测试技术 持续交付
深入白盒测试:提升软件质量与测试效率的关键策略
【4月更文挑战第3天】 在软件开发的复杂多变环境中,保证产品的质量和性能是至关重要的。白盒测试作为一种重要的软件测试方法,它通过深入检查程序的内部结构、设计和编码来确保软件按照预定要求运行。本文将探讨白盒测试的核心概念、技术及其在提升软件测试效率和质量中的应用。我们将讨论如何利用白盒测试进行有效的单元测试、集成测试和系统测试,以及如何借助现代工具和技术优化测试过程。文章还将涉及白盒测试在连续集成和敏捷开发实践中的应用,为读者提供一套全面的白盒测试策略和最佳实践。
|
21天前
|
测试技术 持续交付 开发者
深入白盒测试:代码级验证与软件质量保障
【4月更文挑战第2天】 在软件开发的生命周期中,确保产品的质量至关重要。白盒测试作为一种软件测试方法,允许测试者通过检查内部结构、设计和实现的逻辑来验证代码的正确性。本文将深入探讨白盒测试的核心技术和策略,包括控制流测试、数据流测试以及静态和动态分析方法。通过这些技术,我们可以提高发现软件缺陷的效率,从而提升软件的整体质量和可靠性。

热门文章

最新文章