程序员编程标准之一模块和过程的设计

来源:互联网 发布:linux入门书籍 知乎 编辑:程序博客网 时间:2024/06/01 18:30

   随着中国IT业的发展,软件开发行业在国内愈演愈热,越来越多的培训机构打着高薪就业的旗号,招兵买马,于此相呼应的是越来越多的青年们梦想着高薪,幻想着成为优秀的程序员加入了培训机构。但殊不知,培养程序员是一个很艰苦的过程,优秀的程序员更是由好习惯,好素质一点点养成的。养成好的职业素养是优秀程序员必备的素质,但对于我们刚开始编程生涯的新手来说养成良好的编程标准,是设计和开发软件的第一步,也是最重要的一部

       首先我们从基本开始总结,一点一滴的应用。

   一、创建更加容易调试和维护的模块和过程

     1.1 创建具有很强内聚力的模块:

              较强的内聚力:当模块包含一组紧密关联的过程时,该模块就具有较强的内聚力;创建专用模块,能增强模块的内聚力;

      如果我们的程序中包含很多并不适合与其它构成组合在一起的过程,我们常常给这些不合群的过程,创建一个综合性收容模块,并命名为:

                                                                -mdlGlobal

                                                                -mdlUtilities

                                                                -mdlSupport

           1.2 创建松散连接和高度专用的过程

       ▶所有过程都执行专门的任务;

       ▶尽量避免创建执行许多不同任务的过程;
       ▶创建专用过程的好处:
           调试变得容易;

           可以按计划或不按计划来修改代码;
       ▶创建专用过程考虑的知道原则:
           将复杂进程放入专用过程,如果应用程序使用复杂的数学公式,请考虑将每个公式放入他自己的过程中;
           将数据的输入、输出放入专用过程;
           将某个经常需要变更的进程,放入专用过程中;
           将业务规则封装在专用过程中,它属于常要修改的代码类别


           ▶尽量使过程成为自成一体的独立过程,是调试和修改变得简单,这时它就是松散连接的过程;

       ▶使过程具备较强的独立性方法:      

           尽量减少全局变量和模块级变量

       ▶尽量减少扇入和扇出

           

   二、编程原则

     2.1  为过程和模块富裕表义性强的名字;如:函数名DoIt、GetIt和PrintIt的可读性很难与CalculateSalesTax、RetrieveUserID和PrintSpreadSheet相比;

      给过程正确的命名:

          大小写混合使用;

          定义过程时不要使用缩写;如果非要缩写一定要加上注释;

     2.2  为每个过程富裕单个退出点;

       在每个过程中创建一个PROC_EXIT标注,在这个标注下放入所有必要的清除代码和一个相应的Exit语句,每当退出该过程时,只需加上一个GoTo,PROC_Exit语句;

   

    2.3  为每个过程赋予明确定义的作用域

       过程可以定义为拥有模块作用域、全局作用域或友元作用域;

       在创建过程时,应始终显式地定义它的作用域;

    2.4 用参数在过程之间传递数据;

       尽量避免使用模块级变量;一般来说变量的作用域越小越好;

       为每个参数指定数据类型;

       根据情况传递数据ByVal或ByRef;

          按引用(ByRef)传递过程的参数时,该过程会收到一个原始变量的指针,对参数进行的后续修改都是对原始变量的修改;

          按值(ByVal)传递给参数时,该过程会收到变量的一个拷贝,对参数的修改只是对拷贝的修改,而原始变量保持不变;

       始终都要对数进行检验,不要假设你的数据没有问题,如:要输入的是日期,需要格式;

       当参数只接受较小的一组值时,请使用枚举值,可以降低编码时出现数据输入错误的可能性;

         通过预定义列出所有值的标识符来定义一个有序集合,这些值的次序和枚举类型说明中的标识符的次序是一致的。枚举类型的形式:(标识符1,……,标识符n)

         例如: type   daystype=(sunday,monday,tuesday,wednesday,thursday,friday,saturday)

    2.5 使用统一直观明了的方式调用过程;

       调用过程时最好都要使用Call 关键字;

   下篇博客:《程序员编程标准二》。。。



原创粉丝点击