avva: (Default)
[personal profile] avva
Питер Норвиг, автор (помимо множества прочих заслуг) знаменитых книг об 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.

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

Date: 2009-10-06 08:54 pm (UTC)
From: [identity profile] eoai.livejournal.com

Напоминает грустный анекдот о паттернах проектирования.

Разработчики пишут письмо Э. Гамма: "Мы реализовали в нашей системе уже двадцать шаблонов, а теперь думаем, как нам еще впихнуть в нее оставшиеся три. Уже весь мозг сломали, пытаясь придумать. Может вы взглянете на архитектуру и чего-нибудь посоветуете?"

Date: 2009-10-06 09:00 pm (UTC)
From: [identity profile] avva.livejournal.com
Ага, все это было бы смешно...

Date: 2009-10-06 09:06 pm (UTC)
From: [identity profile] eoai.livejournal.com
Но я ни в жизнь не поверю, что у вас в гугле не используется эджайл, тдд и проч.

Date: 2009-10-06 09:16 pm (UTC)
From: [identity profile] avva.livejournal.com
У нас очень серьезно пропагандируют культуру тестов, с чем я вполне согласен. А вот агиль и тдд официально никак не проталкиваются; есть - не буду отрицать - немало людей, их любящих и пользующихся, но они ни в коем случае не доминируют, скорее наоборот исключение.

Date: 2009-10-06 09:27 pm (UTC)
From: [identity profile] eoai.livejournal.com
Что характерно, "агиль", как вы говорите, ничем не отличается от "не-агиль". Ну назовем "релиз" - "спринтом", "отчет о работе" - "берндаун чартом", "бэклог".. по моему даже и не поменялся. И уменьшим время выпуска релиза до двух недель, до чего некоторые и своим умом дошли. Честно говоря, я так и не понял, что в нем революционного.

А у вас процесс разработки на что похож?

Date: 2009-10-06 09:46 pm (UTC)
From: [identity profile] avva.livejournal.com
Ну, это отдельная большая тема, я сейчас не потяну :)

Date: 2009-10-08 12:11 am (UTC)
From: [identity profile] cema.livejournal.com
Это интересная тема, на самом деле.

Date: 2009-10-08 11:15 pm (UTC)
From: [identity profile] dimrub.livejournal.com
Угу, работал я с такой группой. Не знаю, чего в их коде было больше, паттернов, или тупых копипастнутых функций на 700 строк каждая.

Date: 2009-10-09 06:39 am (UTC)
From: (Anonymous)
Ну, размер функций - это отдельный наш стон. Хотя, в виме, например, почти все функции просто огромны.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 01:19 pm
Powered by Dreamwidth Studios