Java项目组开发规范

合集下载

IT行业软件开发流程与规范

IT行业软件开发流程与规范

IT行业软件开发流程与规范第1章软件开发概述 (4)1.1 软件开发背景 (4)1.2 软件开发流程 (4)1.3 软件开发规范的意义 (4)第2章需求分析 (5)2.1 用户需求调研 (5)2.1.1 确定调研目标 (5)2.1.2 选择调研方法 (5)2.1.3 制定调研计划 (5)2.1.4 执行调研 (5)2.1.5 调研数据分析 (6)2.2 需求分析的方法与工具 (6)2.2.1 需求分析方法 (6)2.2.2 需求分析工具 (6)2.3 需求规格说明书编写 (6)2.3.1 结构与内容 (6)2.3.2 编写规范 (7)第3章系统设计 (7)3.1 架构设计 (7)3.1.1 系统分层 (7)3.1.2 技术选型 (7)3.1.3 组件划分 (7)3.2 模块划分与接口设计 (8)3.2.1 模块划分 (8)3.2.2 接口设计 (8)3.3 数据库设计 (8)3.3.1 数据库选型 (8)3.3.2 表结构设计 (8)3.3.3 数据库规范 (9)3.4 系统设计文档编写 (9)3.4.1 文档结构 (9)3.4.2 编写要求 (9)第4章编码实现 (10)4.1 编程规范与约定 (10)4.1.1 代码风格 (10)4.1.2 编程习惯 (10)4.1.3 代码组织 (10)4.2 代码质量控制 (10)4.2.1 单元测试 (10)4.2.2 代码审查 (10)4.2.3 代码优化 (11)4.3.1 审查流程 (11)4.3.2 审查内容 (11)4.3.3 审查技巧 (11)4.4 版本控制 (11)4.4.1 版本控制工具 (12)4.4.2 代码提交与合并 (12)4.4.3 代码库管理 (12)第5章软件测试 (12)5.1 测试策略与计划 (12)5.1.1 测试策略 (12)5.1.2 测试计划 (13)5.2 单元测试 (13)5.2.1 单元测试方法 (13)5.2.2 单元测试策略 (13)5.3 集成测试 (13)5.3.1 集成测试方法 (13)5.3.2 集成测试策略 (14)5.4 系统测试 (14)5.4.1 系统测试内容 (14)5.4.2 系统测试策略 (14)5.5 验收测试 (14)5.5.1 验收测试内容 (14)5.5.2 验收测试策略 (15)第6章软件部署与维护 (15)6.1 部署策略与工具 (15)6.1.1 部署策略 (15)6.1.2 部署工具 (15)6.2 软件发布 (16)6.2.1 发布准备 (16)6.2.2 发布流程 (16)6.3 软件维护与升级 (16)6.3.1 软件维护 (16)6.3.2 软件升级 (16)第7章项目管理 (17)7.1 项目计划与进度控制 (17)7.1.1 项目目标:明确项目的最终目标,保证项目团队对目标的一致认同。

java项目代码设计文档

java项目代码设计文档

java项目代码设计文档Java项目代码设计文档一、引言在软件开发过程中,代码设计文档是非常重要的一部分,它用于记录项目的代码结构、功能模块划分、类的设计以及各个模块之间的关系等信息。

本文将以一个Java项目的代码设计文档为例,详细介绍如何编写一份规范整洁的代码设计文档。

二、项目概述本项目是一个基于Java的XXX系统,旨在实现XXX功能。

系统主要包括XXX、XXX、XXX等模块。

在项目开发过程中,我们遵循了面向对象的设计原则,采用了XXX框架,并且使用了XXX工具进行代码编写和管理。

三、代码结构1. 模块划分在本项目中,我们将功能划分为多个模块,每个模块负责不同的功能实现。

主要的模块包括:- 模块1:负责XXX功能的实现,包括XXX、XXX等类;- 模块2:负责XXX功能的实现,包括XXX、XXX等类;- 模块3:负责XXX功能的实现,包括XXX、XXX等类;...2. 包结构为了更好地组织代码,我们将各个模块的类放置在不同的包中。

