Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 3

Метапрограммирование

А в старое время это делалось иначе. Никто никаких паттернов не обсуждал и не придумывал, все делали по простому. А когда замечали что делают одно и то же трижды, смотрели на написанное и устраняли дублирование. Опять же не вдаваясь в паттерны и не обсуждая достоинства, а по простому.

Далее процесс становился итерационным. Если, в современных терминах, обнаруживалось применение трёх разных паттернов, то код модифицировался опять, иногда с изобретением ещё одного паттерна. И ещё было интуитивное понимание - в результате любого изменения сложность понимания кода не должна возрастать, а если она не уменьшилась - в нём ковырялись зря.

Если кто подумал что, обратно в современных терминах, постепенно нарабатывались паттерны, то отнюдь. Нарабатывались методы создания паттернов.

Как этот опыт применить сейчас? Без полного сноса всей системы от HR до Senior - никак. Ибо никто не рвётся рефакторить успешно прошедший всю эту систему код, ибо знает каков он и что будет тогда.

Рекомендую ли я полный снос? Нет - времена изменились. Раньше стая программистов разбиралась с потоком всё усложняющихся новых задач, теперь - с всё нарастающим потоком однотипных запросов.

Подведём итог. Вот опять с мух мух спрашивают как с пчёл. Чего можно пожелать? Успехов в преждевременном инженеринге, конечно. По опыту преждевременной оптимизации - они будут, вне всякого сомнения.

Мне, как человеку потратившему некоторое время на жаву и впрыгнувшему в поезд го с запозданием, эта вся чехарда с дженериками кажется приемлемой. Но всякий раз, когда у меня вырисовывается нечто похожее, возникают опасения, что остальные члены команды будут плеваться от этого всего. Приходится искать другие варианты, иногда даже апишку приходится усложнять ради отказа от засилья дженериков.

Ну а оверхед в рантайме — так и вообще беда. Хорошо, если речь идёт о шаблонной фции — там никакого оверхеда нет. А вот о типах приходится по сто раз думать: а стоит ли оно того?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации