Информация об изменениях

Сообщение Re[9]: Вторая серия про Яндекс от 21.06.2018 11:33

Изменено 21.06.2018 11:56 Артём

Re[9]: Вторая серия про Яндекс
Здравствуйте, elmal, Вы писали:

E>Так не нужно пессимизировать намеренно. На том этапе, когда заказчик не знает чего хочет, когда идут постоянно требования — "а давайте добавим вот эту фичу", затем на следующей — "нет, вот эту фичу, которую мы добавляли, ради которой нам пришлось до хрена рефакторить — это мы випилим, она не нужна", затем — "эту фичу мы модифицируем", затем — "нет, тут мы ошиблись, вот тут связь не 1 к одному а много ко многим, а здесь не много ко многим а 1 ко многим", и в таком режиме продукт может жить годами. При этом с развитием может оказаться, что для клиента 1 идет 1 набор фич, для клиента 2 идет второй, для третьего идут фичи с модификациями, четвертый клиент хочет вообще конструктор фич, чтоб он сам мог добавлять свою специфику самостоятельно. Если в таком режиме все делать сверхоптимально, а не максимально гибко — в этом случае проект будет делаться 100 лет.


Ты или готовую прикрути, или свой контейнер напиши с топологической сортировкой и простыми понятными интерфейсами наружу, покрой юнит тестами. Надо заказчику сортировку- подцепил, не надо- выбросил. Может в будущем пригодится. Так нет, каждый раз по памяти фигачишь кривой велосипед с O(n*n*log n).
Re[9]: Вторая серия про Яндекс
Здравствуйте, elmal, Вы писали:

E>Так не нужно пессимизировать намеренно. На том этапе, когда заказчик не знает чего хочет, когда идут постоянно требования — "а давайте добавим вот эту фичу", затем на следующей — "нет, вот эту фичу, которую мы добавляли, ради которой нам пришлось до хрена рефакторить — это мы випилим, она не нужна", затем — "эту фичу мы модифицируем", затем — "нет, тут мы ошиблись, вот тут связь не 1 к одному а много ко многим, а здесь не много ко многим а 1 ко многим", и в таком режиме продукт может жить годами. При этом с развитием может оказаться, что для клиента 1 идет 1 набор фич, для клиента 2 идет второй, для третьего идут фичи с модификациями, четвертый клиент хочет вообще конструктор фич, чтоб он сам мог добавлять свою специфику самостоятельно. Если в таком режиме все делать сверхоптимально, а не максимально гибко — в этом случае проект будет делаться 100 лет.


Ты или готовую прикрути, или свой контейнер напиши с топологической сортировкой и простыми понятными интерфейсами наружу, покрой юнит тестами. Надо заказчику сортировку- подцепил, не надо- выбросил. Может в будущем пригодится. Так нет, каждый раз по памяти фигачишь кривой велосипед с O(n*n*log n).

Update
А вообще, я тут подумал (правильного алгоритма не читал) ведь топологическая сортировка — это обход графа с удовлетворением зависимостей. Просто обходишь в глубину и помечаешь пройденные узлы, чтобы не было повторов (та самая мемоизация).