包的结构如下:- com.example.module1:存放模块1相关的类;- com.example.module2:存放模块2相关的类;- com.example.module3:存放模块3相关的类;...四、类设计1. 类关系本项目中的类之间存在一定的关系,主要包括继承关系和关联关系。

具体的类关系如下:- 类A继承自类B;- 类C与类D存在关联关系;- 类E实现了接口F;...2. 类功能每个类都应该有明确的功能,我们在设计类时需要确保类的功能单一、职责明确。

以下是本项目中部分类的功能介绍:- 类A:负责处理XXX功能,包括XXX方法的实现;- 类B:提供XXX服务,包括XXX的处理逻辑;- 类C:封装XXX数据,提供对外的访问接口;...五、方法设计1. 方法命名规范为了代码的可读性和可维护性,我们在设计方法时需要遵循一定的命名规范。

以下是方法命名规范的一些示例:- getXXX:获取XXX属性的方法;- setXXX:设置XXX属性的方法;- processXXX:处理XXX功能的方法;...2. 方法注释为了方便代码的理解和维护,我们在每个方法前都应该添加注释,对方法的功能进行说明。

java开发项目组进度安排表v03版本.xls

java开发项目组进度安排表v03版本.xls

需求V0.3版
周四19:30-21:30
第一周 2:和学校进行协商
3: 周五12:00
5-10__5-16 安排技术指导
4:安 周日
排职业素养培训(王经理)
5:安排
学习String类,Collection接口
第二周 5-17__5-23
1:一次技术指导 2:例会 3:学习GUI图形用户界面编程
周一19:30-21:30 周三19:30-21:30 周四19:30-21:00 周五12:00
周三19:30-21:30
周四19:30-21:30
第三周 5-24__5-30
1:技术指导 2:数据库基础知识及JDBC的学习巩固GUI编 程
周五12:00
第四周 5-31__6-6
1:技术指导 2:巩固以前所学的技术 3:集中编码
周三19:30-21:30 周四19:30-21:30 周五12:00
完成情况
阶段
荔永苍、冉晓晨、巩祥 荔永苍、冉晓晨、巩祥 冉晓晨 荔永苍、冉晓晨、巩祥
巩祥 荔永苍 荔永苍、冉晓晨、巩祥 冉晓晨
荔永苍、冉晓晨、巩祥 荔永苍、冉晓晨、巩祥 冉晓晨
存在问题
荔永苍、冉晓晨、巩祥 荔永苍、冉晓晨、巩祥 冉晓晨
解决方案
荔永苍、冉晓晨、巩祥 荔永苍、冉晓晨、巩祥 冉晓晨 荔永苍、冉晓晨、巩祥
技术指导 分散技术指导 提交本周学习及工作总结和下周学习及工作计划表
技术指导 分散技术指导 提交本周学习及工作总结和下周学习、工作计划表及项目总结文档 项目总结
项目完善 提交本周学习及工作总结和下周学习、工作计划表及学习笔记
第三阶段
工作时间安排表 阶段
负责人
荔永苍、冉晓晨、巩祥 荔永苍、冉晓晨、巩祥 荔永苍、冉晓晨、巩祥 荔永苍、冉晓晨、巩祥 荔永苍、冉晓晨 荔永苍、冉晓晨、巩祥 巩祥 荔永苍 荔永苍、冉晓晨、巩祥 荔永苍 冉晓晨 荔永苍、冉晓晨、巩祥 荔永苍、冉晓晨、巩祥 冉晓晨 荔永苍 荔永苍、冉晓晨、巩祥 巩祥 冉晓晨 荔永苍、冉晓晨、巩祥 冉晓晨

java开发岗位职责要求工作描述7篇

java开发岗位职责要求工作描述7篇

