Archive

Archive for the ‘Book’ Category

Book Reviewed: Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans

June 15th, 2009

Eric Evans Domain Driven DesignIn Domain-Driven Design: Tackling Complexity in the Heart of Software Eric Evans shares his extensive development and consulting experience as he outlines his approach to software development and design using Domain Driven Design (DDD). Evans’ writing style is easy to read as he maintains a comfortable conversational tone while pragmatically guiding us through the many patterns and concepts that encompass DDD. However; be-warned the concepts that lie within are occasionally dense, abstract, but ultimately enlightening as Evans’ forces us to look at development from a new perspective.

It’s also fair to mention that this book has been charged as being just another patterns book, and while I can see this perspective, some of the concepts do come across as being overly abstract without clear implementations (code) to reference, but this books is much more than another patterns book. As a developer you don’t want to overlook this book, it’s an insightful snapshot into the mind of an experienced developer. From my experience the concepts and patterns surrounding Domain Driven Design frequently crop up in Service Orientation, MVC/MVP structured Web Applications, Object Orientation, Test Driven Development, Model Driven Development, and other modern staticly typed best practices. If you do find yourself grasping for more concrete implementations then you’ll want to read Jimmy Nilsson’s Applying Domain-Driven Design and Patterns: With Examples in C# and .NET book too - Nilsson’s book provides many code examples while directly referencing Evan’s text.

I highly recommend this book, it’s a great reference to have alongside Steve McConnell’s Code Complete, Facts and Fallacies of Software Engineering by Robert Glass, and the Martin Fowler blessed books too.

A group of us reread this book as part of The Calgary Book Club. View my review on Amazon.

Author: Adam Kahtava Categories: Book, DDD, Review Tags:

New Perspectives For The Year: Life Is Short, Humans Are Dumb, Careers Are Your Responsibility, and We Need More Heretics

January 30th, 2009

These books set the tone for my perspective in this new year.

A Short History of Nearly Everything (Bill Bryson) emphasizes that, as humans we rarely know what we're doing - our existence as a species on this earth is a tiny fraction of time, but we continue to kill ourselves while obliterating other species and our environment. This book was also a great reminder that the greatest innovators and inventors are individuals with a burning passion - not individuals with a laundry list of formal qualifications.

The World Is Flat 3.0: A Brief History of the Twenty-first Century
(Thomas L. Friedman) argues that, we can't accept complacency in our jobs or careers - the world has changed and you'll be left behind. Bureaucracy on every level may save your job today, but this won't be the case in an increasingly global world. As individuals our careers and future are solely our responsibility - we should be versatilitsts, not specialists.

The Age of Heretics: A History of the Radical Thinkers Who Reinvented Corporate Management (Art Kleiner, et el) demonstrate that, most corporations / business / organization don't really know what they're doing (MBA theory is based on the past, and not entirely relevant for the future). Many successful businesses have been run by heretics - people who understood the system around them, then push the limits of these systems to provide more value, innovate, and become successful. Also, that success is almost entirely dependent on people, teams, integrity, honesty, and the relationships that ensue.

The Last Lecture (by Randy Pausch, Jeffrey Zaslow), is a sober reminder that living life to the fullest and living a good life are what really matters. Also, that: “engineering isn't about perfect solutions; it's about doing your best with limited resources” - Randy Pausch.

Cheers to another great year as we continue to gaining broader perspectives, seek out a better quality of life, get out and do more things, meet new people, and cultivate existing relationships. :)

Author: Adam Kahtava Categories: Book, Musings, Personal Tags:

Vernacular Culture and Heretics: Humanity the Zen of Zen?

October 30th, 2008

I found Art Kleiner’s concept of vernacular culture interesting in his book The Age of Heretics: A History of the Radical Thinkers Who Reinvented Corporate Management.

Vernacular as described by Kleiner:

Despite the power of corporate practice, something desperately desirable has been lost in everyday corporate life, and without it, corporations could not truly perform. This lost quality, unnoticed and yet desperately needed, was the vernacular spirit of everyday life …

there is no better word than vernacular for the quality of relationships and culture that dominated community life before the advent of the industrial age … 

Vernacular life was the way of life that still exists in these villages of our dreams … In a vernacular culture the best things in life are free, economic and personal life are mixed together … and every exchange of goods is not just an economic transaction but an expression of the community’s spirit …

the builders of industrial culture didn’t have to reject vernacular culture; they merely ignored it or destroyed it in passing, while the power of finance and operations, the power of the numbers culture, undermined the relationships that vernacular culture depended on.

