2021-01-02 23:30:59 +08:00
|
|
|
# Google Style Guides
|
2018-01-31 01:36:50 +08:00
|
|
|
|
|
|
|
Every major open-source project has its own style guide: a set of conventions
|
|
|
|
(sometimes arbitrary) about how to write code for that project. It is much
|
|
|
|
easier to understand a large codebase when all the code in it is in a
|
|
|
|
consistent style.
|
|
|
|
|
|
|
|
“Style” covers a lot of ground, from “use camelCase for variable names” to
|
|
|
|
“never use global variables” to “never use exceptions.” This project
|
|
|
|
([google/styleguide](https://github.com/google/styleguide)) links to the
|
|
|
|
style guidelines we use for Google code. If you are modifying a project that
|
|
|
|
originated at Google, you may be pointed to this page to see the style guides
|
|
|
|
that apply to that project.
|
|
|
|
|
2021-01-02 23:30:59 +08:00
|
|
|
This project holds the [C++ Style Guide][cpp], [C# Style Guide][csharp],
|
2020-06-03 22:09:42 +08:00
|
|
|
[Swift Style Guide][swift], [Objective-C Style Guide][objc],
|
2018-01-31 01:36:50 +08:00
|
|
|
[Java Style Guide][java], [Python Style Guide][py], [R Style Guide][r],
|
|
|
|
[Shell Style Guide][sh], [HTML/CSS Style Guide][htmlcss],
|
2021-01-02 23:30:59 +08:00
|
|
|
[JavaScript Style Guide][js], [TypeScript Style Guide][ts], [AngularJS Style Guide][angular],
|
2018-01-31 01:36:50 +08:00
|
|
|
[Common Lisp Style Guide][cl], and [Vimscript Style Guide][vim]. This project
|
|
|
|
also contains [cpplint][cpplint], a tool to assist with style guide compliance,
|
|
|
|
and [google-c-style.el][emacs], an Emacs settings file for Google style.
|
|
|
|
|
|
|
|
If your project requires that you create a new XML document format, the [XML
|
|
|
|
Document Format Style Guide][xml] may be helpful. In addition to actual style
|
|
|
|
rules, it also contains advice on designing your own vs. adapting an existing
|
|
|
|
format, on XML instance document formatting, and on elements vs. attributes.
|
|
|
|
|
|
|
|
The style guides in this project are licensed under the CC-By 3.0 License,
|
|
|
|
which encourages you to share these documents.
|
|
|
|
See [https://creativecommons.org/licenses/by/3.0/][ccl] for more details.
|
|
|
|
|
|
|
|
The following Google style guides live outside of this project:
|
|
|
|
[Go Code Review Comments][go] and [Effective Dart][dart].
|
|
|
|
|
2021-04-09 02:08:23 +08:00
|
|
|
|
|
|
|
## Contributing
|
|
|
|
|
|
|
|
With few exceptions, these style guides are copies of Google's internal style guides
|
|
|
|
to assist developers working on Google owned and originated open source projects.
|
|
|
|
Changes to the style guides are made to the internal style guides first and
|
2021-04-09 04:30:44 +08:00
|
|
|
eventually copied into the versions found here. **External contributions are
|
|
|
|
not accepted.**
|
2021-04-09 04:28:33 +08:00
|
|
|
Pull requests are regularly closed without comment.
|
|
|
|
Issues that raise questions, justify changes on technical merits,
|
|
|
|
or point out obvious mistakes may get some engagement and could in theory lead to changes,
|
|
|
|
but we are primarily optimizing for Google's internal needs.
|
2021-04-09 02:08:23 +08:00
|
|
|
|
2018-01-31 01:36:50 +08:00
|
|
|
<a rel="license" href="https://creativecommons.org/licenses/by/3.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by/3.0/88x31.png" /></a>
|
|
|
|
|
|
|
|
[cpp]: https://google.github.io/styleguide/cppguide.html
|
2020-06-03 22:09:42 +08:00
|
|
|
[csharp]: https://google.github.io/styleguide/csharp-style.html
|
2018-12-19 01:14:46 +08:00
|
|
|
[swift]: https://google.github.io/swift/
|
2018-01-31 01:36:50 +08:00
|
|
|
[objc]: objcguide.md
|
|
|
|
[java]: https://google.github.io/styleguide/javaguide.html
|
2018-09-11 23:36:07 +08:00
|
|
|
[py]: https://google.github.io/styleguide/pyguide.html
|
2019-08-07 15:52:51 +08:00
|
|
|
[r]: https://google.github.io/styleguide/Rguide.html
|
2020-02-14 03:08:47 +08:00
|
|
|
[sh]: https://google.github.io/styleguide/shellguide.html
|
2018-01-31 01:36:50 +08:00
|
|
|
[htmlcss]: https://google.github.io/styleguide/htmlcssguide.html
|
|
|
|
[js]: https://google.github.io/styleguide/jsguide.html
|
2021-01-02 23:30:59 +08:00
|
|
|
[ts]: https://google.github.io/styleguide/tsguide.html
|
2018-01-31 01:36:50 +08:00
|
|
|
[angular]: https://google.github.io/styleguide/angularjs-google-style.html
|
|
|
|
[cl]: https://google.github.io/styleguide/lispguide.xml
|
|
|
|
[vim]: https://google.github.io/styleguide/vimscriptguide.xml
|
|
|
|
[cpplint]: https://github.com/google/styleguide/tree/gh-pages/cpplint
|
|
|
|
[emacs]: https://raw.githubusercontent.com/google/styleguide/gh-pages/google-c-style.el
|
|
|
|
[xml]: https://google.github.io/styleguide/xmlstyle.html
|
|
|
|
[go]: https://golang.org/wiki/CodeReviewComments
|
|
|
|
[dart]: https://www.dartlang.org/guides/language/effective-dart
|
|
|
|
[ccl]: https://creativecommons.org/licenses/by/3.0/
|
2021-04-09 02:08:23 +08:00
|
|
|
|