在学校中我们都写过大大小小的代码,但我们写的代码真的好吗?什么样的代码才是好代码呢?好代码应该具有简洁、简短、高效、鲁棒、可共享、可扩展、测试移植方便、在公司的项目中还应具有可监控的特点。由此可见好代码的要求是很高的,代码是写给人看机器执行的,所以可读性一定要好,让人不需要思考很多就可以看懂代码。

代码要做到函数的功能要单一化(一个函数只实现一个功能),在函数的命名时要有意义(通过函数名就可以知道函数的功能),代码格式要规范,可以参考vs的代码排版格式,如果有头文件应该使头文件中函数的声明顺序与源文件中函数的定义顺序相同,所有的函数都应该遵循好测试的思想,尽量为自己的代码写好注释。

如何写出好代码?

工欲善其事必先利其器,也就是准备工作如果做的不充分,就草草开工,往往在最后发现功能可能开发错误或结果不正确需要重新调整,此时花费的成本过高。因此在需求开发前,我们应该先进行需求分析和系统设计,这样可以帮助我们正确的理解功能,然后再开发代码,在开发时应该边开发编写测试代码,保证开发的函数功能是正确的,否则都开完在统一测试,出现问题很难快速的定位问题,开发完成后要对代码进行上线和持续的运维迭代。

如何区分需求分析和系统设计?

需求分析:定义系统/软件的黑盒行为,即从外部看系统可以实现什么功能

系统设计:系统设计/软件的白盒机制,详细的说明系统的功能、组成,以及组件间是如何划分的

需求是系统设计的决策来源。

系统设计应遵循的约束:计算、存储、I/O网络(资源约束)


系统开发的注意事项:

(1)系统中每一个组件(子系统/模块)的功能都应该是单一的

(2)功能单一是复用和可扩展的基础

(3)软件的耦合度要低

(4)接口的迭代过程中应实现前向兼容

程序、模块、函数间的关系:

模块(一般为一个文件,实现具体的功能)是程序的基本组成单位,模块的划分可为数据类的模块和过程类的模块。数据模块的主要功能:完成对数据的封装(模块的内部变量,类的内部变量)、对外提供明确的数据访问接口(数据结构和算法属于模块内部的工作);过程类模块的主要功能:本身不含数据(可从文件中读取数据),可以调用其他数据或过程类模块,主要完成操作。

模块的组成:

(1)文件头:模块的说明(功能简介)、修改历史(时间、人、修改的内容)、模块内荣的顺序应该一致

(2)函数:函数描述的三要素:功能描述@func、形参列表描述@params(含义、限制条件)、返回值的描述@return(函数返回值的可能性应该尽量枚举)函数的规模要尽量小,尽量控制在39行以内,如果c或c++要控制在两屏以内。函数应该为单入口单出口(如果存在多线程时更要单入单出,单出指函数只有一个return)

面向对象的实质是实现对数据的封装,开发程序时应该以数据为重心进行考虑问题,在过程类的模块中,与类的成员变量无关的函数,应该作为一个独立的函数放在类的外面,不作为类的方法,这样方便复用和扩展。

系统中多态和继承(最好不要超过3层)都应谨慎使用。

