Публикации по теме 'software-design'


Паттерны проектирования в Ruby: Bridge
Наглядный пример паттерна Мост Цель Согласно GoF , цель паттерна Мост состоит в следующем: «Отделите абстракцию от ее реализации, чтобы они могли различаться независимо». Пример Реализуя мост, абстракция и ее реализации могут различаться независимо друг от друга. В нашем примере шаблон Мост используется для отделения абстрактного класса Shape и его различных уточнений от его возможных реализаций. Пример был сильно аннотирован и не требует пояснений. Некоторые лакомые..

Паттерны проектирования в Ruby: Decorator
Наглядный пример паттерна Decorator Цель Согласно GoF , цель паттерна Decorator состоит в следующем: «Добавляйте дополнительные обязанности к объекту динамически. Декораторы предоставляют гибкую альтернативу подклассам для расширения функциональности ». Пример Шаблон Декоратор позволяет нам добавлять поведение к заданному объекту, не добавляя это поведение к классу объекта. Это дает нам возможность украшать объекты дополнительным поведением для использования в определенном..

ИСТОЧНИК СОБЫТИЙ - ПРИВИЛЕГИРОВАННАЯ МОДЕЛЬ ДЛЯ КОСВЕННОСТИ - ЧАСТЬ 1
«Мы можем решить любую проблему, добавив дополнительный уровень косвенности» - Event Sourcing - это привилегированная модель для этого. Идея Event Sourcing заключается в следующем: фиксировать и сохранять изменения состояния приложения как события. До того, как термин был придуман Мартином Фаулером, идея называлась журнал только добавления , журнал упреждающей записи или просто журнал. Захват и сохранение всех изменений приложения имеет то преимущество, что позволяет узнать..

Большой толчок к новым и блестящим решениям старых известных проблем
Великий печальный толчок к новым и блестящим решениям старых известных проблем Как биологический вид нас всегда привлекала новизна. Это, вероятно, хорошо послужило нам для вещей с короткими петлями обратной связи, поскольку мы быстро поняли, действительно ли «новая и блестящая» вещь помогла нам или навредила нам. В разработке программного обеспечения сообщество JavaScript печально известно своими «новыми и блестящими» фреймворками. Это — по уважительной причине — высмеивалось снова..

Особенности программного обеспечения и сложность пакета
Много раз я слышал, как разработчики говорят: «Да, пакет X действительно сложен, но как только вы к нему привыкнете, он станет действительно мощным». Это полная ерунда. Под пакетом понимается любой фрагмент кода, который подключается к более крупному фрагменту кода. Имеются в виду такие пакеты, как Requests для Python или Laravel Cashier для Laravel. Я хочу прояснить, что я не имею в виду сами фреймворки только потому, что они имеют оправданное ограничение на их сложность из-за..

Потерпеть неудачу как можно раньше
Вдохновением для создания этой записи в блоге, конечно же, послужила Книга чистого кода . Иногда люди предпочитают использовать ненужные глубокие условные выражения. Они предпочитают возвращать ошибку/исключение из еще части глубоко вложенных условных выражений. Это мешает читабельности. Мы рассмотрим вариант использования зарегистрированного пользователя, для которого требуются три обязательных поля: имя, адрес электронной почты и пароль. (Давайте будем проще.) Позвольте мне..