java开发岗位职责要求工作描述7篇java开发岗位职责要求篇11、负责NC项目的二次开发及管理监控;2、根据开发进度和任务分配,独立完成相应模块软件的设计、开发、编程任务;3、参与项目的需求调研、方案设计、代码编写工作,交完成设计、开发、编程;4、进行程序单元、功能的测试,软件产品功能优化。

java开发岗位职责要求篇2职责:1、负责平台需求受理、分析与设计工作,承担核心功能代码的编写及系统运维工作,确保系统安全性及稳定性;2、负责平台复杂问题的解决,针对平台的发展进行思考并制定合理的架构规划;3、指导和培训新员工,保障新员工设计与研发质量,确保其快速成长;4、负责协同项目相关方,确保跨团队项目落地。

任职资格:1、本科及以上学历,计算机、电子商务等相关专业毕业;2、Java基础扎实,具备三年以上的Java研发经验;3、熟悉分布式系统的设计和应用,熟悉分布式框架、中间件、数据库等机制,能对分布式常用技术进行合理应用解决问题,有2年以上大型分布式系统研发经验优先;4、具有大型电子商务网站、银行业核心系统、互联网金融系统研发经验、以及高并发、稳定性技术经验的优先;5、具备数据和算法开发及应用经验者优先;6、逻辑能力强.思维活跃,接受新事物能力强,善于沟通,良好的团队合作能力;7、很强的学习能力、分析能力和解决问题的能力,追求极致的心态。

勤奋好学,耐得住寂寞,扛得住压力。

java开发岗位职责要求篇3职责:1、能独立完成核心/重要模块的设计、编码、单元测试。

2、参与代码设计、审核和检查。

3、能独立解决开发中遇到的难点问题。

4、具备良好的抗压性、良好的学习能力和团队协作能力。

5、参与公司核电信息化项目建设。

任职要求:1、本科以上学历,精通J2EE体系架构,熟悉设计模式。

2、三年以上Web项目实际开发经验。

精通web mvc框架,熟悉JSP/Servlet、javaScript、Ajax、Jquery等WEB技术,熟悉spring,Struts,Struts2,Hibernate,Ibatis等主流的开源框架。

javaee项目结构

javaee项目结构

javaee项目结构JavaEE(Java Platform, Enterprise Edition)是一种基于Java语言的开发平台,用于构建企业级应用程序。

在JavaEE项目中,良好的项目结构是非常重要的,它可以提高代码的可维护性、可扩展性和可重用性。

本文将介绍JavaEE项目结构的一般规范和最佳实践。

JavaEE项目通常由多个模块组成,每个模块负责不同的功能。

下面是一个典型的JavaEE项目结构示例:1. 根目录:项目的根目录包含了项目的配置文件、文档和构建脚本等。

在根目录下通常会有一个README文件,用于描述项目的基本信息和使用方法。

2. 源代码目录:源代码目录是存放Java源代码的地方。

通常会将不同功能模块的源代码放在不同的包或目录下。

在源代码目录中,可以根据功能模块再进行细分,比如将控制器(Controller)、服务(Service)和数据访问对象(DAO)等放在不同的包中。

3. 资源目录:资源目录用于存放项目中使用的静态资源文件,比如图片、CSS样式表和JavaScript脚本等。

通常会将这些资源文件按照类型放在不同的子目录下,以方便管理和使用。

4. 配置文件目录:配置文件目录用于存放项目的配置文件,比如数据库连接配置、日志配置和权限配置等。

这些配置文件通常采用XML格式或属性文件格式存储,以便于在项目运行时进行加载和解析。

5. 测试目录:测试目录用于存放项目的单元测试代码。

在JavaEE 项目中,通常会使用JUnit或其他测试框架来编写和运行单元测试。

测试代码应该与源代码分开存放,以便于管理和执行。

6. 文档目录:文档目录用于存放项目的文档和说明文件。

这些文档可以包括需求文档、设计文档、API文档和用户手册等。

文档的编写应该清晰明了,方便其他开发人员和用户阅读和理解。

7. 构建脚本目录:构建脚本目录用于存放项目的构建脚本文件,比如Ant、Maven或Gradle等。

