Comments 74
бесподобно
«В этом-то и проблема,» нахмурился мастер. «Вчера я был глупцом, на прошлой неделе — идиотом, а месяц назад — имбецилом. Не показывай мне код, который я мог бы написать вчера, покажи мне код, который я мог бы написать завтра.»
как знакомо!
как знакомо!
Самое оно, тронуло.
Степени умственной отсталости:
Простите за занудство
Лёгкая (F70.) — дебильность. IQ 50—69.
Умеренная (F71.) — имбецильность. IQ 35—49.
Тяжёлая (F72.) — имбецильность, тяжёлая умственная субнормальность. IQ 20—34.
Глубокая (F73.) — идиотия. IQ < 20
Простите за занудство
это все вымысел… и все герои вымышленные… ведь правда????
Для заинтересовавшихся стоит упомянуть что идея формата и названия заимствованы у «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
* Лучше сделать все приватными и открывать по мере появления ошибок доступа *
А вам не доводилось работать с не в меру закрытым API?
UFO just landed and posted this here
API пусть лучше будет излишне открытым, никто не заставляет, используя его, ложить рис прямо в желудок. Хотя искушение может и быть =)
Что значит «пусть лучше будет излишне открытым»?
Все должно быть открыто либо закрыто по ясным причинам.
Интерфейс телевизора…
Пусть лучше задняя крышка будет открыта, а то вдруг порт приема сигнала от пульта закрыт, и клавиши управления заклеены. Можно будет, пробравшись внутрь, как-то прибавить звук.
Так получается.
Все должно быть открыто либо закрыто по ясным причинам.
Интерфейс телевизора…
Пусть лучше задняя крышка будет открыта, а то вдруг порт приема сигнала от пульта закрыт, и клавиши управления заклеены. Можно будет, пробравшись внутрь, как-то прибавить звук.
Так получается.
Я считаю что есть и другие подходы кроме ООП. И есть другие языки, в которых ООП даже близко нету =)
Если говорить всё же о ООП, если сделать все методы и поля открытыми, то от этого само по себе не чего не сломается, просто увеличивается риск что-то сломать самому. А вот разрезание живота сразу ведёт к фатальным последствиям =)
Если говорить всё же о ООП, если сделать все методы и поля открытыми, то от этого само по себе не чего не сломается, просто увеличивается риск что-то сломать самому. А вот разрезание живота сразу ведёт к фатальным последствиям =)
Боюсь, Вам нужно еще помедитировать :)
Решил попробовать перевести оттуда же.
Коан №44
Пятящийся монах.
У одного монаха был странный стиль написания кода. Сталкиваясь с задачей, он первым делом создавал автоматические тесты для проверки еще не написанного кода на корректеность. Тесты, как и следовало ожидать, сразу вылетали с ошибкой, так как кода для проверки еще не было. Только после создания тестов монах брался за реальный код, тщательно следя за прохождением всех тестов.
Его брат высмеивал процесс, который приводил к уменьшению написанного кода в два раза по сравнению с кодом сверстников монаха, и к тому же занимал больше времени. Они прозвали его Лю-Хау — Пятящийся Монах.
Мастер Java по имени Банзен прознав об этом сказал, — «Стоит исследовать подобный стиль»
По возвращении мастер постановил, что все члены клана, которые успели завершить свои задачи в течение недели, смогут в награду за это составить ему компанию при купании.
Пятящийся монах остался в одиночестве.
Забравшись на скалу для прыжка в воду, старейший из монахов в испуге отпрянул, взглянув вниз.
«Мастер!» — закричал он. «Кто то разобрал камни дамбы, вода ушла из бассейна, оставив лишь острые камни и сорняки!»
Банзен подтолкнул к нему его молодых коллег.
«Конечно,», — сказал Мастер, — «вы можете решить эту проблему достигнув дна.»
Коан №44
Пятящийся монах.
У одного монаха был странный стиль написания кода. Сталкиваясь с задачей, он первым делом создавал автоматические тесты для проверки еще не написанного кода на корректеность. Тесты, как и следовало ожидать, сразу вылетали с ошибкой, так как кода для проверки еще не было. Только после создания тестов монах брался за реальный код, тщательно следя за прохождением всех тестов.
Его брат высмеивал процесс, который приводил к уменьшению написанного кода в два раза по сравнению с кодом сверстников монаха, и к тому же занимал больше времени. Они прозвали его Лю-Хау — Пятящийся Монах.
Мастер Java по имени Банзен прознав об этом сказал, — «Стоит исследовать подобный стиль»
По возвращении мастер постановил, что все члены клана, которые успели завершить свои задачи в течение недели, смогут в награду за это составить ему компанию при купании.
Пятящийся монах остался в одиночестве.
Забравшись на скалу для прыжка в воду, старейший из монахов в испуге отпрянул, взглянув вниз.
«Мастер!» — закричал он. «Кто то разобрал камни дамбы, вода ушла из бассейна, оставив лишь острые камни и сорняки!»
Банзен подтолкнул к нему его молодых коллег.
«Конечно,», — сказал Мастер, — «вы можете решить эту проблему достигнув дна.»
А я вот эту не понял ни в оригинале, ни в переводе. Толи она менее остроумна, либо это я торможу. Можете расшифровать идею?
Мастер Банзен предложил противникам TDD реализовать свой подход к разработке в реальной жизни — сначала действие (разработка), а потом уже проверка и исправление. «Пятившийся» же монах сначала вырабатывает условия возможности действия (работы кода), а потом уже делает действие (разрабатывает).
Поэтому остальным манахам и предлагалось сначала нырнуть в бассейн не глядя, а уж потом разбираться с отсутвием воды.
Как-то так.
Поэтому остальным манахам и предлагалось сначала нырнуть в бассейн не глядя, а уж потом разбираться с отсутвием воды.
Как-то так.
Ага, просто мне то напрашивалась другая аналогия. Что программирование тестов без кода, это как раз плавание в бассейне (использование кода) до того, как туда залили воду (написали код). И получалась полная каша. Спасибо, теперь понятно, что имел ввиду автор.
Для реальной жизни, похоже оно даже более актуально. :)
по-моему, всё проще:
«Думай, потом пиши», а не «Сначала напиши, а потом подумай»
«Думай, потом пиши», а не «Сначала напиши, а потом подумай»
Если вы напишете тесты заранее, вы заранее обезопасите себя от (большинства) ошибок — наберете воды в бассейн.
Написав же сразу код, вы долго-долго будете отлавливать в нем ошибки. Что чревато, как и ныряние в бассейн без воды.
Как-то так :).
Написав же сразу код, вы долго-долго будете отлавливать в нем ошибки. Что чревато, как и ныряние в бассейн без воды.
Как-то так :).
какая красота!
Прочитал на одном дыхании. Монахи-программисты… Сразу всплыли ассоциации с «Анафемом» Нила Стивенсона, подобных людей там называли «инаками», или же «теорами». Правда они не вспарывали друг другу животы, а просто изгоняли «неверных» в экстрамурос (обычный мир, вне «монастырей»), либо заставляли «зубрить книгу» (тоже очень интересная штука, но не буду сильно спойлерить). В общем, рекомендую.
Перевод очень хорош! Больше всего понравился «Пустяк».
Симпатично, но к коанам не имеет никакого отношения.
В копилку, кто ещё не в курсе: taopooh.narod.ru/5/dao_prog.html
хм… Оно в двух переводах www.metodolog.ru/00165/00165.html
Не понравилось почему-то.
После первых двух историй стало совсем скучно и неинтересно.
После первых двух историй стало совсем скучно и неинтересно.
Очень хочется при чтении чужого кода говорить автору: «Так, прочитай Коан „Инкапсуляция“ 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, может быть вы отправите свои переводы автору сайта?
«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, то скорее всего (если, конечно, разработчик не полный мудак) этот метод делает ни что иное, как устанавливает имя человека. Комментарий для подобного метода банально излишен, что и продемонстрировал учитель, начав перечислять очевидные глазу вещи.
(facepalm) дошло, жара всетаки
А почему именно «река чая»? Типа мастер так долго перечислял очевидное, что успел выпить много чая?
Я вот понял смысл коана, но не понял, почему он так называется.
Я вот понял смысл коана, но не понял, почему он так называется.
Потому что «чай не водка».
Вот представьте себе реку чая. Вот прям настоящую реку из чая. Представили? А есть ли от неё толк? В смысле есть ли толк в том, что у вас целая река чая. Нет. Всё, что вам нужно — это одна чашка. Ну две. Ну три максимум. Всё остальное попросту не нужно.
Так и с методом Person::setName() — всё, что вам нужно, у вас уже есть: имя класса, имя метода и тип параметра. Этой информации достаточно для того, чтобы понять, что же именно делает данный метод.
Можно, конечно, добавить комментарий «Этот метод делает то-то», можно расписать параметры "@param name — person's name to be set", можно даже пример использования туда же воткнуть, но всё это — лишнее. Всё это как раз и является той «рекой чая», которая вам не нужна, т.к. вам достаточно нескольких чашек.
Так и с методом Person::setName() — всё, что вам нужно, у вас уже есть: имя класса, имя метода и тип параметра. Этой информации достаточно для того, чтобы понять, что же именно делает данный метод.
Можно, конечно, добавить комментарий «Этот метод делает то-то», можно расписать параметры "@param name — person's name to be set", можно даже пример использования туда же воткнуть, но всё это — лишнее. Всё это как раз и является той «рекой чая», которая вам не нужна, т.к. вам достаточно нескольких чашек.
Ну теперь я напишу ну не в японском стиле, а в нашем — Славянском.
Досталась както юному послушнику программа написанная другими монахами из далекой азиатской страны. Начал послушник просматривать листинги, а там полнейший разврат и содомия — лесенки проместо циклов да виборки, потоки плодятся подобно крысам на амбаре, копипаст змием холодным расползя по телу софтинушки, утечки памяти изедают ресурсы вычислительные да живительные, ужаснулся послушник сему горю-горюшку, пошол к инокам да настоятелю просить времени на рефакторинг да оптимизацию, поперед имплементации нового функционала. А настоятель да иноки на смех послушника подняли, словами погаными его обзывали — на хлеб на воду посадить грозили, распиналися сколько убытка монастырю привнесет рефакторинг да оптимизация, что времени на сию красоту нет и работать надобно так. И как бы времени им не хватало, да вечером сели они свои повозки славные да отправились корпоратив чествовать — греху чревоугодия предаватся, а послушник сидел в своей келье да рыдал горе-горевал, а потом послал их срамным местом и сбежал из монастыря — ибо нефиг.
Досталась както юному послушнику программа написанная другими монахами из далекой азиатской страны. Начал послушник просматривать листинги, а там полнейший разврат и содомия — лесенки проместо циклов да виборки, потоки плодятся подобно крысам на амбаре, копипаст змием холодным расползя по телу софтинушки, утечки памяти изедают ресурсы вычислительные да живительные, ужаснулся послушник сему горю-горюшку, пошол к инокам да настоятелю просить времени на рефакторинг да оптимизацию, поперед имплементации нового функционала. А настоятель да иноки на смех послушника подняли, словами погаными его обзывали — на хлеб на воду посадить грозили, распиналися сколько убытка монастырю привнесет рефакторинг да оптимизация, что времени на сию красоту нет и работать надобно так. И как бы времени им не хватало, да вечером сели они свои повозки славные да отправились корпоратив чествовать — греху чревоугодия предаватся, а послушник сидел в своей келье да рыдал горе-горевал, а потом послал их срамным местом и сбежал из монастыря — ибо нефиг.
Sign up to leave a comment.
Коаны о программировании