SECR-2010: Отчет Белобородова Дмитрия

Материал из CustisWiki

Версия от 04:05, 4 ноября 2010; BenderBot (обсуждение | вклад) (1 версия)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск

Содержание

Регистрация и организация

Конференция проходила там же, где и в предыдущие годы (ГУ-ВШЭ). Из основных дней конференции посетил 2 (первый и третий).

Сначала о плохом:

  • в первый день были накладки с регистрацией: не были готовы наборы с раздаточными материалами, начало регистрации задержалось на 40 минут;
  • очередной раз среди рекламного мусора из раздаточных материалов не обнаружилось блокнота (предполагая это, чистый блокнот был предусмотрительно взят с собой из дома);
  • еще одной необходимой вещью материалов является электронная копия всех докладов. Увы, на приложенном CD оказался только 2-мегабайтный файл каталога конференции;
  • организация докладов и семинаров была далека от идеала, мягко говоря. Яркой иллюстрацией этого служит отзыв об организации семинара Бьярна Страуструпа (приехавшего в первый раз в Россию и, вероятно, в последний). Отзыв доступен в разделе блогов Яндекса, в строке поиска набрать «Страуструп tekama», перейти по первой ссылке (рекомендуемый возраст читающих — 18+ :);
  • между докладами не было минимальных перерывов, поэтому была велика опасность не успеть перейти из зала в зал.

К счастью, в остальном все оказалось относительно неплохо (почти всегда выбрать доклад было из чего, с питанием проблем не возникло и т.д.).


Далее приведены личные впечатления от прослушанных докладов, упорядоченные от очень хороших и интересных до плохих. Старался слушать доклады, максимально связанные с процессом разработки (технические или, если таковых не оказывалось, хотя бы методологические).

Очень хорошие доклады

Введение в C++0x

Double-Stroustrup.jpg
Докладчик
Бьярн Страуструп
Компания
Texas A&M University

