среда, 29 ноября 2017 г.

Ленивы ли ваши объекты?

Конструкторы не должны содержать кода. Так думает Егор Бугаенко, и я с ним согласен. И у меня возникли некоторые соображения по этому поводу.

Для начала представляю вам объект:

class HardCalculationValue:
    def __init__(self):
        # Точка 1
        pass

    def value(self):
        # Точка 2
        return None

Этот объект - абстракция. Он может делать тяжелые операции разной природы. Работа с внешними ресурсами, как-то БД, файлы, сеть. Какие-то тяжелые преобразования. Конечно это могут быть и не очень тяжелые преобразования, но на тяжелых преобразованиях сильнее чувствуется боль. :)

И нам нужно вставить тяжелую операцию. Какую точку вы выберите 1 или 2?
Почему-то вспомнилось: ... я покажу тебе, как глубоко ведет кроличья нора. :)

пятница, 30 июня 2017 г.

Объектно ориентированное юниттестирование

Возникло неудержимое желание написать статью. :)

Последнее время все мои мысли занимает true oop. Вокруг в этом плане царит уныние. И хуже того. Читая достаточно старые книги, например про Smalltalk, я с грустью наблюдаю объекты, количество методов у которых исчисляется десятками. Это какой-то неправильный ООП.

И возникло у меня желание реализовать фреймворк для юниттестирования, построенный на принципах правильного ООП.