.NET编码工匠的干净代码

.NET编码工匠的干净代码
资源

多年前,当我开始我的软件开发第一职业时,我想起了我非常喜欢学习和获得很多软件开发技能的方法, 特别是阅读该领域的权威书籍以及博客 我读过的一些非常著名的书是《代码完整》:《软件构造实用手册》《干净的编码员》:《专业程序员行为守则》 ,《 设计模式:可重用的面向对象软件的要素》 ,《 重构:改进 软件 的设计》。现有代码 ,等等。 我坚信,像我一样的所有开发人员也都以这种方式进入了软件开发行业。

到那时,我想知道如何与周围的软件开发社区共享我所学到的知识,从而帮助他们节省职业生涯的第一阶段的工作 就在去年,我看到有一些关于JavaScriptPHP语言的Clean Code的项目,现在是Ruby语言。 然后我认为,如果我像他们一样启动列表,但为.NET / .NET Core自定义部分,那将是很棒的,这促使我在当晚立即开始为.NET开发人员列表创建第一个Clean Codehttps://github.com/thangchung/clean-code-dotnet

为了使读者(特别是.NET开发人员)更容易理解,我从其他列表(JavaScript,PHP或Ruby语言)开始使用不同的方式。 我将它们与可折叠的子项目归为一类,这有助于读者在浏览具有大项目的大型清单时不会感到害怕。 如果他们想调查或阅读详细信息,可以单击子项目的标题以了解更多信息。 我的同事托尼(Tony )也很渴望加入这个项目,所以我告诉他要帮助我,他也是一个提出此 IDEAS 的人 ,实际上,这使清单变得简短而简洁。 谈论此列表的许多历史,现在让我们详细了解一下这些组中的内容。

命名

  • 避免使用坏名
  • 避免虚假名称
  • 使用易读的名称
  • 使用驼峰表示法
  • 使用域名。

变数

  • 使用有意义且明显的变量名
  • 对相同类型的变量使用相同的词汇表
  • 使用可搜索的名称
  • 使用解释变量
  • 避免嵌套太深并尽早返回
  • 避免思维导图
  • 不要添加不需要的上下文
  • 使用默认参数代替短路或条件
  • 避免魔术串

功能

  • 函数参数(理想情况下为2个或更少)
  • 函数应该做一件事
  • 函数名称应说明其作用
  • 函数只能是一个抽象级别
  • 不要将标志用作函数参数
  • 避免副作用
  • 不要写全局函数
  • 不要使用Singleton模式
  • 封装条件
  • 避免负面条件
  • 避免有条件
  • 避免类型检查
  • 删除无效代码

对象和数据结构

  • 使用getter和setter
  • 使对象具有私有/受保护的成员

班级

  • 使用方法链接
  • 优先考虑组成而不是继承

固体

  • 单一责任原则(SRP)
  • 开放/封闭原则(OCP)
  • 里斯科夫替代原理(LSP)
  • 接口隔离原理(ISP)
  • 依赖倒置原则(DIP)
  • 不要重复自己(干燥)

测试中

  • 每次测试一个概念

并发

  • 使用异步等待

错误处理

  • 不要忽略捕获的错误
  • 使用一致的大写
  • 函数调用者和被调用者应该关闭

格式化

  • 使用.editorconfig文件

注释

  • 仅评论具有业务逻辑复杂性的事物
  • 不要在代码库中留**释掉的代码
  • 没有期刊评论
  • 避免位置标记

概括

我们仍在处理此列表,我相信它将更长且更准确 我们的团队期待着你们所有人的参与,贡献和帮助,使该列表对 .NET / .NET Core 社区 更加有用

同样,可以在https://github.com/thangchung/clean-code-dotnet上找到.NET / .NET Core干净代码列表

谢谢阅读! 如果您喜欢本文,请确保单击下面的????符号,以便其他人看到。

From: https://hackernoon.com/clean-code-for-net-coding-craftsman-7674373fccaf