这些构建脚本可以定义项目的编译、打包和部署等构建过程,以便于自动化构建和发布。

java,接口,命名规范

java,接口,命名规范

竭诚为您提供优质文档/双击可除java,接口,命名规范篇一:java开发命名规范作者:字体:[增加减小]类型:转载时间:20xx-10-24我要评论包名的书写规范(package)推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司/机构内所使用的包名的唯一性。

包名全部为小写字母,且具有实际的区分意义使用前注意事项:1、由于java面向对象编程的特性,在命名时应尽量选择名词2、驼峰命名法(camel-case):当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,首字母以小写开头,每个单词首字母大写(第一个单词除外)。

如:myFirstname一包名的书写规范(package)推荐使用公司或机构的顶级域名为包名的前缀,目的是保证各公司/机构内所使用的包名的唯一性。

包名全部为小写字母,且具有实际的区分意义。

1.1一般要求1、选择有意义的名字,能快速地传达该类的用途。

2、所有包的命名必须采用小写英文字母。

1.2实际应用应用系统中经常应用分层,dao层(数据库访问)、service层(业务处理)、web层(页面控制action类)。

1、包名的前几个为固定名称,如果是网站的话,采用网站的域名的反写,如果域名还没有确定的话,采用公司固定的几个名称。

如:net.vschool2、在包名的接下来一个单词为模块的名称。

如:用户模块,包名为er3、关于模块的访问操作,采用分层形式,一般分为:dao层操作:一般定义在net.vschool.xxx.dao中,其中xxx为模块名称。

service层操作:一般定义在net.vschool.xxx.servie 中。

web层操作:一般定义在net.vschool.xxx.action中。

如下关于用户模块的例子:erer.daoer.actioner.service二类名的书写规范(class)类名必须使用名词,如果一个类名内含多个单词,那么各个单词第一个字母大写,后续字母小写,起伏呈驼峰状,人称驼峰式命名。

groupid、artifactid、packagename规则-概述说明以及解释

groupid、artifactid、packagename规则-概述说明以及解释

groupid、artifactid、packagename规则-概述说明以及解释1.引言1.1 概述概述:在软件开发中,groupid、artifactid和packagename是maven项目中非常重要的三个命名规则。

它们在项目中起着关键的作用,能够帮助开发者更好地组织和管理项目代码、依赖和资源。

本文将详细介绍这三个规则的含义和作用,以及它们在实际项目中的应用。

通过了解groupid、artifactid和packagename规则,开发者可以更好地理解maven项目的结构,并能够更高效地进行项目开发和维护。

1.2文章结构1.2 文章结构本文主要包括三个部分: 引言、正文和结论。

在引言部分,将简要介绍groupid、artifactid和packagename的概念以及它们在项目开发中的重要性。

在正文部分,将分别详细介绍groupid、artifactid和packagename的规则和应用场景。

最后,在结论部分对文章进行总结,探讨这些规则的实际应用和未来发展方向。

通过这样的结构安排,读者可以系统地了解到groupid、artifactid和packagename在项目开发中的作用和重要性。

1.3 目的在软件开发中,groupid、artifactid和packagename是很常见的几个配置项。

它们在Maven构建工具中具有重要的作用,可以帮助开发者更好地管理和组织项目结构。

本文的目的是系统地介绍groupid、artifactid和packagename的规则和约定,帮助读者更好地理解它们的作用和重要性。

通过对这几个配置项的深入了解,读者可以更高效地开发和维护项目,提高代码质量和可维护性。

同时,本文也旨在引导读者养成良好的命名习惯,遵循规范的命名约定,提升团队协作和项目管理的效率。

通过本文的阐述,读者可以更好地理解和应用groupid、artifactid和packagename规则,从而提升项目开发的质量和效率。

java项目的实施方法

java项目的实施方法

java项目的实施方法Java项目的实施方法Java是一种广泛应用于企业级应用开发的编程语言,它具有跨平台性、丰富的类库和强大的性能。

在实施Java项目时,需要遵循一系列的步骤和方法,以确保项目能够成功交付。

