mirror of
https://github.com/tiennm99/styleguide.git
synced 2026-10-16 10:15:22 +00:00
104 lines
4.4 KiB
Markdown
104 lines
4.4 KiB
Markdown
# Google Style Guides
|
|
|
|
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.
|
|
|
|
* [Common Lisp Style Guide][cl]
|
|
* [C++ Style Guide][cpp]
|
|
* [C# Style Guide][csharp]
|
|
* [Go Style Guide][go]
|
|
* [Haskell Style Guide][haskell]
|
|
* [HTML/CSS Style Guide][htmlcss]
|
|
* [JavaScript Style Guide][js]
|
|
* [Java Style Guide][java]
|
|
* [JSON Style Guide][json]
|
|
* [Markdown Style Guide][markdown]
|
|
* [Objective-C Style Guide][objc]
|
|
* [Python Style Guide][py]
|
|
* [R Style Guide][r]
|
|
* [Shell Style Guide][sh]
|
|
* [Swift Style Guide][swift]
|
|
* [TypeScript Style Guide][ts]
|
|
* [Vim script Style Guide][vim]
|
|
|
|
This project also contains [google-c-style.el][emacs], an Emacs settings file
|
|
for Google style.
|
|
|
|
We used to host the cpplint tool, but we stopped making internal updates public.
|
|
An open source community has forked the project, so users are encouraged to use
|
|
https://github.com/cpplint/cpplint instead.
|
|
|
|
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 guide lives outside of this project:
|
|
|
|
* [Angular Style Guide][angular]
|
|
* [Effective Dart][dart]
|
|
* [Kotlin Style Guide][kotlin]
|
|
|
|
Since projects are largely maintained in a [VCS], writing good commit messages
|
|
is important to long term project health. Please refer to [How to Write a Git
|
|
Commit Message](https://cbea.ms/git-commit/) as an excellent resource. While it
|
|
explicitly refers to the Git [SCM], its principles apply to any system, and many
|
|
Git conventions are trivial to translate to others.
|
|
|
|
## 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 eventually copied into the versions found here. **External
|
|
contributions are not accepted.** Pull requests are regularly closed without
|
|
comment.
|
|
|
|
People can file [issues using the GitHub tracker][gh-tracker]. 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.
|
|
|
|
<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>
|
|
|
|
[angular]: https://angular.dev/style-guide
|
|
[cpp]: https://google.github.io/styleguide/cppguide.html
|
|
[csharp]: csharp-style.md
|
|
[swift]: https://google.github.io/swift/
|
|
[objc]: objcguide.md
|
|
[gh-tracker]: https://github.com/google/styleguide/issues
|
|
[go]: go/
|
|
[haskell]: haskellguide.md
|
|
[java]: https://google.github.io/styleguide/javaguide.html
|
|
[json]: jsoncguide.md
|
|
[kotlin]: https://developer.android.com/kotlin/style-guide
|
|
[py]: pyguide.md
|
|
[r]: Rguide.md
|
|
[sh]: shellguide.md
|
|
[htmlcss]: https://google.github.io/styleguide/htmlcssguide.html
|
|
[js]: https://google.github.io/styleguide/jsguide.html
|
|
[markdown]: docguide/style.md
|
|
[ts]: https://google.github.io/styleguide/tsguide.html
|
|
[cl]: lispguide.md
|
|
[vim]: vimscriptguide.md
|
|
[emacs]: https://raw.githubusercontent.com/google/styleguide/gh-pages/google-c-style.el
|
|
[xml]: xmlguide.md
|
|
[dart]: https://www.dartlang.org/guides/language/effective-dart
|
|
[ccl]: https://creativecommons.org/licenses/by/3.0/
|
|
[SCM]: https://en.wikipedia.org/wiki/Source_control_management
|
|
[VCS]: https://en.wikipedia.org/wiki/Version_control_system
|