The Project Euler Compendium is a project I’ve been working on to collate all the different solutions I’ve found or come up with for the maths/programming challenges at Project Euler. The framework provides useful features such as being able to view the progress of or cancel a running solution as well as allowing for common code to be shared among different solutions.
But it is also a programming challenge in itself. The application makes use of many new features of Java 6 such as the SwingWorker, the GroupLayout and Desktop API. It employs a number of design patterns such as the Strategy Pattern and MVC. The goal of the project is to create an application that demonstrates good design principles and it has taken a number of design iterations to get to its current stage. In the real world it is often very difficult to apply good design practices due to legacy code, lack of regression tools, conflicts with other people’s code etc. Outside of real applications we usually only see small isolated examples of good design and it can be difficult to expand those good ideas into something usable. I’ll make a disclaimer however; I by no means believe that this application exhibits ‘best design practices’. I’m certain someone with more experience could point out better ways of doing one thing or another. Saying that, I have learnt a lot doing this and it proves that the only way to learn good design is not just by reading about it but actually doing it.
Screenshots




Download
Run using Java Webstart. You must have Java 6 or newer to run this program.