.Net平台开发实践的一些点滴总结(技术规范与实践精华)第1/2页

以下是本人对.Net平台开发实践的一些点滴总结。这里的技术规范主要是开发过程的代码规范、数据库设计规范、Com和.Net互操作规范;实践精华是对技术实践过程中的部分总结。

一、代码规范

良好的代码风格来自于同一的代码规范。风格良好的代码不仅具备可读性和可维护性,同时也给人行云流水、赏心悦目之快感。

据Microsoft公司统计,基于微软平台的开发中,有70-80%的印度工程师在完成同类算法或者模块时,使用的代码基本一致;而相同的调查中只有20%的中国工程师们是基本一致的。这说明我们的代码生产过程亟待规范。

实义命名

类型、变量、常量、方法等标识符一律采用对应的英文实义;如果涉及到两个独立的实义单词,则中间用下划线间隔或者单词首字母大写(两种方式都可以);如果标识符的长度超过了30个字母,则基本上以英文单词发音的重读音节取选出三个字母,如Repeater用rpt,Management用mgt。

大小写规则

目前一般有两种大小写规则:

Pascal大小写形式,所有单词第一个字母大写,其他字母小写。

Camel大小写形式,除了第一个单词,所有单词第一个字母大写,其他字母小写。

类名使用Pascal大小写形式




public class HelloWorld(或者Hello_World,以下同,不再赘述)
{
...
}

方法使用Pascal大小写形式




public class HelloWorld()
{
void SayHello(string name)
{
...
}
}

变量和方法参数使用Camel 大小写形式




public class HelloWorld()
{
int totalCount = 0;
void SayHello(string name)
{
string fullMessage = "Hello " + name;
...
}
}

不要使用匈牙利方法来命名变量

以前,多数程序员喜欢把数据类型作为变量名的前缀而m_作为成员变量的前缀。例如: string m_sName;int nAge;

然而,这种方式在.NET编码规范中是不推荐的。所有变量都用Camel 大小写形式,而不是用数据类型和m_来作前缀。

用name,address,salary等代替nam,addr,sal。

别使用单个字母的变量象i,n,x 等。使用 index,temp等。用于循环迭代的变量例外:

如果变量只用于迭代计数,没有在循环的其他地方出现,允许用单个字母的变量命名,而不是另外取实义名。

文件名要和类名匹配,例如,对于类HelloWorld,相应的文件名应为helloworld.cs。

缩进和间隔

缩进用TAB,不用 SPACES。

注释需和代码对齐。

遵循VS2005的自动对齐规则,不要人为的调整。

用一个空行来分开代码的逻辑分组。

在一个类中,各个方法的实现体必须用空行间隔,大括弧“{}”需独立一行。

在每个运算符和括号的前后都空一格。如:




If ( showResult == true )
{
for ( int i = 0; i < 10; i++ )
{
//
}
}

而不是:




if(showResult==true)
{
for(int i= 0;i<10;i++)
{
//
}
}

良好的编程习惯

避免使用大文件。如果一个文件里的代码超过300~400行,必须考虑将代码分开到不同类中。

避免写太长的方法。一个典型的方法代码在1~30行之间。如果一个方法发代码超过30行,应该考虑将其分解为不同的方法。

方法名需能看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了。

一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。

使用C# 的特有类型,而不是System命名空间中定义的别名类型。如:




int age;

string name;

object contactInfo;

而不是:




Int16 age;

String name;

Object contactInfo;

这么做是基于如下两点原因:(1)规范性和一致性;(2)便于跨语言平台的移植。

别在程序中使用固定数值,用常量代替。别用字符串常数,尽量用资源文件。

避免使用很多成员变量,声明局部变量,并传递给方法。

不要在方法间共享成员变量,如果在几个方法间共享一个成员变量,那就很难知道是哪个方法在什么时候修改了它的值。必要时使用enum,别用数字或字符串来指示离散值。

别把成员变量声明为 public或 protected。都声明为private 而使用 public/protected 的Properties。

不在代码中使用具体的路径和驱动器名,使用相对路径,并使路径可编程。永远别设想你的代码是在"C:"盘运行。你不会知道,一些用户在网络或"Z:"盘运行程序。