以下是Java项目实施的一般步骤:1. 确定项目的需求和目标:在开始实施Java项目之前,必须明确项目的需求和目标。

这包括确定项目的功能、性能要求、用户界面和安全需求等。

同时,还需要明确定义项目的范围和时间表,并制定相应的项目计划。

2. 设计项目的架构和技术方案:在确定了项目的需求和目标之后,需要进行项目的架构和技术方案设计。

这包括确定项目的组件和模块,设计数据库结构,选择适当的设计模式和框架等。

这一步骤的目标是为后续的编码和测试提供指导。

3. 编码实现:在完成项目设计之后,开始进行实际的编码工作。

Java项目可以使用各种集成开发环境(IDE)进行开发,如Eclipse、IntelliJ IDEA 等。

在进行编码工作时,需要按照设计要求编写相应的类和方法,并进行必要的单元测试。

4. 集成和测试:在完成编码之后,需要进行项目的集成和测试。

这包括将各个模块和组件进行集成,确保它们能够正确地协同工作。

同时,还需要对整个项目进行功能测试、性能测试、安全测试等,以确保项目满足预期的要求。

在这个阶段,可以使用各种自动化测试工具来加快测试的速度和提高测试的质量。

5. 部署和维护:在完成测试之后,可以进行项目的部署工作。

这包括将项目部署到生产环境中,并进行必要的配置和优化。

在项目部署之后,需要进行持续的维护工作,确保项目的稳定性和可靠性。

在实施Java项目时,还需要注意以下几点:1. 使用合适的开发工具:Java项目可以使用各种开发工具进行开发和调试,选择合适的开发工具对提高开发效率具有重要作用。

同时,还可以使用版本控制工具来管理和追踪项目的代码变更,如Git、SVN等。

2. 遵循良好的编程实践:在进行Java项目开发时,需要遵循一系列的编程实践,以确保代码的可读性和可维护性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录第一章概述1.1 编写目的为规范FSOP项目的开发实施工作,特制定本规范。

为了提高软件开发质量,降低开发周期,增强代码的可重用性和易读性,使软件便于维护,开发人员间便于交流和协作,特总结出开发规范,以为参考。

1.2面向读者从事FSOP项目的开发、实施工作的相关人员。

1.3名词解释本节对手册中涉及到的术语进行简单描述。

第二章程序结构2.1包结构项目中的所有代码,必须符合如下的结构:1、各子系统的模块:其中subsys是子系统的名称,module是模块的名称,xxServlet和xxHandler是模块下面的Servlet 和Handler,允许有多个Servlet和Handler同时存在,建议同一个模块下,用多套Servlet和Handler处理不同的业务对象;util存放该模块专用的类;package/class可以任意级别的包或者类;2、子系统之外的模块:sm.{module}.servlet.[xxServlet]mon.util.[xxUtil]mon.hander.[xxHander]mon.sql.[xxSql]mon.entity.[xxxx]其中sm是system manage的简写,其他同上;3、公共的类:含义同上。

2.2相关类1、对于Servlet,必须继承ServletBase,必须在Servlet中处理与request和response相关的操作,一般是取参数和设置属性等操作;2、对于Handler,必须继承HandlerBase,该类的方法中,不能用request和response作为参数,更不能用Servlet作为参数;3、程序中使用到的SQL,一律在XXXSQLBuilder中进行拼写,该类属于util包,需要继承SQLBuilderBase,其构造函数为私有类型,并且要实现静态方法getSQLBuilder(conn),根据不用的数据库类型,返回不同的实例。

第三章JAVA规范3.1核心原则1.软件工程化2.面向对象3.能简单不复杂4.强调团队协作3.2 命名规范程序内的所有标识符(包括包名、类名、接口名、方法名、变量名)都应由字母、数字和下划线组成,并以字母开头;统一采用英文命名,用词应当准确,禁止使用中英文混合的方式命名,如果可能的话,尽量使用有意义的英文单词或多个单词的缩写命名(缩写应该是被广泛使用的缩写),做到见名知意;标识符的长度应当符合“min-length ? && ? max-information”原则;程序中不要出现仅靠大小写区分的相似的标识符;在使用英文字母起标识作用时要注意,尽量不使用“O”,“Z”,“I”等单个字符,以避免与数字“0”,“2”,“1”混淆。

