Первая часть - https://habr.com/ru/articles/835196/
Предлагаю вторую часть начать с того, на чём закончили первую и это исключения. В прошлой статье мы тестировали исключения, которые должны были вызваться в тестируемом объекте:
python разработчик с многолетним опытом
Первая часть - https://habr.com/ru/articles/835196/
Предлагаю вторую часть начать с того, на чём закончили первую и это исключения. В прошлой статье мы тестировали исключения, которые должны были вызваться в тестируемом объекте:
Я знаю, что разработчики по-разному относятся к тестированию программного обеспечения. Вот некоторые примеры подхода к тестам, которые встречались мне за время работы:
Как упростить себе жизнь или почему ты должен уметь создавать объекты правильно?
На этот вопрос я буду отвечать на протяжении всей статьи и уверен, что многим из вас, читающим данную статью, будет полезным знать, что такое осознанный подход при создании объектов в вашей кодовой базе.
Во второй части мы продолжаем усложнять наш пример, выдумывая различные требования, чтобы посмотреть на возможный путь эволюции создания объекта.
Как упростить себе жизнь или почему ты должен уметь создавать объекты правильно?
На этот вопрос я буду отвечать на протяжении всей статьи и уверен, что многим из вас, читающим данную статью, будет полезным знать, что такое осознанный подход при создании объектов в вашей кодовой базе.
В вопросе "как создавать объект?" я сторонник эволюционного подхода. Я не стремлюсь использовать порождающие паттерны при первой возможности. У меня есть простой набор вопросов самому себе, который помогает мне принять решение, стоит ли изменить способ создания объекта или нет.
Если обратиться к документации, то дескриптор — механизм, который позволяет объектам настраивать поиск, хранение и удаление атрибутов.
Дескрипторы используются в классах, выступая в роли атрибутов класса(не экземпляра).
Думаю, мало кто, хотя бы раз, сам писал дескрипторы в коммерческой разработке, но я уверен, что большинство программистов используют механизмы, которые являются дескрипторами, или используют их «под капотом».
Unit of work или "единица работы" - Поведенческий паттерн, который позволяет определить логическую транзакцию. Эта транзакция нужна, для объединения нескольких "маленьких" операций в одну "большую"(Acid).
Генераторы коллекций - короткий(относительно цикла for) способ создавать коллекции на основе других коллекций.