Pull to refresh

Comments 74

Так как Вы уже заняли правильный эпитет, воспользуюсь другим: шикарно :)
Можно и метафорой)

Жемчужина!
какие все правильные. это охуенно!
«В этом-то и проблема,» нахмурился мастер. «Вчера я был глупцом, на прошлой неделе — идиотом, а месяц назад — имбецилом. Не показывай мне код, который я мог бы написать вчера, покажи мне код, который я мог бы написать завтра.»

как знакомо!
Степени умственной отсталости:
Лёгкая (F70.) — дебильность. IQ 50—69.
Умеренная (F71.) — имбецильность. IQ 35—49.
Тяжёлая (F72.) — имбецильность, тяжёлая умственная субнормальность. IQ 20—34.
Глубокая (F73.) — идиотия. IQ < 20

Простите за занудство
Мне кажется все знают, но языковая норма говорит что идиотия менее сурова чем имбецильность потому что чаще используется. Меня называли идиотом чуть не каждый день, авот имбецилом всего пару раз.
это все вымысел… и все герои вымышленные… ведь правда????
UFO just landed and posted this here
Для заинтересовавшихся стоит упомянуть что идея формата и названия заимствованы у «Rootless root», Unix-коанов Эрика Рэймонда. А Эрик ссылается на Дао де цзин, но это уже другая история :)
Да, есть такая отсылка, проглядел во вступлении. Думал что Эрик первый начал писать коаны.
Спасибо :)
Кстати, есть книжка такая — «101 история дзен», сборник коанов с коментариями к ним в конце книги. Очень интересное чтиво.
«Вспороть тебе живот,» — отвечал мастер, — «чтобы положить туда рис и налить чай. У меня на сегодня плотное расписание, и мне кажется, такой метод угощения гостей будет очень эффективным.»

Прекрасно!))) Более прямого ответа и придумать нельзя)
UFO just landed and posted this here
UFO just landed and posted this here
Ответ не на поверхности… Это цикл Шредингера — одновременно и бесконечный, и нет.
UFO just landed and posted this here
там в оригинале местоимение she используется
UFO just landed and posted this here
Она продолжала в том же духе, пока послушник не покраснел. Он собрал свой код и удалился, ...
Хорошо, что на этот раз она ничего ему не сломала.
Это прекрасно! Особенно про инкапсуляцию, избыточные комментарии и закомментированный код.
Многие побасенки далеко не универсальны. Та же «Инкапсуляция», не всегда ООП является верным подходом.
UFO just landed and posted this here
* Лучше сделать все приватными и открывать по мере появления ошибок доступа *
Приватным нужно сделать все, изменение чего приведет класс-сущность в невалидное состояние (несуществующее в реальности или не имеющее смысла в контексте). Ни больше, ни меньше, если уж следовать канонам ООП.

А класс может вообще играть роль DTO — тогда вообще не нужно ничего закрывать.
А вам не доводилось работать с не в меру закрытым API?
UFO just landed and posted this here
API пусть лучше будет излишне открытым, никто не заставляет, используя его, ложить рис прямо в желудок. Хотя искушение может и быть =)
Что значит «пусть лучше будет излишне открытым»?
Все должно быть открыто либо закрыто по ясным причинам.

Интерфейс телевизора…
Пусть лучше задняя крышка будет открыта, а то вдруг порт приема сигнала от пульта закрыт, и клавиши управления заклеены. Можно будет, пробравшись внутрь, как-то прибавить звук.

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

Да, пульт сломался, а кнопок и разъемов на телевизоре нету.
Я считаю что есть и другие подходы кроме ООП. И есть другие языки, в которых ООП даже близко нету =)
Если говорить всё же о ООП, если сделать все методы и поля открытыми, то от этого само по себе не чего не сломается, просто увеличивается риск что-то сломать самому. А вот разрезание живота сразу ведёт к фатальным последствиям =)
UFO just landed and posted this here
Боюсь, Вам нужно еще помедитировать :)
Решил попробовать перевести оттуда же.

Коан №44
Пятящийся монах.

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

Его брат высмеивал процесс, который приводил к уменьшению написанного кода в два раза по сравнению с кодом сверстников монаха, и к тому же занимал больше времени. Они прозвали его Лю-Хау — Пятящийся Монах.

Мастер Java по имени Банзен прознав об этом сказал, — «Стоит исследовать подобный стиль»

По возвращении мастер постановил, что все члены клана, которые успели завершить свои задачи в течение недели, смогут в награду за это составить ему компанию при купании.

Пятящийся монах остался в одиночестве.

Забравшись на скалу для прыжка в воду, старейший из монахов в испуге отпрянул, взглянув вниз.
«Мастер!» — закричал он. «Кто то разобрал камни дамбы, вода ушла из бассейна, оставив лишь острые камни и сорняки!»

Банзен подтолкнул к нему его молодых коллег.

