Essential Tips and Tricks for Developers Starting on a New Project

08.07

As a developer, you may feel overwhelmed when starting out on a new project. From setting up your new laptop to best practices and containerisation, there’s a lot to keep in mind. In this blog, we’ll cover a mix of tips and tricks that have helped us out in our projects, so you can identify what’s important to you, and which aspects you can postpone or avoid altogether. Let’s get started. 

Which Coding Best Practices Should I Use? 

Coding best practices are essential for maintaining code quality: they ensure that your code is clean, understandable, and robust. However, there a lot of best practices – and accompanying acronyms – out there, so you may be wondering if you need to use all of them at all times. Without going into the nitty-gritty details of each principle, here’s a quick overview of some best practices worth checking out: 

  1. SOLID is actually a collection of five principles: Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion. Together, they help you design modular and maintainable code by promoting separation of concerns, extensibility, and loose coupling. SOLID really is a solid best practice to use; we recommend applying it to pretty much every piece of code that you write.
  2. Clean Code refers to writing code that is easy to understand and read. Of course, this is subjective, but it generally refers to the practices described in the book Clean Code: A Handbook of Agile Software Craftsmanship by Robert Martin. It emphasizes clarity, simplicity, and the use of meaningful names for variables, functions, and classes. Just like SOLID, you should use Clean Code pretty much all the time.
  3. KISS (Keep It Short and Simple) promotes simplicity in various aspects, including code design and implementation. It encourages you to avoid unnecessary complexity and favour straightforward solutions. If you use SOLID, you use KISS.
  4. CQRS (Command and Query Responsibility Segregation) is a pattern that separates read and update operations for a data store. You won’t always have to use this; it will depend on the application and the architecture of your project.
  5. DDD (Domain-Driven Design) is an approach that focuses on aligning the software design with the business domain. It will make communicating with domain experts easier. This is typically more of a high-level decision that will have been made already, and another best practice that is very much dependent on your project’s application and architecture. 

With that out of the way, here are some of our practical tips for coding best practices: 

  • In our experience, communication is key in determining and adopting best practices, which are often discussed during architecture and code reviews. Generally, the more experienced developers and/or architects will have determined some of them beforehand. Like we mentioned above, the usage of CQRS and DDD will probably have been decided for you.
  • A good way to get a feel for coding best practices is to check out open-source repositories with lots of contributions, for example on Microsoft’s site and on GitHub. You can learn a lot from watching and interpreting this code, as well as from working with a senior developer.
  • Pay close attention to pull requests! They will make it easier to monitor code quality and work together with other developers, and may teach you a thing or two about the project’s codebase. 

The (Non)sense of Containerisation 

Containerisation is a common practice in modernising monolithic applications, and for good reason. It’s like breaking down a complex puzzle into manageable pieces. They are much more flexible, can run on any cloud provider’s infrastructure, and let you scale easily. Last, but certainly not least: containers eliminate the infamous “it runs on my computer” scenario. They ensure consistency across different environments, giving your applications a reliable runtime environment. 

If you’re trying to figure out if containers and microservices are the way to go, take a look at your client’s infrastructure. Try to figure out which processes can be extracted and transformed into standalone microservices. Lightweight and time-based processes are often ideal candidates. 

If you do decide to work with containers, here are some of our recommendations: 

  • Avoid using the root user in containers. It’s like giving someone admin privileges to an application, so it compromises the security of your services. 
  • Use multi-stage builds with two separate environments: one with the software development kit (SDK), and the other with the runtime. This helps to keep your containers clean and efficient. 
  • Consider using managed container environments, instead of having to set up and manage your own Kubernetes infrastructure. This lets you focus on your code. 
  • Remember to regularly maintain your containers. Keep them updated with security patches and remove unnecessary clutter. 

The next big thing in coding: Microsoft Dev Box 

As a developer, one of the most annoying and time-consuming parts of a project is having the right hardware, configuration, and access. You get a laptop from the client, and then you have to spend the better part of a day setting it up correctly. However, we think this may soon be a thing of the past. 

Microsoft Dev Boxes are ready-to-code, project-specific workstations that come preconfigured and centrally managed. They can give you high-performance, cloud-based development environments, meaning you’ll be able to focus on writing code. You won’t need a physical device from the client anymore. No more fiddling around with access to the client’s secured network or waiting an hour for Visual Studio to install. Dev Boxes are similar to GitHub’s Code Spaces, but with the added benefits of seamless integration within the Azure ecosystem. 

Dev Boxes have been out in GA (General Access) for a few months by now, but you may not have heard of them yet. We think they will become a new best practice, transforming the way development is done, especially for larger organisations and ambitious projects. 

Wrapping things up 

Starting a new project as a developer can be a daunting task, but with the right tips and tricks, you can navigate these challenges with confidence. In this blog, we’ve explored which of the various coding best practices you should use, how to get started with containerisation, and why we think Microsoft Dev Box may shake things up.  

If there’s one final piece of advice we can give, it’s to always stay open to new ideas, communicate effectively with your team, and continually learn from whichever source you prefer. Happy coding, and may your projects be a resounding success! 

 

Do you have some experience in projects already, but are you suddenly put in charge of other developers? Check out our other blog on things you need to know as a developer managing your first project! 

Want to learn more about coding together with us? Check out our Jobs page and let us know what you’re looking for! 

Smokescreen