第一篇:金融机构编码规范
金融机构编码规范
中国人民银行发布《金融机构编码规范》
日前,中国人民银行发布了《金融机构编码规范》(以下简称《规范》),从宏观层面统一了我国金融机构分类标准,首次明确了我国金融机构涵盖范围,界定了各类金融机构具体组成,规范了金融机构统计编码方式与方法。《规范》是加强金融业管理,维护金融安全的基础,也是构建金融信息系统,促进金融信息共享的前提。《规范》的发布是提高我国金融业管理水平的必然要求,为宏观管理信息与微观统计数据、国民经济运行信息与金融运行信息之间搭建了协调、沟通的桥梁。
金融机构编码规范
1.范围
本规范规定了金融机构的编码对象、编码结构和表示形式,使每个编码对象获得一个唯一的代码,以适应金融机构信息系统
建设和数据交换的需求。
本规范适用于金融机构新建信息系统的开发、数据仓库的建
设,也可用于指导已有信息系统的升级改造。
2.规范性引用文件
下列文件中的条款通过本规范的引用而成为本规范的条款。
凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内
容)或修订版均不适用于本标准,然而,鼓励根据本规范达成协
议的各方研究是否可使用这些文件的最新版本。
GB/T 2260-2007中华人民共和国行政区划代码
GB/T 2659-2000世界各国和地区名称代码(eqv ISO
3166-1:1997)
3.术语和定义
下列术语和定义适用于本规范。
3.1 货币当局
代表国家制定并执行货币政策、金融运行规则,管理国家储
备,从事货币发行与管理,与国际货币基金组织交易及向其他存
款性公司提供信贷,以及承担其他相关职能的金融机构或政府部
门。
3.2 监管当局
对金融机构及其经营活动实施全面的、经常性的检查和督
促,实行领导、组织、协调和控制,行使实施监督管理职能的政
府机构或准政府机构。
3.3 银行
依法设立的吸收公众存款、发放贷款、办理结算等业务的企
业法人。
3.4 城市信用合作社
依照有关规定在城市市区内由城市居民、个体工商户和中小 企业法人出资设立的,主要为社员提供服务,具有独立企业法人 资格的合作金融组织。
3.5 农村信用合作社
经相关国家部门批准设立,由社员入股组成、实行社员民主 管理、主要为社员提供金融服务的农村合作金融机构。
3.6 农村合作银行
由辖内农民、农村工商户、企业法人和其它经济组织入股组 成的股份合作制社区性地方金融机构。
3.7 农村商业银行
由辖内农民、农村工商户、企业法人和其它经济组织共同发 起成立的股份制地方性金融机构。
3.8 村镇银行
经中国银行业监督管理委员会依据有关法律、法规批准,由 境内外金融机构、境内非金融机构企业法人、境内自然人出资,在农村地区设立的主要为当地农民、农业和农村经济发展提供金 融服务的金融机构。
3.9 农村资金互助社
经中国银行业监督管理机构批准,由乡(镇)、行政村农民
和农村小企业自愿入股组成,为社员提供存款、贷款、结算等业 务的社区互助性金融机构。
3.10 财务公司
以加强企业集团资金集中管理和提高企业集团资金使用效
率为目的,为企业集团成员单位提供财务管理服务的金融机构。
3.11 信托公司
依照《中华人民共和国公司法》和《信托公司管理办法》设 立的主要经营信托业务的金融机构。
3.12 金融资产管理公司
经国务院决定设立的,收购、管理和处置金融机构、公司及 其他企业(集团)不良资产,兼营金融租赁、投资银行等业务的 金融机构。
3.13 金融租赁公司
经中国银行业监督管理委员会批准,以经营融资租赁业务为 主的金融机构。
3.14 汽车金融公司
经中国银行业监督管理委员会批准设立的,为中国境内的汽 车购买者及销售者提供金融服务的金融机构。
3.15 贷款公司
经中国银行业监督管理委员会依据有关法律、法规批准,由 境内商业银行或农村合作银行在农村地区设立的专门为县域农 民、农业和农村经济发展提供贷款服务的金融机构。
3.16 货币经纪公司
经中国银行业监督管理委员会批准在中国境内设立的,通过 电子技术或其他手段,专门从事促进金融机构间资金融通和外汇 交易等经纪服务,并从中收取佣金的金融机构。
3.17 证券公司
依照《中华人民共和国公司法》规定设立的并经国务院证券 监督管理机构审查批准而成立的专门经营证券业务,具有独立法 人地位的金融机构。
3.18 证券投资基金管理公司
经中国证券监督管理委员会批准,在中华人民共和国境内设 立,从事证券投资基金管理业务的企业法人。
3.19 期货公司
依照《中华人民共和国公司法》和《期货交易管理条例》规 定设立的经营期货业务的金融机构。
3.20 投资咨询公司
经中国证券监督管理委员会批准设立,为证券、期货投资人 或者客户提供证券、期货投资分析、预测或者建议等直接或者间 接有偿咨询服务的金融机构。
3.21 财产保险公司
经中国保险监督管理委员会批准设立,依法登记注册,从事 经营财产损失保险、责任保险、信用保险、短期健康保险和意外 伤害保险等财产保险业务的保险公司。
3.22 人身保险公司
经中国保险监督管理委员会批准设立,依法登记注册,从事
意外伤害保险、健康保险、人寿保险等人身保险业务的保险公司。5
3.23 再保险公司
经中国保险监督管理机构批准设立,并依法登记注册的,专 门从事再保险业务、不直接向投保人签发保单的保险公司。
3.24 保险资产管理公司
经中国保监会会同有关部门批准,依法登记注册、受托管理 保险资金的金融机构。
3.25 保险经纪公司
经中国保险监督管理委员会批准设立,基于投保人的利益,为投保人与保险人订立保险合同提供中介服务,并依法收取佣金 的金融机构。
3.26 保险代理公司
经中国保险监督管理委员会批准设立,根据保险公司的委
托,向保险公司收取代理佣金,并在保险公司授权的范围内代为 办理保险业务的金融机构。
3.27 保险公估公司
经中国保险监督管理委员会批准设立的,接受保险当事人委 托,专门从事保险标的的评估、勘验、鉴定、估损、理算等业务 的单位。
3.28 企业年金
指企业及其职工在依法参加基本养老保险的基础上,自愿建 立的补充养老保险制度。
3.29 交易所
经国家有关主管部门批准设立的,提供证券、商品、期货等 集中竞价交易场所,不以营利为目的的法人。
3.30 登记结算类机构
经国家有关主管部门批准设立的,为金融交易提供集中的登 记、托管与结算服务,不以营利为目的的法人。
3.31 金融控股公司
依据《中华人民共和国公司法》设立,拥有或控制一个或多 个金融性公司,并且这些金融性公司净资产占全部控股公司合并 净资产的50%以上,所属的受监管实体应是至少明显地在从事两 种以上的银行、证券和保险业务独立企业法人。
3.32 小额贷款公司
由自然人、企业法人或其他社会组织依法设立,不吸收公众 存款,经营小额贷款业务的有限责任公司或股份有限公司。4 编码对象
本规范的编码对象是中华人民共和国的货币当局、监管当局 及其境内外派出机构;境内银行、证券、保险类金融机构的法人 机构及其境内外具有经营许可的分支机构;交易结算类金融机构 及其境内分支机构;境内设立的金融控股公司;国外金融机构在 我国境内设立的具有经营许可的非法人分支机构,中国人民银行 认定的其他有关金融机构。“境内”指中华人民共和国(不含港、澳、台地区)境内的地区。编码的结构和表示形式
5.1 结构
金融机构编码是特征组合码,长度为十四位,分别为大写拉 丁字母或阿拉伯数字。编码分为六段,从左至右分别为:一位金 融机构一级分类码;一位金融机构二级分类码;四位金融机构三 级分类码;两位地区代码;五位顺序码;一位校验码。7
5.1.1 金融机构一级分类码
长度为一位,采用大写拉丁字母或阿拉伯数字编码,表示金 融机构的一级分类。
A-货币当局
B-监管当局
C-银行业存款类金融机构
D-银行业非存款类金融机构
E-证券业金融机构
F-保险业金融机构
G-交易及结算类金融机构
H-金融控股公司
Z-其他
J~Y(I、O除外),1~9(0除外)-预留
5.1.2 金融机构二级分类码
长度为一位,采用阿拉伯数字编码在同一一级分类内按顺序 编码,表示金融机构的二级分类。
A-货币当局
1-中国人民银行
2-国家外汇管理局
B-监管当局
1-中国银行业监督管理委员会
2-中国证券监督管理委员会
3-中国保险监督管理委员会
C-银行业存款类金融机构
1-银行
2-城市信用合作社(含联社)
3-农村信用合作社(含联社)
4-农村资金互助社
5-财务公司
D-银行业非存款类金融机构
1-信托公司
2-金融资产管理公司
3-金融租赁公司
4-汽车金融公司
5-贷款公司
6-货币经纪公司
E-证券业金融机构
1-证券公司
2-证券投资基金管理公司
3-期货公司
4-投资咨询公司
F-保险业金融机构
1-财产保险公司
2-人身保险公司
3-再保险公司
4-保险资产管理公司
5-保险经纪公司
6-保险代理公司
7-保险公估公司
8-企业年金
G-交易及结算类金融机构
1-交易所
2-登记结算类机构
H-金融控股公司
1-中央金融控股公司
2-其他金融控股公司
Z-其他
1-小额贷款公司
5.1.3 金融机构三级分码
长度为四位,采用阿拉伯数字0001~9999在同一二级分类内 按顺序编码,表示金融机构的三级分类,三级分类指境内单家法 人金融机构或境外金融机构直接在境内设立的不具备法人资格 的机构。
5.1.4 地区代码
长度为两位,采用拉丁字母和阿拉伯数字编码,表示金融机 构所在地区的代码。
按金融机构所在地不同,分别按照如下两种方式赋码: ——当为境内金融机构时,采用《GB/T 2260-2007 中华人
民共和国行政区划代码》,取其数字码前两位为金融机构所属省、自治区、直辖市代码。
——当为境外金融机构时,采用《GB/T 2659-2000 世界各 国和地区名称代码(eqv ISO 3166-1:1997)》,取其两字符拉 丁字母代码为金融机构属地国家或地区的代码。(台湾、香港、澳门视为境外)
5.1.5 顺序码
长度为五位,采用阿拉伯数字编码,表示金融机构的顺序号。同一金融机构(三级)分类、同一地区代码下,多个不同营 业机构的顺序编号从00001-99999顺序连续编码。
5.1.6 校验码
长度为一位,采用阿拉伯数字编码,使用The Luhn Mod-10Method算法生成。
5.2 编码的表示形式
金融机构编码的各段依次连接,不留空格,其表示形式如下。位置***1314 编码 XXXXXXXXXXXXXX 码段 一 二 三四五六 其中:各码段的含义如下。
一:金融机构一级分类码
二:金融机构二级分类码
三:金融机构三级分类码
四:地区代码
五:顺序码
六:校验码
第二篇:C#编码规范及命名规范
山东锋士自动化系统有限公司
C# 编码规范
指导规则和最佳实践 Version 1.0
董毅 2010/4/26
第一条 编码的风格和细节要求
编码风格
至少在单一文件中缩进和风格要保持一致,同一行中内容不要太长,最好不要大于10个单词。不要随意地或者以容易混淆作用域嵌套关系的方式放置括号,要尽量遵循每个文件中已经使用的体例。
命名约定和规范
1.不要使用晦涩的名称,起名要简单易懂
a.避免使用单字母做变量名,比如:i 或者 t。应使用index或者temp进行替代 b.不要缩写单词,比如用num代替number 2.使用全大写字母表示宏,常量,如:LIKE_THIS 3.类,函数和枚举的名称的单词首字母大写,如:LikeThis public class SomeClass {
const int DefaultSize = 100;public void SomeMethod(){ } } 4.变量的首字母小写,其他单词首字母大写,如:likeThis void MyMethod(int someNumber){ int number;} 5.接口的第一个字母用I开头
interface IMyInterface {...} 6.私有成员变量以m_开头,剩余内容遵从首字母大写的规范
public class SomeClass { private int m_Number;} 7.属性类以Attribute做后缀,异常类以Exception做后缀
8.命名方法以【动词】-【目标】组成,比如:ShowDialog()
9.拥有返回值的方法应该以返回值描述其方法名,比如:GetObjectState()10.总是使用C#的预定义类型,而不是System命名空间中的别名,比如:
object 而不是
Object string 而不是
String int
而不是
Int32 11.对于基类,类型描述采用大写字母。当处理.NET中的类型时才保留后缀Type //正确
public class LinkedList
public class LikedList
12.使用有意义的名字空间,比如项目名称或者公司名称 13.避免使用类的全称,而是使用using语句进行引用 14.避免在命名空间内使用using语句
15.将所有framework命名空间吗放在一起,后面放自定义或第三方的命名空间名
using System;using System.Collections;using System.ComponentModel;using System.Data;using MyCompany;using MyControls;
16.采用委托推断,不要显式实例化委托
delegate void SomeDelegate();public void SomeMethod(){ } SomeDelegate someDelegate = SomeMethod;
17.缩进至少在同一文件中要保持统一风格,注释缩进和其注释的代码在同一层次 18.所有注释要经过认真检查,不要有不明语义或者错别字 19.所有成员变量应该定义在前面,和属性或方法间空开一行
public class MyClass { int m_Number;string m_Name;
public void SomeMethod1(){ } public void SomeMethod2(){ } }
20.局部变量的定义尽可能靠近它的初次使用 21.文件名应该体现其包含的类
22.当使用partial类型且每部分分配一个文件时,以类名+逻辑部分的方式来命名文件
//MyClass.cs public partial class MyClass { } //MyClass.Designer.cs public partial class MyClass { } 23.做大括号总是放在新行中
24.匿名方法模仿普通方法布局,但是大括号要和委托声明对其
delegate void SomeDelegate(string someString);//正确
void InvokeMethod(){ SomeDelegate someDelegate = delegate(string name){ MessageBox.Show(name);};someDelegate(“Juval”);} //错误
void InvokeMethod(){ SomeDelegate someDelegate = delegate(string name){ MessageBox.Show(name);};someDelegate(“Juval”);}
25.没有参数的匿名方法使用空括号,仅当匿名方法被用于任何委托时才可以省略括号
delegate void SomeDelegate();//正确
SomeDelegate someDelegate1 = delegate(){ MessageBox.Show(“Hello”);};//错误
SomeDelegate someDelegate1 = delegate { MessageBox.Show(“Hello”);};
26.在使用Lambda表达式时,模仿一般的方法规范。
delegate void SomeDelegate(string someString);
SomeDelegate someDelegate =(name)=> { Trace.WriteLine(name);MessageBox.Show(name);};
27.当内联Lambda表达式仅包含一个简单的语句时,应避免多语句或者返回语句出现在大括号中。可以简单使用小括号表达:
delegate void SomeDelegate(string someString);
void MyMethod(SomeDelegate someDelegate){ }
//正确
MyMethod(name=>MessageBox.Show(name));
//错误
MyMethod((name)=>{Trace.WriteLine(name);MessageBox.Show(name);});注释
编写有用的注释,不要在注释中重复写代码语义。应该编写的是解释方法和原理的说明性注释。
函数
不要在一个函数中包含太多内容,函数的功能要简单,短小,使人更容易理解,也有利于防错。
第二条 尽量在代码中不包含被警告的内容
高度重视警告:使用编译器的最高警告级别。构建尽量做到干净利落(没有警告)。理解所有的警告。通过修改代码而不是降低警告级别来排除警告。
即使程序一开始似乎能够正确运行,也还是要这样做。即使你能够肯定警告是良心的,仍然要这样做。因为良性警告的背后可能隐藏着未来指向真正危险的警告。
项目设置和项目结构
1. 总是以4级警告建立项目
2. 在发布版中将警告当作错误(注意这不是VS.NET的缺省设置)
3. 永远不要抑制特定的编译警告
4. 总是在应用程序的配置文件中显式地说明支持的运行时版本
5. 避免显式的自定义版本改向和绑定到CLR程序集
6. 不要在AssemblyInfo.cs中放任何逻辑。除了在AssemblyInfo.cs中,不要在任何文件中放程序集属性(应包括公司名称、描述、版权等)7. 所有程序集应该使用相对路径引用 8. 不允许在程序集中循环引用
9. 努力对同一逻辑应用程序中(通常是一个解决方案)的所有程序集和客户端使用统一的版本号
10.将Visual Studio.NET应用配置文件命名为App.config,并将其包括在项目中 11. 将Visual Studio.NET缺省的项目结构改为标准的布局,对项目文件夹和文件应用统一的结构 12. 一个发布版本应该包含Debug标记
第三方头文件
无法修改的库头文件可能包含引起警告的构造。如果这样,可以用自己的包含原头文件的版本将此文件包装起来,并有选择的为该作用域关闭警告,然后在整个项目的其他地方包含此包装文件。
代码中尽量不包含未使用的函数,变量
经确认确实不需要使用的函数,变量(不包括为未来使用而设的占位符),可以进行删除处理。
不要遗漏return语句
PS:例外情况
有时候编译器可能会发出一些确实无意义的警告。这些警告要经过团队确认后尽量在局部进行屏蔽,但要做出明确的注释,说明为什么必须禁用。
第三条 使用自动构建系统 第四条 使用版本控制系统
应确保每次提交的代码都可以构建成功。
第五条 定期进行代码审查
互相阅读彼此的代码不但可以尽快提高自己的编码水平,也可以相互借鉴更好的方法。
第六条 一个实体应该只有一个紧凑的职责
一次只解决一个问题:只给一个实体(变量、类、函数、名称空间、模块和库)赋予一个定义良好的职责。应该只选择目的单一的函数,小而且目的单一的类,和边界清晰的紧凑模块。
应该用较小的低层抽象构建更高层次的抽象,要避免将几个低层抽象集合成一个较大的低层次抽象聚合体。用几个简单的行为来实现一个复杂的行为,比反其道而行之更加容易。
第七条 正确,简单和清晰第一
软件简单为美:正确优于速度,简单优于复杂,清晰优于机巧,安全优于不安全。
要避免使用程序设计语言中的冷僻特性。应该使用最简单的有效技术。不要使用不必要的操作符重载
构造函数的参数,应该使用命名变量,而不要使用临时变量
这能够避免可能的声明二义性,还经常能使代码的意图更加清晰,从而更容易维护,而且也更安全。
第八条 编程中应该知道何时和如何考虑可伸缩性
当数据爆炸性增长时:不要进行不成熟的优化,如果能够证明优化必要而且非常重要,则应该集中精力改善算法的复杂性,而不是进行小型的优化,比如节省一个多余的加法运算。
为了避免未来可能遭遇到的数据处理容量上的瓶颈问题,应该预先做这些事情:
使用灵活的、动态分配的数据,不要使用固定大小的数组
那种“比现在所需要的最大数组还要大”的数组,在正确性和安全性方面都存在严重问题。只有在编译时大小固定不变的数组才是可接受的。
了解算法的实际复杂性
要留心那些不易发觉的陷阱,比如看似线性的算法实际上要调用其他线性操作,结果算法实际上是二次的。
优先使用线性算法或者尽可能快的算法 尽可能避免劣于线性复杂性的算法
如果面对的是一个O(NlogN)或者O(N²)算法,就必须花费精力寻找替代方案,只有代码才不至于在数据量显著增长的情况下陷入深度激增的性能深潭。例如:建议使用范围成员函数(通常是线性的)而不是反复调用单元素替代函数,后者会很容易在一个线性的操作要调用另一个线性操作时变成二次复杂性。永远不要使用指数复杂性的算法,除非真的别无选择
在决定接受指数算法之前,必须尽力寻找替代方案,因为对于指数算法来说,即使是数据量的有限增加,也会使算法的性能急剧下降。
总而言之,要尽可能优先使用线性(或者更好的)算法,尽可能合理的避免使用比线性算法差的多项式算法。竭尽全力避免使用指数算法。
第九条 不要进行不成熟的优化
我们将不成熟的优化定义为这样的行为:以性能为名,使设计或代码更加复杂,从而导致可读性更差,却没有经过验证的性能需求(比如实际的度量数据与目标的比较结果)作为正当理由,因此本质上对程序没有真正的好处。
因此,默认时,不要把注意力集中在如何使代码更快上;首先关注的应该是使代码尽可能的清晰和易读。
第十条 不要进行不必要的劣化
所谓不成熟的劣化一词,指的就是编写如下这些没有必要的、可能比较低效的程序:
在可以用通过引用传递的时候,却定义了通过值传递的参数 在使用前缀++操作符很合适的场合,却使用后缀版本 在构造函数中使用赋值操作而不是初始化列表
第十一条 尽量减少全局和共享数据
共享会导致冲突:避免共享数据,尤其是全局数据。共享数据会增加耦合度,从而降低可维护性,通常还会降低性能。
名字空间作用域中的对象、静态成员对象或者跨线程或跨进程共享的对象会减少多线程和多处理器环境中的并行性,往往是产生性能和可伸缩性瓶颈的源头。建议用通信方式(比如消息队列)代替数据共享。尽量降低类之间的耦合,尽量减少交互
第十二条 隐藏信息
不要泄密:不要公开提供抽象的实体的内部信息。而应该公开抽象(至少是get/set抽象),而不是数据。
数据只是抽象、概念性状态的一种可能的具体化而已。如果将注意力集中在概念而不是其表示形式上,就能够提供富于提示性的接口,并按需要对实现进行调整。比如缓存还是实时地计算,又比如使用不同的表示方式,针对某种使用模式进行优化。
绝对不要将类的数据成员设为public,仅对最需要的类型标记为public,其他的标记为internal。它同样适用于更大的实体比如程序库。模块和程序库同样应该提供定义抽象和其中信息流的接口,从而使与调用代码的通信比采用数据共享方式更安全,耦合度更低。
第十三条 尽量在编译和连接时检查错误,而不要等到运行时
运行时检查取决于控制流和数据的具体情况,这意味着很难知道检查是否彻底。相比而言,编译时检查与控制流和数据无关,一般情况下能够获得更高的可信度。
第十四条 尽量合理的使用const常量
不变的值更易于理解、跟踪和分析,所以应该尽可能地使用常量代替变量,定义值的时候,应该把常量作为默认的选项:常量很安全,在编译时会对其进行检查。尽量不要强制转换常量的类型。
例如:
const int x = 0;public const double productWeight = 11.7;private const string productName = “Visual C#”;
第十五条 避免使用语义不清的参数
要避免在代码中使用诸如42和3.14159这样的文字常量。它们本身没有提供任何说明,并且因为增加了检测的重复而使维护更加复杂。可以用符号名称和表达式替换它们,比如width*aspectRatio
名称能够增加信息,并提供单一的维护点,而程序中到处重复的原始数据是无名的,维护起来很麻烦。常量应该是枚举或者const值,有合适的作用域和名称。
重要的特定于领域的常量应该放在名字空间一级
第十六条 尽可能局部的使用变量 第十七条 避免函数过长,避免嵌套过深
过长的函数和嵌套过深的代码块的出现,经常是因为没能赋予一个函数以一个紧凑的职责所致,这两种情况通常都能够通过更好的重构予以解决。每个函数都应该是顾其名而能思其义,易于理解的工作单元,要避免将多个小概念单元合并到一个长的函数体中的做法。
一些建议:
尽量紧凑:对一个函数只赋予一种职责
不要自我重复:优先使用命名函数,而不要让相似的代码片断反复出现 优先使用&&:在可以使用&&条件判断的地方要避免使用连续嵌套的if 不要过分使用try 优先使用标准算法
不要根据类型标签(type tag)进行分支(switch)第十八条 尽量减少定义性依赖,避免循环依赖
循环依赖是指两个模块直接或者间接地相互依赖。所谓模块就是一个紧凑的发布单元,而互相依赖的多个模块并不是真正的独立模块,而是紧紧胶着在一起的一个更大的模块,因此,循环依赖有碍于模块性,是大型项目的祸根。请避免循环依赖。
第十九条 不要引用多余的资源文件 第二十条 尽量不要重载默认的操作符,至少应保证操作符的自然语义不被破坏 第二十一条 优先使用++和—的标准形式。优先调用前缀形式。第二十二条 用小类代替巨类
小类更易于编写,更易于保证正确、测试和使用。小类更有可能适用于各种不同情况。应该用这种小类体现简单概念,不要用大杂烩式的类。
第二十三条 要避免使用隐式转换
在做类型提供隐式转换之前,请三思而行,应该依赖的是显式转换。
隐式转换有两个主要的问题:
1.它们会在最意料不到的地方抛出异常
2.它们并不总是能与语言的其他元素有效地配合 第二十四条 将数据成员设为私有的,无行为的聚集
要避免将公用数据和非公用数据混合在一起,因为这几乎总是设计混乱的标志。信息隐藏是优秀软件工程的关键,应该将所有数据成员都设为私有的,这是类用来保持其不变式的最佳方式。
第二十五条 不要允许异常跨越模块边界传播
最低限度,应用程序必须在以下位置有捕获所有异常的catch(…)兜底语句,其中大多数都直接适用于模块:
1.在main函数的附近:捕获并用日志记录任何将使程序不正常终止而其他地方又没有捕获的异常。
2.在从无法控制的代码中执行回调附近3.在现场边界的附近4.在模块接口边界的附近
5.在IO,数据库连接等高危操作附近
第二十六条 如有可能,尽量用算法调用代替手工编写的循环
对非常简单的循环而言,手工编写的循环有可能是最简单也是最有效的解决方案。但是编写算法调用代替手工编写的循环,可以使表达力更强、维护性更好、更不易出错,而且同样高效。
第二十七条 编码惯例
1. 避免在一个文件中放多个类
2. 一个文件应该只对一个命名空间提供类型,避免在同一文件中有多个命名空间 3. 避免一个文件的长度超过500行(除了机器生成的代码)4. 避免方法定义超过25行
5. 避免超过5个参数的方法,使用结构传递多个参数 6. 每行应该不超过80个字符,或者10个单词 7. 不要手工编辑任何机器生成的代码
A.如果修改机器生成的代码,修改代码格式和风格以符合本编码标准 B.尽可能使用partial类以分解出需要维护的部分 8. 避免对显而易见的内容作注释
A.代码应该是自解释的,由可读性强的变量和方法组成的好的代码应该不需要注释 B.参加第一条中的注释部分
9. 仅对操作的前提、内在的算法等写文档 10. 避免方法级的文档
A.对API文档采用大量的外部文档
B.方法级注释仅作为对其他开发人员的提示 11. 决不要硬编码数值,声明一个常量是最好的选择 12. 仅对本轮就是常量的值使用const修饰符,例如一周的天数 13. 避免对只读变量使用const修饰符。在此情况下,采用readonly修饰符
public class MyClass { public const int DaysInWeek = 7;public readonly int Number;public MyClass(int someValue){ Number = someValue;} }
14.对任何假设采用assert。平均来讲,每五行代码中就有一行是断言
using System.Diagnostics;object GetObject(){} object someObject = GetObject();Debug.Assert(someObject!= null);
15. 16. 17. 每行代码都应该经过白盒测试 仅捕获已经显式处理了的异常
在抛出异常的catch语句中,总是抛出最初异常以保持最初错误的堆栈位置
catch(Exception exception){ MessageBox.Show(exception.Message);throw;}
18. 定义自定义的异常时
A.从ApplicationException继承 B.提供自定义的序列化 19. 避免采用friend程序集,因为这样增加了程序集间的耦合度 20. 避免使用依赖于从特定位置运行的程序集的代码。21. 尽量减少应用程序集(客户端EXE程序集)的代码,采用类库而不要包含业务逻辑层代码。22. 避免对枚举提供明确的值
//正确
public enum Color { Red,Green,Blue } //错误
public enum Color { Red=1,Green=2,Blue=3 }
23. 避免对枚举指定类型
//错误
public enum Color : long { Red, Green, Blue }
24. 25. 26. If语句总是使用括号,即使它只包含一句语句 避免使用?:条件运算符 避免使用(#if…#endif),应使用conditional方法代替
[Conditianal(“MySpecialCondition”] public void MyMethod(){}
27. 避免在布尔条件语句中调用函数,赋值到局部变量并检查它们的值。
bool IsEverythingOK(){} //错误
if(IsEverythingOK()){} //正确
bool ok=IsEverythingOK();if(ok){}
28.29. 总是使用从0开始的数组
总是使用一个for循环显式地初始化一个引用类型数组
public class MyClass {} const int ArraySize=100;MyClass[] array=new MyClass{ArraySize];for(int index=0;index 30. 31. 不用提供public或protected成员变量,而是使用属性 应尽量使用get/set的自动返回属性 //错误 class MyClass { int m_Number; public int Number { get { return m_Number;} set { m_Number=value;} } } //正确 class MyClass { public int Number { get;set;} } 32. 33. 34. 35. 避免使用new,应使用override替代 在一个密封的类里总是把public和protected方法标记为virtual 永远不要使用不安全的代码 合理使用as操作符进行映射 Dog dog = new GermanShepherd();GermanSheperd shepherd = dog as GermanShepherd;if(shepherd!= null){} 36. 37. { 在使用一个委托前总是要先检查它是否为空(null) 不要提供公有成员变量,使用存取器(accessors)进行替代 public class MyPublisher MyDelegate m_SomeEvent;public event MyDelegate SomeEvent { add { m_SomeEvent += value;} remove { m_SomeEvent-= value;} } } 38. 避免定义事件处理委托,使用EventHandler SomeType obj1;IMyInterface obj2; obj2=obj1 as IMyInterface;if(obj2!= null){ obj2.Method1();} else { //处理可能出现的错误 } 44. 不要将可能改变的,或用于数据库连接的,或者交付给最终客户使用的任何字符串进行硬编码,要使用资源文件定义他们 45. 使用String.Empty代替”” //错误 string name = “";//正确 string name = String.Empty; 46. 47. 48. 定义长字符串的时候,应该使用StringBuilder,而不是string 永远不要使用goto语句,除非迫不得已 在switch代码块中总要包含一个default项,并且为其设置断言 int number = SomeMethod();switch(number){ case 1: Trace.WriteLine(”Case 1:“);break;case 2: Trace.WriteLine(”Case 2:“);break;default: Debug.Assert(false);break;} 49.不要使用this引用,除非某些特殊情况,比如从一个构造器中运行另外一个 //一个正确使用this的例子 public class MyClass { public MyClass(string message){} public MyClass():this(”Hello"){} } 50. 不要使用base关键词。除非你想要解决一个子类成员和基类间的名称冲突,或者运行一个基类构造器 //一个正确使用base的例子 public class Dog { public Dog(string name){} virtual public void Bark(int howLong){} } public class GermanShepherd:Dog { public GermanShepherd(string name):base(name){} public override void Bark(int howLong){ base.Bark(howLong);} } 51. 不要使用GC.AddMemortyPressure(),不要依赖HandleCollector。合理的使用Dispose()和Finalize()方法 52. 一般情况下不要使用check来检查代码(防止性能损失),但是在可能的溢出区则使用check来保持代码的安全性。安全性的优先级永远高于性能。 int CalcPower(int number,int power){ int result=1;for(int count=1;count<=power;count++){ checked { result*=number;} } return result;} 53. 在代码中要避免直接使用object数据类型(System.Object),可以使用约束或者as进行替代。 class SomeClass {} //错误 class MyClass class MyClass 54.{} 一般而言,不要在通用接口中定义约束。接口级别的约束经常会被强类型所覆盖 public class Customer //错误 public interface IList public interface ICustomerList:IList 1. 总是对应用程序私有的组件,集合等使用强名,这样可以保证安全性 2. 在应用程序配置文件中使用加密算法,进行安全保护 3. 对不受控制的引用方法,要做适当的安全处理,如加入断言控制 4. 不要使用SuppressUnmanagedCodeSecurity属性 5. 不要使用/unsafe来切换TlbImp.exe的默认行为。 6. 在服务器端要使用自定义的安全规则来扩展Microsoft的默认配置,以保证更高级别的安全性 7. 为防止引诱性攻击,应修改组件级别的运行权限,限制其可能的不安全行为 8. 在编写Windows程序时,在每个Main()中都要使用相应的安全规则 C++编码规范之命名空间 C++编码规范之命名空间Namespaces在.cc文件中,提倡使用不具名的命名空间。使用具名命名空间时,其名称可基于项目或路径名称,不要使用using指示符。定义:命名空间将全局作用域细分为不同的,具名的作用域,可有效防止全局作用域的命名冲突。优点:命名空间提供了命名轴线.当然类也提供了命名轴线。缺点:命名空间具有迷惑性,因为它们和类一样提供了额外的命名轴线。在头文件中使用不具名的空间容易违背C++的唯一定义原则。1)不具名命名空间在.cc文件中,允许甚至提倡使用不具名命名空间,以避免运行时的命名冲突:namespace{//命名空间的内容无需缩进enum{UNUSED,EOF,ERROR};bool AtEof(){return pos_ == EOF;}}//namespace然而,与特定类关联的文件作用域声明在该类中被声明为类型,静态数据成员或静态成员函数,而不是不具名命名空间的成员。像上文展示的那样,不具名命名空间结束时用注释//namespace标识。注:不能在.h文件中使用不具名命名空间。2)具名命名空间命名空间将除文件包含,全局标识的声明/定义以及类的前置声明外的整个源文件封装起来,以同其他命名空间相区分。//.h文件namespace mynamespace{class MyClass{public:...void Foo();};}//namespace mynamespace//.cc文件namespace mynamespace{//函数定义都置于命名空间中void MyClass::Foo(){...} }//namespace mynamespace禁止污染命名空间using namespace foo; 最近经常看一些朋友写的源代码,总是感觉编码规范问题还没有成为大家的关注点,导致代码的通用可读性相对比较差; 所以在此唠叨几句编码规范(以struts2+spring2+hibernate3架构的项目为例),大家各取所需,欢迎拍砖! 一、规范存在的意义 应用编码规范对于软件本身和软件开发人员而言尤为重要,有以下几个原因: 1、好的编码规范可以尽可能的减少一个软件的维护成本 , 并且几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护; 2、好的编码规范可以改善软件的可读性,可以让开发人员尽快而彻底地理解新的代码; 3、好的编码规范可以最大限度的提高团队开发的合作效率; 4、长期的规范性编码还可以让开发人员养成好的编码习惯,甚至锻炼出更加严谨的思维; 二、命名规范 1、一般概念 1、尽量使用完整的英文描述符 2、采用适用于相关领域的术语 3、采用大小写混合使名字可读 4、尽量少用缩写,但如果用了,必须符合整个工程中的统一定义 5、避免使用长的名字(小于 15 个字母为正常选择) 6、避免使用类似的名字,或者仅仅是大小写不同的名字 7、避免使用下划线(除静态常量等) 2、标识符类型说明 1、包(Package)的命名 Package 的名字应该采用完整的英文描述符,都是由一个小写单词组成。并且包名的前缀总是一个顶级域名,通常是 com、edu、gov、mil、net、org 等; 如: com.yjhmily.test 2、类(Class)的命名 类名应该是个一名词,采用大小写混合的方式,每个单词的首字母大写。尽量保证类名简洁而富于描述。 使用完整单词,避免缩写词(除非工程内有统一缩写规范或该缩写词被更广泛使用,像 URL,HTML)如: FileDescription 3、接口(Interface)的命名 基本与 Class 的命名规范类似。在满足 Classd 命名规则的基础之上,保证开头第一个字母为 ”I”,便于与普通的 Class区别开。其实现类名称取接口名的第二个字母到最后,且满足类名的命名规范; 如: IMenuEngine 4、枚举(Enum)的命名 基本与 Class 的命名规范类似。在满足 Classd 命名规则的基础之上,保证开头第一个字母为 ”E”,便于与普通的 Class区别开。 如: EUserRole 5、异常(Exception)的命名 异常(Exception)通常采用字母 e 表示异常,对于自定义的异常类,其后缀必须为 Exception 如: BusinessException 6、方法(Method)的命名 方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。 方法名尽可能的描述出该方法的动作行为。返回类型为 Boolean 值的方法一般由“ is ”或“ has ”来开头 如: getCurrentUser()、addUser()、hasAuthority() 7、参数(Param)的命名 第一个单词的首字母小写,其后单词的首字母大写。参数量名不允许以下划线或美元符号开头,虽然这在语法上是允许的。参数名应简短且富于描述。 如: public UserContext getLoginUser(String loginName); 8、常量字段(Constants)的命名 静态常量字段(static final)全部采用大写字母,单词之间用下划线分隔; 如: public static final Long FEEDBACK;public static Long USER_STATUS; 三、注释规范 一个很好的可遵循的有关注释的经验法则是: 问问你自己,你如果从未见过这段代码,要在合理的时间内有效地明白这段代码,你需要一些什么信息??? 1、一般概念 1、注释应该增加代码的清晰度 2、保持注释的简洁 3、在写代码之前或同时写注释 4、注释出为什么做了一些事,而不仅仅是做了什么 2、注释哪些部分 1、Java 文件:必须写明版权信息以及该文件的创建时间和作者; 2、类:类的目的、即类所完成的功能,以及该类创建的时间和作者名称;多人一次编辑或修改同一个类时,应在作者名称处出现多人的名称; 3、接口: 在满足类注释的基础之上,接口注释应该包含设置接口的目的、它应如何被使用以及如何不被使用。 在接口注释清楚的前提下对应的实现类可以不加注释; 4、方法注释: 对于设置(Set 方法)与获取(Get 方法)成员的方法,在成员变量已有说明的情况下,可以不加注释;普通成员方法要求说明完成什么功能,参数含义是什么且返回值什么;另外方法的创建 时间必须注释清楚,为将来的维护和阅读提供宝贵线索; 5、方法内部注释: 控制结构,代码做了些什么以及为什么这样做,处理顺序等,特别是复杂的逻辑处理部分,要尽可能的给出详细的注释; 6、参数: 参数含义、及其它任何约束或前提条件; 7、属性: 字段描述; 8、局部(中间)变量: 无特别意义的情况下不加注释; 3、注释格式 遵循工程规定的统一注释格式,一般情况下会以 codetemplates.xml 格式的文件导入 IDE(Eclipse)或者用Eclipse默认的; 四、代码格式规范 遵循工程规定的统一代码格式,一般情况下直接使用 IDE(Eclipse)自带的默认代码格式对代码进行格式化; 五、其他规范 JSP 文件命名 采用完整的英文描述说明 JSP 所完成的功能,尽可能包括一个生动的动词,第一个字母小写,如: viewMessage.jsp、editUser.jsp 等。 六、工程特有命名规范 1、持久层 1、Hibernate 映射文件及实体 与数据库表名称完全对应; 如: Advertisement.hbm.xml、Advertisement.java 2、数据访问 DAO DAO 接口和实现类名称必须完全符合正常接口和实现类的命名规则,且最后以 ”DAO” 结尾 DAO 内的数据访问方法必须足够抽象的描述出对数据库的基本 CRUD 操作; 如: ICrossAdDAO(接口)、CrossAdDAO(实现类) 3、各种操作数据库的 HQL 配置文件 HQL 文件的个数原则上与系统的 Services 层的服务个数相等,且以服务名称命名 HQL 文件; 如: resource.hbm.xml 2、服务层 1、服务接口和实现 服务接口和实现类必须完全符合正常接口和实现类的命名规则;以工程定义的服务名为主体,并统一以 ”Serv” 结尾 如: IResourceServ(服务接口)、ResourceServ(接口实现类) 2、服务接口方法 方法名是一个动词,采用大小写混合的方式,第一个单词的首字母小写,其后单词的首字母大写。 方法名尽可能的描述出该方法的动作行为。 返回类型为 Boolean 值:用“ is ”或“ has ”来开头 得到某数据: get+ 数据描述名词复数 + 数据类型; 得到所有数据: get+All+ 数据描述名词复数 + 数据类型; 通过 XXX 得到 / 查询某数据: get/query+ 数据描述名词复数 + 数据类型 +By+ 条件; 添加某数据: save/add+ 数据描述名词()更新某数据: save/update+ 数据描述名词; 删除某数据: delete/remove+ 数据描述名词; 3、业务对象 业务名称 +BO 4、查询参数对象 凡是继承 Abst***QuerySpec 的查询参数类全部满足以下规则: Query+ 所要查询的数据描述名词 +Spec 作为参数传入时,参数名必须为:所要查询的数据描述名词 +Spec 如: QueryProgramSpec 3、MVC 层 1、Action 控制层 Action 类名:功能模块名称 +Action ; Actoin 方法名称尽可能的描述出页面迁移的去向 如: LoginAction(登录用 action),toWelcome(转向欢迎页的 action 方法) 2、资源文件 系统全局资源文件: globalMessages_+ 字符编码类型 +.properties 功能模块内部的资源文件: package.properties 4、Spring 配置文件 1、Action 相关配置文件 文件目录: WebRoot/WEB-INF/spring/action/ 功能模块名称 +_ApplicationContext.xml 2、Services 相关配置文件 文件目录: WebRoot/WEB-INF/spring/services/Services_ApplicationContext.xml 3、全局性配置文件 文件目录: WebRoot/WEB-INF/spring/工程名+_ApplicationContext.xml 5、JSP 文件 采用完整的英文描述说明 JSP 所完成的功能,尽可能包括一个生动的动词,第一个字母小写,如: viewMessage.jsp、editUser.jsp 等。 安徽省政府信息公开编码规范指南 目录 第一部分 安徽省政府信息公开索引号编制规则 4 第二部分 安徽省政府信息公开单位代码编制规则 8 第三部分 安徽省政府信息公开目录分类规则 19 第一部分 安徽省政府信息公开索引号编制规则 一、信息索引号编制规则说明 安徽省政府信息公开索引号是为方便检索我省政府公开的信息所编制的一组代码,它由机构代码、信息分类号、信息生成年月、信息流水号四部分计20位字母和数字组成。编制规则如下: 省、市、县代码(2位)+ 部门代码(3位)+ 业务处室代码(2位)+ 信息分类(4位,大类 + 子类)+ 编制年份(4位)+ 编制月份(2位)+ 流水号(3位)省、市、县代码: 第一位。用大写英文字母表示。省政府为O,合肥为A,芜湖为B, 蚌埠为C,淮南为D,马鞍山为E,淮北为F,铜陵为G,安庆为H,黄山为J,阜阳为K,宿州为L,滁州为M,六安为N,宣城为P,巢湖为Q,池州为R,亳州为S。 第二位。用大写英文字母表示。省、市级单位为A。县(区)级单位从B开始由各市按英文字母顺序编码。如: 淮北市直FA 濉溪县FB 相山区FC 烈山区FD 杜集区FE 部门代码: 第三到第五位。该段代码用于区分政府组成部门、直属机构、具有管理公共事务职能的组织以及公共企事业单位。省、市、县(区)三级相同部门使用相同的部门代码。如:省教育厅、市、县(区)的教育局其部门代码都为004。业务处室代码: 第六、七位,如办公室01、业务一处02,按顺序进行排列。不区分业务处室发布信息的单位,业务处室代码为00。信息公开目录分类代码: 第八、九位为一级信息目录代码。 第十、十一位为二级信息目录代码。没有二级信息目录的用00填充。如: 国民经济和社会发展规划07 中长期发展规划0701 专项规划0702 年月代码: 第十二到第十五位为年份代码,如:2006,2007。第十六、十七位为月份代码,如:01,12。信息发布流水号: 第十八到第二十位,如:001,002。 二、编排实例说明 如OA***004表示省发改委某处发布的业务公开类行政许可事项第四条信息,信息于2006年9月生成。前两位OA为省政府组成部门代码,第三到第五位002为发改委部门代码,第六、七位 02为省发改委处室代码,第八、九位07为业务公开类信息目录代码,第十、十一位01是行政许可子类代码,第十二到第十五位2006表示信息生成年份,第十六、十七位09表示9月份,第十八到第二十位004为信息流水号。 如:AB***001表示合肥市包河区政府(办公室)某部门发布的政府领导类信息,该信息于2006年6月生成,流水号为001。前两位AB为合肥市包河区代码,第三到第五位001为政府(办公室)代码,第六、七位 03为政府办公室科室代码,第八、九位01为政府领导类信息目录代码,第十、十一位00是政府领导类无子类,用00填充,第十二到第十五位2006表示信息生成年份,第十六、十七位06表示6月份,第十八到第二十位001为信息流水号。 第二部分 安徽省政府信息公开单位代码编制规则 一、安徽省政府信息公开单位代码 (一)政府组成部门、直属机构和具有管理公共事务职能的组织的单位代码 001政府(办公厅)002发展和改革委员会 003 经济委员会 004教育厅(局)005科技厅(局) 006民族事务委员会(宗教事务局)007公安厅(局)008监察厅(局)009民政厅(局)010司法厅(局)011财政厅(局)012人事厅(局) 013劳动和社会保障厅(局)014国土资源厅(局)015建设厅(局) 016交通厅(局)017信息产业厅(局)018农业委员会 019水利厅(局)020林业厅(局)021商务厅(局)022文化厅(局)023卫生厅(局) 024人口和计划生育委员会 025审计厅(局)026国资委 027地税局 028 环保局 029 广电局 030 体育局 031 统计局 032 工商局 033 新闻出版局 034 质量技术监督局 035 食品药品监督管理局 036 安全监管局 037 旅游局 038 粮食局 039 机关事务管理局 040 国防科工办 041外事办公室 042政府法制办 043人民防空办公室 044档案局 045机械设备成套局(招标局)046地质矿产勘查局 047政府咨询委员会 048政府参事室(文史馆)049地方志办公室 050政府研究室(政府发展研究中心)051信访局 052物价局 053供销社 054农村信用联社 055 社科院 056 农科院 057行政学院(农干院)058监狱管理局 059台湾事务办公室 060政府新闻办 061国税局 062煤矿安全监察局 063气象局 064地震局 065出入境检验检疫局 066储备物资管理局 067通信管理局 068邮政局 069邮电管理局 070烟草专卖局 071海关 072中国人民银行支行 073银监局 074证监局 075保监局 076贸促会 077残疾人联合会 078红十字会 079归国华侨联合会 不在以上列举范围内的政府组成部门、直属机构和具有管理公共事务职能的组织,单位代码从101开始按顺序编制。如:某市的园林局,招商局不在列举的79个部门之内,其部门代码可分别编码为101,102。 (二)公共企事业单位代码 4XX表示金融机构(各地分支机构)。401国家开发银行 402中国农业发展银行 403中国工商银行 404中国农业银行 405中国银行 406中国建设银行 407招商银行 408交通银行 409中国光大银行 410中信银行 411兴业银行 412徽商银行 413中国银联股份有限公司 不在以上列举范围内的银行机构,代码从414开始至440,按顺序编码。441中国人寿保险股份有限公司 442中国人民财产保险股份有限公司 443中国平安财产保险股份有限公司 444中国大地财产保险股份有限公司 445天安保险股份有限公司 不在以上列举范围内的保险机构,代码从446开始至460,按顺序编码。 非银行、保险业的其他金融机构,如:证券公司,代码从461开始至499,按顺序编码。5XX表示经济鉴证、技术检验等公益性服务机构。501-510食品药品监测服务机构。511-520建筑质量监测服务机构。521-530农资技术监测服务机构。531-540环境保护监测机构。541-550计划生育服务机构。551-560旅游服务机构。 其他经济鉴证、技术检验等公益性服务机构代码从561开始,按顺序编码。6XX表示公用事业单位。601供水 602供电 603供气 604供热 605公共交通 606电信公司 607移动公司 608联通公司 609铁通公司 610网通公司 611民航公司 612住房公积金管理中心 不在以上列举范围内的公用事业单位,代码从613开始按顺序编码。7XX表示教育机构(不包括教育事业政府主管部门,如:教育厅、局等)。如:AA701合肥市一中。 8XX表示医疗机构(不包括医疗卫生事业政府主管部门,如:卫生厅、局等)。如:AA801合肥市第一人民医院。 (三)乡镇(街道)代码 9XX表示乡镇(街道)。如:AF901合肥市肥西县上派镇。 二、省级政府信息公开单位代码 根据以上编码规则,省级政府信息公开指南和目录编制单位名单及单位代码如下(各单位名称前编码为该单位在我省政府信息公开系统中的单位代码): OA001省政府(办公厅)OA002省发展和改革委员会 OA003省经济委员会 OA004省教育厅 OA005省科学技术厅 OA006省民族事务委员会 OA007省公安厅 OA008省监察厅 OA009省民政厅 OA010省司法厅 OA011省财政厅 OA012省人事厅 OA013省劳动和社会保障厅 OA014省国土资源厅 OA015省建设厅 OA016省交通厅 OA017信息产业厅 OA018省农业委员会 OA019省水利厅 OA020省林业厅 OA021省商务厅 OA022省文化厅 OA023省卫生厅 OA024省人口和计划生育委员会 OA025省审计厅 OA026省国有资产监督管理委员会 OA027省地方税务局 OA028 省环境保护局 OA029 省广播电影电视局 OA030 省体育局 OA031 省统计局 OA032 省工商行政管理局 OA033 省新闻出版局 OA034 省质量技术监督局 OA035 省食品药品监督管理局 OA036 省安全生产监督管理局 OA037 省旅游局 OA038 省粮食局 OA039 省机关事务管理局 OA040 省国防科学技术工业办公室 OA041省政府外事办公室(省政府侨务办公室)OA042省政府法制办公室 OA043省人民防空办公室 OA044省档案局 OA045省机械设备成套局(招标局)OA046省地质矿产勘查局 OA047省政府咨询委员会 OA048省政府参事室(省文史馆)OA049省地方志办公室 OA050省政府研究室(省政府发展研究中心)OA051省信访局 OA052省物价局 OA053省供销社 OA054省农村信用社联合社 OA055 省社科院 OA056 省农科院 OA057省行政学院(省农干院)OA058省监狱管理局 OA059省台湾事务办公室 OA060省政府新闻办公室 OA061省国家税务局 OA062省煤矿安全监察局 OA063省气象局 OA064省地震局 OA065省出入境检验检疫局 OA066省储备物资管理局 OA067省通信管理局 OA068省邮政局 OA069省邮电管理局 OA070省烟草专卖局 OA071合肥海关 OA072中国人民银行合肥中心支行 OA073省银监局 OA074省证监局 OA075省保监局 OA076省贸促会 OA077省残疾人联合会 OA078省红十字会 OA602省电力公司 OA607安徽移动通信有限责任公司 OA611省民航公司 三、市级及市级以下政府信息公开单位代码 市级及市级以下政府信息公开单位代码,由各级政府按照安徽省政府公开单位代码编制规则,结合实际情况负责编制。如: AA001合肥市人民政府(办公室)AA002合肥市发展和改革委员会 AB001合肥市包河区人民政府(办公室)AB002合肥市包河区发展和改革委员会 AA601合肥市供水集团 AA701合肥一中 AA801合肥市第一人民医院 AB901合肥市包河区义城镇人民政府 第三部分 安徽省政府信息公开目录分类规则 一、省政府(省政府办公厅)信息公开目录分类规则 01政府领导 (包括领导简历、分工、联系方式等)02政府机构 0201政府职能机构简介(包括机构职能、领导成员、联系方式等)0202省政府办公厅内设机构及职能 03人事信息 0301省政府人事任免 0302安徽省公务员招考信息 0303安徽省公务员录取信息 04行政法规、规章 0401安徽省地方性法规 0402省政府规章 05政府规范性文件 0501政府工作规则 0502皖政文件 0503皖政办文件 0504其它文件 06提交省人大报告 07国民经济和社会发展规划 0701中长期发展规划 0702专项规划 0703五年规划 0704区域规划和相关政策 08财政预算决算报告 0801财政预算报告及其执行情况 0802决算报告 0803财政收支情况 0804政府重要专项经费的分配和使用情况 09安徽省经济和社会发展的统计信息 10 政府会议 1001省政府全体会议 1002省政府常务会议 1003省政府其他会议 11 省政府重点工作 1101省政府重点工作安排情况 1102省政府重点工作实施情况 12 重大建设项目 1201政府重大建设项目的批准和实施情况 1202项目招投标方案以及结果 1203社会公益事业建设情况 13 省政府集中采购 1301省政府集中采购目录 1302省政府集中采购招投标方案 1303省政府集中采购实施情况 14 应急管理 1401应急预案 1402预警信息 1403突发事件公布 1404突发事件处理 15 公告和新闻发布 1501省政府公告 1502省政府新闻发布会 16 民生公益 1601扶贫开发 1602救灾抢险 1603教育科技 1604医疗卫生 1605社会保障 1606劳动就业 1607环境保护 1608安全生产 1609食品药品 1610产品质量 17 其他 说明:省政府公开信息,按职责分工,由省政府组成部门及有关单位提供。 二、市、县(区)政府(政府办公室)信息公开目录分类规则 01政府领导 (包括领导简历、分工、联系方式等)02政府机构 0201政府职能机构简介(包括机构职能、领导成员、联系方式等)0202政府办公室(厅)内设机构及职能 03人事信息 0301人事任免 0302公务员招考信息 0303公务员录取信息 04政府规章 05政府规范性文件 0501政府工作规则 0502政府文件 0503政府办文件 0504其它文件 06提交人大报告 07国民经济和社会发展规划 0701中长期发展规划 0702专项规划 0703五年规划 0704区域规划和相关政策 08财政预算决算报告 0801财政预算报告及其执行情况 0802决算报告 0803财政收支情况 0804政府重要专项经费的分配和使用情况 09经济和社会发展的统计信息 10 政府会议 1001政府全体会议 1002政府常务会议 1003政府其他会议 11 政府重点工作 12 重大建设项目 1201城乡建设和管理 1202土地征收 1203社会公益事业建设 13 政府集中采购 1301政府集中采购目录 1302政府集中采购招投标方案 1303政府集中采购实施情况 14 应急管理 1401应急预案 1402预警信息 1403突发事件公布 1404突发事件处理 15 公告和新闻发布 1501政府公告 1502政府新闻发布会 16 民生公益 1601扶贫开发 1602救灾抢险 1603优抚安置 1604教育科技 1605医疗卫生 1606社会保障 1607劳动就业 1608环境保护 1609安全生产 1610食品药品 1611产品质量 17 其他 三、乡镇(街道)政府信息公开目录分类规则 01单位设置及职能 0101单位简介 0102单位领导及分工 0103内设机构及职责 0104人事信息 02规范性文件 03财务情况 0301财政预算、决算报告 0302专项资金使用 0303资金发放情况 (惠农、抢险救灾、优抚、救济、社会捐助等)0304债权债务 0305筹资筹劳 0306其他类 04经济和社会发展统计信息 05计划规划 0501国民经济和社会发展规划 (五年规划、专项规划、区域规划及相关政策)0502新农村建设 (新农村建设及其他贯彻落实国家关于农村工作政策的情况) 0503乡镇土地利用总体规划 0504其他类 06业务公开 0601重大项目 0602重要会议 0603政府集中采购项目(目录、标准及实施情况)0604土地使用 (征收或者征用土地、房屋拆迁及其补偿、补助费用的发放、使用情况)0605乡镇经济实体情况 (乡镇集体企业及其他乡镇经济实体承包、租赁、拍卖等情况)0606综合治理 0607计划生育 0608 社会保障 0609教育 0610就业 0611医疗卫生 0612环境保护 0613公益事业 0614其他 07其他 四、政府组成部门、直属机构和具有管理公共事务职能的组织信息公开目录分类规则 01机构领导 (包括领导简历、分工、联系方式等)02机构设置 0201机构简介(包括机构职能、联系方式等) 0202内设部门(包括内设部门职责、负责人、联系, 方式等)0203下属单位(包括下属单位职责、负责人、联系方式等)03部门动态 0301工作动态 0302重要会议(包括听证会等)0303其他(包括工作简报、快报等)04人事信息 0401部门人事任免 0402部门公务员及事业编制人员招考信息 0403部门公务员及事业编制人员录取信息 05政策法规 06规范性文件 0601上级文件 0602本级文件 07业务公开 0701行政许可 0702行政审批 0703行政处罚等七类行政行为 (行政处罚等七类行政行为指行政处罚、行政征收、行政强制、行政备案、行政裁决、行政给付及其他类项目七类行政行为。)0704办事公开事项 0705其他业务 (0701-0705类信息内容包括项目名称、办理机构、依据、材料、程序、时限、收费、服务承诺、权力运行图等。)0706投诉举报 08规划计划 0801五年规划 0802专项规划 0803计划 0804其他(包括工作计划、总结,完成工作计划的进展情况等)09财政预算决算报告 0901财政预算报告及其执行情况 0902决算报告 0903重要专项经费的分配和使用情况 10招投标信息 1001工程建设或采购目录 1002工程建设或采购招投标方案 1003工程建设或采购中标及实施情况 11公告和新闻发布 1101 公告 1102 新闻发布会 12其他 五、公共企事业单位信息公开目录分类规则 01单位领导 0101领导简介 0102领导机构(董事会、监事会等)02机构设置 0201单位简介(包括单位职能、联系方式等) 0202 内设部门(包括部门职能、负责人、联系方式等) 03工作动态(工作简报,工作检查情况,会议纪要、重要会议内容等)04人事信息 0401人事任免 0402招聘信息 05政策法规 06业务公开 0601业务简介(业务种类、办事依据、条件、程序、时限、收费标准、运行流程图等)0602营业场所(地址、联系方式)0603网上业务平台 07服务承诺 0701办事、服务承诺 0702违诺责任及补偿措施 0703监督投诉及结果反馈方式 08规划计划 (学校招生计划、企业发展计划等)09公告和新闻发布 10其他第三篇:C 编码规范之命名空间
第四篇:JAVA程序员不可不注意的编码规范
第五篇:安徽省政府信息公开编码规范指南