A few months ago we asked a couple of developers to answer a simple question. “What constitutes ‘Good Code’?”. The answer had to be in the form of a checklist with 10 guidelines.
So here it is! The number after the item is the amount of times we encountered it (or similar).
1. High test coverage at all levels is essential 10
2. Follow the Solid Principles 10
3. Reading the code should substitute reading documentation – It should make sense 8
4. Always do the simplest thing possible, have small methods and classes – remember YAGNI 8
5. Organise and format your code in a logical way and stick to it 6
6. Use names that reflect the business domain and have real meaning 6
7. Implement GoF patterns where applicable but nowhere else 5
8. Code should be resillient to errors but error handling should not invade the design 3
9. Reuse code where possible 3
10. Don’t reimplement the wheel 3
A little about the participants…
Al Priest. Al describes himself as, “an architect working at BBC Worldwide. I’ve been developing ever since the BBC Micro was popular and since 2002 I’ve been developing in C#”. Catch him at http://www.socialanimal.com
Maarten Balliaaw is currently employed as .NET Technical Consultant at RealDolmen. He describes his interests as mainly web applications developed in ASP.NET (C#) or PHP and the Windows Azure cloud platform. Catch him at http://blog.maartenballiauw.be
Pete Camfield runs a weekly meeting at BBC Worldwide primarily aimed at engaging the development community in a number of ways such as organising dojo’s, presentations, study groups and the like. Catch him at http://leftshift.wordpress.com
Marcel du Preez who I am not going to introduce in the third person as it is me typing this. I currently work for BBC Worldwide and have worked on projects such as BBC Listener, Top Gear, RadioTimes and also created http://www.boxjs.com. Catch me… well… here or @marceldupreez
Julian Everett is software architect at BBC.com and has more than 13 years experience designing and building distributed enterprise applications on Microsoft and Java technology stacks. Catch him at http://julianeverett.wordpress.com
Andreas Håkansson (aka TheCodeJunkie), creator of Nancy, Open-source ninjah, software craftsman, believer of agile practices, blogger, twitter addict, swede… Catch him at http://thecodejunkie.com
Josh Chisholm has worked on high caliber projects around BBC and usually leads Dojo sessions on all kinds of technologies. Catch him at @joshski
Derek Ekins currently works on BBC.com and his passion is open source development in Ruby on Linux. He is also co-owner of this blog and you can catch his articles by browsing the archives.
Andrew Revell describes himself as a “Wanderer, developer, New Zealander, moderately ambitious dreamer, occasional accidental philosphiser”, he has worked on projects including Top Gear, Love Earth, BBC Listener and many more. Catch him at http://llevera.wordpress.com
Duane Strikwerda has years of experience in mainly high profile websites built, most recently using ASP.NET’s MVC framework.
We would love to hear your feedback and if there is anything you think we missed, please leave your additions in the comments below.
