программистское: посмотрите и сравните
Oct. 6th, 2009 03:08 pmПитер Норвиг, автор (помимо множества прочих заслуг) знаменитых книг об AI и Лиспе, автор эссе Teach Yourself Programming in Ten Years, которое следует прочитать каждому программисту, рассказывает, как написать программу, решающую любую задачу Судоку. 100 строк на Питоне.
Рон Джеффриз, один из изобретателей системы XP Programming, один из духовных отцов движения Agile и авторов Agile Manifesto, пытается написать программу для решения Судоку: раз, два, три, четыре, пять. На Руби, с использованием TDD (test-driven development).
Прочитайте эти два описания двух разных попыток - включая все пять записей Джеффриза, не поленитесь, чтобы как следует их оценить - сравните, и вы будете знать все, что вам надо знать, об XP и Agile.
Бонус:
Роберт Мартин ("Uncle Bob Martin"), один из главных создателей Agile, специалист по Agile, XP и UML, автор книг обо всех этих методологиях, пишет код на Clojure, с помощью TDD, вычисляющий результат игры Bowling Game, простого варианта боулинга. Вот его код.
Матиас Джованнини пишет код на OCaml, без TDD, для решения той же проблемы. Вот его код.
Сравните, и вы будете знать все, что следует знать об XP, Agile и TDD.
Все всегда звучит очень заманчиво. Все всегда звучат очень убедительно. Все полемики и манифесты можно просто не читать, а если читать, то ни в коем случае не воспринимать всерьез. Читайте код. Или, если есть время и желание, пробуйте сами. А манифесты и методологические книги - пусть себе скрипит губерния.
Рон Джеффриз, один из изобретателей системы XP Programming, один из духовных отцов движения Agile и авторов Agile Manifesto, пытается написать программу для решения Судоку: раз, два, три, четыре, пять. На Руби, с использованием TDD (test-driven development).
Прочитайте эти два описания двух разных попыток - включая все пять записей Джеффриза, не поленитесь, чтобы как следует их оценить - сравните, и вы будете знать все, что вам надо знать, об XP и Agile.
Бонус:
Роберт Мартин ("Uncle Bob Martin"), один из главных создателей Agile, специалист по Agile, XP и UML, автор книг обо всех этих методологиях, пишет код на Clojure, с помощью TDD, вычисляющий результат игры Bowling Game, простого варианта боулинга. Вот его код.
Матиас Джованнини пишет код на OCaml, без TDD, для решения той же проблемы. Вот его код.
Сравните, и вы будете знать все, что следует знать об XP, Agile и TDD.
Все всегда звучит очень заманчиво. Все всегда звучат очень убедительно. Все полемики и манифесты можно просто не читать, а если читать, то ни в коем случае не воспринимать всерьез. Читайте код. Или, если есть время и желание, пробуйте сами. А манифесты и методологические книги - пусть себе скрипит губерния.
no subject
Date: 2009-10-06 05:30 pm (UTC)в одной из систем у нас, например, несколько критически важных классов были вообще вне тестов. сознательно :) потому что писать тесты на них заолбаешься, а если что в них поломать - слетает вся система, так как ими пользуются ВСЕ оставшиеся ;)
no subject
Date: 2009-10-06 05:39 pm (UTC)no subject
Date: 2009-10-06 05:44 pm (UTC)Agile — не про то, как [...]. Он про то, как всегда иметь прототип для показа заказчику и последовательно его рихтовать и оживлять.
Могу вообразить, что хороший системный программист напишет решение судоку на ассемблере коротко, понятно и легко читаемо, а плохой программист на хаскеле — длинно, непонятно и медленно. Но точно так же может выйти наоборот; всё зависит от того, на какой стороне окажется хороший программист.
no subject
Date: 2009-10-06 05:45 pm (UTC)no subject
Date: 2009-10-06 05:47 pm (UTC)no subject
Date: 2009-10-06 05:49 pm (UTC)no subject
Date: 2009-10-06 05:49 pm (UTC)no subject
Date: 2009-10-06 05:50 pm (UTC)no subject
Date: 2009-10-06 05:53 pm (UTC)Хотя сам-то я считаю, что всех, кто любит любые методологии, нужно заставлять выучивать "Нет серебряной пули" Брукса наизусть, окраплять святой водой и отпускать с миром.
no subject
Date: 2009-10-06 05:56 pm (UTC)Это даже как-то нечестно.
(у Рона отвратный Руби)
Бонус про дядю Боба вообще убойный, кошмар.
no subject
Date: 2009-10-06 05:59 pm (UTC)no subject
Date: 2009-10-06 05:59 pm (UTC)no subject
Date: 2009-10-06 06:00 pm (UTC)no subject
Date: 2009-10-06 06:11 pm (UTC)no subject
Date: 2009-10-06 06:14 pm (UTC)no subject
Date: 2009-10-06 06:38 pm (UTC)любые методологии (хоть agile, хоть iso, хоть черт в ступе) предназначены для организации производственного процесса и снижения рисков, связанных с человеческим фактором.
профессиональный уровень программиста, в свою очередь, зависит исключительно от самого программиста (и в меньшей степени от его окружения), но уж никак не от методологии, которую его заставляет использовать начальник.
p.s. второй пример вообще некорректен: текст на clojure честно предваряется замечанием "I’m trying to learn Clojure, and I’m finding the effort challenging. Perhaps you can help me."
no subject
Date: 2009-10-06 07:08 pm (UTC)no subject
Date: 2009-10-06 07:18 pm (UTC)Насчет того, что XP - это вариант для средних программистов в средних конторах - это просто бред, конечно. Это показывает и опыт, и логика. XP также хорош и для сильных, чтобы под этим не подразумевали.
Просто здесь нужно рассуждать в другом контексте. Т.е., говоря о эффектах XP, нужно иметь ввиду не код и не архитектуру, а процесс разработки и деланья бизнеса. Как-то так.
no subject
Date: 2009-10-06 07:20 pm (UTC)no subject
Date: 2009-10-06 07:30 pm (UTC)Теперь переходим к пятому аргументу. Он относится к влиянию инструментов, которые мы пытаемся использовать, на наш образ мышления. Я наблюдаю культурную традицию, которая, по всей вероятности, уходит корнями в эпоху Возрождения: игнорировать это влияние и рассматривать человеческую мысль как первичную и главенствующую над тем, что ей создано. Но когда я начинаю анализировать свои собственные мыслительные привычки и привычки моих друзей, я прихожу, нравится мне это или нет, к совершенно иному заключению, а именно: инструменты, которые мы пытаемся использовать, и язык и обозначения, которые мы используем для выражения или записи наших мыслей, являются основным фактором, который определяет, о чем мы вообще можем мыслить и что можем выразить!
no subject
Date: 2009-10-06 07:42 pm (UTC)no subject
Date: 2009-10-06 08:42 pm (UTC)("Границы моего языка -- это границы моего мира")
no subject
Date: 2009-10-06 08:52 pm (UTC)no subject
Date: 2009-10-06 08:54 pm (UTC)Напоминает грустный анекдот о паттернах проектирования.
Разработчики пишут письмо Э. Гамма: "Мы реализовали в нашей системе уже двадцать шаблонов, а теперь думаем, как нам еще впихнуть в нее оставшиеся три. Уже весь мозг сломали, пытаясь придумать. Может вы взглянете на архитектуру и чего-нибудь посоветуете?"
no subject
Date: 2009-10-06 08:56 pm (UTC)