├── .gitignore ├── README.md └── concepts ├── 001-inception.md ├── 002-objects-and-methods.md ├── 003-methods-and-arguments.md ├── 004-too-many-methods.md ├── 005-too-long-methods.md ├── 006-too-complex-methods.md ├── 007-polymorphism.md ├── 008-null-objects.md ├── 009-structural-complexity.md ├── 010-side-effects.md ├── 011-functions.md ├── 012-execution-flow.md ├── 013-object-variables.md ├── 014-returning-values.md ├── 015-private-methods.md ├── 016-exceptions.md ├── 017-handling-exceptions.md ├── 018-setters-and-getters.md ├── 020-classes.md ├── 021-modules.md ├── 022-namespaces.md ├── 023-active-record-objects.md ├── 030-dependencies.md ├── 031-dependency-inversion.md ├── 032-dependency-injection.md ├── 035-modelling.md ├── 036-encapsulation.md ├── 037-inheritance.md ├── 038-pass-arguments-to-constructor-or-to-method.md ├── 040-declarative-vs-imperative.md ├── 040-implicit-vs-explicit.md ├── 040-levels-of-abstraction.md ├── 040-modularity.md ├── 040-single-responsibility-principle.md ├── 040-specific-vs-vague.md ├── 050-automated-tests.md ├── 051-code-coverage.md ├── 052-linters.md ├── 053-churn-rate.md ├── 054-metaprogramming.md ├── 054-reflection.md ├── 060-chaining.md ├── 060-class-execultion-flow.md ├── 060-class-methods.md ├── 060-functional-objects.md ├── 060-guard-clause.md ├── 090-full-picture.md ├── 091-web-frameworks.md ├── 092-libraries.md ├── 093-gems.md ├── 099-map-vs-terrain.md ├── architecture.md ├── churn-rate.md ├── closures.md ├── code-vs-data.md ├── complex-arguments.md ├── composition.md ├── coupling.md ├── destructuring.md ├── domain-models.md ├── duck-typing.md ├── enumerators.md ├── error-tracing.md ├── execution-paths.md ├── external-world.md ├── factory.md ├── kiss.md ├── layered-architecture.md ├── logging.md ├── mock.md ├── mocks.rb ├── mvc.md ├── price-of-oop.md ├── procs-and-lambdas.md ├── recursion.rb ├── refactoring.md ├── solid.md ├── stateful-stateless.md ├── stubs.md ├── thread-safety.md ├── topology.md ├── types-of-code-in-apps.md ├── types-of-work-in-the-app.md ├── yagni.md └── yield.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/README.md -------------------------------------------------------------------------------- /concepts/001-inception.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/001-inception.md -------------------------------------------------------------------------------- /concepts/002-objects-and-methods.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/003-methods-and-arguments.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/004-too-many-methods.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/005-too-long-methods.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/006-too-complex-methods.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/007-polymorphism.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/007-polymorphism.md -------------------------------------------------------------------------------- /concepts/008-null-objects.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/009-structural-complexity.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/010-side-effects.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/010-side-effects.md -------------------------------------------------------------------------------- /concepts/011-functions.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/012-execution-flow.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/013-object-variables.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/014-returning-values.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/015-private-methods.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/016-exceptions.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/017-handling-exceptions.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/018-setters-and-getters.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/020-classes.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/021-modules.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/022-namespaces.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/023-active-record-objects.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/030-dependencies.md: -------------------------------------------------------------------------------- 1 | ![](https://i.imgur.com/j74p7VV.jpg) 2 | -------------------------------------------------------------------------------- /concepts/031-dependency-inversion.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/032-dependency-injection.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/035-modelling.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/035-modelling.md -------------------------------------------------------------------------------- /concepts/036-encapsulation.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/037-inheritance.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/038-pass-arguments-to-constructor-or-to-method.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/040-declarative-vs-imperative.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/040-implicit-vs-explicit.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/040-levels-of-abstraction.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/040-modularity.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/040-single-responsibility-principle.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/040-specific-vs-vague.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/040-specific-vs-vague.md -------------------------------------------------------------------------------- /concepts/050-automated-tests.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/051-code-coverage.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/052-linters.md: -------------------------------------------------------------------------------- 1 | Дресс-код/правила этикета -------------------------------------------------------------------------------- /concepts/053-churn-rate.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/054-metaprogramming.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/054-reflection.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/060-chaining.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/060-chaining.md -------------------------------------------------------------------------------- /concepts/060-class-execultion-flow.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/060-class-methods.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/060-functional-objects.md: -------------------------------------------------------------------------------- 1 | ![](https://i.imgur.com/S0O7fy1.png) 2 | -------------------------------------------------------------------------------- /concepts/060-guard-clause.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/090-full-picture.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/091-web-frameworks.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/092-libraries.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/093-gems.md: -------------------------------------------------------------------------------- 1 | pieces of puzzle -------------------------------------------------------------------------------- /concepts/099-map-vs-terrain.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/architecture.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/churn-rate.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/closures.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/code-vs-data.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/code-vs-data.md -------------------------------------------------------------------------------- /concepts/complex-arguments.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/complex-arguments.md -------------------------------------------------------------------------------- /concepts/composition.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/coupling.md: -------------------------------------------------------------------------------- 1 | Gravity-like effect 2 | -------------------------------------------------------------------------------- /concepts/destructuring.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/domain-models.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/duck-typing.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/enumerators.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/error-tracing.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/execution-paths.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/execution-paths.md -------------------------------------------------------------------------------- /concepts/external-world.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/factory.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/factory.md -------------------------------------------------------------------------------- /concepts/kiss.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/layered-architecture.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/layered-architecture.md -------------------------------------------------------------------------------- /concepts/logging.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/mock.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/mocks.rb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/mvc.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/mvc.md -------------------------------------------------------------------------------- /concepts/price-of-oop.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/procs-and-lambdas.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/recursion.rb: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/refactoring.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/solid.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/stateful-stateless.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/stubs.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/thread-safety.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/topology.md: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /concepts/types-of-code-in-apps.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/types-of-code-in-apps.md -------------------------------------------------------------------------------- /concepts/types-of-work-in-the-app.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/inem/visual-oop-guide/HEAD/concepts/types-of-work-in-the-app.md -------------------------------------------------------------------------------- /concepts/yagni.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /concepts/yield.md: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------