应用程序启动时作些“自检”并确保所需文件和附件在指定的位置。必要时检查数据库连接,出现任何问题给用户一个友好的提示。

如果需要的配置文件找不到,应用程序需能自己创建使用默认值。如果在配置文件中发现错误值,应用程序要抛出错误,给出提示消息告诉用户正确值。错误消息需能帮助用户解决问题。

注释

别每行代码,每个声明的变量都做注释。在需要的地方注释。

可读性强的代码需要很少的注释,如果所有的变量和方法的命名都很有意义,会使代码可读性很强并无需太多注释。行数不多的注释会使代码看起来优雅。

如果因为某种原因使用了复杂艰涩的原理,必须为程序配备良好的文档和详细的注释。

对注释做拼写检查,保证语法和标点符号的正确使用。

二、数据库设计规范

表格分类与命名

数据表的分类

系统表   支撑业务模型的数据表,如流程模型、系统管理相关表。

业务表   产品提供的针对业务的通用功能模块相关表,如通用业务查询等。

用户表   用户二次开发使用的与具体业务相关的数据表。

数据表的命名

所有表格命名一律以字母“T”开头(Table),并且用实义单词以下划线“_”间隔。

系统表   系统表前缀为:TSYS_

业务表前缀为:TBIZ_

用户表由用户自行定义,但是建议不要与系统表和业务表的命名规则重复。

字段的命名

字段的命名规则参照代码标识符的命名规则,但是注意避开数据库的保留字。比如不要采用这样的字段名:index,field,password,id,Oracle,SQL等等。

对于涉及到技术核心的系统表,为了防止剖析,建议采用类似“F1,F2,F3……Fn”的方式命名。但是不要采用“F0”,因为这个名称在某些数据库中不被允许,比如Interbase。

索引的建立

索引是一把双刃剑,索引将提高查询的效率,但是却降低了insert/delete/update 的效率。

通常情况下,对数据的编辑频度和时限要求远远低于对数据库的查询要求,因此对于记录很多且频繁查询的数据表,必须建立索引。

大多数数据库为主键字段自动创建索引,注意为外键创建索引。

不要索引大字段,这样作会让索引占用太多的存储空间。

尽量不要索引频繁编辑的小型表。

identify字段不要作为表的主键与其它表关联,这将会影响到该表的数据迁移。如果考虑支持多数据库,建议主键采用程序生成的唯一值。

如果一个大型表需要频繁的做insert/delete/update操作,同时也需要做高并发量的查询,那么建议根据数据的访问频度对表作拆分,而后建立索引。

当前1/2页 12下一页阅读全文

(0)