There’s strong parallels to the vernacular culture, the Agile / Lean movement, open source, buying locally, the Toyota Way and an innate human need for community and contribution. Today, many of the institutes that have been built on industrial culture (GM, Ford) seem to be faltering, whereas those that have been built on vernacular culture (Toyota, Google) seem to be succeeding.

Through the book the author suggests that heretics are often responsible for transforming industrial cultured institutes to ones that embrace vernacular culture.

Kleiner describes a heretic as:

someone who sees a truth that contradicts the conventional wisdom of the institution to which he or she belongs and remains loyal to both entities - the institution and the new truth.

One of the concepts that is continual presented within this text is that conventional wisdom and institutions are often incorrect, as individuals we can change our situation, our work environment, and our world, but in order to make change we need to identify, verbalize, and seek out new ideas and approaches.

I don’t know how I was recommended this book, but I’m really enjoying it!

Author: Adam Kahtava Categories: Book, Musings, Open Source Tags:

The Three-step Sequence: Incorrect Assumptions and Experience

September 30th, 2008

the obvious … is never seen until someone expresses it simply. - Kahlil Gibran

The preface of Object Oriented Software Construction literally introduced me to the three-step sequence:

the well-known three-step sequence of reactions that meets the introduction of a new methodological principle:

(1) “it’s trivial”;
(2) “it cannot work”;
(3) “that’s how I did it all along anyway”.

(The order may vary.) - Bertrand Meyer

Naturally people consider themselves smart, which sometimes translates into knowing everything, and these three reactions are probably a manifestation of thinking you’re overly enlightened. If we put ego aside - along with our natural predisposition for being lazy (trying to avoiding learning new things) - we often change our views altogether.

Looking back at my technological naivety: I was once wrongly convinced that client-side languages would never work and server-side languages / frameworks would dominate (until I really learned JavaScript), I had also mistakenly assumed that I was already doing TDD (until being introduced to the concept of Mocking), and I even thought that HTML table based design was the future (until I really learned CSS). With a little bit of knowledge and some experience I changed my views altogether.

Reflecting on these incorrect assumptions and decisions promotes growth - with every experience we grow. Which of my latest assumptions / reactions will change over time?

Author: Adam Kahtava Categories: Book, Musings, Personal, Software, Unit Testing Tags:

Notes on Software Creativity 2.0 by Robert Glass

September 23rd, 2008

Software Creativity 2.0 by Robert Glass (as the title implies and you might expect) is centered around creativity in the processes, methodologies, organizations, and people responsible for producing software. I concur with Steve McConnell’s glowing review (Landmark Book, On a Par with People Ware and Mythical Man-Month).

Robert Glass has given the software world many gifts during his 50 year career in software development. This book stands above his other contributions as his magnum opus. I cannot recommend it highly enough. - Steve McConnell

There’s no need for my personal review, but I will say that if Robert Glass had a blog this book would no doubt be his best of.

Interesting excerpts from Software Creativity 2.0:

When I began working in industry. I was appalled to find that nothing I had learned in graduate school bore the slightest relationship to what I was asked to do on the job. …

Practice often precedes and helps form theory …

The more a creative person knows about the subject of focus, the less the need for creativity …

In order to think originally, we must familiarize ourselves with the ideas of others

Notes about the Creative person’s traits:

They are especially observant …

They see things as others do, but also as others do not …

They are by constitution more vigorous and have available them an exceptional fund of psychic and physical energy …

They usually lead more complex lives, seeking tension …

The creative person is both more primitive and more cultured, more destructive and more constructive, crazier and saner, than the average person. …

Keep in mind I’ve omitted some of Robert’s earth shattering excerpts since I’ve read a couple of his other books (see this older post for details) - my chosen excerpts don’t do justice to the book. Read it yourself! :)

Author: Adam Kahtava Categories: Book, Creativity, Musings Tags:

Free: Win a Copy of: JavaScript: The Good Parts by Douglas Crockford

July 29th, 2008

JavaScript: The Good Parts by Douglas Crockford is an excellent book. At 140+ pages this book is approachable and easy to read. The writing style is terse and clear, and it’s crammed with good advice.

I thoroughly enjoyed this book and would like to give a copy away. You can read my review here.

Contest Rules:

  • Comment on this post.
  • Leave a valid email in the email comment field.
  • The winner will be chosen at random and notified through email on Oct 1st.
  • I pay for shipping.

Good Luck!

This contest has commenced, and the winner is Luke Maciak!

Author: Adam Kahtava Categories: Book, Contest, JavaScript Tags:

2008 Summer Reading List: What Are You Reading?

July 1st, 2008