3.2.1包、类和接口1、所有包名全部小写,只能使用英文字母,不得使用数字和其他符号;2、类名使用有意义的英文单词或单词的组合,每个单词的首字母大写,如果是实现接口的类,可酌情使用Imp结尾,英文单词一般为名词。

3、接口名使用有意义的名词和形容词的组合,每个单词的首字母大写,名称前不需要添加前缀“I”,英文字母i的大写。

3.2.2方法方法命名使用动词或“动词+名词”的组合,名称的首字母小写,名称中其他词的首字母大写。

对于取值的方法(getter method),加“get”作前缀;对于设置的方法(setter method),加“set”作前缀;对于布尔型的方法(boolean method),加“is”作前缀;用正确的反义词组命名具有互斥意义或相反动作的函数,例如getValue(),setValue()。

3.2.3变量变量命名使用名词或名词“形容词+名词”的组合,名称的首字母小写,名称中其他词的首字母大写。

尽量避免单个字符的变量名,除非是一次性的临时变量。

临时变量通常被取名为i,j,k,m 和n,它们一般用于整型;c,d,e,它们一般用于字符型。

用正确的反义词组命名具有互斥意义的变量,例如:int minValue和int maxValue。

尽量避免名字中出现数字编号,如Value1,Value2等,除非逻辑上的确需要编号。

命名应尽量使用匈牙利命名法,成员变量用长名字,参数和局部变量用短名字,一般由小写字母开头的单词组合而成。

类成员变量前一般应加上m_,静态变量应加上s_,紧接着是变量的类型(只限于JDK内置类型)。

临时变量应参照如下类似的格式书写,如ltmp ,tmpStr,tempStr等。

例如:m_nTotalNum,m_strPath,s_bRcving3.2.4常量常量(static final 变量)名字的每个字母都大写,并且指出完整含义,词与词之间用下划线分隔。

3.3 代码结构代码组织要清晰,严格控制函数的长度和每行代码的长度,{,},(,),if,else,do,while,for,case等要对应整齐,缩进全部用Tab键(4个空格)。

变量的定义要集中,函数间要有空行分开,一个程序中的空行数目最好占8%-16%。

多态函数和功能相近的函数集中放在一起。

代码应该简洁、清楚并讲述了所发生的一切,我们的目标应该是写出最清晰的代码,而不是最巧妙的代码。

有些不易理解的变量或函数应作注释,难懂的代码要有注解,在文件的开始处有该文件的用途描述。

一定要保持注释的一致性。

代码的重用要仔细,删掉从来没有用过的函数或变量,大篇幅注释掉的代码行也应删除,以免使程序混乱难读。

工程中不起作用的文件或类应删除,工程目录下的非工程文件也应该移走,保持工程的清洁,避免混淆难于管理。

3.3.1缩进代码缩进是指通过在每行代码前键入空格或制表符的方式,表示每行代码之间的层次关系。

任何编程语言都需要代码缩进规范程序的结构,采用代码缩进的编程风格有利于代码的阅读和理解。

在本项目的开发中,统一采用TAB(4个空格)进行代码缩进。

在遇到有关类、结构、函数或过程、以及枚举等等复杂程序结构的定义的时候,我们通常需要将它的内容缩进一层。

在C/C++/C#/Java 语言中,大括号是一个非常明显的标志,凡是遇到大括号,都应该直接联想到缩进。

3.3.2行宽当一条语句太长而超出一定的宽度时,应该折行书写,尽量避免一行的长度超过80 个字符。

3.3.3换行需要折行时,从第二行起到该语句结束之间的各行应该缩进一层,至下一条语句时再恢复原来的缩进位置。

