what this post is about (and what not):
is not Develoment Guide, ill create an other document about Continuous integration, Testing, version control (which you already have, else you dont have anything to review, or you wont have), etc.
is not a Coding Standard, because there are already good tools which can format your code according to definable standards, this document does not apply the usual Coding Standard.
In that case it should actually called Code Design Standard, while this is not a standard
ill keep it under Code Review, because most ideas come from code review.
Which concepts are important in code design:
These concepts are closely connected:
without consistency and readability, it should be hard to design your code to be maintainable.
lets start with some of the ideas;
- Only a developer who understands the system as a whole can create a name that “fits” within this system.
- If the name is appropriate everything fits together naturally, relationships are clear, meaning is derivable, and reasoning from common human expectations works as expected.
- Names should be concise, but also descriptive. (typeless is not the same as meaningless).
- PHP has typeless variables, hungarian notation is not quite usefull.
- Avoid reassigning a variable with an other meaning (unless the name describes this beforehand)
Method / Function Names
- Usually a method / function performs an action, so the name should describe this: CheckForErrors() instead of ErrorCheck(),
- Do not do real work in constructors: only initialize variables only and/or do actions that can’t fail.
(add ideas in tweets & comments)