order from chaos

By | March 27, 2016

After another panicky learning evolution this weekend – this one under the test driven development paradigm that evolved in rails to evaluate features (screen presentations) and models (data element validations) – the nature of rails is beginning to penetrate my thick skull.

The mind attempts to order reality. We look for patterns in the chaos that we observe. Though rails is organized around a well defined structure – the model, view, controller paradigm [MVC] – rails is a product of the chaotic open source environment.

Todays functional rails environment includes many augmentations from developers writing independently from each other. Contributions and subsystems have unique names and in some cases unique syntax. Functionality has been added to the rails environment that was probably unforeseen when rails began.

This, if not random, at least not entirely uniform, look and feel to every element of the rails application has caught me off guard more than once with the challenge of building a cohesive conceptual understanding from parts that don’t initially, transparently reveal themselves. After many years of end-user orientation and habits drawn from application products that have a common look and feel, the rails development environment is a departure for me.

Early in the class we were presented with the idea that long term memory can imprint better under a more stressful mental state such as after struggling for a while with incorrect solutions before coming to the right answers. The cobbled-together nature of rails as a set of open source solutions all built around a common framework might encourage this type of learning.

Hopefully this means that if one can learn it at all, one learns it better than a more uniform application.

Oh one more thing; Aaron Sumner’s book that Jason recommended for understanding rails test-driven development – Everyday Rails, Testing with RSpec – was immensely helpful this weekend.

Leave a Reply

Your email address will not be published. Required fields are marked *