Review: Refresher on .NET and Software Design Fundamentals for C# Developers

Refresher on .NET and Software Design Fundamentals for C# Developers
Refresher on .NET and Software Design Fundamentals for C# Developers by Aleksey Sinyagin

My rating: 5 of 5 stars

A crash course on .Net programming language and framework. Can be finished in one sitting. It is useful for reviewing regularly. For me i will enjoy re-read on monthly basis.

View all my reviews

Review: The Developer’s Code: What Real Programmers Do

The Developer's Code: What Real Programmers Do
The Developer’s Code: What Real Programmers Do by Ka Wai Cheung

My rating: 4 of 5 stars

This book is a collection of short essays which each has its own essence in relation to programing principles, programmer’s behavior, mentoring staffs, tactics on handling client and do a more practical work. It could be read in any order hence it’s important to take some note on which essay topic that you are going to refer to if you like me use the audio version.

Even through, author has deep knowledge on front end development such as web and mobile, it still could be extent easily to full stack development and the methodology / practices he used. In general, it is good collection of view points which you could use as reference. It’s important to take note it may or may not directly applicable to your situation as everyone has different problem to solve.

View all my reviews

Review: Deep Work: Rules for Focused Success in a Distracted World

Deep Work: Rules for Focused Success in a Distracted World
Deep Work: Rules for Focused Success in a Distracted World by Cal Newport

My rating: 4 of 5 stars

An excellent book for knowledge worker whom strike to deliver more meaningful output. it comes with hand-on scientific study and approach that you could pick up and tune it according to your situation.

Will review more once reread it a few more times.

View all my reviews

Review: How Will You Measure Your Life?

How Will You Measure Your Life?
How Will You Measure Your Life? by Clayton M. Christensen

My rating: 5 of 5 stars

Such a wonderful books embraces with scientific factual and simplified version of fulfilled and happy life in which integrity plays an important role. It also gives an interesting view on company vs. personal that they are no much different after all when comes down to the bottom line.

Highly recommend!

View all my reviews

Review: Mastery

Mastery
Mastery by Robert Greene

My rating: 5 of 5 stars

From real world practical examples and facts to build upon, the principles are abundant with real hard work in high intensity and deep focus, even obsession in searching for the truth, the master are real people like any of us whom are dare to dream big and have courage to pursuit it.

The book describe in details the process from apprenticeship to mastery that impressed me the most. Highly recommend.

View all my reviews

Review: The Practicing Mind: Bringing Discipline and Focus into Your Life

The Practicing Mind: Bringing Discipline and Focus into Your Life
The Practicing Mind: Bringing Discipline and Focus into Your Life by Thomas M. Sterner

My rating: 4 of 5 stars

The key take away from this book is living at the moment.

We have tendency to multitasking all the time, e.g at home while playing with the kid, our mind may float somewhere and thinking about some undone projects, which basis ruins the happy moment that we should have talked and played with our kid.

If one could focus and concentrate on the moment with full attention and enthusiasm, the outcome are much remarkable and usually more efficient, of course we end up be more satisfied and happier. Just like the flowers it is successful in every stages. it is a nice metaphor to capture the meaning of this book.

View all my reviews

Review: The Art of Mental Training – A Guide to Performance Excellence

The Art of Mental Training - A Guide to Performance Excellence
The Art of Mental Training – A Guide to Performance Excellence by D.C. Gonzalez

My rating: 5 of 5 stars

A short book consists of principles and mental practices of top performance. As starting point, it is helpful in establishing the right mental mindset and your persistence and consistent would determine how far can you go. The concept of mental warrior is described in an interesting details way that it reminds me about the Kungfu Panda moment when the teacher interact deeply with him.

This book could be read in one sitting or could be used as reference to refresh of principles that you want to build upon. It is quite easy to understand because the principles and practices has be written in layman words.

In general, it’s a good read.

View all my reviews

Machine Intelligence version 3.0

It is a catchy summary for me when I come across this in linked-in. Well, even through most of them are unknown to me to be honest, it serves me well by quickly give me the awareness of what I don’t know.

With the learning mindset, I felt fascinated and eager to explore some of those in close relation to my work related matter. Hope it bring up more challenging and result in some innovative ideas on how to improve my work.

Be hungry and never stop learning!

Cheers,
Mike

Machine Intelligence.jpeg

How we start SOLID (Part 2)

Key points

  • Some good progress has the team achieved
  • Some example via the coding workshop
  • Analysis and next step

This is to continue on my previous post (Part 1) . And yeah, we have made a good progress on translating the abstract knowledge into working example throughout the workshop.

We started with the coding problem

problem-ui problem-code

Let’s say if we need to add in a new enhancement for the Message Type of ‘Skype’, how could we normally do it? Let’s see.

enhancement-to-make-uienhancement-problem-code

Does it sounds familiar to you? It’s sadly that it’s usually the way we maintain the source code. In the way, we fail badly as a programmer. That is why we need some other better approach that would help us to create a better maintainable code. Have you got excited yet? I am so excited about the potential of our future code from the experience i had during the coding section. Let me share with you what the team come up with after a 1 hours coding workshop :).

Basically the team have identify following SOLID violations

  • SRP – violated : This ‘MessageHelper’ class have four responsibilities
  • OCP – violated :  If there are new requirements coming, the existing class ‘MessageHelper’ must be modified
  • LSP – No violation
  • ISP –  violated : this IMessage interface is too fat, clients won’t trigger all functions in one action
  • DRP –  violated : The email sending process relays on the ‘switch case’

Following are the enhancement code.

refactor-1

refactor-2

The next step would be to revisit our codes and identified the violated services so that we could capture them and formulate a plan to passively improve it. By doing so, we hope to improve our life and productivity by focusing our energy on the critical problems ahead.

One step at a time, and soon we get there.

Cheers,
Mike