Git Product home page Git Product logo

eng-practices's Introduction

Google Engineering Practices Documentation

Google has many generalized engineering practices that cover all languages and all projects. These documents represent our collective experience of various best practices that we have developed over time. It is possible that open source projects or other organizations would benefit from this knowledge, so we work to make it available publicly when possible.

Currently this contains the following documents:

Terminology

There is some Google-internal terminology used in some of these documents, which we clarify here for external readers:

  • CL: Stands for "changelist", which means one self-contained change that has been submitted to version control or which is undergoing code review. Other organizations often call this a "change", "patch", or "pull-request".
  • LGTM: Means "Looks Good to Me". It is what a code reviewer says when approving a CL.

License

The documents 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/ for more details.

Creative Commons License

eng-practices's People

Contributors

adambender avatar alanyee avatar amalloy avatar code-health-devguide-copybara avatar fractalists avatar kluever avatar michaelrbock avatar mikeweilgart avatar mkanat avatar ninabikes avatar shuuji3 avatar vocatan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eng-practices's Issues

Security code review

I would like to know if we will have more explanations about security code review

Should async be accessed and if its a must to treat callbacks
Or the most security way to store tables using code
How to push messages for users with plaintexts, etc
If code can produce logs with confidential text
If not on this repository, where can i found more about

Clickable section header links

I noticed the section headers don't have links on google.githhub.io, but they do on github.com.

Example:
https://google.github.io/eng-practices/review/reviewer/looking-for.html
vs
https://github.com/google/eng-practices/blob/master/review/reviewer/looking-for.md

The latter has clickable links to a section like so:
https://github.com/google/eng-practices/blob/master/review/reviewer/looking-for.md#functionality

The former seems to respect the URL fragments if I type them manually, but I don't see a way to get the URL from clicking something on the page.

Being able to link to specific sections is really useful during code reviews.

Why is security not part of the review process?

Out of pure curiosity. :)

I am thinking this is taken care of some place else or the risk profile is just different from project to project. So you cant make it general description maybe. I just wonder why its not a point to look for?

btw. Thanks for a awesome guide perfect for inspiration - thanks for sharing it.

Question: Average CL size at google?

I recall reading, either in these docs, or very similar docs, that the average CL size at google was about 23-24 lines, and review takes 1-4 hours

I was trying to find this information again to reference it, but can't find it!

  • What is the average review time for a CL at Google?
  • What's the average number of loc added/removed for a CL at Google?

Readability: Define acronyms before use

It is already noted in the github repo that CL doesn't have any meaning outside of Google, and I'm glad that it is defined in the repo for those of us outside of the Google ecosystem.

I would like to make a suggestion that would solve this problem for people outside of Google (the documents have general appeal), as well as anyone within Google but new to the Google way of doing things.

  1. Always define an acronym before using it. It is easy enough to say: "When starting to review a new change list (CL).." This way nobody has to feel like they're dumb for missing something so simple as what a CTLG is or a VA is, or make sure you STL that. It's frustrating when acronyms are used with no definition anywhere in sight. Did you miss it? Was it in that paragraph up top? Maybe it is defined in one of the other pages in the table of contents.... It is unnecessarily wasted time for the reader to hunt down what terms you are using.

  2. Include a glossary.

Just my $0.02

I really like the documents otherwise. Lots of good lessons, looking forward to sharing them within my organization.

Resolving comments

Not sure if this was addressed in the article yet. Who should be in charge of resolving the comments? Should the reviewee resolve it on their own when they think it is fixed, or should the reviewer come back and verify the changes and resolve the thread? Who has the final decision?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.