惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
博客园 - 三生石上(FineUI控件)
人人都是产品经理
人人都是产品经理
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
N
Netflix TechBlog - Medium
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Vercel News
Vercel News
P
Palo Alto Networks Blog
C
CERT Recently Published Vulnerability Notes
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
L
Lohrmann on Cybersecurity
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
D
Darknet – Hacking Tools, Hacker News & Cyber Security
P
Proofpoint News Feed
The Register - Security
The Register - Security
T
Threat Research - Cisco Blogs
P
Privacy & Cybersecurity Law Blog
A
Arctic Wolf
F
Fortinet All Blogs
V
Vulnerabilities – Threatpost
The Hacker News
The Hacker News
V
Visual Studio Blog
Know Your Adversary
Know Your Adversary
博客园 - Franky
C
Check Point Blog
P
Privacy International News Feed
NISL@THU
NISL@THU
T
Tenable Blog
云风的 BLOG
云风的 BLOG
T
Tailwind CSS Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
B
Blog RSS Feed
A
About on SuperTechFans
L
LangChain Blog
Cyberwarzone
Cyberwarzone
Security Latest
Security Latest
C
CXSECURITY Database RSS Feed - CXSecurity.com
G
Google Developers Blog
WordPress大学
WordPress大学
T
Threatpost
Y
Y Combinator Blog
Last Week in AI
Last Week in AI
The GitHub Blog
The GitHub Blog
爱范儿
爱范儿
T
Tor Project blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Spread Privacy
Spread Privacy

博客园 - Arthur_wuancheng(大步牛)

练手之作:易元威客任务发布系统(2) 练手之作:易元威客任务发布系统(1) 人生一世 草木一秋 如何进行高效的项目管理?(转) 项目管理的一点总结 极限编程法一点思考 WEB Service 下实现大数据量的传输 (转) 项目经验(转) Atlas 学习笔记: ajax 改进 by Atlas ajax for .net in vs2003 like gmail ^_^ 存储过程分页,以及动态sql(Sql server) C# 2.0 New Feature(1) WebService Enhancements 2.0 Learning Note ref type & out type Duwamish架构分析篇 (转) 程序编码应保持良好的规范(C#)(转) 如何用正确的方法来写出质量好的软件的75条体会 [转] How to Write to Database by EnterPriseLibrary2005 Logging Application Block(项目心得) 自己正在做电信的互联星空项目,里面用到的xml
也谈代码规范 (转)
Arthur_wuancheng(大步牛) · 2005-07-08 · via 博客园 - Arthur_wuancheng(大步牛)

看了湘南和也写的程序编码应保持良好的规范(C#) ,我也忍不住要说上两句。这两年来,做了几个项目,技术没有长进多少,对于规范倒是有了不少的体会。
       
湘南和也提到的四点规范是比较重要的,我再补充几点。
        1、常量的命名常量使用大写字母,各个单词之间通过下划线的划分。譬如BASE_SALARY;
        2、变量的命名变量的首字母小写,之后的单词的首字母大写。譬如baseSalaryLow;
        3、常量和变量的命名:两者都必须注意一个问题,就是单词的准确性。在一篇不错的代码中出现了单词拼写的错误,会让人感觉好像一锅好汤掉进了几颗老鼠屎;
        4、代码的缩进:缩进要保持一致。很多规范会建议利用tab作为缩进的占位符号。我是不建议这样做,因为不同的文本编辑器对于tab的显示都不一样,如果有些地方使用了tab,有些地方使用了相应的空格,那么就会出现在这个编辑器中看着还整整齐齐的,换到另外一个编辑器就会乱七八糟的情况。因此,我更倾向于使用空格来做为缩进的占位符号;
        5、空格的使用:空格除了作为缩进的占位符之外,还在很多地方也是必需的。譬如,在条件语句和循环语句中,关键字之后就应该使用空格。在这点上,湘南和也给出的代码并没有做到,如果这样写会更好:

        

如果大括号与条件语句的括号是同一行的话,大括号之前也要使用括号。同时,除了湘南和也提到的赋值语句中的等号前后要使用空格之外,各种运算符的前后也应该使用空格,除了自增(++)、自减(--)和逻辑非(!)运算符之外。例如:

       

        6、换行的使用:不管是C++、Java还是C#,你都可以将所有代码写在同一行。但是如果你真的这么做了,那么阅读你的代码简直就是噩梦。因此定好一行代码不超过多少列也是相当必要的。这可以让阅读代码者看得更舒服,因为他不需要来回拖动横向滚动条了;
        7、变量的作用域:定义变量的时候要考虑变量的作用域。譬如,在循环语句中,通常都会使用一个变量作为循环的标志,这个变量应该定义为局部变量,仅循环的区域可见。譬如:

i的定义就应该出现在for循环的括号中,而非for循环之外;
        8、尽量避免使用Magic Number和Magic String:这一点在我的上一篇Post已经作了详细讨论;
        9、注释的使用:代码都应该有一个注释头,包含一些版权声明,作者,修改历史记录等信息。在方法之前都应该使用多行注释来说明方法的功能和参数的含义。单行注释过长的时候,要使用多行注释。
        
        就想到这么多了,如果各位朋友有兴趣,还请继续补充,不吝赐教。最后,我还想说的一点就是,虽然在实际的开发当中都会有专门的工具来对代码进行format,也会有专门的工具来检查代码是否符合规范,但是我们还是应该将这些规范牢记在心,成为你写代码的习惯,毕竟工具不是万能的,而且工具也有失效的时候。