翻译:王士勇(转载请保留作者,谢谢"/>
我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java编码规范 (转)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java编码规范 (转)

java编码规范 (转)[@more@]

Java 编码规范XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

翻译:王士勇

(转载请保留作者,谢谢)

1.  引言

1.1. 为什么要编码规范

编码规范为什么是重要的?有以下一些理由:

l  一份软件80%的生命周期是维护期

l  任何软件都很难说他的整个生命周期都是由他的原始作者来维护

l  编码规范改善软件的可读性,使得软件工程师充分理解新的代码变得非常的快速。

l  如果你要把你的原码作为产品发布,你需要确保他像你的其他产品一样干净并且封装的好。

为了按照规范工作,每个人写软件的时候,都必须遵守编码规范。记住,是每个人!

1.1.1.  致谢

这本书是反映的是Java Language Specification 中关于java语言编码规范的。在这里要着重对Peter king ,Patrick Naughton,Mike DeMoney,Jonni Kanerva,Kathy Walrath,和SCOtt Hommel表示感谢。

2.  文件名

这一节列出了本书所用的大部分文件名和后缀。

2.1. 文件后缀

  .java  java 源文件后缀

  .class   java 字节码文件后缀

2.2. 常用的文件名

  经常使用的文件名包括以下:

  gnumakefile    首选的makefile的名字,我们使用gnumake来build我们的软件。

  README   那些专门概述特定文件夹内容的文件的首选的名字

3.  文件的组织

一个文件的各个部分之间应该用空行隔开,并且应该用一个可选的注解来标示每个不同的部分。

文件超过2000行,是非常笨重讨厌(cumbersome)的,应该避免。

至于java 编程的正确格式的示例,请参看18页上的”JAVA source File Example(Java 原码文件示例)”。

3.1. Java 源码文件

  每一个Java源码文件都包括一个唯一的public 类或interface。当私有的类和interface 都和这个public 类有关联时,你可以把它们放到这个public 类的源文件中。这个public 类或interface 应当是这个文件的第一个类或interface 。

Java 源文件有以下的顺序:

l  文件开头注解(参见第二页的“Beginning Comments(开头注解)”)

l   声明package 的语句和载入语句。

l  类和interface的声明(参见page 3的“Class and Interface Declarations”)

3.1.1.  开头注解

  所有的源文件都应该以一个C语言风格的注解开头。这个注解应该列出类名,版本信息,日期和版权声明:

 

3.1.2.  声明包的语句和import 语句

  绝大多数java 源文件中的第一非注释行应该是声明包的语句。此后,紧接着是import 语句。例如:

  package java.awt;

  import java.awt.peer.CanvASPeer;

3.1.3.  类和接口的声明

下面的表格描述了部分的类和接口的声明,他们应该按照表格的顺序。参看“Java Source File Example” on page 18 。

 

部分类/接口声明 

注释

类/接口文档注解

如何做此类注解请参看“Documentation Comments”

类或接口声明

类/接口实现的注解(),如果有必要的话

这个注解应该包括任何整个类或接口范围内的不适合在类/接口文档注解中出现的内容。

类(静态)变量

首先是public类变量,然后是protected类变量,然后是friendly(package level,即默认)。然后是private变量。

Instance variables(译注:实体变量?不会翻译了,意即普通的变量。)

首先是public,其次protected,接着package level。最后是private变量。

类的构造函数

方法,(译注:即类的成员函数)

这些方法应该以功能相近为标准,组织在一块,而不是看其作用域和可存取性。例如:一个private class 方法(译注:意即private static method)可以被放在两个public instance 方法(译注:意即public method)中间。其目的是为了代码可读性和可理解性增加。

4.  缩进

应该以四个空格为缩进的最小单位,缩进的精确结构没有被详细定义。Tabs必须被精确指定为8个空格(而不是4个)。

4.1. 代码行的长度

应避免行的长度超过80个字符,因为很多的终端和工具都不支持超过80个字符。(译注:个人认为现在一般都支持行超过80个字符,但是由于超过80个字符,一般要滚屏,所以尽量还是不要超过此限制。)

注意:文档中的例子的行长度应该更短,一般不超过70个字符。

4.2. Wrapping lines(断行的方法)

当一个表达式不适合一个单行时,依照以下这些一般性的原理来断行:

l  在逗号后断行

l  在运算操作符前断行

l  在较高的层次断行比在低层次断行要好

l  把新行的表达式的开头和上一行的表达式开头对齐。

l  如果上一条规则导致代码的混乱或者代码超出了正常的限度。那么就仅仅以缩进8个空格来替代。

这儿有一些调用方法的断行例子:

  someMethod(longExpression1,longExpression2,longExpression3,

    longExpression4,longExpression5);

  var=someMethod1(longExpression1,

  someMethod2(longExpression2,

  longExpression3));

  下面是两个算术表达式的断行的例子,第一个比第二个好,因为它的断行发生在括号的外面,这是在高层次上的断行。

  loNGName1 = longName2 * (longName3 + longName4 –longName5)

    + 4 * longName6;

 

    longName1 = longName2 * ( longName3 + longName4

    - longName5) + 4 * longName6;  //  AVOID(应该避免这样)

下面是两个方法声明的断行的例子,第一个是规范的例子。第二个如果要使用规范的缩进的话,将会使第二和第三行缩进的非常向右。所以仅仅使用8个空格来替代。

  //规范的缩进

  someMethod ( int anArg, object anotherArg, String yetAnotherArg,

  Object andStillAnother){

  …

  }

  //以8个空格来缩进,以避免非常纵深的缩进

  private static synchronized horkingLongMethodName(int anArg,

    Object anotherArg, String yetAnotherArg,

    Object andStillAnother) {

    …

  }

  行的包装(Line wrapping for)对if 语句一般应该用8个空格规则,因为标准的(4个空格)缩进使得if 的主体部分非常难看明白。例如:

  //不要使用这种缩进

  if ( ( condition1 && condition2)

    || (condition3 && condition4)

  || ( condition5 && condition6)) { //差的包装

  doSomethingAboutIt();

  }

  //以这种缩进方式代替

  if ( ( condition1 && condition2)

    || ( condition3 && conditin4 )

  || ! (condition5 && condition6)) {

  doSomethingAboutIt();

  }

  //或者这样使用

  if ((condition1 && condition2) || (conditin3 && condition4)

    || ! ( condition5 && condition6 )) {

  doSomethingAboutIt();

  }

  这儿有三种可接受的三元运算符的缩进格式:

  alpha = ( aLongBooleanExpression) ? beta : gamma;

  alpha = ( aLongBooleanExpression) ? beta

   : gamma;

  alpha = ( aLongBooleanExpression)

    ? beta

    : gamma;

5.  注释(注解)

待译。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java编码规范 (转)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java编码规范 (转)

java编码规范 (转)[@more@]Java 编码规范XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />翻译:王士勇(转载请保留作者,谢谢
2023-06-03

java编码规范(2) (转)

java编码规范(2) (转)[@more@]Java 编码规范(2)XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />翻译:王士勇(转载请保
2023-06-03

规范-编码

c++编码规范c++11, xcode, vistual studio编码规范http://zh-google-styleguide.r...常用库标准库: http://en.cppreference.com/w/日志: https://
2023-01-31

Python 编码规范

一 代码编排 1 缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。 2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。 3 类和top-level函数定义之间空
2023-01-30

Python编码规范

标准头部#!/usr/bin/python编码所有的 Python 脚本文件都应在文件头标上 #-*- coding:utf8 -*- 。设置编辑器,默认保存为 utf8 格式。main函数应用程序要定义main函数而不要直接写脚本def 
2023-01-31

Node.js编码规范

调用函数的时候,函数名与左括号之间没有空格。 函数名与参数序列之间,没有空格;所有其他语法元素与左括号之间,都有一个空格。 使用小驼峰式命名法作为所有变量和属性的命名规则。 缩进使用两空格,统一使用单引号。 关联数组,除非键名中有空格或是非
2022-06-04

Java 程序编码规范有哪些

这篇文章给大家介绍Java 程序编码规范有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java 程序编码的规范(转)[@more@]所有的程序开发手册都包含了各种规则。一些习惯自由程序人员可能对这些规则很不适 应
2023-06-03

浅谈Android编码规范及命名规范

前言:目前工作负责两个医疗APP项目的开发,同时使用LeanCloud进行云端配合开发,完全单挑。现大框架已经完成,正在进行细节模块上的开发抽空总结一下Android项目的开发规范:1、编码规范 2、命名规范  注:个人经验,经供参考 一、
2022-06-06

Python最简编码规范

0、前言本文是阅读《Python Coding Rule》之后总结的最为精华及简单的编码规范,根据每个人不同喜好有些地方会有不同的选择,我只是做了对自己来说最简单易行的选择,仅供大家参考。1、重要原则a.保持风格的一致性很重要,但最重要的是
2023-01-31

Java语言编码规范的示例分析

这篇文章跟大家分析一下“Java语言编码规范的示例分析”。内容详细易懂,对“Java语言编码规范的示例分析”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“Java语言编码规范的示例
2023-06-03

在java中如何编写规范的代码

本篇内容介绍了“在java中如何编写规范的代码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、MyBatis 不要为了多个查询条件而写 1
2023-06-16

编码规范 | Java函数优雅之道(上)

导读随着软件项目代码的日积月累,系统维护成本变得越来越高,是所有软件团队面临的共同问题。持续地优化代码,提高代码的质量,是提升系统生命力的有效手段之一。软件系统思维有句话“Less coding, more thinking(少编码、多思考
2023-06-02

Python编码规范有哪些

Python编码规范有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。编码在Python编码规范中,所有的 Python 脚本文件都应在文件头标上 # -*- codin
2023-06-17

VB.NET编码规范有哪些

今天就跟大家聊聊有关VB.NET编码规范有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、类型级单位的命名 1、类。 以Class声明的类,都必须以名词或名词短语命名,体现类的
2023-06-17

Go编码规范有哪些

本文小编为大家详细介绍“Go编码规范有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Go编码规范有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1. 代码风格1.1 代码格式代码必须用 gofmt 进行
2023-07-04

VB.NET有哪些编码规范

本篇文章为大家展示了VB.NET有哪些编码规范,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、类型级单位的命名1、类。以Class声明的类,都必须以名词或名词短语命名,体现类的作用。如:Class
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录