Size: a a a

Clojure — русскоговорящее сообщество

2020 January 09

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
аминь :)
источник

D

Dos in Clojure — русскоговорящее сообщество
Sergey Trofimov
для этой задачи симпатичнее будет вариант с редукцией на основе структуры данных с правилами замены, например на основе мапы {match replacement}
{#"(['re]{3})" " are"
#"(['m]{2}$)"  " am"}
you've been much happier to have your data be smart and your program be dumb
(c) Stu
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Dos
you've been much happier to have your data be smart and your program be dumb
(c) Stu
всё правильно сказал
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
Прочел две части с удовольствием. По поводу второй высказываются двояко. В комментариях. Кода больше раза в три. Совершить ошибку в найминге при обращении к функции легче. Тестить надо 8 функций а не одну. Что ты об этом думаешь? Код, по сравнению с начальным вариантом, конечно же приятнее смотрится, как по мне. И последнее: почему автор вынес расчет возведения в квадрат в отдельную функцию? Это обусловлено тем, что "функция должна делать одну вещь"?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
Прочел две части с удовольствием. По поводу второй высказываются двояко. В комментариях. Кода больше раза в три. Совершить ошибку в найминге при обращении к функции легче. Тестить надо 8 функций а не одну. Что ты об этом думаешь? Код, по сравнению с начальным вариантом, конечно же приятнее смотрится, как по мне. И последнее: почему автор вынес расчет возведения в квадрат в отдельную функцию? Это обусловлено тем, что "функция должна делать одну вещь"?
про какую вторую часть речь?
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
Деление на небольшие функции. Там ведь о нейминге сразу писал
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Сергей Суржик
Деление на небольшие функции. Там ведь о нейминге сразу писал
а первая часть тогда что?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
а, понял
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
я сам не вчитывался, это для иллюстрации принципа было
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Сергей Суржик
Прочел две части с удовольствием. По поводу второй высказываются двояко. В комментариях. Кода больше раза в три. Совершить ошибку в найминге при обращении к функции легче. Тестить надо 8 функций а не одну. Что ты об этом думаешь? Код, по сравнению с начальным вариантом, конечно же приятнее смотрится, как по мне. И последнее: почему автор вынес расчет возведения в квадрат в отдельную функцию? Это обусловлено тем, что "функция должна делать одну вещь"?
у кода главная задача (помимо работоспособности) - поддерживаемость, т.е. читабельность, так что "приятно смотрится" - это многое
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
у кода главная задача (помимо работоспособности) - поддерживаемость, т.е. читабельность, так что "приятно смотрится" - это многое
С этим я соглашаюсь безоговорочно. Всеми руками за. Сам буду стараться придерживаться подобной практики.
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
ну реально, код читается гораздо больше, чем пишется
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
Sergey Trofimov
я сам не вчитывался, это для иллюстрации принципа было
Да. Я понял что для иллюстрации. Мне просто была не до конца понятна позиция недовольного комментатора
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
любой
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
я вижу здесь часто у новичков сложности, когда они пытаются написать код «три в одном», который бы не вызвал трудностей при написании отдельными фрагментами
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
Тоже согласен. Даже не три в одном а 33 в одном. Сам таким страдаю
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
поддерживаемость — это в частности, тестируемость, удобность при рефакторинге, понятность, почему код написан именно так
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
Сейчас в поезде. Чтобы ещё полезного почитать?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
вот твоя вчерашняя задача, которая без проблем записывается в одну функцию
разбив её на части я получил:
- документацию на разные фрагменты кода, к которым у читателя может возникнуть вопрос зачем и почему
- независимые тесты по принятым допущениям и алгоритмам
- возможность рефакторить вынесенные компоненты
- если я посмотрю на код через месяц — мне по прежнему всё понятно
источник