gitextract_ccqrdc7w/ ├── .gitignore ├── AUTHORS.md ├── Gemfile ├── LICENSE.txt ├── README.md ├── Rakefile ├── articles/ │ ├── v1/ │ │ ├── 001-method-lookup.md │ │ ├── 002-method-lookup.md │ │ ├── 003-configurable.md │ │ ├── 004-configurable.md │ │ ├── 005-testing-antipatterns.md │ │ ├── 006-good-and-bad-code.md │ │ ├── 007-good-and-bad-code.md │ │ ├── 008-uses-for-modules.md │ │ ├── 009-uses-for-modules.md │ │ ├── 010-uses-for-modules.md │ │ ├── 010a-uses-for-modules.md │ │ ├── 011-uses-for-modules.md │ │ ├── 012-rapid-prototyping.md │ │ ├── 013-obfuscations.md │ │ ├── 014-duck-typing.md │ │ ├── 015-duck-typing.md │ │ ├── 016-interesting-ruby-hackers.md │ │ ├── 017-interesting-ruby-writers.md │ │ ├── 018-testing-dogma.md │ │ ├── 019-thoughts-on-mocking.md │ │ ├── 020-thoughts-on-mocking.md │ │ ├── 021-how-to-practice.md │ │ ├── 022-how-to-practice.md │ │ ├── 023-solid-design.md │ │ ├── 024-connascence.md │ │ ├── 025-creational-design-patterns.md │ │ ├── 026-structural-design-patterns.md │ │ └── README.md │ ├── v2/ │ │ ├── 001-ways-to-load-code.md │ │ ├── 002-sticky-problems.md │ │ ├── 003-closure-double-edged-sword.md │ │ ├── 004-roll-your-own-enumerable-and-enumerator.md │ │ ├── 005-regression-testing.md │ │ ├── 006-learning-new-things-step-by-step.md │ │ ├── 007-unobtrusive-ruby.md │ │ ├── 008-singleton-pattern.md │ │ ├── 009-unix-style-command-line-applications.md │ │ ├── 010-from-requirements-discovery-to-release.md │ │ ├── 011-domain-specific-api-construction.md │ │ ├── 012-working-with-binary-file-formats.md │ │ ├── 014-arguments-and-results-1.md │ │ ├── 015-arguments-and-results-2.md │ │ └── README.md │ ├── v3/ │ │ ├── 001-quality-software.md │ │ ├── 002-building-excellent-examples.md │ │ ├── 003-turing-tarpit.md │ │ ├── 004-climbing-the-spiral-staircase-of-refactoring.md │ │ ├── 005-framework-design-and-implementation.md │ │ ├── 006-framework-design-and-implementation.md │ │ ├── 007-criteria-for-disciplined-inheritance.md │ │ ├── 008-criteria-for-disciplined-inheritance.md │ │ ├── 009-using-games-to-practice-domain-modeling.md │ │ ├── 010-robustness.md │ │ └── README.md │ ├── v4/ │ │ ├── 001-testing-costs-benefits.md │ │ ├── 002-moving-beyond-the-first-release.md │ │ ├── 004-cheap-counterfeits-jekyll.md │ │ ├── 005-scoring-predictions-kata.md │ │ ├── 006-persisting-relations.md │ │ ├── 007-confident-ruby.md │ │ ├── 008-implementing-active-record.md │ │ ├── 009-the-hidden-costs-of-inheritance.md │ │ ├── 010-implementing-active-record.md │ │ ├── 011-responsibility-vs-data-driven.md │ │ ├── 012-tdd-lessons-learned.md │ │ ├── 012.1-tdd-lessons-learned-lesson-1.md │ │ ├── 012.2-tdd-lessons-learned-lesson-2.md │ │ ├── 012.3-tdd-lessons-learned-lesson-3.md │ │ ├── 012.4-tdd-lessons-learned-lesson-4.md │ │ └── README.md │ ├── v5/ │ │ ├── 001-statistical-modeling.md │ │ ├── 002-rocket-science-and-lod.md │ │ ├── 003-evented-io.md │ │ ├── 004-service-apis.md │ │ ├── 005-process-spawning-patterns.md │ │ ├── 006-service-quality.md │ │ ├── 007-dependencies-notifications-and-adjustments.md │ │ ├── 008-clojure.md │ │ ├── 009-ants.md │ │ ├── 010-prototypes.md │ │ └── README.md │ ├── v6/ │ │ ├── 001-parsing-json.md │ │ ├── 002-code-reading.md │ │ ├── 003-actors.md │ │ ├── 004-code-reuse.md │ │ ├── 005-debugging.md │ │ ├── 006-recipes-method-bloat.md │ │ ├── 007-demeter.md │ │ ├── 008-procedural-to-oop.md │ │ ├── 009-isolate-responsibilities.md │ │ ├── 010-concept-before-code.md │ │ └── README.md │ ├── v7/ │ │ ├── 001-simulating-tiny-worlds.md │ │ ├── 002-http-server.md │ │ ├── 003-stats.md │ │ ├── 004-incremental.md │ │ ├── 005-low-level.md │ │ ├── 006-infrastructure.md │ │ ├── 007-wumpus.md │ │ ├── 008-language-learning.md │ │ ├── 008-oss-quality.md │ │ ├── 009-course1.md │ │ ├── 010-information.md │ │ └── README.md │ └── v8/ │ ├── 001-problem-discovery.md │ ├── 002-formula-processing.md │ └── README.md └── templates/ └── default.html.erb