<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2_-_%D0%BE%D1%82%D1%87%D0%B5%D1%82_%D0%BE%D0%B1_ADD-2011</id>
		<title>Максим Цепков - отчет об ADD-2011 - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2_-_%D0%BE%D1%82%D1%87%D0%B5%D1%82_%D0%BE%D0%B1_ADD-2011"/>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2_-_%D0%BE%D1%82%D1%87%D0%B5%D1%82_%D0%BE%D0%B1_ADD-2011&amp;action=history"/>
		<updated>2026-05-07T19:47:16Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.26.4</generator>

	<entry>
		<id>https://lib.custis.ru/index.php?title=%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2_-_%D0%BE%D1%82%D1%87%D0%B5%D1%82_%D0%BE%D0%B1_ADD-2011&amp;diff=25861&amp;oldid=prev</id>
		<title>StasFomin в 08:08, 18 мая 2011</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC_%D0%A6%D0%B5%D0%BF%D0%BA%D0%BE%D0%B2_-_%D0%BE%D1%82%D1%87%D0%B5%D1%82_%D0%BE%D0%B1_ADD-2011&amp;diff=25861&amp;oldid=prev"/>
				<updated>2011-05-18T08:08:52Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;В статье [[Максим Цепков - отчет об ADD-2011/Заметки по докладам]] - полные заметки, которые я делал на конференции - сохранил для себя&lt;br /&gt;
