Comments on: Principles Are Timeless Best Practices Are Fads https://simpleprogrammer.com/principles-are-timeless-best-practices-are-fads/ Tue, 09 Jan 2018 22:34:20 +0000 hourly 1 https://wordpress.org/?v=7.0 By: 11 Rules All Programmers Should Live By - Simple Programmer https://simpleprogrammer.com/principles-are-timeless-best-practices-are-fads/#comment-1552 Tue, 09 Jan 2018 20:58:10 +0000 https://simpleprogrammer.com/?p=1856#comment-1552 […] Principles are timeless, best practices will always be situational. […]

]]>
By: Scott Nimrod https://simpleprogrammer.com/principles-are-timeless-best-practices-are-fads/#comment-1551 Sat, 13 Jun 2015 15:35:00 +0000 https://simpleprogrammer.com/?p=1856#comment-1551 I find myself a disciple of Robert Martin’s teachings. Specifically, I am in love with his
recommendations of architectural design. He has given several talks on Clean Architecture.

Software doesn’t need architects to design it. It needs architects to review it.

What I am not a disciple of are people who continuously try to pretend that they know exactly how a system is going to work based on limited requirements handed down from the client. These people love to draw on whiteboards and software applications that provide UML editors. These people continue to believe that they know everything about a system and will attempt to convince you
to implement their physic readings. They believe that if an object exists in the business world than an entity is required to represent it in software.

Unfortunately, failed projects have proven that as much as we try to anticipate how a system is going to work, we will always make discoveries and have to adapt to them when we actually attempt to implement the visions handed down from these divine architects.

Software is not about architectural design. It is about isolating thoroughly tested logic that’s
generated from unit tests, that when refactored into logical components, will expose an architecture that conveys the user-stories that created it. Thus, an authentic software architect recognizes software as being “soft” only when they pragmatically defer architectural decisions for a later time up-until they have reached a point of an authenticated impediment. It is at that time within the SDLC that a developer / architect can make a more informative decision based on additional information that has become available that was just wasn’t prior. Thus, it is really deferring decisions all the way to the end that results in software being “soft” and the combination of isolated stories with ssociated unit tests that removes unnecessary dependencies and enhances flexibility.

Story Driven Architecture

* Composing an architecture as a collection of user-stories

* Each user-story is a self-contained module and can only subscribe to messages or publish messages without having any knowledge of the outside world (i.e. client/server).

* Each user story is tested in complete isolation of other user-stories and again are agnostic to any client or server dependencies via a message-oriented architecture.

* Start off creating a library / module for each user story

* This methodology supports Single Responsibility Principle (SRP)

* Definition of SRP: Keep code together that tends to change together and pull code apart that tends to change for different Reasons.

* As user-stories get implemented, each library representing a user story is evaluated with other user-stories to determine if any of these libraries can be consolidated into a single library that maintains compliance with SRP.

Testing user-stories

* Unit test only view-model commands and nothing more.

* Inject test dependencies that will dictate test behavior as a light-weight integration test or unit test).

* RGR (Red, Green, and Refactor) test code into logical components that will eventually distill into a story driven architecture.

]]>
By: jsonmez https://simpleprogrammer.com/principles-are-timeless-best-practices-are-fads/#comment-1550 Wed, 01 Apr 2015 02:26:00 +0000 https://simpleprogrammer.com/?p=1856#comment-1550 In reply to Garri Hovhannisyan.

Thanks!

]]>
By: Garri Hovhannisyan https://simpleprogrammer.com/principles-are-timeless-best-practices-are-fads/#comment-1549 Tue, 31 Mar 2015 08:52:00 +0000 https://simpleprogrammer.com/?p=1856#comment-1549 It’s not the best practice that is effective, it is the principle behind the best practice => short and genius.

]]>
By: SutoCom https://simpleprogrammer.com/principles-are-timeless-best-practices-are-fads/#comment-1548 Mon, 18 Feb 2013 21:23:27 +0000 https://simpleprogrammer.com/?p=1856#comment-1548 Reblogged this on Sutoprise Avenue, A SutoCom Source.

]]>
By: cirellolaranjo https://simpleprogrammer.com/principles-are-timeless-best-practices-are-fads/#comment-1547 Mon, 18 Feb 2013 02:13:02 +0000 https://simpleprogrammer.com/?p=1856#comment-1547 I love this blog because makes me feel I am not an alien. Good to see other people with the same thoughts.

]]>