设计软件系统需要权衡,很难做出权衡决策。 您总是觉得自己正在失去一件事或另一件事,但这不是我们今天要谈论的。

我们将谈论几乎总是双赢的小事情。 当我找到一个在所有方面都是双赢且没有缺点的解决方案时,我是最快乐的。 在设计系统时,这是您的首要任务。 寻找一些降低复杂性的优雅解决方案。

基于我自己的错误,代码审查以及阅读他人代码的经验,我试图列出一些人们在编写代码时通常不会关注的双赢局面。 人们通常同意这些事情,但是他们肯定不会像以前那样行事。

通过您的行动跟踪您认为的代码质量

在大多数情况下,除非人们自己必须这样做,否则人们不会不同意某件事。 例如,如果您与大多数人谈论编写小型方法,您甚至都不会找到一个不同意的人,但是如果您查看大多数书面代码,您会发现人们不会像他们相信小型方法那样行动。 因此,请注意自己的想法以及实际行为 。 这将帮助您以切实可行的方式实际进行改进。

测试驱动的开发

大多数情况下,测试是通过说它们将捕获回归来出售的,以后您可以更改代码,而不必担心某些事情会破裂以及它的正确性。

但是我认为进行测试驱动开发的最大价值是设计正确的东西。 如果您只专注于在编写实际代码之前最小化编写测试并使它们更简单,则您将意识到您的设计是自动正确的,并且您已经掌握了大多数被认为是好的东西。 像定义良好的小型方法,组织良好的依赖项,更少的耦合以及没有全局状态等。因为所有这些事情都很难测试。

专注于编写简单,较小和简洁的测试,其他所有后续工作。

小型方法/功能

承认这很困难,但要自动执行此操作是一种可学习的技能。 一旦您擅长了,那么很多事情就会变得简单。

描述性变量名称

在计算机科学中只有两件难事:缓存无效和命名。

—菲尔·卡尔顿

这当然是正确的,并且有很大的不同。 使用变量表示概念。 不要将变量用于非显而易见的事情,例如在特殊情况下返回-1。 对具有良好描述性名称的变量具有一致,严格的含义。 正确使用具有单个含义的null。 练习这意味着您将自动编写更好的代码。

这是一篇很好的文章,有一些建议。 ( 20个更好命名的技巧 )

这些都是可以永久改善的事情,一旦您不知不觉地做到,就不会花费很多时间。

欢呼和快乐的编码!

From: https://hackernoon.com/software-design-principles-doing-little-things-right-md203y02

软件设计原则:正确做小事相关推荐

  1. 设计模式01 UML图,软件设计原则,创建型模式

    概述 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1995年,由 Erich Gamma.Richard Helm.Ralph Johnson 和 Joh ...

  2. 软件设计模式——软件设计原则

    摘要 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.无数工程师实践的代码设计经验的总结,它是面向对象思想的高度提炼和模板化,使用设计模式是为了让代码具有更高的可重用性,更好的 ...

  3. 设计模式之软件设计原则篇

    3.软件设计原则 本文的内容绝大部分借鉴了https://www.jianshu.com/u/cc272db15285的内容,感兴趣的小伙伴可以进入其简书浏览更细的内容,讲的非常好. 在软件开发中,为 ...

  4. 软件设计原则(一)开闭原则(Open-Closed Principle, OCP)

    狭义理解:对扩展开发,对修改封闭 在学习设计模式之前,应该先对软件设计原则有一定的了解,设计模式在一定程度上是迎合软件设计原则而产生的,脱离了软件设计原则,设计模式是没有意义的. 开-闭原则(Open ...

  5. 从零开始学习Java设计模式 | 软件设计原则篇:依赖倒转原则

    在本讲,我将为大家介绍软件设计原则里面的第三个原则,即依赖倒转原则. 概述 什么是依赖倒转原则呢?我们来看一下下面这段描述: 高层模块不应该依赖低层模块,两者都应该依赖其抽象:抽象不应该依赖细节,细节 ...

  6. java 设计模式:软件设计原则、面向对象理论、23 种设计模式

    文章目录 软件设计原则 1.单一职责原则(Single Responsibility Principle) 2.开闭原则(Open Closed Principle) 3.里氏代换原则(Liskov ...

  7. 软件设计原则之里氏替换原则、依赖倒置原则

    系列文章目录 软件设计原则之单一职责原则.开闭原则 软件设计原则之里氏替换原则.依赖倒置原则 软件设计原则之接口隔离原则.合成复用原则.迪米特原则 文章目录 系列文章目录 一.里氏替换原则 什么是里氏 ...

  8. 软件设计原则之 SOLID Principle

    软件设计有很多原则,比如软件设计上的 SOLID principle,单元测试中的 FIRST和AAA,代码实现上的 DRY principle 等.熟悉这些原则,可以把我们的经验上升到理论高度,有利 ...

  9. 软件设计原则和编码规范

    目录 软件设计原则和编码规范 软件设计 软件实现与编码规范 命名 重构 函数 注释 单元测试 软件设计原则和编码规范 软件设计 单一职责原则(Single Responsibility Princip ...

  10. 从零开始学习Java设计模式 | 软件设计原则篇:里氏代换原则

    在本讲中,我来为大家介绍一下软件设计原则里面的第二个原则,即里氏代换原则. 概述 首先,大家应该知道,里氏代换原则是面向对象设计的基本原则之一.那什么是里氏代换原则呢?里氏代换原则是指任何基类可以出现 ...

最新文章

  1. SVN版本管理系统的安装 CentOS + Subversion + Apache + Jsvnadmin
  2. opencv通道拆分与合并:split和merge
  3. 利用jQuery实现回收站删除效果
  4. 020_MySQL运算符
  5. GAN在Image To Image translation 和Inverse Problem中的应用
  6. mysql安全权限的讲解
  7. 硬核妹子的创意设计:舌头控制器
  8. REST / HTTP方法:POST与PUT与PATCH
  9. (笔记)VC6插件安装(VC6LineNumberAddin)
  10. python脚本在centos系统一键卸载重新安装Mysql
  11. 大数据之Hadoop简介
  12. mysql数据库的用户是什么_mysql 数据库用户管理
  13. 【笔记】SSH服务:基本概述、相关命令“ssh、scp、sftp”、验证方式、场景实践、安全优化
  14. Quartus II工具1——signaltap
  15. oracle cosh 函数,oracle cosh exp floor in log等函数
  16. [Java Web]AJAX Axios | 一种结合HTML来取代传统JSP的技术
  17. 企业遇到3C审厂不符合项应该如何整改?
  18. 【三维目标检测】PointRCNN(一)
  19. 股票市场市价委托类型
  20. python tricks_Python Tricks

热门文章

  1. shoprxr收银系统开源版
  2. python之时间函数
  3. C++对类中字符串成员进行初始化的两种方法以及友元函数的使用
  4. 记录远程桌面无法互相拷贝文件可能的原因和解决方法
  5. 返回code400,报错Required request body is missing
  6. 安谋中国(Arm China)校招内推
  7. php手机网页在线录音ios,iOS 录音实现
  8. 【C4D】OC渲染器常见问题以及解决方案
  9. linux终端命令大全
  10. 再见了VLOOKUP函数!Excel 数据分析已成气候!