构建之法第四章--两人合作

两人合作

这一章主要讲述代码规范,极限编程,结对编程,两人合作的不同阶段,影响他人的技巧。

 

  这一章主要介绍代码的规范和代码复审,这个也是我们在编码过程中需要注意的,这样既可以方便别人,也方便了我们自己,我对这个有了一个深深的体验, 今天有一个同学说调试不出来,让我帮他看一下,我

用了很长时间来理解他的每个字符代表的意义,还是我自己在全部看完后,一遍遍看他的代码才理解的,如果他能加上一些注释,排版再好一点的话,这样会大大减少我们交流的时间,所以我以后一定会严格要求自己

注意每个小的细节,让我的代码具有更强的可读性。

一:代码规范.

1.意义:代码规范是必要的,因为随着软件产业的发展,一个软件需要多人合作来完成,这意味着我们能读懂他人写的代码和我们代码能被他人看懂,如果没有一个规范,会对团队合作造成很大的阻碍。

2.分类:代码风格规范和代码设计规范。

3.代码风格规范内容

(1)缩进:默认为四个空格。

(2)行宽:限定为100字符。

(3)括号:在复杂的表达式中用括号清除的表示逻辑优先级。

(4)段行与空白的{ }行:每个“{”和“}”都独占一行。

(5)分行:不要把多条语句放在一行上或者说不要把多个变量定义在一行上。

(6)命名:用匈牙利命名法:在变量前面加上有异议的前缀,能一眼看出变量的类型及相应的语义。

(7)下划线:下划线用来分隔变量名字中的作用域标注和变量的语义。

(8)大小写:类/类型/变量:名词或者组合名词。

(9)注释:注释是为了解释程序做神魔,为神魔要这样做,以及要特别注意的地方。复杂的注释应该放在函数前面。

 

  我对这个前五条方面还是基本注意到的,后面的有时候会很不习惯,例如命名,我一般就只会用汉语拼音的首字母来表示,虽然知道这样不好,但是我在尝试用英文字母和首字母大写的时候,时间长了我自己也不认识,

还有我建工程时那些用英文意思命名的文件,当我在查找这个文件时往往会花费较多的时间,

 

4.代码设计规范内容

(1)函数:只做一件事,并且要做好。

(2)Goto

(3)错误处理:参数处理和断言。

二:代码复审

1.形式:自我审核,同伴审核和团队审核。

2.目的:找出代码,逻辑,算法,潜在,回归性错误,寻找需要修改的地方,教育开发人员。

三:结对编程

角色:驾驶员(控制键盘输入)和领航员(起到领航,提醒的作用)

 

总结:因为时代需要,我们不会独立完成代码,我们的代码需要和其他人共享合并,有时候我们还会犯一些错误,如果我们不能规范好自己的代码,那么就会给与我们一起合作的同伴增加负担,没有办法提高团队的效率,有时候还会起到反作用,所我们应该让我们的代码规范化,能让其他编程人员能够读懂。

建议:我们可以向那些身边的人学习,看看谁写的代码更规范,更容易让人读懂,更美观,学习他们的编程模式,了解他们的编程习惯。在自己编程的时候时刻提醒自己,我们的代码需要更加规范。时刻保持这个意识,相信这个成为习惯后就会拥有好的代码风格。

转载于:https://www.cnblogs.com/qingtianxt/p/6402811.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux环境变量的设置和查看

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等等。 一、Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1、永久的:需要修改配置文件,变量永…

datastage 重启 续

在重启DS时,不少人肯定会说,一定要在重启之前确认没有人连接DS了。但有时会忘的。虽然说,等一些时间,系统可能会释放死进程,但也有可能,不会。而重启服务器,对于生产系统,可不是那么…

Python urllib、urllib2、urllib3

相关链接: 《Python urllib、urllib2、urllib3用法及区别》 《urllib2库.官方文档翻译》 《urllib3官方文档》 《urllib3的基本用法》 《详解 python3 urllib》

linux 目录/sys 解析

今天学习Linux目录时,遇到/sys这个目录,老师怎么讲的,不太清楚,先对/sys目录知识进行一个整理 首先,对 /sys目录下的各个子目录进行具体说明: /sys下的子目录 内容 /sys/devices 该目录下…

南下事业篇——深圳 深圳(回顾)

2019独角兽企业重金招聘Python工程师标准>>> 二0一二年三月二十三号记录了下面的一篇日志,现在回味一下觉得自己有点惭愧,但不后悔,知道的越多就越了解自己的无知,工作之后渐渐磨灭了许多锐气,变得平滑低调…

php中花括号的使用

一、界定变量名 注:花括号内若左侧出现空格,则会当做普通花括号来解析。 二、界定表达式 1.获取字符串中某个字符 如:$strabcdefg; echo $str{0};//a 效果等同于$str[0]; 2.作为表示下标的方法定义数组 如:$arr []; $arr{10}4;…

