编码的最佳实践 (Coding Best Practices)

简介: 翻译自 https://www.thinkful.com/blog/coding-best-practices/

I - 编码的真正含义是什么

" 编码 " 的定义是指用计算机可以理解的语言输入命令,以构建网站、应用程序和软件。

简单地说,计算机编码是使用编程语言向计算机传递指令的过程。代码告诉机器要执行什么任务,以及如何执行这些任务。这些详细的指令被写在多行代码中,一个充满代码的文件 (document) 被称为脚本 (script)。

脚本指导计算机执行你所期望的行动。你必须确保你的代码是正确的,否则计算机将无法理解你的命令。每个脚本都是为一个特定的目的而设计的,从调整图像的大小到播放特定的声音或视频的任何一件事。

任何你访问的网站、使用的应用程序,或你与之互动的技术,都是按照代码工作的。事实上,即使你在某人的社交媒体帖子上点击 "赞",也会触发一个脚本,与世界分享你的行动。

你现在对计算机代码是什么样子,以及它背后的目的有一些了解了。但这并不能完全解释一个编码人员的工作。这份最佳实践清单将帮助你了解编码的内容。

II - 编码的最佳实践

当涉及到学习如何编码时,有一些最佳做法,它们围绕着这7个概念:

  1. 变量的命名规则 (Variable naming conventions)
  2. 类和函数的命名规则 (Class and function naming conventions)
  3. 明确且简洁的注释 (Clear and concise comments)
  4. 缩进 (Indentations)
  5. 可移植性 (Portability)
  6. 可重用性和可扩展性 (Reusablility and scalability)
  7. 测试 (Testing)

让我们更进一步讨论,可以提高你的编码能力、确保你形成良好的编码规则的 Tips 和技巧。在你成为一名职业编码人员的过程中,请牢记这些最佳实践。

2.1 - 变量命名规则

网络开发人员经常使用简单的变量名称,如 A1 和 B1 作为临时占位符,但后来忘记用更有意义的东西来代替它们。这使得代码的可读性降低,最终导致混乱。

你在编码时学到的第一件事是,你的变量名称应该容易理解,并清楚地代表它们所存储的数据。你命名变量的方式是使你的代码可读的关键。编码时变量命名的理念很简单:创建不言自明的变量名称,并在整个编码过程中遵循一个一致的主题。

一些类型的变量命名规则如下:

  • 多字分隔 (Multiword Delimited) - 用来分隔变量名称中的多个字,不留空白。
  • 匈牙利符号法 (Hungarian Notation) - 这种规则在变量名称的第一部分描述变量的目的或类型,接下来用剩余的描述符来表示变量的功能。在匈牙利语记法中,使用小驼峰 (camelCase) 记法来分隔单词。

2.2 - 类和函数的命名规则

为什么大多数编码证书课程包括类和函数命名的基础知识是有原因的。这是学习如何编码的一个重要方面。

类似于变量的命名规则,函数和类也应该由描述性的标题组成,如上所述,这些标题是由使用规则来划分的。使用适当的命名规则的目的是为了确保你的代码中的变量、函数和类能够很容易地相互区分开来。

2.3 - 给你的代码添加清晰简洁的注释

几乎可以保证,你的代码会随着时间的推移而被修改或更新。而且,几乎所有的开发者都会在某个时候遇到别人的代码。没有经验的程序员的一个坏习惯是在编码时包含很少的或不包含注释。

这对于团队工作的程序员来说是一个很大的挑战,因为在团队中可能有不止一个人在做某个特定模块。

编码注释是被编译器忽略的代码段。这意味着它们从未被传递给计算机,也不会被处理。它们的唯一目的是帮助程序员理解代码,特别是在将来回到不熟悉的脚本上工作时。

例如,标记复杂的部分,将代码划分为逻辑段,或设置一个提醒,提醒某个特定部分需要更新。

根据编程语言的不同,可以用不同的符号如 "#"、"!" 或 ";" 来指示编译器忽略带注释的行。

然而,建议不要太过分。过多的标题或内联注释会降低在同一模块上工作的开发人员之间的知识传递价值。

注释可以大致分为以下几种:

a). 实现注释 (Implementation comments)

b). 文件注释 (Documents comments)

2.4 - 缩进

格式化和缩进对于组织你的代码是必要的。理想的编码格式和缩进包括正确的间距、行长、续行和断行。通过在代码中采用缩进、留白和制表符,程序员可以确保他们代码是可读的和有组织的。

请记住,缩进代码的方式没有对错之分。有一些流行的观点,但没有什么是普遍遵循的。

有些人使用 2 个空格,有些人喜欢用 4 个。重要的是要与你选择的风格保持一致。坚持使用一种方法,并在整个应用程序中遵循它。

当缩进和格式化风格在脚本的中途改变时,问题和混乱才会发生。

2.5 - 可移植性

可移植性是确保你的程序功能的一个关键方面。如果你的代码包含环境参数的字面(硬编码)值,如用户名、主机名、IP 地址或 URL,它将无法在配置与你不同的主机上运行。

