IT人士的职业规范——凝视
这两天将系统敲完了,该总体调试了,调试的过程中,发现了一个非常大的问题,就是自己的凝视写的不够,有时候不明确U层这个事件是做什么的,有时候不知道这个事件传递的是什么參数,有时候不知道相应的B层和D层是哪个,相应的B和D各做了什么工作。………….所以有的时候就须要自己从头到尾在看一遍代码,看一下传递了什么參数。看这些參数,是做什么用的,看一下,相应的B层对返回的数据做了什么处理,看一下相应的D层。起了什么作用。
这个时候这个过程真的非常浪费时间,让自己有一种非常厌烦的感觉。
这是自己的代码,自己编写,自己调试。就有这种感觉了,假设让你去调试别人的这种代码,那别人又该有什么样的感觉那??是不是要吐了啊??
所以说在这个小程序中我是深深的体会到了代码凝视的重要性。
想了一下当时自己为什么没有编写凝视,结合曾经米老师讲的课。整理了一下。
①写凝视太费时间。
实际上,在编写代码时加上凝视根本不须要多少时间。当时是趁热打铁,对于那些代码理解比較通透,写一句凝视就是敲那几个字的时间。
可是假设后来在加入凝视,就不只要敲那几个字,还要在从新理解一下这一块的代码。甚至相关的代码。假设后来不谢凝视,那么等到调试的时候就会像上面说的一样了啊。
②有些过程非常难凝视。
通常而言,假设代码的一个部分非常难凝视,那么假设没有凝视,其它人就更难理解你的代码。自己理解不清楚。怎么会使别人也理解清楚那。
③复杂而非常难凝视的代码或许不是什么好代码。假设你发现难以给所有或部分过程加上凝视,那么请回头好好观察一下你的代码,你会发现更好的解决的方法。
所以,凝视不是代码的附属品,它与代码是共存的关系。
凝视就是对代码的解释和说明。
目的是为了让别人和自己非常easy看懂。为了让别人一看就知道这段代码是做什么用的。代码凝视有几类
①行尾凝视
就是每行代码末尾的凝视。这些凝视仅仅能用于较短的描写叙述。比方变量。
②内部凝视
内部凝视是最经常使用和最重要的凝视。使用内部凝视可以说明过程的实现方法。使读者可以顺利通过各个不同的转折。
如:IF语句、Select Case语句、循环语句、全局变量、重要的变量。内部凝视将故意于理解这些代码。
③凝视标头。
在模块、类、属性、方法前一行加入凝视,以便调用的时候提示用户。凝视标头能够包括多个文字项,比方输入參数、返回值、原始作者、最后编辑该过程的程序猿、上次改动日期、版权信息,甚至包括程序猿喜欢的颜色。
每一个凝视表头应该有统一的格式。这个我们的net代码规范中已经做了规范了。
当然为了使我们的凝视看起来不是非常乱,增强凝视的可读性。
①易理解-----凝视是供人阅读的,而不是让计算机阅读的。应该使凝视便于人们理解。难以理解的凝视不如不写。
②另外,凝视属于文字信息。(用汉语翻译过来,自己的话说出来)---正如应用程序的文字信息,必须清楚地书写一样,代码凝视也应该遵循好的书写规则。比方:使用比較完整的语句来描写叙述。不要使用缩写。
③书写---凝视通常位于它们要说明的代码的前面。为了从视觉上突出凝视与它的代码之间的关系,请将凝视缩进,使之与代码处于同一个层次上。
上面已经写了,凝视的种类,凝视的格式。那么应该对什么进行凝视那?
|
种类 |
说明 |
|
类、过程、方法 |
描写叙述其的用途(而不是事实上现方式)、參数、返回值 |
|
输入 |
输入參数的作用 |
|
输出 |
说明过程返回的值,及其代表的意义 |
|
变量 |
尤其是全局变量,作用范围 |
这些凝视的种类自己在写程序中觉得应该加入的。如有什么不足,请指出。
用文字说明代码的作用,简单地反复代码做些什么。这种凝视差点儿不能给代码添加什么信息,(这句感觉自己理解不是非常到位)
凝视能使代码更加easy理解。更加easy跟踪。出色的凝视就像一幅好的设计蓝图,可以引导阅读者通过你的应用程序的曲折之处,可以说明预期的执行结果和可能出现的异常情况。
当然眼下自己还是没有达到这样的程度,越写感觉自己越不懂。哎…………….
IT人士的职业规范——凝视的更多相关文章
- [转载]在澳洲做IT人士的收入差别
澳洲跟中国一样高税收,但最大的好处是,福利返还很多:1.如果家里有孩子,每2周会有各种税收福利,就是所谓的family tax benefits (a/b):2.每财年结束还有退税:3.看病不用钱,因 ...
- iOS开发- Xcode插件(一)-规范凝视生成器VVDocumenter
分享几个经常使用的Xcode插件. 第一个, 规范凝视生成器VVDocumenter. 顾名思义, 它能够非常方便的为你自己主动加入�凝视 使用效果例如以下: 下载链接:https://github. ...
- 免费申请 Github 私有仓库--学生和教育人士的福利
免费申请 Github 私有仓库 -学生和教育人士的福利 Github 是全球知名的软件项目托管网站.在 Github 创建私有仓库是需要收费的,收费方案有多种,费用最小的方案是每月 7 美元的“微型 ...
- CSDN日报20170312——《成功人士的七个习惯》
[程序人生]成功人士的七个习惯 作者:liumiaocn 所谓温故而知新.重读往往会带来新的收获,即使没有新的收获,可以带来新的思考也是非常不错.在个人成长的历程中.习惯所扮演的角色不言而喻,Step ...
- 用象棋的思维趣说IT人的职业发展和钱途
最近我花了不少功夫在学习象棋,也学习了王天一等高手的棋路,感觉IT人的职业和下棋一样,往好了讲,争主动权争实惠只争朝夕,往坏了讲,一步走错得用多步来弥补,如果错误太大未必能弥补回来.在本文里,就用下棋 ...
- 高效能Windows人士的N个习惯之一:启动篇
接触电脑十多年,经历了各种折腾阶段,这几年开始沉静下来,不再追求花哨的界面与应用,只注重工作的效率,逐渐养成了一套自己的操作习惯,感觉不错,特撰文分享.标题借用了一下<高效能人士的七个习惯> ...
- 怎样学好C语言,一个成功人士的心得!
今天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了全部的数字化信息,不论是一段程序,一封email,一部电影都是用一连串的 ...
- (转)如何学好C语言,一个成功人士的心得!
zidier111发表于 2013-1-26 08:59:05 今 天,我能够自称是一个混IT的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是他们发现了所 ...
- 一个IT人士的个人经历,给迷失方向的朋友
这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为国内IT的发展尽自己一份微薄的力量.最近看到很多学生朋友和我当年一样没有方向 ,所以把我的经历写出来与大家共勉,希望能 ...
随机推荐
- Oracle 方法
1.递归 select zxdept from (select d.id, d.zxdept, d.RANK, d.fatherId from web_dept d start with d.id = ...
- Jquery面试题整合
来自棱镜学院-在线IT教育 www.prismcollege.com 一.Jquery測试题 以下哪种不是jquery的选择器?(单选) A.基本选择器 B.后代选择器 C.类选择器 D.进一 ...
- BOOST 线程完全攻略 - 结束语
modulethread扩展多线程破解通讯 全文介绍了3个boost::thread的扩展类,希望能给大家书写多线程代码带来便捷. thread -> controlled_module_ex ...
- Android学习笔记--服务(Service)
1.服务概述 1.服务是Android四大组件之一,在使用上可以分为本地服务和远程服务,本地服务是指在不影响用户操作的情况下在后台默默的执行一个耗时操作,例如下载,音频播放等.远程服务是指可以供其他应 ...
- FULL JOIN 与 CROSS JOIN
FULL JOIN 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行.(返回JOIN 两端表的所有数据,无论其与另一张表有没有匹配.显示左连接.右连接和内连接的并集) FULL JOIN ...
- Entity Framework Code First主外键关系映射约定
本篇随笔目录: 1.外键列名默认约定 2.一对多关系 3.一对一关系 4.多对多关系 5.一对多自反关系 6.多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的.两个 ...
- ios开发中的基本设计模式
(一)代理模式应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现.优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过和protoc ...
- Xcode的代码片段快捷方式-Code Snippet Library(代码片段库)
最近换了新电脑,装上Xcode敲代码发现很多以前攒的Code Snippet忘记备份了,总结了一下Code Snippet的设置方法,且行且添加,慢慢积累吧. 如下图: Title - Code ...
- 【转】研华Adam6060某段时间后无法连接的问题
配合乙方测试,需连接现场Adam模块.一段时间后发现模块无法连接,网上资料甚少,发现此贴,记录下.以前没有多客户端高频次(其实谈不上高)连接,没有考虑连接释放的问题.另外,官方Demo也没有释放连接. ...
- C++ Primer Plus 6th 读书笔记 - 第6章 分支语句和逻辑运算符
1. cin读取错误时对换行符的处理 #include <iostream> using namespace std; int main() { double d; char c; cin ...