Showing posts with label Best Practices. Show all posts
Showing posts with label Best Practices. Show all posts

17 Jan 2012

Developer Community Groups and Buses

Just a quick post to highlight two new Belfast developer groups that are having their first events this month.

The first event is being hosted by Bash! on the topic of Lessons in Clean Fast Code.  The talk is being given by performance guru Martin Thompson, and it is taking place this Thursday evening (19th January) at the Holiday Inn on Ormeau Avenue.  With some 200+ people registered to attend, it is guaranteed to be a great night!

The second event is from the newly formed Belfast Ruby community group, which has been formed by the guys in Rumble Labs..  They describe themselves as “a community of aspiring & experienced developers in Belfast passionate about Ruby and Rails”.  Their first event will be a meetup on making the Jump to Ruby, with the aim of getting complete beginners coding in Ruby by the end of the night.  The meeting is on Tuesday 31st January, at the Rumble Laboratory on Ormeau Avenue, Belfast.

It is great to see new community groups forming, and shows that local developers want to share their experiences and get involved in new(ish) technologies. 

The title?  Obviously, community groups are like buses – you wait forever, then two come along at once.

18 Oct 2011

Cross Browser Testing

I have just finished a major refactoring of a legacy website.  I thought it would be useful to share some of the lessons I learnt.  One of the main lessons I learnt was to make the best use of the tools available.  In particular, I spent a lot of time testing for cross browser compatibility (this legacy site was originally developed in 2007/08), and I wanted to discover the best way of quickly uncovering any browser rendering issues. 
There are several different ways of testing websites for cross browser compatibility:
  • Installing multiple versions of the various browsers on a local PC to allow for testing (belts and braces).  This can be difficult, as some browsers don’t allow for different versions being installed on the same system (Cough *Internet Explorer* Cough). Normally, you end up using multiple virtual images with the various target browsers installed, which can be a pain to manage.
  • Use a web-based screenshot service in order to view how a site renders on various combinations of browsers and operating systems. A multitude of these services have sprung up recently, making use of various cloud-based virtual environments.  Several of these sites allow you to use a browser on a remote machine and test the functionality, as well checking the actual page rendering.
    • CrossBrowserTesting – A commercial service that offers both automated screenshots and access to browsers in remote machine sessions to interactively test your website. Covers all major browsers and operating systems, including all mobile smartphone devices.
CrossBrowserTesting.com Logo
    • BrowserCam – Another commercial service, again offering both automated screenshots and remote access to various browsers. Covers all major browsers and operating systems, including all mobile smartphone devices.
    • Adobe BrowserLab – An excellent online service that allows you to view sites side by side and even to set different browser renderings over the top of one another (thought this onion skin mode isn’t that useful in practice!).  The service is fast and allows you to test using Safari (5.1), Internet Explorer (6 – 9), Firefox (5, 7 on both OS X and Windows) and Chrome (13 and 14).  The service is currently free until April 2012, when it will become a paid service.
Adobe BrowserLab
    • Spoon – A free virtualization service that allows you make use of all the major browsers except Internet Explorer.
  • Desktop applications typically bundle multiple browser installations, allowing you to switch browsers when viewing your site.
    • Lunascape Browser - This browser comes with all three major browser engines, allowing it to mimic the behaviour of all the major browsers (IE, Firefox, Chrome, Safari).  The browser is free to download.
    • Microsoft Expression Web SuperPreview – A free tool to allow to test all versions of IE locally, and also to test the other browsers remotely. This tool is free, and is normally found as part of the Expression IDE.
Microsoft Expression SuperPreview
Of the above methods, I would recommend Microsoft Expression Web SuperPreview as the best way of checking how your site renders in the main browsers, because it is both free and fully featured   I found Adobe BrowserLab to be the best online solution, but I wasn’t testing against mobile devices.  The two commercial offerings may be more relevant if you are developing against mobile devices.  I intend to look at cross browser testing on mobile devices in a future post. 

21 Jul 2010

Code Reviews

Earlier this week, I had a code review.  It was only my third code review in over 5 years of working as a software developer.  I had to repeatedly nag to before it actually happened.  It says something for the state of software development, and the lip service paid to developing quality software solutions, that is by no means uncommon for developers in Northern Ireland.  Note, in the past 5 years, I have worked for 3 local companies, one an international IT Services company, all of whom pride themselves on delivering quality code.   In my last job, I was never given a code review.  Never.


My view on code reviews, and the less formal pair programming, is that it is a fundamental learning activity for people who make their living cutting code. And I’m not alone in that view.  How can you improve if you don’t know what you are doing wrong?  Code reviews are also the best way to ensure the quality of the code that you write.  Nothing focuses the mind on writing quality code more than the knowledge that you will be held accountable for the code you check in. 

If code reviews aren’t happening regularly, the code quality goes out the window.  And if your company isn’t doing code reviews formally, you need to start doing them informally. My biggest regret from my last job is that I didn’t arrange informal code reviews.