如何写出规范的好代码相关推荐

  1. 20条开发规范,写出诗一样的代码

    文章目录 简介 命名 1.命名的长度,多长合适 2.利用上下文简化命名 2.1 利用类class上下文简化命名 2.2 利用函数function上下文简化命名 3. 命名可读.可搜索 3.1 命名可读 ...

  2. 如何写出优雅的 Golang 代码

    Go 语言是一门简单.易学的编程语言,对于有编程背景的工程师来说,学习 Go 语言并写出能够运行的代码并不是一件困难的事情,对于之前有过其他语言经验的开发者来说,写什么语言都像自己学过的语言其实是有问 ...

  3. 【整洁之道】如何写出更整洁的代码(上)

    如何写出更整洁的代码 代码整洁之道不是银弹,不会立竿见影的带来收益. 没有任何犀利的武功招式,只有一些我个人异常推崇的代码整洁之道的内功心法.它不会直接有效的提高你写代码的能力与速度,但是对于程序员的 ...

  4. 如何在面试时写出高质量的代码

    摘要:有些程序员由于平时没有养成良好的编程习惯,在面试时写出的代码质量不高,最终遗憾地与心仪的公司和职位失之交臂.如何在面试时能写出高质量的代码,是很多程序员关心的问题. 程序员在职业生涯中难免要接受 ...

  5. 如何写出更好的代码(文末有福利)

    女主宣言 我们在过去的几期推送里已经给大家介绍了笔者根据多年研发经验总结出来的编码规范和 git 等实用工具的运用场景,今天咱们就来继续聊聊项目开发过程的诸多方法论.本文最先发布于 7rule,转载已 ...

  6. 如何一本正经地写出别人无法维护的代码?

    作者 | 阿木 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) 编写除了自己没人能看懂的代码,是一种怎样的体验? 下面由作为资深挖坑程序员的我,手把手教大家这是怎么做到的?如果各位 ...

  7. [翻译Joel On Software]Joel测试:12步写出更高质量代码/The Joel Test: 12 Steps to Better Code

    Joel on Software The Joel Test: 12 Steps to Better Code Joel测试:12步写出更高质量代码 byJoel Spolsky Wednesday, ...

  8. 如何写出更优雅的代码——编程范式简述

    <如何写出更优雅的代码--编程范式简述>源站链接,阅读体检更佳! 什么是程序? 1976年,瑞士计算机科学家,Algol W,Modula,Oberon 和 Pascal 语言的设计师 N ...

  9. 作为一名程序员,怎样写出高效简洁的代码?

    前言: Hello大家好,我是Dream .经常有朋友问我,自己写的代码太乱,虽然功能都能实现但是写的并不简洁,让人一眼看上去就会很难受,那如何去写出简洁优雅的代码呢?那今天我就来和大家分享一下一些写 ...

最新文章

  1. python入门教程共四本书籍-Python入门经典书籍有哪些?有这三本就够了
  2. 《2022博客之星拉票专用帖》
  3. linux父子进程同步实验,Linux-父子进程的简单同步
  4. 7005.ADS-B建设和规划情况介绍
  5. 集成测试变得简单的第1部分:存储库测试
  6. 2020 年告别办公室!
  7. 7.Magento系统配置(System.xml)
  8. 3dmax渲染卡顿崩溃怎么办?(二)
  9. 计算与背景反差较大显示明显的前景色
  10. Hinton论文系列-Reducing the dimensionality of data with neural networks
  11. 敏捷项目管理实战第一天 敏捷开发SCURM的前世今生
  12. html卡片式ui,十分钟认识UI设计中卡片式设计技法
  13. SAP FICO 定义成本组件结构
  14. 手写数字识别之联邦学习
  15. nas服务器硬盘,明明白白了解NAS:网络存储服务器浅析(转载)
  16. element-ui 网格_UI备忘单:列表与网格
  17. Linux入门基础(了解Linux+简单命令)
  18. 万能乘法速算法大全_小学1—6年级必须掌握的数学速算法,超实用!
  19. pop3工作原理和命令
  20. 华硕F80S安装并激活Windows7体验

热门文章

  1. centos7服务器死机解决方案
  2. Copy of ShortCut to
  3. 强化绩效计算机自动考评,市财政局:建立完善绩效考核机制 不断提高公务员管理水平...
  4. IOU Tracker
  5. Unusual Sequences (隔板法+dp)
  6. 使用花生棒(内网版)远程控制电脑
  7. 李沐实用机器学习(class3, class4)
  8. C 经典练习题 - 账簿计算
  9. 关于SonarQube社区版使用问题及解决方法
  10. Linux安装Charm-crypto环境详细流程