这一点我相信大家都能理解并愿意遵循,然而问题的焦点并不在于要不要换行,而在于在什么位置换行。

当一个表达式不能在一行内写完,参照下面的标准换行:逗号后换行,操作符后换行,,换行时保证代码意义的连贯性。

在换行时,我们通常在一个变量或者常量之前换行,把逗号之类的分隔符、运算符留在前一行的行尾。

函数调用时,如果参数个数很多,或者要传递的表达式写起来很长,那么也会涉及到长语句换行问题;在一些必要的情况下,我们为了清晰地列出函数的每一个参数,可以每行只书写一个参数,原则是:尽可能地在参数与参数之间换行,并将逗号保留在上一行行末。

下面是经常使用的一些换行的示例代码:代码示例1:由于代码过长而进行断行bitmap = new Bitmap(size.Width, size.Height,代码示例2:对于一个超长表达式,我们可以在某两个表达式项之间断开:{??? supportsPropertyItems = true;}else{??? supportsPropertyItems = false;}原本一个很长的条件表达式,通过在“||”运算符处换行,显得更加地清晰。

有一点需要我们注意的是,当我们进行折行时,要将折行位置处的分隔符(如前一例中的逗号,这一例中的“||”运算符等)留在上一行的行末,给人以“此行并未结束”的直观印象。

代码示例1-3:寻找最佳的断行位置double containerAspectRatio =??? (double)container.ClientWidth / container.ClientHeight;如此一来,这个除法算术表达式就显得较为完整,相比前一种写法而言更能体现其内在的逻辑关系。

通常我们会选择整个表达式中最高的关系层次进行断行,例如上述代码中的“赋值号”和“除号”都是可以考虑的断行点,但相比较而言,除号连接的这个算术表达式只是整个赋值表达式的右半部分,如果在除号处断行,那么不但整个表达式会被截断,连局部的这个除法表达式也会被截断;反之,我们选择在赋值号处换行,可以保持除法表达式的完整,最大限度地减少换行对语句整体结构的破坏,能够更加清楚地表达出原来的逻辑。

代码示例1-4:将函数调用中的每一个参数都分行书写Rectangle imageBounds = new Rectangle(??? itemBounds.X + padding,??? itemBounds.Y + padding,??? itemBounds.Width - padding * 2,??? itemBounds.Height - padding * 2);当参数数量较多,参数较长或者包含表达式的时候,这种排版比起单独写成一行更为直观醒目。

3.3.4长度每个函数主要逻辑语句的长度以30个自然行以下为宜,建议不要超过50行,如果超过80行就应该重新组织。

如果{}单独成行,则其所在的行不在计算的范围内,catch/finally语句块中的语句不计算在内。

3.3.5括号在大括号语法中,缩进时大括号的写法有不同的几种,个人认为,前面所用的那种左右括号单独一行的写法最为清晰,因为可以最好地反映出括号的配对情况。

具体使用何种方式并不重要,重要的是,要保持方式风格的统一,不能在同一个项目中出现不同的风格。

风格1看起来紧凑些,可以减少代码的行数,但是在其他代码存在换行的情况下,不容易发现配对的括号,必须要借助IDE提供的功能才可以,建议使用风格2,这样的代码看起来更清晰一些,这点比较重要;3.3.6注释注释是用来解释程序做什么(What),为什么这样做(Why),以及要特别注意的地方的,而不是注释程序是怎么工作的(How),你的程序本身就应该能说明这一问题,如果程序的逻辑过于复杂,添加一些注释也是有必要的。

例如:下面的注释是必须的:下面的注释是多余的Java 程序有两类注释:实现注释(implementation comments)和文档注释(documentcomments)。

实现注释使用/*...*/和//界定的注释。

文档注释是Java 独有的,并由/**...*/界定。

切记,注释要随着程序的修改而不断更新,一个误导的(Misleading)注释往往比没有注释更糟糕。

另外,注释(包括所有源代码)建议只用ASCII字符,不要用中文或其他特殊字符,它们会极大地影响程序的可移植性。

相关文档
最新文档