热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

算法工匠编码调制一起来_.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的干净代码列表

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

翻译自: https://hackernoon.com/clean-code-for-net-coding-craftsman-7674373fccaf

算法工匠 编码调制一起来



推荐阅读
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
author-avatar
手机用户2602937435
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有