Preface
If you've been a software developer for a long time, you certainly know how useful a conversation can be with a colleague who already did something similar to what you are doing, and can discuss it as he/she may have faced the same problem. It is not possible to include all the possible situations that a developer may face in a book, but most problems are similar at least in principle. This is the reason this book is organized as a cookbook; just like how a combination of foods can be adapted and modified to be appropriate for different types of meals. A programming recipe can provide the idea to solve many different problems.
This book is an advanced-level guide that will help Delphi developers become experts in their every day job. The every day job and the quality of your deliverables is what contribute to the quality of your professional life. It does not make sense to reinvent the wheel repeatedly, especially when working with a well-established tool such as Delphi. The focus of this book is to provide readers with comprehensive and detailed examples on how effectively the Delphi software can be designed and written. All the recipes in this book are a result of years of development, training, and consultancy activities in the most different fields of the IT industry, from small systems with thousands of installations to large systems commissioned by any big company or government. It is not a magic book that will solve all your development problems (if you find it, tell me please!), but it can be a valid source of help to get a different point of view on a specific problem, or a hint on how to solve problems.
Armed with the knowledge of advanced concepts, such as high-order functions and anonymous methods, generics and enumerables, extended RTTI and duck typing, LiveBindings, multithreading, FireMonkey, mobile development, server-side development and many more, you will be pleasantly surprised as to how quickly and easily you can use Delphi to write high quality, clean, readable, maintainable, and extensible code.
I have read too many boring programming books, so I tried to maintain a relaxed and light exposition. A small applicability scenario, which describes a situation where a particular technology, approach, or design pattern can be used successfully, introduces all the recipes. The recipes are not too complex because otherwise the book may consist of thousands of pages; however, it is also not trivial because the IT books landscape is already full of trivial examples with a few direct applications. I tried to do a good trade-off and hope I succeeded.
Every time I start to read a new book, I ask myself, "Will the author have something interesting to say?", "How much will this book change my point of view on the topics it talks about?", or "Will it be worth the time to read this book?". Now that I'm on the other side of the river, I worked hard to put as much good quality content as possible in this book, which I hope will match your expectations.
On a final note, writing hundreds of pages about advanced programming is not an easy task. However, I am very pleased to have done it, and I hope you will enjoy reading it as much as I enjoyed writing it.