Linux目录/bin、/sbin、/usr/bin、/usr/sbin的区别

/bin、/sbin、/usr/bin、/usr/sbin目录的区别在linux下我们经常用到的四个应用程序的目录是/bin、/sbin、/usr/bin、/usr/sbin 。而四者存放的文件一般如下:/bin: bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mk…

游戏开发--开源软件8--cyclone2D(手机引擎+设计工具)

2019独角兽企业重金招聘Python工程师标准>>> Cyclone2D (飓风软件)是集成的手机游戏设计工具以及开源的引擎,工具提供了强大的动画、地图、数值、脚本等设计功能,开源引擎提供了一体化的模块加载与管理,并提供了详细的API文档以及…

python编码

https://www.cnblogs.com/xiao-xue-di/p/11283496.html 《Python中的Unicode编码和UTF-8编码》 《字符串和编码》 《python编码转换(unicode / utf8 / gbk / 内部编码)》 字符编码 最早127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号&#xff0…

Vipe框架构思记

准备着手写一个JAVA框架,基于公司目前的框架提取出来。当然公司现在的框架也是我搭建的。在这整理一下思路。 框架名称:Vipe AOP,IOC容器:Spring MVC:Spring MVC ORM:Mybatis RPC:Dubbo 优点: 1.前后端分享,前端与后端通过dubbo通…

Linux中vi显示中文乱码的问题

linux 下编程,用到的编程工具是VI,编辑编译都方便,但经常出现中文乱码问题,下面可完美解决这个问题 由于在windows下默认是gb编码,而我的vim默认是utf-8(gedit默认也是utf-8),所以打…

Python JSON

JSON函数 使用JSON函数需要导入json库:import json json.dump() 将序列化后的JSON字符串保存到文件 语法 json.dump(obj, fp, skipkeysFalse, ensure_asciiTrue, check_circularTrue, allow_nanTrue, clsNone, indentNone, separatorsNone, encoding"utf-…

WIFI vs 无线网

大家好多人都在使用无线设备上网,好多人对一些名词充满了好奇,比如WLAN和WIFI的区别是什么? WIFI无线上网和WLAN无线上网是什么意思? 这篇文章中我们为大家介绍什么是WIFI无线上网?大家可能会有这样的疑问,听说最多的应该是WLAN无线上网&a…

[转]jQuery Validate使用说明

本文转自&#xff1a;http://www.cnblogs.com/gimin/p/4757064.html jQuery Validate 导入 js 库 <script src"./jquery-validation/lib/jquery-1.8.3.js" type"text/javascript"></script> <script src"./jquery-validation/dist/jqu…

Linux 设备驱动开发 —— Tasklets 机制浅析

一 、Tasklets 机制基础知识点 1、Taklets 机制概念 Tasklets 机制是linux中断处理机制中的软中断延迟机制。通常用于减少中断处理的时间&#xff0c;将本应该是在中断服务程序中完成的任务转化成软中断完成。 为了最大程度的避免中断处理时间过长而导致中断丢失&#xff0c;有…

验证码(一)

需要验证码的地方还真不少&#xff0c;这主要是为了确保用户信息的安全。这里我做了一个纯字母的验证码。Random rnew Random ();string all "";private void btnCreatAuthCode_Click(object sender, EventArgs e){GetAuthCodes();}private void GetAuthCodes(){//定…

mysqld命令相关介绍

https://www.cnblogs.com/shymen/p/8850655.html mysqld命令相关介绍 mysqld --verbose --help 显示服务器选项和可配置变量一览 从配置文件[mysqld][server]组读取信息 -? //–help 查看简短帮助信息 –ansi //使用标准ANSI&#xff0c;SQL语法 -b //–basedir mysql安装…

字符串对象的各种方法

例&#xff1a; var str "hello world!"; var str1 "wo"; 1、 indexOf()方法&#xff1a;用于返回某个指定的字符串值在字符串中首次出现的位置。 alert(str.indexOf(str1)) // 6 2、charAt()方法&#xff1a;用于返回指定位置的字符。 alert(str.charA…

ios下使用rsa算法与php进行加解密通讯

首先了解一下几个相关概念&#xff0c;以方便后面遇到的问题的解决&#xff1a;RSA算法&#xff1a;1977年由Ron Rivest、Adi Shamirh和LenAdleman发明的&#xff0c;RSA就是取自他们三个人的名字。算法基于一个数论&#xff1a;将两个大素数相乘非常容易&#xff0c;但要对这个…

Linux 设备驱动开发 —— platform 设备驱动

一、platform总线、设备与驱动 在Linux 2.6 的设备驱动模型中&#xff0c;关心总线、设备和驱动3个实体&#xff0c;总线将设备和驱动绑定。在系统每注册一个设备的时候&#xff0c;会寻找与之匹配的驱动&#xff1b;相反的&#xff0c;在系统每注册一个驱动的时候&#xff0c;…