Best practices exist in all disciplines and so software development couldn’t be without any. There is a lot of literature regarding best practices, some of which border on philosophy, so it can get pretty confusing for someone new trying to make sense of all that.
Add to this, the fact that every programming language and every large software project has its own best practices and conventions, and the confusion becomes maddening.
In this post we will discuss about the importance of best practices and software engineering conventions, as well as WordPress specific resources.
But what exactly are best practices?
It depends on the programming language and the software project, but in general, best programming practices usually include some of the following points:
- The proper use of indentation, and braces in blocks of code. For example, PHP guidelines (and best practices of most languages) strongly advocate the use of tabs instead of spaces.
- The preference of a language structure over another. For example elseif and else if in PHP.
- Naming conventions in functions, variables, and etc. For example Java uses camelCase (each word starting or following with uppercase characters) for classes and pretty much everything else. While, on the other hand, PHP uses lowercase and underscores to separate words.
- Comments in functions, variables and code blocks. This is a point that is stressed in all software projects and across all programming languages. Code that looks clear now can become totally abstruse 3 months later.
Best practices are usually about details as mentioned above, but depending on the software tools and project, the scope can be different. There are best practices, also, when it comes to how software engineers structure their project’s entire codebase and how they implement certain solutions to problems. Additionally, there might even be team-specific guidelines that software engineers will need to follow in their project.
Why are they important?
Although, the enforcement of best practices and coding conventions often incur overhead to projects, and although, at times, best practices are quite difficult to follow 100%, they can save us a lot of time in the long-term.
When the deadline is pressing and software developers need to ship features on time, code quality usually suffers. The solution that is usually chosen is the easiest to be implemented in the shortest of time and not the best one. This results in the accruement of what is called “technical debt”, and it can turn a software project to a gigantic, unyielding mess in a very short period of time. Maintenance and adding new features becomes a nightmare and no one wants to do it.
But by paying a little overhead upfront with keeping good software practices, you save much time and avoid a lot trouble in the future:
- Code is much more readable, and thus more maintainable in the future, even by new team members with less experience.
- Refactoring, that is the restructuring of code without changing its behaviour, becomes easier and less error-prone.
- Code complexity is lowered.
- New team members are more productive from the get-go and onboarding is smoother and much more efficient.
WordPress development involves using a variety of programming and markup languages, each with its own set of guidelines for developers to follow. Luckily the documentation of these guidelines is well organised and quite thorough. You can browse and read them in the Best Practices section of the WordPress Core Handbook.
There are also a couple of WordPress plugins that help in the quest of making code more readable and maintainable:
- Crayon Syntax Highlighter is an industrial-strength syntax highlighting plugin with lots of awesome features.
- Code Prettify automatically highlights and minifies your code using the Google Code Prettify Library. It's quite simple and does the job!
Adhering to best practices when you are developing software can be really difficult, at first. It certainly has parallels with deliberate practice, where you observe your form and course-correct and not just doing drills. It can feel overwhelming, at first, trying to keep in your head all the points we've mentioned. But in general, if you comment your code, use common-sense and be descriptive in naming variables and functions and prefer cleaner and simpler solutions to "clever" hacks (that most of the times look like line noise anyway) you won't be far from the mark.