Докладчик Бьярн Страуструп является автором языка C++ (на основе которого были созданы C# и Java, соответственно, Андерсом Хейлсбергом и Джеймсом Гослингом). Как раз во время проведения конференции (14 октября) исполнилось 25 лет С++. На приведенном фото слева — Страуструп тогда (точнее, это фотография с задней стороны обложки его главной книги Язык программирования С++), на фото справа — сейчас.

Доклад был посвящен новой версии стандарта C++0x языка C++, которая вскоре будет принята. Принятие C++0x позволит

  • сократить отставание по языковым возможностям от C# и Java;
  • улучшить язык для системного программирования и построения библиотек;
  • сделать язык более легким для обучения.

Удалось найти в Интернете презентации Страуструпа для семинара, который проходил на SECR-2010 13 октября. Первая презентация называется «APT tutorial», вторая — «Frequent Mistakes». Слайды, рассказывающие о C++0x, содержатся в 3-й части «APT tutorial» («Part 3 C++0x»).


После краткого вступления (цели нового стандарта, состав комитета) вся остальная часть доклада была отведена описанию новшеств с хорошо подобранными мини-примерами кода, их иллюстрирующими.

Новшеств очень много (от синтаксического сахара до действительно серьезных):

  • исключение пробела между двойными угловыми скобками при определении шаблона (template) в шаблоне;
  • автоопределение типа по инициализации (ключевое слово auto);
  • упрощенное итерирование по списку элементов (т.н. foreach);
  • списки инициализации для сложных типов;
  • новые контейнеры в стандартной библиотеке (STL): unordered_map, forward_list, array и т.д.;
  • поддержка многопоточности средствами языка (std::thread, std::future, std::mutex);
  • лямбда-функции и замыкания;
  • и т.п.

Стандарт планируется принять к марту 2011 года. Больше всех старается ускорить принятие фирма Microsoft.

При ответах на вопросы сказал, что

  • книга Язык программирования С++ будет переписана на 80% (уже начал переписывать);
  • планируется, что при упрощении синтаксиса более сложные и неудобные конструкции через некоторое время станут редко используемыми;
  • поддерживающие стандарт продукты, скорее всего, появятся значительно раньше его принятия.

После доклада (он был последним на конференции) была устроена автограф-сессия. Устроители подсуетились и организовали продажу книги Страуструпа Программирование: принципы и практика использования C++. Однако

  • в предисловии книги говорится, что она рекомендуется ДО книги Язык программирования С++ (т.е. полезна для совсем начинающих);
  • несмотря на то, что, сейчас 2010 год, книга выпущена в 2011 году (держал книгу в руках в магазине, сам видел).

Отличный доклад, полностью оправдал ожидания.

P.S. Доклад на подобную тему на ADD-2010 недавно делала Елена Сагалаева (Алена C++), см. ее рассказ и саму презентацию.

Автоматическая генерация базовых тестов для программных интерфейсов библиотек на основе заголовочных файлов

LSB-Infrastructure-Project.png
Докладчик
Владимир Рубанов
Компания
ИСП РАН

Автор доклада Владимир Рубанов (ударение в фамилии на первый слог) является коллегой нашего Стаса Фомина (параллельно с работой в CustIS трудящегося и читающего лекции в Институте системного программирования РАН).

Рассказал о пакете API Sanity Autotest, который может быть использован для автоматизации генерации и написания unit-тестов (для C/C++, тесты генерируются по сигнатурам процедур и функций, содержащихся в заголовочных файлах, т.е. в .h-файлах).

Пакет использован на тестировании библиотек

Инициатором работ, приведших к написанию продукта, была Nokia, обратившаяся к РАН с просьбой протестировать десятки тысяч процедур и функций библиотеки Qt (в ходе тестирования ошибки нашли и Qt Software/Nokia их даже исправила). Возможно (как утверждает Владимир) портирование пакета на C# и Java.

Кстати, список, например, этих проектов, выполняемых в ИСП РАН, весьма интригующ.

Безусловно, доклад понравился, можно скачать и попытаться поэкспериментировать с пакетом.

Уменьшение влияния человеческого фактора при разработке бизнес-приложений

Докладчик
Алексей Алексеев, Николай Гребнев
Компания
CUSTIS

Присутствовал на докладе коллег из отделе технологического развития о разработанном инструментарии, позволяющем использовать декларативные проверки уровня доменной модели. Требуемые методы классов аннотируются правилами, задающими допустимые состояния для выполнения конкретных методов. Реализовано в виде плагина к Microsoft Visual Studio (существует только в виде плагина или не только, точно не понял). Соответственно, язык программирования — C#.

Ключевые слова доклада: Model Checking, структура Крипке, CTL.

Рассказывали хорошо, сменяя друг друга и иллюстрируя все презентацией. На вопросы отвечали уверенно. Сидевший на первом ряду Стас Фомин помогал отвечать, пространно развивая темы вопросов.

Познавательно, интересно, не пожалел, что пошел на доклад.

Agile Learning: Эффективные инструменты

Докладчик
Стас Фомин
Компания
CUSTIS

Стас, как обычно, был очень хорош! Еще до посещения доклада посмотрел анонс. Стас представил новый формат презентации:

  • презентация была в виде mind map, ветви которого были направлены вертикально вниз, по ходу рассказа докладчик прокручивал видимую область вертикально (после расспросов Стаса выяснилось, что был использован Freeplane, форк FreeMind);
  • Стас рассказывал стоя, держа ноутбук на весу и управляя мышкой-пером;
  • предложил слушателям пройти квест (увы, идея не удалась из-за отвратительного качества связи по WiFi).

Доклад был живой, большинству присутствовавших явно понравился, в зале было много людей (несмотря на то, что Стасу пришлось конкурировать за внимание слушателей с уже начавшимся обедом). После окончания времени доклада многие остались продолжать слушать Стаса в зале.

Несколько небольших замечаний, которые могли бы еще усилить эффект от доклада (надеюсь, Стас не обидится):

  • после истечения времени доклада стоило сказать что-то вроде «основное время доклада закончено, желающие могут остаться в зале» (оказался размытым конец доклада);
  • начиная показывать что-то (девушка из зала просила показать редактирование статей в MediaWiki), не стоило перескакивать на другую тему (девушка не дождалась продолжения показа и покинула зал);
  • упомянув про возможность создания презентаций в MediaWiki, на основе S5, надо было показать процесс (действительно, очень удобно и просто пользоваться);
  • постараться употреблять только цензурные выражения во время доклада:
    • режет слух;
    • в зале женщины и дети;
    • плохо влияет на карму докладчика.

Форма доклада очень интересная, энергия докладчика передается слушателям (воплощаясь в желание начать использовать представленные инструменты).

Опыт разработки в Яндексе: особенности процесса и ключевые технологии

Yandex.png
Докладчик
Илья Сегалович
Компания
Yandex

Глава (точнее, «директор компании по технологиям и разработке») Яндекса рассказал про свою компанию:

  • организационную структуру;
  • имеющиеся регламенты;
  • используемые инструменты (Jira, Git, SVN и т.д.)
  • языки программирования, применяющиеся при разработке продуктов (C++, Java, Python, Perl);
  • операционные системы (FreeBSD, Linux);
  • интересные ссылки:
  • примеры перспективных технологий:

Слегка поверхностный доклад (Илья Сегалович успел закончить рассказ задолго до окончания отведенного времени), но очень живой и позитивный.

Собственно, доклад преследовал 2 цели:

  • создание положительного мнения о компании у разработчиков (в т.ч. потенциальных работников);
  • привлечение внимания к продуктам и сервисам, предоставляемым Яндексом.

Уверенно ответил на множество заданных вопросов.

Интересно было посмотреть и послушать представителя руководства крупнейшей поисковой российской системы.

Хорошие доклады

Программирование, ориентированное на качество

Parasaft-Jtest.png
Докладчик
Андрей Уразов
Компания
Parasoft

Прелюдией основной части доклада было перечисление ошибок, возникающих при разработке ПО, и методов обнаружения этих ошибок:

  • статический анализ;
  • динамический анализ;
  • модульные и функциональные тесты;
  • обзор кода (code review).

Способом решения для языка Java предлагался продукт Parasoft Jtest, выполняющий

  • статический анализ кода;
  • автоматизацию процесса code review;
  • упрощение создания unit-тестов (заявлена поддержка JUnit и Jakarta Cactus;
  • обнаружение ошибок времени исполнения (утечки памяти и ресурсов и т.д.)

Наглядно было продемонстрировано (виды экрана на слайдах)

  • обнаружение NillPointerException в коде Apache Ant;
  • поиск неоптимального кода в FindBugs (популярное приложение статического анализа кода Java).

Jtest является флагманским продуктом, но есть аналогичные решения для .NET (Parasoft .TEST) и C/C++ (Parasoft C++test)

Правда, докладчик слегка перегнул палку со статическим анализом, присутствуя на докладе Ильи Сегаловича (CEO Яндекса) и задав ему соответсвующий вопрос (используют ли они статический анализ и насколько широко). Сегалович, естественно, не дал ему точный ответ.

Доклад понравился, продукт заинтересовал.

«Mind the Gap» – что делать с растущими ожиданиями клиента

Mind-Gap.png
Докладчик
Олег Ридченко
Компания
Intetics Co.

В начале доклада была приведена простая формула, вокруг которой и был построен весь последующий доклад:

Expectation Gap (E-gap) = Experiance - Expectations
Расхождение ожиданий = Ценность - Ожидания

Под ценностью понимается услуга, предоставляемая клиенту (или написанная для клиента программа, которая дорабатывается и сопровождается). Ожидания — то, что клиент ожидает получить. Расхождение ожиданий — отличие между полученным и ожидаемым: > 0 — хорошо (получили больше, чнм ожидали), < 0 — плохо (получили меньше).

График я воспроизвел самостоятельно. Когда значение E-gap опускается ниже оси абсцисс (т.е. становится < 0), с клиентом начинаются проблемы.

Оставшееся время докладчик рассказывал, как можно повлиять на увеличение ценности. На тот факт, что на ожидания тоже можно (нужно) влиять (снижая их), справедливо указал один из зрителей.

Полезный доклад для того, чтобы более осмысленно общаться с клиентами.

P.S. Фразой «mind the gap» в метро (первоначально в лондонском) пассажиров предупреждают об опасности промежутка между вагоном и платформой.

Любопытные доклады

Конфигурационно-ориентированное программирование

DandiWay.png
Докладчик
Радован Вречка
Компания
DandiWay

Поведал о «дальнейшем развитии ООП» (по мнению докладчика) — конфигурационно-ориентированном программировании (КОП).

Насколько я понял (поискав в Интернете и ничего не найдя), термин придуман словацкой компанией DandiWay. Вместо ООП-класса, содержащего данные и код, используется КОП-модуль (дополнительно к данным и коду добавляется некая конфигурация). Вместо экземпляра класса на основе конфигурации создается (инстанцируется) экземпляра КОП-модуля. Якобы существенно уменьшается количество кода при разработке, позволяя дополнительно гибко комбинировать модули.

Продукт представляет из себя библиотеку (фреймворк) на Java, называющуюся Box Framework, для построения веб-приложений.

Доклад любопытный, однако представленный продукт явно не мейнстрим (и вряд ли им будет).

Семантические интерфейсы языков программирования

Interstron.png
Докладчик
Евгений Зуев
Компания
Интерстрон

В начале рассказа было уточнено, что более точная тема — «Семантические интерфейсы языков программирования C++». Фирма Интерстрон занимается написанием компиляторов для специализированной аппаратуры.

В процессе компиляции по коду программы создается семантическое представление (строится синтаксическое дерево абстрактное синтаксическое дерево), описал процесс. Рассказал также про архитектурные отличия их проекта (SemantiС++) от программ-конкурентов.

Честно говоря, про компиляторы знаниями никакими не обладаю, приходит на ум только книга Dragon Book (она же, как оказалось, Green Dragon Book). Есть еще Red Dragon Book и Purple Dragon Book.

Познавательно, но писать компиляторы, увы, вряд ли придется.

Сравнение двух моделей предсказания успеха в проектах по разработке программного обеспечения

Докладчик
Андрей Магляс
Компания
Лаппеенрантский Университет Технологий

На доклад попал случайно. Торопился на другой первый доклад третьего дня, но доклад перенесли на более позднее время (увы, для девушки-докладчицы, параллельно с докладом Страуструпа).

Группа товарищей из Лаппеенрантского Университета Технологий (в т.ч. докладчик) сравнивали 2 модели предсказания успеха в проектах при разработке ПО:

  • Standish Group Model
  • McConnell Model

Было взято большое количество проектов разного размера. Более точной оказалась McConnell Model.

В проектах использовались разные методологии (по степени убывания частоты встречаемости):

  • итеративная;
  • хаотическая (т.е. без какой-либо системы);
  • Agile.

Что интересно, не выявлено существенной связи используемой методологии и вероятности успеха (sic!).

Результаты исследования, рассказанные в докладе, занятные.

Проблемы и направления развития инструментария RAD

Embarcadero.png
Докладчик
Всеволод Леонов
Компания
Embarcadero

Краткий экскурс в историю, чтобы стало понятно, чем примечательна фирма Embarcadero. В конце 80-х и в 90-х годах прошлого века средства разработки от фирмы Borland имели достаточно высокую популярность (в нашей стране — даже очень высокую):

  • Turbo PascalBorland PascalDelphi (линейка Pascal/Object Pascal);
  • Turbo CTurbo C++Borland C++Borland C++ Builder (C/C++);
  • JBuilder (Java) был значительно менее популярен, но все же известен.

В определенный момент компания являлась инновационным лидером в некоторых областях (например, Borland C++ превосходил Microsoft Visual C++), однако это продолжалось не слишком долго. В результате недальновидной политики компания превратилась в аутсайдера в области средств разработки, RAD-продукты потеряли популярность. На 2 года компания Borland меняла название на Inprise (c 1998 по 2000 гг.). В 2006 году направление интегрированных средств разработки (IDE) было выделено в самостоятельное подразделение CodeGear. В 2008 году компания Embarcadero Technologies купила Codegear у Borland (Borland переключилась на область управления жизненным циклом приложений). Embarcadero последние 2 года активно выпускает новые версии продуктов, но их время, увы, ушло. В последнюю версию RAD Studio XE входят:

  • Delphi (Object Pascal)
  • С++ Builder (C/C++)
  • Delphi Prism (C#)
  • RadPHP (PHP)

Лояльно отношусь к продуктам Borland, т.к. приходилось совсем немного пользоваться Turbo Pascal (в учебных целях) и много продуктами линейки C/C++. К счастью, так и не пришлось никогда серьезно использовать Delphi, т.к. вовремя появился его аналог для С++C++ Builder (та же среда разработки и библиотека классов, но другой язык). Всегда казалось, что использующих Delphi компания сильно подставляет, т.к. в случае исчезновения продукта (или утраты популярности) перевести живые проекты просто не на что (нет популярных средств разработки для Object Pascal), что и подтвердилось.

Докладчик (скорее, евангелист) от Embarcadero порекламировал свежий RAD-продукт компании RAD Studio XE, рассказав, что в него входит (см. выше). Предполагаю, что пока компания будет держаться за свою священную корову Delphi, отодвигая на второй план востребованное рынком (C++, C#, Java), ей ничего не светит. Тем более, на вопрос из зала нынешнего работника фирмы Borland, появятся ли снова бесплатные урезанные версии продуктов (как версии Express у Microsoft), был дан отрицательный ответ.

Вывод: люди не учатся на своих ошибках, предлагая слабовостребованные рынком инструменты разработки.

P.S. Несмотря на сегодняшнюю непопулярность продуктов Borland/Codegear/Embarcadero (ничтожную популярность) они, как ни странно используются в популярных продуктах:

  • FAR Manager — популярный файловый менеджер, используется (по крайней мере, в ранних версиях использовался) Borland С++ (не C++ Builder);
  • Total Commander — популярный файловый менеджер, написан на Delphi;
  • Skype — голосовая связь через Интернет (VoIP), клиент для Windows, как ни странно, написан на Delphi (что его характеризует не с лучшей стороны :).

Основные сложности agile проекта с фиксированной ценой для корпоративного заказчика

Докладчик
Сергей Андржеевский
Компания
First Line Software

Очень большого интереса доклад не вызвал, т.к. за последнее время на конференциях стало достаточно много подобных докладов. Автор рассказывал о своем (и своей фирмы) опыте разработки проектов с использованием Agile. Чувствую себя слегка объевшимся данной темой.

Полезными показались приведенные ссылки на продукты, ими используемые:

  • http://www.planningpoker.com — организация Planning Poker при распределенной разработке;
  • http://sprintometer.com — приложение для управления процессом разработки по Scrum и XP.

Доклад без особых откровений, но подробный и добротный.

Бесполезные доклады

Оптимизация процесса разработки программного обеспечения: лучшие методы, практики и техники на сегодняшний день

IBM-Jazz.jpg
Докладчик
Рик Уивер
Компания
IBM

Купившись на название доклада, остался после открытия конференции в основном зале (это был один из первых докладов конференции). Ожидал, что будет рассказано про какие-нибудь оригинальные приемы, техники, практики и, естественно, программные продукты.

Увы, после краткого вступления выступление вылилось в навязчивую рекламу IBM Rational Jazz. Допускаю, что продукт не так и плох.

Доклад лично для меня оказался бесполезен.

Реализация захватом с помощью UML

Докладчик
Александр Орлик
Компания
Craftware Ltd

Доклад был на английском языке, автор, насколько я понял, является сербом. Рассказывал о преимуществах применения Model Driven Architecture, т.е. в построении абстрактной метамодели и ее преобразовании в существующие технологии программирования (например, на основе ООП-языков).

Процесс построения и преобразования демонстрировался на примере продукта Enterprise Analyst, который разработан фирмой Craftware Ltd (к которой Александр имеет прямое отношение). Т.о. это такая реклама коммерческого продукта.

Скептически отношусь к рассказанному, доклад не очень понравился.

Общие выводы

  1. Конференция в этом году понравилась больше позапрошлогодней (в прошлом году не смог прийти на конференцию):
    • доклады стали чуть разнообразней (хотя были и сильно рекламные, и совсем узкоспециализированные технические, что тоже является излишней крайностью);
    • в составе участников стали преобладать разработчики;
    • доклады на слегка приевшуюся тему (Agile) были, но их было не так много и они были не так агрессивны;
  2. Организация конференции стала хуже:
    • проблемы при регистрации (задержка, очереди);
    • презентаций докладов так и нет до сих пор (не приложили на диске, нет на сайте конференции);
    • вопиющий случай — организация семинара Страуструпа.
  3. Неожиданно высоким оказалось количество и качество вопросов, задаваемых слушателями (много спрашивали и вопросы были интересными).


С интересом прочитал отзывы коллег о конференции (может быть, кто-нибудь еще что-то напишет).



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