понедельник, 23 декабря 2013 г.

Критика книги Боба Мартина "Принципы, паттерны и методики гибкой разработки на языке C#"

clip_image002

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

На самом деле, это не первая такая заметка и есть как минимум три статьи с критикой вещей, описанных в этой книге. Вот краткое содержание предыдущих серий:

вторник, 17 декабря 2013 г.

О дизайне и сложностях перевода

Вы когда-нибудь бросали чтение классической книги после прочтения двух десятков страниц, толком не понимая, почему же ее так хвалят и что же со мной не так? При этом я не говорю за книги, типа банды четырех, о которой говорят на каждом шагу, но при этом есть лишь четыре человека в мире, которые прочитали ее от начала до конца. И я тем более не говорю за книги Дональда Кнута на прочтение которых нужно потратить минимум 3 жизни. Я говорю о чем-то попроще, типа DDD Эванса или Корпоративных Шаблонов Фаулера.

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

Именно такая ситуация у меня была с книгами Эванса «Предметно-ориентированное проектирование» и «Проектирование процесса проектирования» Брукса. Я начинал читать классику о DDD дважды, но каждый раз бросал через 20 страниц; тогда я думал, что у меня не было нужного настроя, но в этот раз я, кажется, понял, в чем была причина.

понедельник, 2 декабря 2013 г.

Блогу 5 лет

clip_image002

Да, все верно, первый пост был опубликован ровно 5 лет назад, 2 декабря 2008 года и назывался “LINQ to Objects. VS2008 SP1 Bug” и был посвящен тому, что в VS2008 следующий код:

UPDATE (заменил Select на Cast), спасибо Eugene Ivanchenko:

var bytes = Enumerable.Range(1, 5).Cast<byte>().ToList();

работал нормально, а в VS2008 SP1 падал с ошибкой. Это теперь мы знаем, что так и должно быть и распаковка типа с конвертацией всегда завершается с ошибкой, но тогда это поведение казалось ошибкой.

С тех пор опубликовано две сотни постов и, что самое главное, мне это продолжает нравитьсяJ

понедельник, 25 ноября 2013 г.

О книге Мартина Фаулера “NoSQL Distilled”

clip_image002

“NoSQL Distilled” – это последняя книга Мартина Фаулера, посвященная модной ныне технологии NoSQL. Эта книга является финалистом престижной премии Jolt Award этого года и написана в стиле, аналогичном другой книге Фаулера – UML Distilled. Соавтором Мартина является Pramodkumar Sadalage, автор очень толковой книги “Refactoring Databases: Evolutionary Database Design”.

четверг, 14 ноября 2013 г.

WCF и архитектура приложений

В этой заметке я отталкиваюсь от определения архитектуры, которое предложил Мартин Фаулер в своей статье “Who Needs an Architect?”, перевод которой я публиковал в прошлый раз.

В чем главное отличие WCF от своих предшественников, таких как .NET Remoting, веб-сервисы, MSMQ или более старых технологий, таких как DCOM?

Расширяемость? Так .NET Remoting тоже содержит 100 500 слоев и расширяем донельзя. Возможность взаимодействия с приложениями на других платформах? Так это же умели делать и веб-сервисы. Ориентированность на обмен сообщений? Так именно эта идея заложена в основе MSMQ.

понедельник, 11 ноября 2013 г.

Кому нужен архитектор?

Кто такой архитектор и что такое архитектура? На самом деле, на эти вопросы нет простого и понятного ответа. Есть стандарты, в которых даются определения этим терминам, но они как всегда унылы чуть более, чем полностью.

Недавно я наткнулся на статью Мартина Фаулера “Who Needs an Architect?” и просто не смог пройти мимо, поскольку в ней даются очень интересные определения архитектора и архитектуры. Ниже представлен перевод этой статьи с моими аннотациями по ходу дела.

пятница, 1 ноября 2013 г.

97 вещей, о которых можно и не знать любому программисту

(Каждый из вас может получить самостоятельное представление о содержимом этой книги по адресу – programmer.97things.oreilly.com)

clip_image002

Представьте, что вы просыпаетесь среди ночи с озарением: я хочу написать книгу! Вы при этом понимаете, что писать книгу с нуля муторно, наработок толком нет, да и с темой еще не определился. Но поскольку уснуть не получается, то вы бродите по дому всю ночь в поисках решения. И вот, когда за окном уже начинает светать к вам приходит озарение: миру не хватает книги с общими советами, бесполезными любому программисту! Менеджерам повезло, для них уже вышла книга "97 Things Every Project Manager Should Know", так почему бы не сделать аналогичное доброе дело для программистов?!

Сказано – сделано! Все, что нам нужно, это найти 5 десятков авторов разной степени известности и попросить их поделиться своими сакральными знаниями! От каждого из них нам потребуется всего ничего: вумных мыслей в размере не более одной страницы! А что если у автора уже есть свои известные статьи? Тем лучше, тогда мы попросим выкинуть из нее весь код и "скукожить" в размерах, чтобы даже самому автору она перестала быть понятной! После этого, мы возьмем сотню заметок на самую разную тематику, выкинем 3 лишних, чтобы получить волшебное число 97, тщательно их перемешаем, чтобы от последовательного чтения книги вообще не осталось никакого смысла, напишем введение и ... вуаля, книга готова!