GMTC北京站两周后开幕,58个议题全部上线,点击查看 了解详情
写点什么

Google 的 Java 编码规范

2014 年 2 月 12 日

Google 最近发布了一份完整的 Java 编码规范。规范的内容包括一些切实可行的硬性规定。Google 内部均遵守此规范。该规范不仅涵盖了代码格式,还包括其他类型的约定和编码标准。

该规范主要分为 6 大部分:源文件基本规范、源文件结构、代码格式、命名、编程实践和 Javadoc。_ 源文件基本规范 _ 说明文件名、文件编码、空格和特殊字符等规范要求。_ 源文件结构 _ 说明许可信息、package 和 import 声明、类成员顺序等规范要求。_ 代码格式 _ 用于说明源代码中大括号、缩进、换行、空格、括号、枚举、数组、switch 语句、注解、注释和修饰符等格式要求。_ 命名 _ 说明了标识符(包、类、方法、常量、属性、局部变量和类变量)的命名规范和驼峰大小写定义。_ 编程实践 _ 说明 @Override、异常、静态成员和终结器的用法。Javadoc 说明哪些地方需要 Javadoc,以及它的格式要求。

以下是从规范中摘录的一些内容:

  • import 中不能有通配符。
  • 重载方法应该放在一起连续出现。
  • 即使代码块中没有内容,或者只有一行代码,也必须使用大括号。
  • 2 空格缩进。
  • 列宽是 80 或 100 个字符。
  • 不能使用类似 C 语言的数组变量声明。
  • switch 语句中,必须包含 default 语句。
  • 修饰符的顺序应按照 Java 语言规范推荐的顺序。
  • 常量命名应使用 CONSTANT_CASE 格式(译注:所有字母大写,单词使用下划线分隔)。注意,所有常量都必须是 static final 成员,但并不是所有的 static final 成员都是常量。

更多内容请阅读 Google Java Style 。Oracle 也提供了官方的Java 语言编码规范。Google 还提供了其它语言的代码风格指南,包括C++、Objective-C、Python、Shell、HTML/CSS、JavaScript 和Lisp 等等。

原文英文链接: Google’s Java Coding Standards


感谢姚琪琳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014 年 2 月 12 日 02:4922113

评论

发布
暂无评论
发现更多内容

当下工作流管理系统的发展趋势

Marilyn

敏捷开发 快速开发 软件架构 企业开发

架构师训练营 1 期第 6 周作业

木头发芽

基于React+Koa实现一个h5编辑器

徐小夕

Java nodejs H5 React koa

云图说|知道吗?在和你对话的那头,也许是个机器人哦~

华为云开发者社区

华为 AI 机器人

精解四大集合框架:List核心知识总结

田维常

后端开发

独立显卡市场又一巨头跻入,英特尔锐炬® Xe MAX 独立显卡来了!

新闻科技资讯

专利申请其实并不难?四步教你玩转专利申请!

华为云开发者社区

专利 保护

试用阿里网盘内测版-不限速、无广告、隐私安全我全都要

郭旭东

阿里云网盘

合约交易所系统开发技术搭建

薇電13242772558

区块链

写文档太麻烦,试试这款 IDEA 插件吧!

程序员小航

Java markdown IDEA idea插件 文档

EDA最强攻略,如何为EDA选择存储?

焱融科技

分布式 高性能 存储 半导体 EDA

直播预告 | CloudQuery初体验——安装及多数据源连接

CloudQuery社区

数据库 sql 安全 工具软件 dba

华为云的销售凭什么说“赢”了罗振宇?

ToB行业头条

tob

一个研发团队是如何坚持7年技术分享的?

PingCode

团队管理 敏捷开发 研发管理 技术分享 程序员节

SpringBoot-技术专题-war包部署读取外部配置Yml

李浩宇/Alex

精解四大集合框架:Set核心知识总结

田维常

程序员 后端

精解四大集合框架:Queue核心知识总结

田维常

后端开发

Forsage矩阵系统开发,智能合约搭建

薇電13242772558

永续合约系统开发源码,合约跟单软件搭建app

WX13823153201

面试时说Redis是单线程的,被喷惨了!

云流

redis 编程 程序员 计算机

在2020年更受关注和追捧的JS框架

Geek_Willie

react.js Vue js Svelte

接口测试人员需要掌握的知识技能

测试人生路

接口测试

快速掌握并发编程---深入学习ThreadLocal

田维常

架构师训练营第 1 期 第 3 周作业

李循律

极客大学架构师训练营

MySQL中事务的持久性实现原理

X先生

MySQL 数据库 sql 数据库事务 事务

TypeScript魔法堂:函数类型声明其实很复杂

肥仔John

Java typescript

Docker底层技术

混沌畅想

Docker 容器 DevOps 底层技术

架构师训练营第 1 期 第 5 周作业

李循律

极客大学架构师训练营

TensorFlow 篇 | TensorFlow 数据输入的最佳实践

Alex

tensorflow keras input pipeline dataset

SpringBoot-技术专题-war包部署读取外部配置Properties

李浩宇/Alex

数据结构与算法系列之链表操作全集(二)(GO)

书旅

go 数据结构 算法

Service Mesh的演化与未来

Service Mesh的演化与未来

Google的Java编码规范-InfoQ