Публикации по теме 'software-design'
Паттерны проектирования в Ruby: Bridge
Наглядный пример паттерна Мост
Цель
Согласно GoF , цель паттерна Мост состоит в следующем:
«Отделите абстракцию от ее реализации, чтобы они могли различаться независимо».
Пример
Реализуя мост, абстракция и ее реализации могут различаться независимо друг от друга. В нашем примере шаблон Мост используется для отделения абстрактного класса Shape и его различных уточнений от его возможных реализаций. Пример был сильно аннотирован и не требует пояснений.
Некоторые лакомые..
Паттерны проектирования в Ruby: Decorator
Наглядный пример паттерна Decorator
Цель
Согласно GoF , цель паттерна Decorator состоит в следующем:
«Добавляйте дополнительные обязанности к объекту динамически. Декораторы предоставляют гибкую альтернативу подклассам для расширения функциональности ».
Пример
Шаблон Декоратор позволяет нам добавлять поведение к заданному объекту, не добавляя это поведение к классу объекта. Это дает нам возможность украшать объекты дополнительным поведением для использования в определенном..
ИСТОЧНИК СОБЫТИЙ - ПРИВИЛЕГИРОВАННАЯ МОДЕЛЬ ДЛЯ КОСВЕННОСТИ - ЧАСТЬ 1
«Мы можем решить любую проблему, добавив дополнительный уровень косвенности» - Event Sourcing - это привилегированная модель для этого.
Идея Event Sourcing заключается в следующем: фиксировать и сохранять изменения состояния приложения как события. До того, как термин был придуман Мартином Фаулером, идея называлась журнал только добавления , журнал упреждающей записи или просто журнал.
Захват и сохранение всех изменений приложения имеет то преимущество, что позволяет узнать..
Большой толчок к новым и блестящим решениям старых известных проблем
Великий печальный толчок к новым и блестящим решениям старых известных проблем
Как биологический вид нас всегда привлекала новизна. Это, вероятно, хорошо послужило нам для вещей с короткими петлями обратной связи, поскольку мы быстро поняли, действительно ли «новая и блестящая» вещь помогла нам или навредила нам.
В разработке программного обеспечения сообщество JavaScript печально известно своими «новыми и блестящими» фреймворками. Это — по уважительной причине — высмеивалось снова..
Особенности программного обеспечения и сложность пакета
Много раз я слышал, как разработчики говорят: «Да, пакет X действительно сложен, но как только вы к нему привыкнете, он станет действительно мощным». Это полная ерунда.
Под пакетом понимается любой фрагмент кода, который подключается к более крупному фрагменту кода. Имеются в виду такие пакеты, как Requests для Python или Laravel Cashier для Laravel. Я хочу прояснить, что я не имею в виду сами фреймворки только потому, что они имеют оправданное ограничение на их сложность из-за..
Потерпеть неудачу как можно раньше
Вдохновением для создания этой записи в блоге, конечно же, послужила Книга чистого кода .
Иногда люди предпочитают использовать ненужные глубокие условные выражения.
Они предпочитают возвращать ошибку/исключение из еще части глубоко вложенных условных выражений. Это мешает читабельности.
Мы рассмотрим вариант использования зарегистрированного пользователя, для которого требуются три обязательных поля: имя, адрес электронной почты и пароль. (Давайте будем проще.)
Позвольте мне..