Categories
books

Game Programming Patterns

Game Programming Patterns By Nystrom, Robert Book – 2014

Programmers will want to read this book. Not just game programmers, but also any programmer. Program structure is important for maintainability of large or medium programs. C++ language programmers will get the most benefit from the book. Other languages are also discussed, and all languages require some attention to structure.

Categories
books

Dependency Injection

book coverDependency Injection : design patterns using Spring and Guice / Dhanji R. Prasanna, Manning, 2009

Java programmers will find this valuable.

Categories
books

Java EE Design Patterns

Professional Java EE Design Patterns By Yener, Murat Book – 2015

Categories
books

JavaScript Design Patterns

Learning JavaScript Design Patterns, by Addy Osmani, O’Reilly, 2012

Web programmers will want to read this book, which is free online.

Unfortunately, this book is not yet at the OPL.

Categories
books

PHP Design Patterns

Learning PHP Design Patterns, William Sanders, O’Reilly 2013

Web programmers will want to read this book, in particular users of PHP.

PHP’s success as a web app language comes largely from its freedom from structure: you can hack code together and do almost anything. But what if your app is large, you don’t want errors, and you want to understand it? Think of Vtiger, which combines (yikes) code from SugarCRM, Smarty, ckeditor, antlr, PearDatabase, adodb, freetag, nusoap, phpmailer, tcpdf, PDFMaker, htmlpurifier, php_writeexcel, kcfinder, log4php, AjaxUpload, HTMLSax3, iCal, qCal, PHPMailer, and Image_Graph projects, not to mention several Javascript libraries. The many subprojects are structured using Object Oriented (OO) concepts, which gives you a hope of understanding it.

To succeed in larger projects you need some structure, and PHP Design Patterns proposes that you use the same high level structures that have been useful to C++ and Java programmers for many years. The author read the ‘Gang of 4’ book (Gamma, Helm, Johnson and Vlissides), and has interpreted it in the PHP context. He starts with a refresher on Object Oriented programming, which will be easy reading for anyone with knowledge of OO. Then he shows how to make best use of the OO features in PHP since version 5, referencing the most useful design patterns. Inheritance, polymorphism, encapsulation are all discussed with example code in php.

Returning to the Vtiger example, when the code uses some OO structure, it is often not clear what pattern is in use. A file should start with comments on what design pattern is being used, and if not, then a discussion of how the objects are used. If the designers had started with the common design patterns from this book, then it would all be more clear.

I want you to read this well written book in the hopes that the next php projects I need to enhance will be well structured and easier to work with. This means you! Why would you not just Google The Fine Thing (GTFT)? Because then you get snowed with poorly edited info. Read the book for a well organized presentation of the few important, common patterns.

Disclaimer: I read the electronic version of the book, on a smartphone. The reading experience is quite different from bound, paper books with pros and cons. Disclaimer 2: I got the book through the O’Reilly blogger program.

If this book interests you, then you might also want to read Javascript patterns By Stoyan Stefanov for a complementary treatment of the client side language.

Unfortunately, the OPL does not have PHP Design Patterns yet. 350 pages.

Categories
books

Elemental Design Patterns

Elemental Design Patterns, Jason Smith, – 2012

Software architecture. 300 pages.

Categories
books

Java Application Architecture

Java Application Architecture Modularity Patterns with Examples Using OSGi, Kirk Knoernschild, – 2012

Java programmers will want to read this. Java package can get unwieldy in larger projects, and can be structured using OSGi. 300 pages.

Categories
books

Cocoa Design Patterns

book coverCocoa Design Patterns, Erik M. Buck, Addison-Wesley, 2010

Mac and iPhone programmers will want to read this. It also applies to the open source GNUstep project, used on Linux and Windows. You need to know Objective C. 400 pages.

Categories
books

Agile Principles, Patterns, and Practices in C♯

book coverAgile Principles, Patterns, and Practices in C♯ / Robert C. Martin, Prentice Hall, 2007

Developers will want to read this book. With a foreword by Erich Gamma, of Eclipse fame. Hardcover, 700 pages.

Categories
books

Apprenticeship Patterns

book coverApprenticeship Patterns : guidance for the aspiring software craftsman / David H. Hoover, O’Reilly, 2010

If you are planning a career in Agile Software Development, then this book contains good advice. The foreword is by Ward Cunningham. See also the author’s site. This is an Open Book at O’Reilly. 125 pages.