&lt;br /&gt;
=  ADD-2011 и другие конференции =&lt;br /&gt;
&lt;br /&gt;
Был на второй конференции [http://addconf.ru/ ADD-2011]. Первая была в сентябре [http://addconf.ru/add_2010 в Ярославле], а вторая — в Питере чуть больше, чем через полгода. Конференция понравилась первый раз (смотри [[Макс_Цепков_-_отчет_о_ADD-2010|отчет]]) и совершенно не разочаровала второй. И организацией и уровнем докладов и, главное, обстановкой общения. Я этой весной был и выступал на многих конференциях (AgileDays, SoftwarePeople, ReqLabs) и потому могу сравнивать, и, на мой взгляд, для разработчиков, которые едут на конференцию за профессиональными контактами и обменом мнениями она, на мой взгляд, лучшая. Я сейчас попробую объяснить — почему.&lt;br /&gt;
&lt;br /&gt;
У организаторов и программного комитета вполне определенная позиция — это конференция для того, чтобы разработчики общались и обменивались информацией по вопросам разработки. При этом конференция должна быть доступна, и интересна для широких слоев разработчиков, а не только для каких-то продвинутых гуру. И эту позицию выдерживают — по многим пунктам.&lt;br /&gt;
* Это проведение в пятницу и субботу, используется один рабочий день — в ряде организаций не охотно отпускают на конференции, а получить один день проще чем два.&lt;br /&gt;
* Это более низкая цена, чем на других конференциях, особенно если бронировать место заранее.&lt;br /&gt;
* И главное — это отбор докладов. Они — о практическом опыте разработчиков. При этом, что интересно, в ряде докладов предметом является использование тех или иных технологий, в том числе вендорских, например, MS Workflow Foundation, но когда об этом рассказывает не вендор, а разработчик реального проекта — это звучит по-другому.&lt;br /&gt;
&lt;br /&gt;
Да, про другие конференции, чтобы не было обид. Они тоже хорошие, но у них другие позиции.&lt;br /&gt;
* [http://agiledays.ru/ AgileDays] нацелен на гибкие методологии и организацию процесса разработки. У него был интересный технический трек, но все-таки основной предмет — именно организация процесса и общение преимущественно шло по этим вопросам.&lt;br /&gt;
* [http://softwarepeople.ru/2011/ SoftwarePeople] — это большая конференция, на которой было много интересных докладов по очень разным вопросам, но вот общения — сильно меньше.&lt;br /&gt;
* На [http://www.req-labs.ru/ ReqLabs] было много интересных докладов, но он нацелен на аналитиков, а не разработчиков.&lt;br /&gt;
&lt;br /&gt;
Возвращаюсь к ADD-2011. Конференция проходила 2 дня, было 3 трека по 9 слотов в первый день и 10 во второй. Первые доклады второго дня начинались в 9, и это было очень тяжело. Но, в конце концов, мы же не отдыхать приехали. К тому же, можно было разместиться в той же гостинице, где проходила конференция, что в целом делало ранний подъем достаточно комфортным — хотя сама гостиница была не просто на отшибе, но и далеко от метро. В целом организация была четкой. WiFi работал хорошо и можно было быть online — в отличие от гостиницы, где точек доступа было много, но вот выйти с них в инет получалось очень плохо. Как и на прошлой конференции, шла видеосъемка и запись докладов, и это будет опубликовано. Кстати, запись большинства докладов с ADD-2010 уже опубликована Стасом на [http://addconf.ru/list.sdf/ru/add_2010/reports сайте конференции] — если перейти на конкретный доклад, то можно увидеть запись. Правда, там нельзя посмотреть по каким докладам видео опубликовано, а по каким нет, поэтому даю [[:Категория:ADD-2010|еще одну ссылку]] — на сайт нашей компании. Кстати, по части докладов опубликовано не только видео, но и расшифрованная стенограмма.&lt;br /&gt;
&lt;br /&gt;
Отдельная благодарность Стасу Фомину, председателю программного комитета, за отбор докладов и планирование треков — оно, на мой взгляд, было удачным и каждый мог найти доклад по интересам почти все время конференции. Хотя определенные недовольства тем, что два доклада по одной технологии идут параллельно и потому надо выбирать я на конференции слышал.&lt;br /&gt;
&lt;br /&gt;
{{remark|[[Участник:StasFomin|Стас Фомин]] 15:56, 17 мая 2011 (MSD): Пример?}}&lt;br /&gt;
&lt;br /&gt;
Первый день конференции был, на мой взгляд, сильнее второго. Хотя я могу и ошибаться — возможно, дело в том, что на второй день был мой доклад и и доклад Коли Гребнева из нашей компании, которые, естественно, я не могу оценить с позиции слушателя, а впечатления от большого набора слотов по Nemerle смазывалось потому, что основной разработчик недавно приезжал к нам в CUSTIS на встречу Alt.Net и 4 часа об этом рассказывал.&lt;br /&gt;
&lt;br /&gt;
Надо отметить, что часть докладов относятся к относительно начальному уровню использования тех или иных инструментов и технологий. И, например, для меня — не представляют ничего нового, даже по тем технологиям, которые я не использовал — я это знаю за счет общего информационного фона в нашей компании. Но я тут в тепличных условиях — у нас в компании очень хороший информационный фон даже по тем технологиям как по используемым технологиям (C# и .Net, Java, Oracle), так и по другим, которые напрямую не используются, в том числе современным. А еще — когда рассказывают практический опыт — это всегда полезно и это не мое умозрительное представление, это я слышал по отзывам других участников. После таких докладов у части всплывают их собственные задачи, где можно было бы попробовать те или иные решения. Было также несколько доклады-обобщений собственного опыта по какому-либо аспекту разработки, например, по граблям, возникающим на внешних взаимодействиях — внедрении, интеграции и т. п. И даже если не узнаешь ничего нового, получение такого списка в докладе заставляет задуматься, заново вспомнить и осмыслить свой опыт, что полезно. А еще — вспомнить о том, что в компании опыт — есть, а check list — отсутствует, а тут в презентации его заготовка, которую можно взять.&lt;br /&gt;
&lt;br /&gt;
И это относится только к части докладов. Было много докладов от разработчиков, которые находятся на острие технологий, например, от JetBrains по Language Oriented Programming и от основного разработчика по Nemerle. И даже спонсорские доклады, были не традиционной пропагандой своих продуктов, а представляли интерес, например, Андрей Кощеев HP рассказывал, как у них устроено взаимодействие между разработкой и тестированием, а заглянуть внутрь такой крупной компании — интересно и полезно.&lt;br /&gt;
&lt;br /&gt;
Дальше — обзор докладов. И я его не буду ранжировать по оценкам, потому что почти все, что я слушал — мне нравилось. Правда, в обозрении не все слоты — в основном потому, что кулуарное общение на конференции было столь интенсивным и интересным, что отвлекало от докладов.&lt;br /&gt;
= Что я вынес с конференции =&lt;br /&gt;
&lt;br /&gt;
Платформы для DSL интенсивно развиваются. Я немного обсуждал с Мазиным из JetBrains. На платформе MS есть графический MS DSL и Nemerle для языковых расширений. А на Java — JetBrains MPS. Еще можно на MPS сделать универсальный автономный DSL для обеих платформ, а поскольку в .Net есть Java, то, возможно, на MS DSL можно делать кросс-платформенный графический DSL. А вот Simonyi никак не выпустит свой софт (http://www.intentsoft.com), идеями которого был вдохновлен MPS.&lt;br /&gt;
&lt;br /&gt;
Графический DSL обычно лучше с маркетинговой точки зрения, но, возможно, хуже для программистов, здесь интересен опыт JetBrains в YouTrack. Идея — что картинки рисовать точечно, потому что область, где они лучше текста — ограничена. Идея Раскина — графически представляем, но описываем, правим и вводим текстом. Например, имеем набор дел, выбрали конкретное и командами меняем, а не gui. Программисты пользуются. А hr — учат их, но осваивают плохо, преимущественно gui. Кстати, сейчас выходит YouTrack-3 с workflow, и они внутри компании на нем делают всякие приемы на работу и увольнения. Настройка workflow пока не графическая, но есть в планах. Так что, возможно, через некоторое время появится MPS с графикой — YouTrack сделан на нем, ограниченная версия используется для точек расширения.&lt;br /&gt;
&lt;br /&gt;
С доклада Чашкина по HTML5. Сейчас туда заложены механизмы, который вроде как позволяет сделать web-приложение работающим как online, так и автономно, с синхронизацией с центральным репозиторием по кнопке. Это, в целом, демонстрировалось в реальном продукте. В основном это дают два механизма — локальные базы данных и настраиваемое кеширования запросов на сервер, включая ответы скриптов. При этом кеширование запросов настраивается поверх работающего приложения. Но, естественно, это не для любого приложения, есть ограничения на архитектуру. По-моему, сочетание технологий может дать некоторый технологический прорыв. Но пока еще есть технические ограничения — большинство больших броузеров не поддерживают html5 в нужном объеме, а вот на Safari iPhone уже все есть.&lt;br /&gt;
&lt;br /&gt;
Наблюдается отчетливая общественная тенденция — один человек пишет фреймфорк (или продукт), который многие используют и это в рамках некоммерческой деятельности. Примеры с конференции — mvp4g, nemerle, средство для лога у Кирпичева.&lt;br /&gt;
&lt;br /&gt;
По разговорам со Стасом Давыдовым о фрилансе. Мне пришла мысль, что бурное развитие общения в социальных сетях, в котором многие сейчас чувствуют себя комфортно, постепенно меняет мир и, в частности, работа в распределенных командах самоорганизующихся фрилансеров может быть будущим ИТ. Этот тренд стоит учитывать.&lt;br /&gt;
&lt;br /&gt;
Антон Белоусов рекомендовал книгу [http://www.pragprog.com/titles/mnee/release-it Michael Nygard — Release It!] и, наверное, я ее прочту.&lt;br /&gt;
&lt;br /&gt;
= Доклады CUSTIS по DDD =&lt;br /&gt;
&lt;br /&gt;
Начну я отчет с двух докладов по Domain Driven Design — моего и Коли Гребнева, который тоже работает в нашей компании. Несмотря на работу в одной компании, у нас весьма различаются взгляды на DDD, что выяснилось в процессе подготовке. При этом мы оба считаем, что находимся в согласии с Эвансом и его книгой по DDD, и имеют место быть просто разные интерпретации. Поэтому доклады представляют собой разные точки зрения. К тому же они разнесены по темам: Коля рассказывал об основах применения DDD при объектном программировании и объектных моделях предметной области, а я — о необъектных моделях предметной области, которые могут реализовываться в рамках DDD, в том числе и на объектных языках программирования.&lt;br /&gt;
&lt;br /&gt;
Оба доклада вызвали интерес, вопросы и обсуждения участников.&lt;br /&gt;
&lt;br /&gt;
А я кратко остановлюсь на общем в наших взглядах и на различных точках зрения — быть может, это побудет читателей посмотреть доклады и сформировать свою точку зрения или, во всяком случае, лучше представлять спектр представлений о DDD.&lt;br /&gt;
&lt;br /&gt;
Итак, поскольку мы оба опираемся на концепцию DDD и, прежде всего на концептуальную книгу Эванса, которую оцениваем высоко, то имеется много общего. Это, прежде всего — '''модель''', которая строится как модель предметной области, а потому становится моделью системы. Модель должна прослеживаться как в предметной области, так и в программном коде. Для построения модели используется '''единый язык''', понимаемый как заказчиками и пользователями, так и аналитиками и разработчиками. И этот единый язык должен включать графические диаграммы для представления модели, например, диаграммы классов. Самой распространенным способом построения модели является объектно-ориентированная парадигма. При этом DDD — не тоже самое, что ООП. В рамках ООП мы, вообще говоря, можем иметь дело с любыми объектами, например, экранными формами и их областями или объектами работы с базой данных — DataSet и RecordSet. А DDD говорит о том, что объекты должны соответствовать реальным бизнес-объектам предметной области.&lt;br /&gt;
&lt;br /&gt;
А дальше начинаются различия. Коля полагает, что отражение модели в код должно быть прозрачным переводом с языка модели на язык программирования и именно об этом говорил в своем докладе. То есть классы модели должны быть отражены в классы на языке, описания действий в модели должны быть отражены в их реализацию и так далее. А если потребности эффективной работы требуют внутренней реорганизации методов, появления каких-то промежуточных сущностей или действий, то они должны появиться в модели. Таким образом, пределы и способ работы на DDD существенно определяется имеющимися средствами реализации. И, если говорить о приложениях с базой данных, то применение DDD означает использование шаблона «Модель предметной области» описанного у Фаулера. Обо всем этом Коля рассказывал в своем докладе.&lt;br /&gt;
&lt;br /&gt;
Я же полагаю, что отражение в реализацию может быть гораздо более сложным. Важно лишь, чтобы оно было регулярным, и элементы модели можно было проследить в коде. Что достигается применением шаблонов для этого отражения. Например, можно использовать DDD при реализации работы с базой данных через DataSet/RecordSet. Надо лишь договориться, что каждой бизнес-сущности будет соответствовать свой единственный RecordSet и свой TableAdapter, записи в котором суть элементы класса, а каждый бизнес-метод реализуется как метод в этом RecordSet. Может быть другое отражение, важно лишь, чтобы оно было одинаковым по всей системе и соответствие не нарушалось. Такой подход дает возможность применять необъектные модели предметной области в DDD, несмотря на реализацию на объектных языках программирования — надо лишь построить шаблоны. О двух из них, применяемых в нашей компании, я рассказывал — документооборот на основе диаграммы состояний с использованием шаблона State Entity и реализация учета с собственными диаграммами учета и шаблоном отображения.&lt;br /&gt;
&lt;br /&gt;
= Краткие резюме докладов =&lt;br /&gt;
&lt;br /&gt;
Резюме докладов идут в том порядке, в котором я их слушал на конференции — поскольку практически все доклады мне понравилось, я не стал их делить по оценкам.&lt;br /&gt;
&lt;br /&gt;
== Максим Мазин, JetBrains. Language Oriented Programming (LOP) в действии ==&lt;br /&gt;
{{/Language Oriented Programming (LOP) в действии}}&lt;br /&gt;
&lt;br /&gt;
== Никита Прокопов, Xored. Философия простоты, или еретическая лекция о программировании ==&lt;br /&gt;
{{/Философия простоты, или еретическая лекция о программировании}}&lt;br /&gt;
&lt;br /&gt;
== Антон Котенко, iPark Ventures. Processing и Fluxus ==&lt;br /&gt;
&lt;br /&gt;
{{/Fluxus}}&lt;br /&gt;
&lt;br /&gt;
== Ольга Павлова, UsabilityLab. Интерфейсы: битва за право влияния ==&lt;br /&gt;
&lt;br /&gt;
{{/Интерфейсы}}&lt;br /&gt;
&lt;br /&gt;
== Яков Сироткин, Академический университет. Разработка программного обеспечения для маленьких ==&lt;br /&gt;
{{/Разработка программного обеспечения для маленьких}}&lt;br /&gt;
&lt;br /&gt;
== Михаил Гедзберг, Luxoft. Time Management для программиста ==&lt;br /&gt;
{{/Time Management для программиста}}&lt;br /&gt;
&lt;br /&gt;
== Иван Чашкин, Дзенмани.ру. Веб-приложения на HTML5, как альтернатива нативным приложениям ==&lt;br /&gt;
{{/Веб-приложения на HTML5, как альтернатива нативным приложениям}}&lt;br /&gt;
&lt;br /&gt;
== Александр Черный, Студия Михаила Кечинова. Взаимодействие дизайнера и программиста ==&lt;br /&gt;
{{/Взаимодействие дизайнера и программиста}}&lt;br /&gt;
&lt;br /&gt;
== Евгений Кирпичёв, Mirantis. Швейцарский нож аналитика — визуализируем логи одной строкой! ==&lt;br /&gt;
{{/Швейцарский нож аналитика — визуализируем логи одной строкой!}}&lt;br /&gt;
&lt;br /&gt;
== Антон Котенко, iPark Ventures. Мастер-класс веб-разработка на GWT и mvp4g ==&lt;br /&gt;
{{/Мастер-класс веб-разработка на GWT и mvp4g}}&lt;br /&gt;
&lt;br /&gt;
== Андрей Кощеев, HP. Технологии улучшения взаимодействия между разработкой и тестированием ==&lt;br /&gt;
&lt;br /&gt;
Это был совершенно нетипичный доклад спонсора конференции и то, что организаторы сумели побудить спонсоров делать такие доклады — их большая заслуга. В докладе Андрей рассказывал об организации работы внутри самой компании HP и используемых для этого средствах. Заглянуть во внутреннюю кухню большой компании — интересно. Особенно для начинающих разработчиков. И хотя я в середине ушел на MongoDB, но, думаю, услышу подробности от тех наших ребят, кто остался. А сам доклад — успешно конкурировал с кофе-брейком.&lt;br /&gt;
&lt;br /&gt;
Началось все понятной логикой. Тестирование эволюционирует. От интерактива и проверки по месту к автотестам по скриптам и нагрузочному тестированию. Постепенное разделение труда, выделение тестировщиков между разработкой и заказчиком, постепенно — сотделом тестирования. Прокладка приводит к фиксации требований как отдельный документ — иначе всегда надо звать заказчика. А потом — метрики и прочее. В общем, разделение труда плюс бюрократия приводит к тому, что эффективность падает… Где-то там возникает еще система управления проектами.&lt;br /&gt;
&lt;br /&gt;
Я: Вообще, весьма интересный взгляд на эволюцию процесса. Он отличается от того, что есть у меня по тому же самому вопросу, но не вызывает отторжения, а, наоборот, есть идея подумать об этом, чтобы получить композитный результат. И еще про эффективность. Брукс объясняет коэффициент 10 между индивидуальной и промышленной разработкой, говоря, что падение производительности — обоснованное требованиями. В общем, тут то же самое.&lt;br /&gt;
&lt;br /&gt;
Дальше доклад пошел в описание видов взаимодействия и тулы HP ALM, которая эти задачи решает и интегрируется со всеми платформами и средствами разработки (среды, системы контроля версий и прочее).&lt;br /&gt;
&lt;br /&gt;
== Сергей Туленцев, 42bytes. MongoDB ==&lt;br /&gt;
{{/MongoDB}}&lt;br /&gt;
&lt;br /&gt;
== Дмитрий Завалишин, Digital Zone. Взаимоотношения заказчика и исполнителя на проекте ==&lt;br /&gt;
{{/Взаимоотношения заказчика и исполнителя на проекте}}&lt;br /&gt;
&lt;br /&gt;
== Стас Давыдов. Фриланс: будущее IT-разработки (уже наступило) ==&lt;br /&gt;
{{/Фриланс}}&lt;br /&gt;
&lt;br /&gt;
== Максим Игнатов e-Legion. Разработка приложений с использованием Windows Workflow Foundation ==&lt;br /&gt;
{{/Разработка приложений с использованием Windows Workflow Foundation}}&lt;br /&gt;
&lt;br /&gt;
== Павел Белоусов. Пример разработки высоконагруженной реляционной базы данных ==&lt;br /&gt;
{{/Пример разработки высоконагруженной реляционной базы данных}}&lt;br /&gt;
&lt;br /&gt;
== Михаил Антонов, Magenta Development. Особенности масштабирования систем планирования и управления поставками ==&lt;br /&gt;
{{/Особенности масштабирования систем планирования и управления поставками}}&lt;br /&gt;
&lt;br /&gt;
== Александр Календарев, ISOEMO. Увеличиваем производительность MySQL в десятки раз используя HandlerSocket ==&lt;br /&gt;
&lt;br /&gt;
Любопытный доклад. HandlerSocked — это такая прокладка дял доступа к MySQL-базе данных минуя собственно MySQL, по индексам. Обеспечивается очень высокая производительность. Эффект — не парсим запросы, очень маленькая коммуникация в сети. Оптимизация запросов, буфера — все мимо, работаем на нижнем уровне. Еще — один поток может принимать несмколько потоков. Но имеем только keyvalue доступ по индексам БД, например, выбрать все города региона. При этом можно использовать не только на чтение, но и на запись.&lt;br /&gt;
&lt;br /&gt;
== Блиц Филиппова ==&lt;br /&gt;
{{/Блиц Филиппова}}&lt;br /&gt;
&lt;br /&gt;
== Антон Белоусов, EasyFinance.ru. Заднее чутье разработчика, или как избежать проблем эксплуатации? ==&lt;br /&gt;
{{/Заднее чутье разработчика}}&lt;br /&gt;
&lt;br /&gt;
{{replicate-from-custiswiki-to-lib}}&lt;br /&gt;
[[Категория:ADD 2011]]&lt;/div&gt;</summary>
		<author><name>StasFomin</name></author>	</entry>

	</feed>