Год назад пытался читать эту книгу. Ничего не понял. Засыпал. Спустя год всё изменилось. Я понял оказывается её читать можно.
Фактически Джим предлагает формализовать некие часто встречающиеся моменты во взаимодействии разработчиков. Как начинать митинги, как вести. Как выявлять намерения и цели разработчиков. Как формировать цели команды. То есть разработать паттерны командного взаимодействия.
Некоторые техники конечно так и хочется покритиковать -- но пока не попробовал, я не имею права это делать. Очень критично читал его вторую книгу - "Правила разработки программного обеспечения" Мак-Карти М. Вот там есть с чем я не согласен (так как попрактиковался уже некоторым вещам). Грубовато как-то. И ещё в начале странные слова "Эта книга представляет собой наглядное и практическое пособие по разработке ответственного крупномасштабного программного обеспечения..." :)
Справка:
Джим и Мишель Мак-Карти, «Программируем командный дух. Базовые протоколы, позволяющие создавать и поддерживать общее видение», Символ-Плюс, 2004, ISBN-5-93286-065-0
Jim McCarthy, Michele McCarthy, “Software for Your Head: Core Protocols for Creating and Maintaining Shared Vision”, Addison-Wesley, 2001, ISBN-0201604566
http://www.microsoft.com/rus/news/issues/2006/06/JimMcCarthy.mspx
http://www.mccarthyshow.com/TheMcCarthyShowIndividualEpisodes/Episode15FamilyTime/tabid/1256/Default.aspx
http://www.sdexpo.ru/data/speakers_2007/jim_mccarthy_software_for_your_head.pdf
Отзывы
http://kirillk.livejournal.com/51279.html
http://community.livejournal.com/mustread/6340.html
В общем, сейчас, считаю книгу очень толковой. Чтобы понять как нужно делать, как не нужно. Аналогов не встречал. Рекомендую к использованию и обсуждению.
четверг, 25 октября 2007 г.
Джим Мак-Карти "Программируем командный дух" и "Правила разработки программного обеспечения"
на 11:51 1 коммент.
Ярлыки: e-books
воскресенье, 21 октября 2007 г.
Применение DDD и шаблонов проектирования: проблемно-ориентированное проектирование приложений с примерами на C# и .NET
Совсем свежая книга, к сожалению, ни на развалах, ни в интернете её купить нельзя.
Как только выйдет - советую покупать! Правильная книга для правильных разработчиков.
К сожалению, лучше бы перевели классическую книгу Эрика Эванса.
--- cut ---
Эта книга о разработке корпоративных программных приложений в среде .NET с применением шаблонов проектирования. В ней описаны: проблемно-ориентированные методы проектирования (DDD, или Domain Driven Design), разработка посредством тестирования (TDD, или Test-Driven Development), объектно-реляционное преобразование, т.е. методы, которые многие относят к ключевым технологиям разработки программного обеспечения. По мере развития и усложнения технологии все большее значение приобретают вопросы правильного применения методов проектирования. Ценность этой книги в том и состоит, что она помогает разобраться в этих вопросах. Хотя большинство примеров кода представлено на языке C#, материал книги может оказаться полезным и для тех, кто работает на платформе Java. Книга адресована опытным разработчикам архитектуры и прикладного программного обеспечения уровня предприятий, в том числе и в среде .NET.
--- cut ---
http://www.williamspublishing.com/Books/978-5-8459-1296-1.html
на 01:27 0 коммент.
воскресенье, 14 октября 2007 г.
Intention Revealing Method
Всё чесались руки сделать паттер "Intention Method". Думал присвоить себе славу и мировое признание. Но и тут меня обогнали на 10 лет :)
[1] Smalltalk Best Practice Patterns. Kent Beck, 1997
[2] Patterns in Java, V.2, Mark Grand
Очень рекомундую прочитать главу 6 [2] под названием "Organization Coding Patterns". Очень простые решения "Intention ..." & "Composed Method" решат многие проблемы нечитаемого кода.
"Если название функции не очевидно, определите метод который будет отражать намерение"
if(LOCK_FILE.CreateNewFile()) {...
меняется на
if(CreateLockFile())
И другой пример из библиотеки java.awt.EventQueue:
if(eventQueueListener != null)
eventQueueListener.eventPosted(theEvent);
смело меняем на
private void notifyEventQueueListener(AWTEvent theEvent)
{
if(eventQueueListener != null)
eventQueueListener.eventPosted(theEvent);
}
на 21:32 0 коммент.
Ярлыки: Patterns, Refactoring
среда, 10 октября 2007 г.
for VS while
Всегда думал, что while используют настоящие мужчины. Но сегодня написал код, которому сам даже не обрадовался. Критерий оценки: нужно приложить усилия, чтобы понять, что по чём.
while (nextLeaseEnd < _finishedRollOverYear)
{
_mtm += _squareFeet.Value;
nextLeaseEnd = nextLeaseEnd.AddMonths(_category.MonthsToNextLeaseEnd);
}
Конечно же меня такой код не устроил. И я начал биться за ясность.
Во время битвы я понял, что мне не нравиться. А не нравилоась совмещение наращивание аргумента и бизнес-логики.
DateTime nextLeaseEnd = _tenant.LeaseEnd.Value;
DateTime end = _startRollOverDate.Value;
int delta = _category.MonthsToNextLeaseEnd;
for(; nextLeaseEnd < end; nextLeaseEnd = nextLeaseEnd.AddMonths(delta))
{
_mtm += _squareFeet.Value;
}
Фактически я ввёл ненавистные мне временные переменные.
Но получил 2 разных куска кода с разными намерениями.
Первый - инициализация и границы перебора.
Второй - бизнес-логика.
Ваше предложение?
на 19:32 2 коммент.
Ярлыки: Refactoring