.NET编码工匠的干净代码
多年前,当我开始我的软件开发第一职业时,我想起了我非常喜欢学习和获得很多软件开发技能的方法, 特别是阅读该领域的权威书籍以及博客 。 我读过的一些非常著名的书是《代码完整》:《软件构造实用手册》 , 《干净的编码员》:《专业程序员行为守则》 ,《 设计模式:可重用的面向对象软件的要素》 ,《 重构:改进 软件 的设计》。现有代码 ,等等。 我坚信,像我一样的所有开发人员也都以这种方式进入了软件开发行业。
到那时,我想知道如何与周围的软件开发社区共享我所学到的知识,从而帮助他们节省职业生涯的第一阶段的工作 。 就在去年,我看到有一些关于JavaScript和PHP语言的Clean Code的项目,现在是Ruby语言。 然后我认为,如果我像他们一样启动列表,但为.NET / .NET Core自定义部分,那将是很棒的,这促使我在当晚立即开始为.NET开发人员列表创建第一个Clean Code 。 https://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