«Конечно,», — сказал Мастер, — «вы можете решить эту проблему достигнув дна.»
А я вот эту не понял ни в оригинале, ни в переводе. Толи она менее остроумна, либо это я торможу. Можете расшифровать идею?
Мастер Банзен предложил противникам TDD реализовать свой подход к разработке в реальной жизни — сначала действие (разработка), а потом уже проверка и исправление. «Пятившийся» же монах сначала вырабатывает условия возможности действия (работы кода), а потом уже делает действие (разрабатывает).
Поэтому остальным манахам и предлагалось сначала нырнуть в бассейн не глядя, а уж потом разбираться с отсутвием воды.
Как-то так.
Ага, просто мне то напрашивалась другая аналогия. Что программирование тестов без кода, это как раз плавание в бассейне (использование кода) до того, как туда залили воду (написали код). И получалась полная каша. Спасибо, теперь понятно, что имел ввиду автор.
Для реальной жизни, похоже оно даже более актуально. :)
по-моему, всё проще:
«Думай, потом пиши», а не «Сначала напиши, а потом подумай»
Если вы напишете тесты заранее, вы заранее обезопасите себя от (большинства) ошибок — наберете воды в бассейн.
Написав же сразу код, вы долго-долго будете отлавливать в нем ошибки. Что чревато, как и ныряние в бассейн без воды.
Как-то так :).
Прочитал на одном дыхании. Монахи-программисты… Сразу всплыли ассоциации с «Анафемом» Нила Стивенсона, подобных людей там называли «инаками», или же «теорами». Правда они не вспарывали друг другу животы, а просто изгоняли «неверных» в экстрамурос (обычный мир, вне «монастырей»), либо заставляли «зубрить книгу» (тоже очень интересная штука, но не буду сильно спойлерить). В общем, рекомендую.
Оно самое. Вот только вся загвоздка заключается в букве F. Ибо эта особенность в зазубриваемой книге является ключевой. Из-за этого «зубрение книги» является чуть-ли не высшей мерой наказания, ведь потом ещё и сдавать по ней экзамен :)
Перевод очень хорош! Больше всего понравился «Пустяк».
Симпатично, но к коанам не имеет никакого отношения.
Не понравилось почему-то.
После первых двух историй стало совсем скучно и неинтересно.
Очень хочется при чтении чужого кода говорить автору: «Так, прочитай Коан „Инкапсуляция“ 4 раза и перепиши класс.
Иногда бывает это, когда перечитываешь свой же код
Эволюция мне больше всего понравилось!
Хотя вообще все Коаны супер
Ха, слово «побасенка» употреблял только один известный мне человек… Школа Шлезингера ;)
Конечно! Культовый преподаватель.
Предложил автору оригинального сайта сделать версии на разных языках. Его ответ

«My feeling is that if anyone wants to translate any of the koans into another language and send the translation to me (in UTF-8 HTML) I would find a way to post it. I am quite glad to have readers, in any country. :-)»

Nicolette, может быть вы отправите свои переводы автору сайта?
Отправлю, отчего же нет, тем более что хабраприоритет публикации соблюден в лучшем виде.
На последних строках перевода внезапно догадался, какое имя увижу в поле «Автор текста».
Прошу считать комплиментом.
UFO just landed and posted this here
Чето я недопонял про «реку чая» прочитал в оригинале всеравно непонял. Видно жара скзывается.
Может кто-то из просвещенных просветит меня?
Для метода setName класса Person было указано, что он устанавливает имя человека

Если у класса Person есть метод setName, то скорее всего (если, конечно, разработчик не полный мудак) этот метод делает ни что иное, как устанавливает имя человека. Комментарий для подобного метода банально излишен, что и продемонстрировал учитель, начав перечислять очевидные глазу вещи.
А почему именно «река чая»? Типа мастер так долго перечислял очевидное, что успел выпить много чая?
Я вот понял смысл коана, но не понял, почему он так называется.
Вот представьте себе реку чая. Вот прям настоящую реку из чая. Представили? А есть ли от неё толк? В смысле есть ли толк в том, что у вас целая река чая. Нет. Всё, что вам нужно — это одна чашка. Ну две. Ну три максимум. Всё остальное попросту не нужно.
Так и с методом Person::setName() — всё, что вам нужно, у вас уже есть: имя класса, имя метода и тип параметра. Этой информации достаточно для того, чтобы понять, что же именно делает данный метод.
Можно, конечно, добавить комментарий «Этот метод делает то-то», можно расписать параметры "@param name — person's name to be set", можно даже пример использования туда же воткнуть, но всё это — лишнее. Всё это как раз и является той «рекой чая», которая вам не нужна, т.к. вам достаточно нескольких чашек.
Ну теперь я напишу ну не в японском стиле, а в нашем — Славянском.

Досталась както юному послушнику программа написанная другими монахами из далекой азиатской страны. Начал послушник просматривать листинги, а там полнейший разврат и содомия — лесенки проместо циклов да виборки, потоки плодятся подобно крысам на амбаре, копипаст змием холодным расползя по телу софтинушки, утечки памяти изедают ресурсы вычислительные да живительные, ужаснулся послушник сему горю-горюшку, пошол к инокам да настоятелю просить времени на рефакторинг да оптимизацию, поперед имплементации нового функционала. А настоятель да иноки на смех послушника подняли, словами погаными его обзывали — на хлеб на воду посадить грозили, распиналися сколько убытка монастырю привнесет рефакторинг да оптимизация, что времени на сию красоту нет и работать надобно так. И как бы времени им не хватало, да вечером сели они свои повозки славные да отправились корпоратив чествовать — греху чревоугодия предаватся, а послушник сидел в своей келье да рыдал горе-горевал, а потом послал их срамным местом и сбежал из монастыря — ибо нефиг.
И пошел он дождями мочимый, ветрами гонимый до городу Парижу… В городах сайты-визитки лабал, да кому надо что подверстать — подправить, тем в дороге и жил… ))
Sign up to leave a comment.

Articles