Summer is finally here! Well… “here” as in, “here in Canada” where we have 8 months of winter, fall, and spring…

This summer I hope to finish up the following books:

Books and reading are essential for personal and professional development. The more you read, the more you understand and the more resources you have to fall back on.

What books are you reading this summer? Do you have any recommendations?

Author: Adam Kahtava Categories: Book, Musings Tags:

Book Reviewed: JavaScript: The Good Parts by Douglas Crockford

June 7th, 2008

Weighing in at 140+ pages of content, JavaScript: The Good Parts [Douglas Crockford] cuts through the obscurities, pleasantries, and filler found in most technical books. Instead, this book dives straight into the heart of the JavaScript language. It presents the clearest comprehensive explanation of what makes JavaScript a great programming language that I’ve encountered to date. It nails the important concepts, like JavaScript’s: object oriented nature, its classless (pseudoclassical) nature, and functional nature. While covering the fundamentals like JavaScript’s: functions, lexical scoping, lambdas, prototypal inheritance, and functional inheritance.

This book’s size makes it approachable for all audiences, its style is terse and concise. This book has the potential to do for JavaScript, what Richie’s inspirational classic the C Programming Language did for the C language.

JavaScript is the programming language of the web (AJAX), and this book will guide you through the good parts of this often misunderstood language - while this book is an excellent reference, it is not intended to replace JavaScript: The Definitive Guide, you’ll do best to have both these books on hand.

If you enjoyed (or are considering) this book then you may want to learn more of what Douglas Crockford has to say, check out his great JavaScript video series on the YUI Theater.

I highly recommend this book. View my review on Amazon.

Free: Win a Copy of Beginning CSS: Cascading Style Sheets for Web Design

April 24th, 2008

Beginning CSS: Cascading Style Sheets for Web Design by Richard York is a great book for any web developer looking to thoroughly understand CSS.

This book was required pre-reading for my latest Technical Editing task - I'm editing Mr. York's newest book. So in the spirit of spring, de-cluttering, and giving. I'd like to give this book away. This book is like new with a couple minor dings (from an airport fiasco), it is in full color (like all good design books should be), and it's free!

Contest Rules:

  • Comment on this post.
  • Leave a valid email in the email comment field.
  • The winner will be chosen at random and notified through email on Canada Day (July 1st).
  • I pay for shipping.

Good Luck!

The contest has ended and the winner is Devin Parrish!

Author: Adam Kahtava Categories: Book, CSS, Contest, DOM Tags:

Book Reviewed: ASP.NET AJAX in Action by Alessandro Gallo, David Barkol, Rama Vavilala

April 20th, 2008

The authors of ASP.NET AJAX in Action did an OK (Average) job at presenting the ASP.NET AJAX Framework. However; this book lacked objectivity and suffered from hype. The authors didn't seem to have proficient experience with the JavaScript language, or enough experience with other AJAX Frameworks / Libraries, or sufficient experience using the ASP.NET AJAX Framework in real world projects. This book sadly felt like most technical books - average.

Comments like “we recommend that…”, “because it makes no sense…”, “you must rely on a special method…”, “you must understand X,Y,Z to run complex client-side code without writing a single line of JavaScript” were discouraging. Many of the “whys” were left answered and the technical inner workings of the framework often trivialized. Don't get me wrong, writing a book is incredibly time consuming, but if you're an author, presenter or the like, and you don't fully understand something then admit it. Do some research, provide some links, or move on. Consistently making comments like these bring the integrity of the whole text into question.

The ASP.NET AJAX Framework itself is technically flawed, bloated, and almost entirely impractical. I was disappointed with the server-centric approach that both the book and ASP.NET AJAX Framework takes. I was disappointed that the book continually pushed JavaScript under the carpet as magic and at the end of the book I was pleased to see the promise of making “the JavaScript code disappear” never was  fulfilled. JavaScript is the very most important part of AJAX, without the 'J' in AJAX, we're left with nothing - just 'Asynchronous', 'And', heaps of more ugly 'XML'.

When reading this book, take the contents and the ASP.NET AJAX Framework with a grain of salt, if you're really serious about learning AJAX then read JavaScript: The Definitive Guide by David Flanagan.

I typically only contribute positive reviews, but I don't agree with the majority of reviews found on Amazon and hope this review provides some objectivity. I commend the authors on their hard work, I'm probably being too harsh with this review - I know it's tough to write a book, and imagine they made many sacrifices as they worked towards tight deadlines.

View my review on Amazon.

Author: Adam Kahtava Categories: .NET, AJAX, ASP.NET, ASP.NET AJAX, Book, JavaScript, Review Tags: