Articles



SOLID - Simply about D - Dependency Inversion Principle

SOLID - Simply about D - Dependency Inversion Principle
Depend on abstractions, not on concretions. Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от...
Show full article

Depend on abstractions, not on concretions.

  • Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.
  • Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Что такое модули верхних уровней? Как определить этот уровень? Как оказалось, все очень просто. Чем ближе модуль к вводу/выводу, тем ниже уровень модуля. Т.е. модули, работающие с BD, интерфейсом пользователя, низкого уровня. А модули, реализующие бизнес-логику — высокого уровня.


Что такое зависимость модулей? Это ссылка на модуль в исходном коде, т.е. import, require и т.п. С помощью динамического полиморфизма в runtime можно обратить эту зависимость.

Источник

Show preview
Leave a comment




Patterns GRASP, GoF, anti-patterns , refactoring

Patterns GRASP, GoF, anti-patterns , refactoring
Полный курс "Шаблоны разработки программного обеспечения" (ссылка на плейлист). Шаблоны GRASP, GoF, антипаттерны, рефакторинг Все материалы курса лекций (включая...
Show full article

Полный курс "Шаблоны разработки программного обеспечения" (ссылка на плейлист). Шаблоны GRASP, GoF, антипаттерны, рефакторинг Все материалы курса лекций (включая конспект лекций) на канале автора SlideShare

От себя. Я просмотрел пока что только 4 лекции но уже чувствую уверенность в тех знаниях что я уже приобрел. Однозначно подача хорошая, не занудная. Автор видно что не только знает предметнуб область но и любит в ней докапываться до "что, где, когда и почему". 

Однозначно рекомендую всем кто желает углубить свои знания в области ПРАВИЛЬНОГО проектирования систем(бизнес логики). Великолепный курс! Спасибо автору за то что предоставляет её бесплатно на своём  Youtube канале. Уверен что там есть ещё много чего полезного.

Show preview
Leave a comment




TDD and why it's so important! Uncle Bob (Robert C. Martin)

TDD and why it's so important! Uncle Bob (Robert C. Martin)
I must confess, i didn't wanted to implement TDD because i was confused (and maybe a little bit lazy) to write the code that "didn't produce anything". But Uncle Bob's...
Show full article

I must confess, i didn't wanted to implement TDD because i was confused (and maybe a little bit lazy) to write the code that "didn't produce anything". But Uncle Bob's philosophy, wich i liked btw, reminded me expression from Carlos Castaneda's book. Here it is :

"Things doesn't change, changes only our view on them."

From this day, i'm starting to implement TDD to my projects. Uncle Bob sad that, implementing TDD in to the already written applications it's "insane, not worth it". But i will do it, let's say - for self-improvement. I'll start with my latest project "Conversation App".

I recommend to all, watch the video below. If you doubt the usefulness of tests and existing arguments don't convince you, Uncle Bob will help you to look at it in another way, so much so that you'll have to search for a reasons to not follow TDD (in advance shall warn you, laziness - it's not a reason). And along the way you will learn many interesting stuff about architecture and features of architecture of app.

Watch the video below.

Show preview
Leave a comment