`
sjk2013
  • 浏览: 2189725 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

随着中国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 关键字;

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



分享到:
评论

相关推荐

    《程序员》2011年08期

    一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。 作一个真正合格的程序员,应该具有的素质。 1:团队精神和协作能力 团队精神和协作能力是作为一个程序员应具备的最基本的...

    python编程设计.docx

    python编程设计 Python... Python编程设计的第三个重要方面是模块化编程,这是一种将程序分解为独立的模块,每个模块都有自己的功能和接口,可以独立编译和测试的编程方式。Python中的模块是一个包含Python代码的文件

    用Python编程,本课程教导新手程序员编写模块化代码以执行分析Python的数据。

    本课程教导新手程序员编写模块化代码以执行分析Python的数据。然而,重点是教学 - 无可止知的原则,例如具有循环和功能封装的自动化,参见科学计算的最佳实践和科学计算中的足够实践,以了解更多信息。本课程中使用...

    python编程设计(2).docx

    python编程设计 Python编程设计是一种非常流行的编程语言,它被广泛应用于各种领域,包括数据科学、机器学习、人工智能、Web开发等。Python的简洁、易读、易学、易用等特点,使得它成为了很多程序员的首选语言。 ...

    python快速编程入门(第2版)课后答案.pdf

    python快速编程⼊门(第2版)课后答案 1. Python概述 填空题 1. 对象 2. 可移植性 3. Python 4. import 5. from…import * 判断题 1. 2. × 3. × 4. 5. 选择题 1. C 2. D 3. C 简答题 1. Python主要的特点有代码...

    可二次开发程序员表白代码.rar

    这个文件包不仅适合作为毕业设计或课程设计项目,而且也是一个绝佳的实践工具,用于提升编程技能和理解软件开发的全过程。该源码文件包含有多个模块,每个模块都经过精心设计,易于理解和修改,以适应不同的个性化...

    C 语言实现对模块化支持

    模块化是最高原则之一(在 《Unix 编程艺术》一书中, Unix 哲学第一条即:模块原则),我们就当考虑如何简洁明快的使用 C 语言实现模块化。  除开 C/C++ ,在其它现在流行的开发语言中,缺少标准化的模块管理...

    Java聊天室的设计与实现【尚学堂·百战程序员】

    通过对聊天室系统的整体架构和功能模块进行概述,让学员对课程内容有一个清晰的认识。 2. **技术框架**:课程使用了Java语言作为开发主要工具,并基于网络编程技术实现了聊天室的通信功能。同时,课程还涉及了多...

    《程序员》2011年第2期

    一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。 作一个真正合格的程序员,应该具有的素质。 1:团队精神和协作能力 团队精神和协作能力是作为一个程序员应具备的最基本的...

    Codesys免费可编程逻辑控制软件编译器

    CoDeSys是可编程逻辑控制PLC的完整开发环境(CoDeSys是Controlled Developement System的缩写),在PLC程序员编程时,CoDeSys为强大的IEC语言提供了一个简单的方法,系统的 编辑器和调试器的功能是建立在高级 编程...

    JAVA程序员学习之路总结.zip

    JAVA程序员学习之路总结,内容包括但不限于数据结构、算法、数据库、操作系统、计算机网络等多方面 Java是一种高性能、跨平台的面向对象编程语言。它由Sun Microsystems(现在是Oracle Corporation)的James Gosling...

    程序员10大职业生存技巧

    如果你的想法在小组会议上被驳倒,设计一个完美又顶级的破坏和怠工活动,如果刚好出现问题的话,那你就可以得意洋洋地宣布了:“我早就说过会这样!” 9. 要多和同部门的人增进感情 不要老是去其他部门办公室,否则...

    Python 核心编程 第二版

    第1部分占据了大约三分之二的篇幅,阐释这门语言的“核心”内容,包括基本的概念和语句、语法和风格、 Python对象、数字类型、序列类型、映射和集合类型、条件和循环、文件和输入/输出、错误和异常、函数和函数式...

    vb6类模块学习入门经典教程

    对程序员和编程爱好者来说,VB中类的技术是学习中的一个难点,在大型软件的开发过程中,模块(Moudle)、控件(Active ocx)、链接库(Active dll)和类(Class moudle)构成了系统化、高效化的软件工程,而类的技术是...

    C++/C编程规范

     本书涵盖了C++程序设计的每一个方面,包括设计和编码风格、函数、操作符、类的设计、继承、构造与析构、赋值、名字空间、模块、模板、泛型、异常、STL容器和算法等。书中对每一条规范都给出了言简意赅的概述,并...

    CoDeSys编程简介

    CoDeSys是可编程逻辑控制PLC的完整开发环境(CoDeSys是Controlled Developement System的缩写),在PLC程序员编程时,CoDeSys为强大的IEC语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程语言...

    论文研究-面向方面的编程的研究与实现.pdf

    AOP 引进了Aspect,它将影响多个类的行为封装到一个可重用模块中,它允许程序员对横切关注点进行模块化,从而消除了OOP引起的代码混乱和分散问题,增强了系统的可维护性和代码的重用性。首先进行了AOP与OOP的比较,...

    python程序员面试常见问题汇总 包含:基础知识、爬虫、正则表达式、网络编程、Flask、Django

    python程序员面试常见问题汇总。包含:基础知识、爬虫、正则表达式、网络编程、Flask、Django。 例如: 1、基础篇:python的优缺点、深拷贝和浅拷贝之间的区别是什么、列表和元组之间的区别等; 2、进阶篇:python中...

    CoDeSys 2.3 中文教程(学习PLC编程的最好教程,好不容易弄到)

     CoDeSys是可编程逻辑控制PLC的完整开发环境(CoDeSys是Controlled Developement System的缩写),在PLC程序员编程时,CoDeSys为强大的IEC语言提供了一个简单的方法,系统的编辑器和调试器的功能是建立在高级编程...

    程序员Java互联网求职个人简历

    2、负责功能模块设计,开发及相关测试、程序检查、审查; 3、协助并快速定位及解决开发及运行过程中的技术问题。 项目技能 1、JAVA基础扎实,良好的面向对象编程思想;熟练使用Tomcat、Nginx等应用服务器; 2、熟练...

Global site tag (gtag.js) - Google Analytics