Showing posts with label o'reilly. Show all posts
Showing posts with label o'reilly. Show all posts

Wednesday, June 4, 2014

Video review: "Software Architecture Fundamentals Part 1 Understanding the Basics"

Review for "Software Architecture Fundamentals, part 1  Understanding the Basics"
By Neal Ford, Mark Richards
Published by O'Reilly


Understanding the Basics

This video series covers architectural issues.  The videos are presented as a small room lecture, headed by Neal Ford and Mark Richards.  (I hadn't heard of Richards before, Ford I knew from the software conference speaking circuit.)  The subjects covered are listed below.

Introduction
Architecture Soft Skills Part 1 
Continuous Delivery
Architecture Soft Skills Part 2
Understanding Large Codebases  
Architecting for Change  
Architecture Patterns Part 1  
Architecture Patterns Part 2  
Design Patterns
Architecture Anti-Patterns Part 1  
Architecture Anti-Patterns Part 2  
Tooling and Documentation 
Integration Architecture Fundamentals 
Enterprise Architecture Concepts and Fundamentals


Some of these are short (20 minutes or so), others can go over 40 minutes.  I used a video player that allowed me to control the speed of playback so I could go faster or slower depending on my perceived mastery of the topic.  I liked this.

Ford and Richards both spoke in a clear and straightforward manner.  It's obvious that both are experienced in the topic of software architecture, and they had plenty of valuable tips and insights.  For the most part, the conversations were interesting.  Each talk was accompanied by slideshow bullet points, these were always legible and well put together.  There was a live audience of a few people present at the taping, these people would occasionally ask a question of the speakers.  All things considered, the presentation is excellent.

The knowledge provided is mostly useful information.  A few times the speakers went into territory I consider a little unrealistic, but perhaps this is just my bias formed from years of working in fairly sedentary environments.  (Ford is well-known for lectures about polyglot programming, which I've always considered an immature move towards 'playing with new toys', but your mileage may vary.)   The parts of the lecture I discounted were few, so this should not be considered a harsh criticism.

The parts of the lecture I found most interesting were those that dealt with version control schemes, build techniques, and documentation.  I haven't seen a lot of other material about these topics, so I found the ideas presented of interest.  These parts weren't necessarily better than the others, just topics I found of interest.  I've been a certified architect for over a decade (and a practicing one before that), so I wasn't surprised by some of the other material.  That's not to say there was nothing to learn, just that not all of it was new to me.  What is new might differ for you, based on the career you've had.

At one point Richards claims there are 52 states in the USA, 2 more than proper but 6 less than counted by some politicians.  That's about the only egregeous error I've found in the series.

So, what's the verdict?  I consider these videos well worth the time spent watching.  I took notes on each chapter so I could improve my personal 'bag of tricks', leveraging the experience of these accomplished architects.  Given the high cost of experience, the price of this video series is a bargain.

 Happy Viewing!




Monday, February 3, 2014

Book Review for "Java Performance, the Definitive Guide"

Book Review for "Java Performance, the Definitive Guide"







Subtitle:  "Getting the most out of your code"

State:  "Early Release.  Raw and Unedited"

As the title tells, this book is ambitious in scope.  Calling something 'The Definitive Guide' is a bit presumptuous, but the author (Scott Oaks) has credentials to match anyone in the workspace.  This book is in 'Raw and Unedited' form, which means it's not yet a finished work.

So, what's here?

The first chapter outlines the target platform (Java 7), JVM tuning flags, and some very general best practices for obtaining good performance.  Not much deep-dive material here.

Chapter 2 categorizes types of benchmarks and provides different things to measure.  I found this chapter a little long on the academics, probably more applicable to professional testers than it is to garden-variety application developers.  All things considered, not my favorite chapter.

Chapter 3 covers the Java performance tester's toolkit.  It contains a good overview of tools provided by the operating system (including many for Linux).  The Java monitoring section tells us what the JVM can tell us about itself.  There's a meaty section on profilers, and finally a section on a propietary tool Oracle provides to users that choose to pay for Java 7.  This chapter held quite a few items of interest for me.

Chapter 4 was devoted to the Just-In-Time compiler.  JIT is of great importance to Java performance, and this chapter provides a wealth of information that could only come from those with very deep knowledge.  In the 'acknowledgements' section of the book the author tells us he used inside contacts at Sun/Oracle to pull this book together, it would have to be these kinds of people that assisted here.  Good stuff.

The 5th chapter is about Garbage Collection and Garbage Collectors.  This information seems to change frequently as Java updates, so the value of this chapter might be perishable.  This information is also similar to material that's readily available all over the internet, so it didn't grab my attention like the previous chapters.

The final verdict:  For a work in progress, I found this book to be rich in good content and fairly refined for the 'raw' label.  For those seeking improved Java performance, it's a worthwhile read.  I look forward to seeing the completed product.

The book can be seen here.

Happy (Performant) Coding!