相关推荐

  • .Net平台开发实践的一些点滴总结(技术规范与实践精华)第1/2页

    以下是本人对.Net平台开发实践的一些点滴总结.这里的技术规范主要是开发过程的代码规范.数据库设计规范.Com和.Net互操作规范:实践精华是对技术实践过程中的部分总结. 一.代码规范 良好的代码风格来自于同一的代码规范.风格良好的代码不仅具备可读性和可维护性,同时也给人行云流水.赏心悦目之快感. 据Microsoft公司统计,基于微软平台的开发中,有70-80%的印度工程师在完成同类算法或者模块时,使用的代码基本一致:而相同的调查中只有20%的中国工程师们是基本一致的.这说明我们的代码生产过程

  • 微信公众平台开发入门教程(SAE方倍工作室)

    我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部. 本系列教程将引导你完成如下任务: 创建新浪云计算平台应用启用微信公众平台开发模式基础接口消息及事件微信公众平台PHP SDK微信公众平台开发模式原理开发天气预报功能 第一章 申请服务器资源 创建新浪云计算应用 申请账号 我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+MySQL数据库作为程序运行环境.申请地址:http://sae.sina.com.cn/ ,使用新浪微博账号可以直接登录SAE,登录后SAE将赠送50

  • 微信公众平台开发入门教程(图文详解)

    在这篇入门教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯及XML语言基础.如果你还没有,那么请先学习相关知识. 我们将使用微信公众账号方倍工作室(账号:pondbaystudio,二维码在最底部)作为讲解的例子. 这篇入门教程将引导你完成如下任务: 创建百度云平台应用启用微信公众平台开发模式获取订阅.文字.图片.语音.视频消息回复文本.图文及音乐消息程序开发 创建百度云应用 申请账号 登录http://developer.baidu.com/bae ,使用邮箱或者手机

  • 微信公众平台开发——群发信息

    1.目的 完成在微信公众号中群发消息.这里只是完成简单的文字发送.也可以发送语音图片等,只是发送数据格式不同而已,下面有链接,可以查询数据类型的数据发送格式. 2.群发短信的流程 获取测试公众账号(有账号的可以不用测试账号,不过正式的账号限制比较多) 用户关注上面的公众账号 通过appid和appsecret获取我们的access_token 通过access_token群发短信 3.获取测试公众账号 + 关注公众号 1).公众测试账号获取 访问上面的连接,选择"接口测试号申请"获得直

  • Java微信公众平台开发(15) 微信JSSDK的使用

    在前面的文章中有介绍到我们在微信web开发过程中常常用到的 [微信JSSDK中Config配置] ,但是我们在真正的使用中我们不仅仅只是为了配置Config而已,而是要在我们的项目中真正去使用微信JS-SDK给我们带来便捷,那么这里我们就简述如何在微信web开发中使用必要的方法!微信的JS-SDk中为我们提供的方法很多,这里我有一个简单截图如下: 在上图的提供的所有口中我们可以按照接口实现的难易程度分成两个部分: 较易实现:基础接口.分享接口.设备信息接口.地理位置接口.界面操作接口.微信扫一扫

  • 微信公众平台开发之认证"成为开发者".Net代码解析

    .Net 实现微信公共服务平台开发的认证,认证成为开发者,具体内容如下 这些代码也就开始认证的时候用一次,以后就不用了: const string Token = "XXXXX";//你的token protected void Page_Load(object sender, EventArgs e) { string postStr = ""; if (Request.HttpMethod.ToLower() == "post") { Sys

  • 微信公众平台开发之发送文本消息.Net代码解析

    .Net实现微信公共服务平台开发中的发送文本消息功能,具体内容如下 首先建立一个微信消息类. class wxmessage { public string FromUserName { get; set; } public string ToUserName { get; set; } public string MsgType { get; set; } public string EventName { get; set; } public string Content { get; se

  • 微信公众平台开发关注及取消关注事件的方法

    本文实例讲述了微信公众平台开发关注及取消关注事件的方法.分享给大家供大家参考.具体分析如下: 用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL,方便开发者给用户下发欢迎消息或者做帐号的解绑. 下面是一个微信公众平台关注和取消关注的实例,代码如下: 复制代码 代码如下: define("TOKEN", "w3note");//定义识别码 $wechatObj = new wechatCallbackapiTest();//实例化wechatCal

  • 基于php的微信公众平台开发入门实例

    本文实例讲述了基于php的微信公众平台开发方法.分享给大家供大家参考.具体如下: 最近在做微信公众平台开发,一口气写了二十几个功能,挺有意思的- 今天来分享一下开发经验~ 微信公众平台提供的接口很简单,先看看消息交互流程: 说的通俗一些,用户使用微信发送消息 -> 微信将数据发送给开发者 -> 开发者处理消息并返回数据至微信 -> 微信把返回数据发送给用户,期间数据交互通过XML完成,就这么简单.   下面写个实例,开发微信智能聊天机器人:   1. 注册微信公众平台账号 微信公众平台:

  • php版微信公众平台开发之验证步骤实例详解

    本文实例讲述了php版微信公众平台开发之验证步骤.分享给大家供大家参考,具体如下: 微信公众平台开发我们现在做得比较多了,这里给各位介绍的是一个入门级别的微信公众平台验证基础知识了,有兴趣的和小编来看看. 开发微信的时候 需要验证一下,在官方开发者中心哪里有可以下源代码,登录到 公众帐号后 看到左边的最下角有一个开发者中心点击,然后填写上你相对应的 Token 和 url 然后就可以验证成功的话就可以开发了. 下载微信php验证源代码在 开发者中心 - 开发者文档 - 接口消息 - 验证消息真实

随机推荐