Как стать автором
Обновить

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

когда я вижу статью про Clojure, то каждый раз я наблюдаю много философии, объяснений почему Clojure это круто, но при этом очень мало примеров реального кода :)

зато, графики красивые.

За примерами реального кода я лично хожу в гитхаб, а не на околотехнические форумы. В чем проблема открыть код упомянутой в тексте библиотеки, которую автор поддерживает и — ну я не знаю даже — …ммм… — может быть, ну… — посмотреть на код?

кто-то понял что конкретно на картинках нарисовано?

Как написанные строки кода держатся в программе со временем. Разными цветами - очевидно, разные релизы.

Каждый видит в статье то, что может увидеть - в меру своей "испорченности". Я, например, увидел пересечение с моими публикациями "Отвлеченно о входных/выходных аргументах" и "Так в чём же конечная цель программирования?".

Если что, то и на чистом JS можно написать функцию, устойчивую к изменению сигнатуры метода - с использованием декомпозиции входных-выходных аргументов:

function fn({a = 1, b = 'text', c = true}) {
    const res = {};
    // do some work
    return res;
}

В принципе, годная статья, если абстрагироваться непосредственно от Clojure, а держать в фокусе идею "неразрушающего рефакторинга". Позеленил.

Аналогично. Вижу практики, которых сам придерживаюсь - "не ломай обратную совместимость при рефакторинге, не надо будет фиксить баги"

абстрагироваться непосредственно от Clojure, а держать в фокусе идею "неразрушающего рефакторинга"

Ну вот автор говорит очень правильную вещь: идея «неразрушающего рефакторинга» — лежит на плечах сообщества. «Тут так принято», — говорит автор очередного лефтпада, и выпускает версию 5.0, которая несовместима ни с одним предыдущим мажором. Знакомо? — А мне нет. В сообществе эликсира, например, не бывает библиотек с мажорным номером версии, превышающим 2 (за наиредчайшим исключением).

1.0 фиксирует API, 2.0 — означает буквально «мы больше не добавляем функциональность, только фиксим баги». Я поддерживаю более десяти библиотек, так или иначе используемых сообществом, и они все до единой обратно совместимы с версией 0.0.1. Потому что так принято (ну и потому что мне лично такая идеология близка, конечно).

Ну, у меня в приоритетах веб-приложения, включая SPA/PWA. Поэтому только JS, только хардкор!!1 :)

А по поводу обратной совместимости у меня несколько другое мнение (см. последний пункт в "С лупой на слона"). Так тоже иногда бывает принято, в других сообществах. Например, на программном уровне Magento 2 и Magento 1 - две разные Вселенные, а с точки зрения бизнес-функций - эволюция одной ¯\_(ツ)_/¯

обратная совместимость — враг адаптивности

Я не согласен. Но чем больше библиотека — тем сложнее, разумеется, этого добиться без окостыливания всего вокруг. Тем не менее, обеспечение обратной совместимости мне очень сильно помогает не приклеивать к телегам пятые колёса.

Ну, это моя точка зрения. Хотя я понимаю, что значит "сломанная обратная совместимость" - тот ещё геморрой.

Сорри за оффтоп, но графики напомнили мне детские рисунки моей дочери. Типа "цветение сакуры". Так то конечно по ним сложно сходу врубиться в их смысл.

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

Годнота. Приятно читать, осознавая, что роящиеся в голове частично реализованные идеи немало перекликаются с уже реализованными в неизвестной кодовой базе на другом конце мира)

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

Публикации