为了解决这个问题,你必须对变量进行 "参数化",并在不同环境中运行你的软件之前对它们进行配置。这可以用属性文件、数据库或应用服务器来控制。

此外,像 XML 文件这样的资源也必须有变量而不是字面价值。否则,每次你想把你的应用程序移植到另一个环境时,你就必须在编码时改变引用。

2.6 - 重用性和可扩展性

在编码中,可重用性是一个基本的设计目标。

因为如果模块和组件已经被测试过了,通过重复使用它们可以节省很多时间。软件项目开始时往往有一个现有的框架或结构,其中包含项目的前一个版本。因此,通过重复使用现有的软件组件和模块,你可以减少开发成本和资源。

这将直接作用于项目的快速交付,从而提高利润率。

另一个需要注意的关键方面是代码的 " 可扩展性 "。随着用户需求的变化,新的功能和改进会不断添加到一个应用程序中。因此,纳入更新的能力是软件设计过程中的一个重要部分。

2.7 - 测试

在编码时测试你的工作是软件开发的一个重要部分,应该有良好的计划。它要求在软件的实际编码开始前准备好测试案例。

此外,虽然基本的单元测试是一个很好的做法,但在 Geb Spock 和 Selenium 等工具的帮助下进行 AFT (Automated Functional Testing 自动功能测试 ) 也是很有用的。

原文链接:
https://www.thinkful.com/blog/coding-best-practices/

目录
相关文章
编码之旅:从Bug到Insight
在软件开发的复杂迷宫中,每一个Bug都是一个谜题,等待着我们去解开。本文将通过一系列真实的编程经历,揭示如何从看似令人沮丧的错误中提炼出宝贵的技术见解。我们将探索错误的本质、调试过程的艺术以及重构策略的智慧。这不仅是一段关于代码的旅程,更是一次思维的升华和技能的锤炼。让我们一同走进这个充满挑战与发现的世界,体验从失败中汲取力量的过程。
|
存储 缓存 C++
Python 二十三大实践、编码建议和技巧
Python 二十三大实践、编码建议和技巧
114 0
Python 二十三大实践、编码建议和技巧
|
XML IDE 测试技术
一起谈.NET技术,使用编码招式(Coding Katas)、BDD和VS2010项目模板
  通过编码招式和行为驱动开发,我受到了一些启迪,感觉良好。然而,当我意识到如果以后我就用这种方式编写单元测试、进行开发工作,那会相当痛苦,因为每次都要引入Eric Lee的ContextSpecification。
951 0
|
IDE 测试技术 开发工具
使用编码招式(Coding Katas)、BDD和VS“.NET研究”2010项目模板
  通过编码招式和行为驱动开发,我受到了一些启迪,感觉良好。然而,当我意识到如果以后我就用这种方式编写单元测试、进行开发工作,那会相当痛苦,因为每次都要引入Eric Lee的ContextSpecification。
835 0
|
Web App开发 人工智能 安全
书籍:Python渗透测试实战 Practical Security Automation and Testing(python)- 2019.pdf
简介 实用的安全自动化和测试:使用DevOps和DevSecOps自动化基础架构安全性的一站式指南 主要特点 保护和自动化保护Web,移动或云服务的技术 使用Python,C ++,Java和JavaScript自动执行安全代码检查 将安全测试与fuzz,BDD,Selenium和Robot Framework等自动化框架集成 安全自动化是软件安全评估任务的自动处理。
|
人工智能 Python 设计模式
[python作业AI毕业设计博客]Python 3 面向对象编程(第3版) 中英文Python 3 Object-Oriented Programming 3rd Edition - 2018.pdf
python测试开发项目实战-目录 python工具书籍下载-持续更新 python 3.7极速入门教程 - 目录 第2版 中文 介绍 本书主要介绍如何使用Python 3进行面向对象编程。1~4章介绍面向对象这一编程范式的基本准则,以及Python是如何运用这些准则实现面向对象编程的;第5~8章,介绍如何利用Python中的内置函数快速、简单地实现面向对象编程;第9~11章介绍了许多面向对象编程中常用的设计模式,以及如何使用符合 Python 语言习惯的方式来实现这些设计模式;最后第12、13章介绍了Python 3中并发编程相关的主题。
|
Web App开发 人工智能 Python
[python作业AI毕业设计博客]深入理解Flask 中英文版-英文更新至2018第2版 Mastering Flask Web Development 2nd Edition - 2018.Pdf
深入理解Flask - 2016.pdf Flask 是在Python 用户中最为流行的Web 开发框架。《深入理解 Flask》从一个简单的Flask 项目入手,由浅入深地探讨了一系列实战问题,包括如何使用SQLAlchemy 和Jinja 等工具进行Web 开发;如何正确地设计扩展性强的Fl.
|
XML JSON 数据格式
编码与模式------《Designing Data-Intensive Applications》读书笔记5
进入到第四章了,本篇主要聊的点是编码(也就是序列化)与代码升级的一些场景,来梳理存储之中涉及到的编解码的流程。目前主流的编解码便是来自Apache的Avro,来自Facebook的Thrift与Google的Protocolbuf,在本篇之中,我们也会一一梳理各种编码的优点与痛点。
1310 0