Questions for an Enterprise Architect
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Sebastien Auvray on Apr 19, 2007
def test_edit_user_readableYou can easily see that some pieces of this code (setups, actions) can be factored. But Ryan went a step further by reorganizing it into a matrix where the column headers represent the different setup cases, the row headers represent the action applied and the intersection defines the expected result for a given action and setup context.
some_setup_to_initialize_user_readable_context
some_action_here_edit
some_assertion_error_read
end
def test_edit_user_writable
some_setup_to_initialize_user_writable_context
some_action_here_edit
some_assertion_edit
end
def test_view_user_readable
some_setup_to_initialize_user_readable_context
some_action_here_view
some_other_assertion_view
end
def test_view_user_writable
some_setup_to_initialize_user_writable_context
some_action_here_view
some_other_assertion_view
end
| setups | :user_readable, | :user_writable | |
| matrix | :edit, | :error_read, | :edit |
| matrix | :view, | :view, | :view |
def test_#{action}_#{setup}
matrix_setup_configuration #{setup}.split(//) # global setup
matrix_setup_#{action} #{setup}, #{expected} # action setup + execution
matrix_test_#{expected}, #{setup} # expected verification
end
So at the end the setup configuration will be factored at one place taking into parameters the different edge cases, the actions and assertions will also be put apart.
Before After ![]()
![]()
Click the images to see the code in more detail.
Transforming Software Delivery: An IBM Rational Case Study
A Guide to Branching and Merging Patterns
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
Chris Richardson shows how he ported a relational database to three NoSQL data stores: Redis, Cassandra and MongoDB.
Jean Tabaka challenges the audience to reflect on what Agile practices they are employing, how they are using them, ending with the questions “Why have their organization chosen to go Agile?
Andreas talks about the benefits of the Open Web and how it compares to proprietary stacks. He also talks about various projects that push the envelope like Boot to Gecko, Broadway and pdf.js.
Ron Bodkin discusses early adoption of Hadoop, NoSQL and describes MapReduce and related libraries and Frameworks. Other topics include Hive, Pig, multi tenancy, and security in a big data environment
Stephen Bohlen explains how Spring helps with interoperability between Java and .NET, demoing it with the help of a sample application.
Guilherme Silveira mentions some of the turning points in project development that may affect the quality of the code offering advice on avoiding writing crappy code.
No comments
Watch Thread Reply