пятница, 11 декабря 2009 г.

Отчет с конференции AgileDays'09

Конференция проходила 9 декабря 2009 года в бизнес-центре ГУУ (Выхино)

http://www.agiledays.ru

Общее впечатление хорошее, правда наиболее интересными оказались доклады к Agile относящиеся косвенно.

Agile @ Intel

Евгений Сорокин, Антон Бевзюк (Intel) Два Team Lead'а из Intel рассказывали про свой Agile в Нижнем Новгороде. Они делают большое внутреннее финансовое приложение для маркетинга, распределенная команда: программисты в НН (немножко в Индии), аналитики в Англии, бизнес-пользователи в Штатах.

Как у них

К Нижнем на их проекте работает сейчас 12 разработчиков, изначально было 4, в самые напряженные моменты привлекалось до 20. Утверждают, что тестировщиков нет вообще. Agile они начинали с XP(в 2002 году), в с самом книжном его варианте - используют все практики, за исключением Customer-on-Site, в силу удаленность кастомера). Очень сильно форсируют парное программирование - у программиста есть лично рабочее место, но весь код пишется вдвоем, за специальными станциями, с двумя комплектами мышей, клавиатур и мониторов. Парные сессии продолжаются по 1.5-2 часа, каждые 5-20 минут ведущий в паре меняется. Разбиение происходит на standup, который случается в 9-15 ( не работать нам в Intel:)))

В 2008 году у них появился Scrum. Доска у них - (New, WIP, Completed, Support/Testing)+ бумажки-идеи. Работу делят опять же, классически - на user stories, которые делятся на конкретные tasks (объемом работы не более одного дня). При этом добавляется новая роль - Story Owner, программист отвечающий за данную историю целиком. Также, с внедрением Kanban в 2009 году на доске появились Kanban-лимиты.

Заметные отклонения от книжных описаний ( к которым в Intel явно тяготеют) у них случилось только в области планирования. Во-первых, они не планируют итерацию, оценка происходит по ходу. Во-вторых оцениваются не конкретные задачи, а User Stories целиком, причем оценка эволюционировала от идеальных часов через sp к системе (просто-средне-сложно). Также, при планировании в самом начале разработке, у них получилось более 500 user stories, планирование вылилось в кошмар, что научило оценивать более крупными "функциональными" блоками.

Проблемы

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

  1. Долгосрочно планирование. Они это тоже не умеют. В их проекте был фиксированный срок старта (правда, и фиксированный объем работ), рассчитать ресурсы они не сумели, пришлось срочно привлекать помощь из штатов. Правда, измеряя velocity получилось понять это на раннем этапе и не сорвать проект.
  2. Полный Backlog сразу составить не получилось - пришлось делить на большие блоки и уточнять по ходу. По-моему идея была изначально безнадежная)
  3. Распределенная команда - разный уровень, разные критерии оценки, плохо передаются знания. Методы борьбы - стандартные: строго общий бэклог, личное общение
  4. Новички. Команда начиналась с 4 человек, еще 8 набрали по ходу. Кажется студентов) Критерием отбора было знание основ ООП, а не опыт или знание .Net/C#. Говорят, что за 3 месяца новичок превращается в полноценного сотрудника, критерий - можно бывших новичков сажать в пару.

Fun

В Intel есть немало способов скрасить серые будни за написанием тупого кода (почему тупого, см. последний доклад).

  • Каска-чекинка (кто в каске, тот и коммитит, во избежания столкновений)
  • Сокровища('ништяки' по выражению Юли Вяцковой) и проклятья. На standup каждый случайным образом получает бонус( типа права выбирать любого в пару) и обязанность (типа протереть мониторы или убрать warning'и компилятора)
  • Сердечки - на специальной доске каждый член команды получает розовые-розовые сердечки за что-то общеполезное. Курс сокровищ к сердечкам они не сообшили)
  • Кондуктор - звучит сирена, и чувак с дыроколом идет пробивать бумажки. Количество дырочек на бумажке - ее lead time. Все бегут и перевешивают свои бумажки
  • И общая зарядка)

Увидеть лес за деревьями

Стас Фомин (Заказные ИнформСистемы)

Короткий доклад Стаса, посвященный визуализации хода процесса разработки.

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

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

Также Стас анонсировал предварительную версию фреймворка, позволяющего быстро делать такое видео, у меня правда он работать не захотел. Смотреть можно вот здесь.

8-битный Scrum

Алексей Омельянчук (Сигма-ИС)

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

Комманда его прошла путь от производственного предприятия работающего на МО с жесктим Rational Unified Process, через крупного частного производителя контроллеров (крупнейший поставщик АвтоВаза, 2 млн. штук в год) до software-предприятия, занимающегося, в основном, программированием, а не железом. На каждом этапе добавлялись новый практики.

Что используются

  • спринты, ограниченные во времени
  • демо (по признанию докладчика практика оказалась самой полезной)
  • планирование. Причем, планируют 120-140% от запаса времени, с разделением на обязательное и бонусы

Длительность спринта составляет 1 месяц, что было связано со сложившимся на предприятии укладом. Также был "мегаспринт" - 3 месяцы. Эта цифра обусловлена

  • обновлением реального железа
  • высокое руководство имеет возможность приезжать на демо с такой периодичностью.

Еще одна особенность - сборные команды. Каждый проект ведется максимум двумя людьми (большему количеству просто нечего делать на устройстве, куда влезает 500 строк ассемблера), команды объединяют нескоько проектов. Ни о какой кросс-функциональности речь не идет(одна настройка рабочего места занимает день-два), на таким образом все-таки немого смягчаются риски того, что в случае болезни одного человека, его будет некем заменить. Scrum-митинги из-за этой специфики проходят на по 15 минут раз в день, а большее время раз в неделю, чтобы было время въехать в чужую предметную область. На планирование специализация накладывает также глубокий отпечаток - приходится выделять человеческие ресурсы, которые могут решить данную задачу и планировать время каждого отдельно.

SOLID-принципы OO-дизайна

Дмитрий Кандалов (Deutsche Bank)

Java-разработчик из Deutsche Bank рассказывал про очередной набор принципов OO-дизайна. Никаких откровений, но выучить названия и помнить о сути полезно. Рассказ велся по этой статье. Докладчик разумно оговорился, что принципы надо применять по возможности, principles != rules.

Демотиваторы в тему

SOLID - это аббревиатура

  • Single Reponsibility Principle - каждый класс должен иметь один смысл, делать что-то одно. Например описание книги не должно вести историю продаж этой книги.
  • The Open Closed Principle - создание потомков класса должно расширять поведение базового класс, а не требовать его изменения.
  • The Liskov Substitution Principle - обратный к предыдущему. Во всех случаяж должна быть возможность подставить объект подкласс вместо суперкласса.
  • The Interface Segregation Principle - принцип разделения интерфейсов. Если у Вас все-таки получился сложный многофункциональный объект, для каждого выделенного случая его использования выделите отдельный интерфейс.
  • The Dependency Inversion Principle - Принцип обращения зависимости. Подсистемы верхнего уровня абстракции не должны зависеть от подсистем нижнего уровня, а предоставлять им интерфейс, который они должны реализовывать. Например, программа отправки почты не должна зависеть от сетевого протокола нижнего уровня, а, вызывать его функции через интерфейс, который является частью описания модуля верхнего уровня

MS Team System vs IBM Rational Jazz: лучший инструмент разработчика

Евгений Злобин (Microsoft) и Тимур Маркунин (IBM)

Два сейла не очень убедительно продавали свои продукты. IBM выглядел лучше, но его все равно никто не купит. Рассказ про TeamSystem выглядел особенно бледно - про нужные и полезные нововведения, которые появились в 2010 версии ничего сказано не было. Но зато про них рассказывали месяц назад на Платформе, можно почитать здесь.

DDD+TDD+MVP+DSL+Gof+PoEAA=Love!

Евгений Сорокин, Антон Бевзюк (Intel)

Доклад оставил глубокое впечатление, причем, знаю, не только у меня. Те же докладчики рассказывали о том же приложении, что и на первом докладе, но с акцентом на технические приемы и практики. Размер приложения можно приблизительно оценить по следующим цифрам: 140k строк кода, из них 100k - тесты, 20 экранов, 12 разработчиков, 2 года, 50 человеко-лет.

Тестируемые интерфейсы

Было рассказано о двух паттернах, которые позволяют строить тестируемые интерфейсы, а также о том как их тестируют. Это MVP(Model-View-Presenter), используется для WinForms и веб-интерфейсов приложения и MVVM (Model-Vew-ViewModel)

Рассказ про тестирование поразил - пишутся авто тесты в том числе и на Binding данных к контролам. Выглядит страшновато - делают binding в дизайнере, потом через Reflection пишут код (по сути, тоже самое), который его проверяет

Domain Driven Design и тестируемость всего

Реализация DDD-подхода в данном случае состоит в том, что domain описан в отдельной сборке, которая является полностью независимой. Для обеспечения независимости используется прием Inversion-of-Control и одноименная библиотека.

  • Плата за такой чистый дизайн велика - для каждого типа доменный модели нужен еще тип, реализующий для него работу с базой
  • Зато 5000 тестов работают одну минут, в отличие от наших. Это именно то, в чем мы их решение пока сильнее нашего

Ребята также показались TDD-экстремистами, не знаю насколько это хорошо или плохо. Их мантры такие

  • Подумай->Напиши тест, который падает где ты ожидаешь -> Сделай минимальное исправление
  • Assert, по-хорошему, должен быть один, а исправление - минимальным. Если это не так, скорее всего нужен еще один тест.

Остальное

  • При написании тестов использует свои embedded DSL. Например, вот такое:
 
var testDate = 11.12.of2009
 
public static class DoubleExtensions
{
    public DateTime of2009(this double date)
    {
        return new DateTime((int)date.Floor(), (int)(date-date.Floor())*100, 2009)
    }
 
}
 
 
  • Очень любят GoF и Фаулера. Из полезных паттернов упомянули Спецификацию, чему соответствует до некоторой степени Condition в Uni.Net

воскресенье, 6 декабря 2009 г.

Windows 7 – часть вторая

Обновление оконного интерфейса

  В Windows 7 в очередной раз обновился и улучшился интерфейс. Почти все нововведения показались разумными и удобными, особенно приятно, что разработчики исправили некоторые ошибки в Vista. Правда, должен предупредить, что если вы переходите с Windows XP, то привыкать и искать нужные кнопки все равно придется.

Мой обзор Windows 7

Уже почти месяц у меня  стоит Windows 7, и я решил что можно сформулировать первые впечатления.

четверг, 19 ноября 2009 г.

Mind Maps

Открыл для себя Mind Maps. Собственно, с концепцией я знаком уже давно, а сам рисовать попробовал только сейчас.  Очень удобный способ для быстрой записи мыслей, который организуются в дерево с разнообразными типами связей.

В качестве софтины рекомендую FreeMind, бесплатно, на Java. Работает быстро, удобные клавиатурный шорткаты

вторник, 17 ноября 2009 г.

Платформа 2010

Конференция "Платформа 2010", посвященная продуктам и технологиям Microsoft. Эта чуть отредактированная копия отчета, размещенного во внутренней вики компании

Проходила 12-13 ноября в Москве, в Центре Международной Торговли на Красной Пресне.

Сайт мероприятия http://www.msplatforma.ru

Организационное

12112009341

  • Хорошо кондиционированные (но без сквозняка) залы.
  • Нормальные проекторы.
  • Нормальная еда (с горячим).

Кстати, в центре международной торговли работает 3G у Мегафона.

Не обошлось, конечно, без накладок.

  • Часть докладов я смотрел в онлайн-режиме (конечно же, при помощи Silverlight), при этом со звуком все было хорошо, а вот снималось это так, что рассмотреть что происходит на экране было невозможно.
  • Расписание на сайте конференции было неплохим, но можно было и куда лучше
  • Были моменты «то густо, то пусто». Не знаю, было ли это сделано специально, но были моменты, когда параллельно шли только маркетинговые доклады, а иногда приходилось выбирать между сразу несколькими весьма интересными.

    Принесенные материалы

    Кризис продолжает ощущаться и в офис компании я принес еще меньше полезного чем в прошлом году. Ни одной книги! На Платформе 2008, помнится,  давали целый сундук.

    Журналы
    1. Windows IT Pro (01/2009)
    2. MSDN Magazine (12/2008).
    3. 3 выпуска журнала "Хакер" начала 2009 года. Кстати, интересно
    Маркетинговые материалы

    Было, конечно, много-много бумажек-листовок, но попадались и полезности.

    • Лицензия на 1С-Битрикс: Управление сайтом ASP.NET
    • Обучающий диск Windows Server 2008 R2: виртуальные машины и материалы
    • Visual Studio 2010 Ultimate Beta 2 с лицензий Go live!
    • Диск от M$ "Готовим веб-сайт". тоже обучающий
    • И вот такая прелесть от Лаборатории Касперского
    • 12112009342 12112009343
    • А также тестовый аккаунт на Exchange 2010 от компании infobox.

    Доклады

    Почти все доклады уже доступны на сайте techdays.ru

    Пленарный доклад

    Николай Прянишников, Норм Джуда

    Выступление Николай Прянишникова (Президент Microsoft Россия), пришедшего в M$ год назад из «Вымпелкома», не запомнилось ничем. Обычные слова про то, что «мы уверенно смотрим в будущее» и «все у нас хорошо»

    Основную часть времени выступал Норм Джуда, Директор по технологической стратегии Департамента Консалтинга M$. Он за два часа рассказал о большем количестве новых микрософтских технологий, от Windows 7 до Cloud Computing, причем рассказал очень хорошо — демонстрации явно были рассчитаны на WOW-эффект.

    Особенно впечатлило голосовое управление Exchange 2010 — полная поддержка русского языка (в обе стороны text-to-speech и speech-to-text), очень естественные команды и т.д.

    Правда, когда я стал пробовать эти функции самостоятельно, так хорошо у меня не получалось, Exchange меня понимал с пятого на десятое. Впрочем, вы можете оценить всю эту функциональности сами, см. выше.

    Не обошел Норм Джуда вниманием и Windows 7, в основном ее возможности по работе в паре с Windows Server 2008 R2. Рекламировал технологию DirectAccess, но чем она отличается от обычной VPN, кроме в очередной раз упрощенной конфигурации я не понял. Более интересная штука — Branch Cache, технология кэширования документов с удаленных серверов на более близких (сценарий, когда из филиала много работают с документом в файлопомойке или SharePoint головного офиса). Еще порадовало то, что в Windows 7 появился нормальный federated search (агрегация результатов поиска из разных источников).

    Также Microsoft активно продвигает свои технологии виртуализации, в рамках доклада была демонстрация Live Migration — технологии переноса виртуалок с одного физического сервера на другой без остановки работы. Приятно, что эта возможность доступна и в полностью бесплатном Hyper-V Server R2. Была еще демонстрация продукта Operations Manager, который красиво рисует схемки из физических и реальных серверов, а из полезного умеет динамически перемещать виртуальные машины с сервера на сервер в зависимости от нагрузки. Выглядит красиво, но я не уверен что в таком продукте есть большой смысл — админ все равно умнее).

    Напоследок расскажу об еще одной впечатлившей технологии — Excel Super Pivot, предназначенной для клиентского анализа больших объемов данных. Прокрутка без задержки, сортировка, фильтрация и быстрое построение диаграмм на 50 млн строк данных на машине с 4 гигабайтами памяти очень впечатлила. Очень захотелось попробовать на практике, и понять где же здесь будут проблемы). Также были показана новые интерфейсные средства для анализа, например автопостроитель разрезов. Видно, что M$ взяла очень серьезный курс на клиентскую работу с данными, раз уж ей не удалось добиться серьезных успехов в серверных OLAP-технологиях.

    Обзор технологий и преимуществ Exchange 2010

    Максим Вайсбурд, Иван Макаров

    Доклад начался с обзора обновленного Outlook Web Access, нынче переименованного в Outlook Web App. Самые главные изменения:

    • В интерфейс стало больше желтого цвета).
    • Полная поддержка Firefox, Chrome и Safari (А про Оперу опять забыли((().
    • Отказ от paging’а! Список писем не нужно листать постранично.
    • Организация сообщений «по-беседами» a-la цепочки сообщений в IPhone.
    • Запоминаемые фильтры (сохраняются в виде виртуальных папок).

    А в самом Exchange 2010 произошли следующие изменения:

    • Декларируется сокращение на 30 % нагрузки на дисковую подсистему.
    • Failover clustering базы данных Exchange.
    • Live migration отдельных ящиков и серверов целиком без прекращения обслуживания.

    Изменилась модель прав доступа. Практическим следствием этого стала концепция «делегированного администрирования». Можно делегировать часть администраторских функций простым пользователям, причем это гибко настраивается. Также даже самые простые пользователи получили возможности создавать свои группы на сервере Exchange — теперь за этим не придется обращаться к администратору. Почти все возможности администрирования доступны через веб-доступ. Также для администратора будет полезен режим имперсонации пользователя, для просмотра и изменения его настроек, но без доступа к содержимому ящика.

    Также представитель M$ активно рекламировали функцию «он-лайн архив», которая, по-сути, является возможностью создать для пользователя вторую папку на сервере Exchange вместо pst файла на диске. Но смысла в ней как-то мало — на прямой вопрос, можно ли хранить эту архивную папку на отдельном хранилище, докладчик ответил что нет. Вообще, если вы ненавидите pst файлы как идею — эта функция для Вас. А если нет, то зачем она — непонятно.

    Microsoft собирается активно продвигать Exchange 2010 по модели Software as a Service. Даже если Вы не хотите хостить всю почту у стороннего провайдера, Microsoft предлагает защиту от спама и вирусов (Forefront) как внешний сервис к локальной инсталляции Exchange.

    Visual  Studio 2010 - новое поколение инструментов для ускоренной разработки приложений

    Дмитрий Васюра (руководитель разработки среды Visual Basic)

    • Изменения в редакциях Visual Studio.Их несколько, самое главное - не будет специальных "ролевых" изданий, они все объединены в редакции "Premium".
    • Поддержка мультимониторных конфигураций
    • Редактирование блоков кода (сразу нескольких строк). Очень давно хотелось и очень впечатает. За примером использования отсылаю к видео доклада
    • Просмотр иерархии вызовов для функции. (a-la ReSharper)
    • Поиск функции или класса по имени (тоже было в ReSharper, но выглядит даже удобнее. Также поддерживаются сокращения.)
    • Подсветка использования символа
    • Генерация классов и их членов при первом использовании. Что-то такое уже было, но сейчас вроде бы должно стать удобно использовать эти возможности для TDD - пишешь тест, упомяная классы и члены, а их заглушки создаются по заранее заданным правилам. При этом поддерживаются разные фреймворки юнит-тестов.
    • Улучшенным IntelliSense - по подстроке, по сокращению.
    • Висячие сохраняемые watch'и - очень удобно при отладке.

    Новая модель расширения для редактора:

    • managed!
    • Любой элемент редактора можно расширить или изменить
    • Несколько типов расширений (intellisense, классификаторы текста, смарттеги и т.д.)

    Рекомендую посмотреть - очень понравилось.

    Microsoft StreamInsight: извлечение знаний из потоков реляционных данных в реальном времени

    Никита Шамгунов

    Интересный доклад, посвященный новой технологии потоковой обработки данных. Общая идея такая: имеются потоки событий из самых разных источников, которые преобразуются в выходные события. Причем входные события могут идти очень в большом количестве. В качестве примеров областей применения сразу на ум приходят данные по сделкам на бирже, которые преобразуются в команды покупать или продавать, данные с датчиков, преобразуемые в команды регулирующему оборудованию(например динамическое управление энергораспределением) и т.д. Декларируется возможность обработки до 200 000 событий в секунду.

    С точки зрения разработчика, события должны представляться классами на C#, все поля который являются скалярными величинами, а преобразования - LINQ запросам. При этом даются API для поддержки усреднения, агрегации, длящихся во времени событий, а также отсутствующих событий(например, есть датчик жизнеспособности прибора. Сам сообщение о том, что все работает нам неинтересно. Интересно как раз отсутсвие такого сообщения).

    Продукт будет поставляться вместе с SQL Server 2008 R2, хотя отношения к SQL Server у него довольно косвенное. Технология уже сейчас применяется в поисковике Microsoft Bing

    Круглый стол "Процессы разработки ПО на практике"

    Никита Шамгунов, Дмитрий Андреев, Дмитрий Васюра, Яков Сироткин

    Довольно бестолковое мероприятие в конце первого дня. Мне пришлось уйти пораньше, поэтому я смотрел его в режиме он-лайн. Из него удалось вынести, что:

    • MSF в Microsoft если и применяется, то они об этом не знают
    • Для планирования довольно часто используется MS Project, но далеко не всегда
    • Для контроля разработки везде используется Team Foundation Server

    SharePoint 2010: самое главное для разработчика

    Владимир Колесников

    Хороший, весьма детальный и хорошо прочитанный доклад, посвященный нововведениям в ShaerPoint 2010 с точки зрения разработчика. Интерес к SharePoint еще силен во мне, так что я прослушал его с большим удовольствием, тем более что добавлено очень много того, что ждали. К сожалению, разделить своюрадость мне в компании не с кем, так что упомяну лишь некоторые:

    • Релиз Linq-to-Sharepoint
    • Списки SharePoint получили основные все возможности классической реляционной БД. А именно:
      • Joins
      • Проекции
      • Ограничения уникальности
      • Foreign keys c контролем целостности

    Microsoft долго сопротивлялась и не хотела добавлять эти возможности (о них просили еще с 2001 года), боясь неправильного использования. Увидим, насколько оправданы эти опасения

    • Улучшения документооборота:
      • Глобальный ID документа
      • Возможность построения альтернативных деревьев навигации (не по папкам, а,скажем, по категориям)
      • Составные документы
    • Наконец ДВУХСТОРОННЯЯ синхронизация проифилей пользоватлей c AD
    • Браузерные полноценные Word и Excel (Word Web App и Excel Web App)

    Практическая разработка приложений для бизнеса: платформа Office + SharePoint

    Георгий Баркан

    Честно говоря, пожалел, что пошел на этот доклад. Автор уныло рассказывал об способах Data Binding в офисных документах.

    Разработка современных Windows-приложений – Windows Presentation Foundation 4.0

    Роман Здебский

    Доклад посвящен новой версии платформы графических приложений от Microsoft. Почти четверть его была посвящена знаменитой проблеме с размытием шрифтов. Проблема была связана с вектороной природой WPF, которая, при рендринге шрифта, не пыталась привязать линию к реальным пикселям экрана, а агрессивно использовало сглаживание, в результате чего текст сильно размывался. Для решения проблемы текстовый сек WPF был полностью переписан, был улучшен алгоритм сглаживания и, если это не поможет, добавлена возможность в коде форсировать эмитация режима рендринга GDI. Показанные примеры были вполне убедительно, если бы не одно "НО": я поставил 2010 студию, которая являет WPF-приложением, и там мне шрифты все-таки показались размытыми. Правда, я не знаю используется ли в студии WPF 4 или только 3.5.

    Другой вопрос, затронутый в этом докладе - размер дистрибутива .Net Framework. В 4 версии он радикально уменьшен с 230 мегабайт для версии 3.5 до 57 для версии 4.0 Beta 2. При этом Client Profile (урезанный набор библиотек, содержащий только клиентскую функциональности) весит 22 мегабайта и ставится теперь в любом сочетании с другими версиями.

    С точки зрения разработчика, в WPF 4 можно назвать следующие улучшения:

    • Поддержка Generics в XAML
    • Нормальный визуальный редактор в студии.
    • Поддержка multi-touch
    • DataGrid, наконец, поставляется вместе с WPF
    • Оптимизация производительности: можно включить преобразование векторного изображения в растровое и выполнять операции над ним. ДЛя небольшого масштабирования, поворота, а главное перемещения дает сильный выигрыш.
    • Visual State Manager как в Silverlight

    Visual Studio Team System 2010 - новые возможности для командой разработки

    Дмитрий Андреев, Антон Бевзюк (Intel)

    На этот доклад я пошел еще и потому, что никогда не работал с Team Foundation Server, и мне захотелось сравнить(хотя бы поверхностно) его с нашим процессом (bugzilla+SVN+Wiki). Поэтому напишу о тех фичах, которые мне понравились, и прямых аналогов которым я у нас не нашел.

    • Поддержка feature-based разработки. Проще работа с ветками.
    • Check-in gate — при коммите происходит merge c основным стволом, прогоняются тесты, и только если все хорошо, происходит окончательное сохранение в общий репозитарий — нет сломанных билдов. Этой фичи нам не хватает!

    Много рассказывалось о поддержке тестирования и отладки, новом инструменте Testing Lab Manager. Вообще говоря, похоже на то, что Стас рассказывал про Testopia, слова были те же. Да, Testing Lab Manager тоже умеет писать за тестировщиком видео)). Но вот следующие функции показались достаточно необычнми и запомнились:

    • Intellitrace — запоминается контекст выполнения программы (системная информация) и, самое главное, состояние программы в ходе выполнения. То есть можно вернутся и посмотреть значения переменных на любой момент времени назад. Что интересно, функция доступна и при проверке программы тестировщиком, так что можно воспроизводить состояние программы даже после катастрофического сбоя
    • Автоматизированные UI-тесты. Прокликал один раз — потом за тебя кликает машина. Кроме того, можно генерировать C# скрипт по набору действий, в который можно вставлять Assert и пользоваться средствами распознавания контролов. Не имею опыта с другими фреймворками для UI-тестирования, поэтому судить о слабых сторонах не могу

    Еще одна новинка в Ultimate-версии Visual Studio — графические средства анализа кода. Заявляется возможность построения UML-диаграмм по классам проекта (было и раньше, улучшено), Sequence-диаграмм по функции (еще не смотрел, если работает — будет здоров), диаграмм зависимостей между компонентами (на наш проект построило что-то страшное и сильно тормозит). Также добавлена возможность прямо в студии рисовать Use Case диаграммы, а также строить диаграммы слоев приложений

    Также в рамках доклада была аннонсирована покупка Microsoft компании TeamPrise, разрабатывающей плагин для интеграции Eclipse c Team Foundation Server. Заявлено, что M$ будет активно развивать это направление.

    Второй докладчик, из Intel, кратко рассказал об их опыте применения Visual Studio 2010. Честно говоря, мне он несколько удивил, так как после слайда «что понравилось», ожидался слайд со слабыми сторонами продукта, но его не последовало.

    Доступная интеграция SharePoint и 1C : Свободно распространяемый продукт "1С-коннектор к Microsoft SharePoint Server"

    Владимир Епифанов Артем Черневский

    Рекламировали бесплатный продукт для интеграции (частично двусторонней) SharePoint 2007 и 1C

    четверг, 30 апреля 2009 г.

    Office 2007 SP2

    Вышел второй сервис-пак для офиса 2007. Список изменений можно посмотреть здесь. Из того, что заметил сразу - Outlook просто летает. А до этого на моих не таких уж больших объемах (два файла данных общим размером около гигабайт) заметно подтормаживал

    вторник, 24 марта 2009 г.

    Тормоза Silverlight DataGrid

    Начал играться с Silverlight 3, обнаружил странность - при добавлении к строке шаблон детали, грид начинает сильно тормозит на большом количестве записей - без детали спокойно работает и с миллионом, а с деталью - жутко тормозит уже на 10 000.
     
    Надо проверить, есть ли такая же фигня с гридом в Silverlight 2 Пример кода:
     

    <data:DataGrid AutoGenerateColumns="True"

    Name="msGrid" Grid.Row="1"

    ColumnWidth="Auto"

    RowDetailsVisibilityMode="VisibleWhenSelected"

    RowDetailsVisibilityChanged="DataGrid_RowDetailsVisibilityChanged"

    >

    <!--uncommenting will cause severe perfomance degradation-->

    <!--<data:DataGrid.RowDetailsTemplate>

    <DataTemplate>

    <StackPanel Orientation="Horizontal" Background="White">

    <TextBlock Margin="5,5,5,5"

    Width="350"

    Text="Категорийный заказ на склад в Самаре!!!!"

    TextWrapping="Wrap"></TextBlock>

    </StackPanel>

    </DataTemplate>

    </data:DataGrid.RowDetailsTemplate>-->

    </data:DataGrid>

    воскресенье, 22 марта 2009 г.

    Ноутбук

    Решил написать об опыте использования своего ноутбука Hewlett-Packard 8510p , которому уже скоро исполниться полтора года.

    В свое время я очень долго выбирал себе машинку,и, как оказалось время потратил не зря. Купил я его 14 ноября 2007 года по цене 50 тысяч рублей в интернет-магазине tpshop.ru. Магазином остался доволен - привезли в договоренное время и курьер терпеливо ждал пока я тестировал ноут. Конфигурация на момент покупки была следущая:
    • CPU Intel Core 2 Duo T7700 2.4 Ghz
    •  2x1 GB DDR2 SDRAM SAMSUNG
    • HDD 160 gb 5400 rpm SEAGATE 
    • Экран WSXGA+ (1680 на 1050) с датчиком освещенности 
    • Видео Radeon HD2600 265 Mb 
     (Замечу в скобках, что сейчас модель 8530p, которая является наследником моего ноутбука дешевле 65 тысяч в аналогичной конфигурации не найти - следствие обвала рубля) В такой конфигурации ноутбук был самой старшей моделью в семействе с суффиксом "p" (Есть еще "профессиональная" серия 8510w). Осматривая ноутбук перед покупкой, я обнаружил 2 битых пикселя в нижней части экрана, в результате чего удалось снизить цену с изначальных 52 тысяч до 50. Судя по форумам, небольшие дефекты матрицы - нередкое явление в этой серии ноутбуков. Подробные обзоры экстерьера, производительности и прочих аспктов можно почитать по ссылкам ниже, а я перейду к описанию опыта длительной эксплуатации. http://www.ferra.ru/online/mobilis/78630/ http://www.3dnews.ru/mobile/hp_compaq_8510w/ http://www.notebookreview.com/default.asp?newsID=3939 http://www.notebookreview.com/default.asp?newsID=3862 http://www.notebookcheck.net/HP-Compaq-8510p.5899.0.html  
    Апгрейд
      Практически сразу после покупку я провели серьезный апгрейд - увеличил память до 4 Гб (два модуля Hynix), а жесткий диск заменил на винчестер от Хитачи емкость 200 Гб и скоростью вращения пластин 7200 обороов в минуту. По роду профессиональной деятельности мне часто приходится запускать виртуальные машины, а быстрый жесткий диск и, особенно, большой объем оперативной памяти очень помогает их нормальной работе. Программное обеспечение
      Естественно, что для работы с таким объемом памяти нужна была 64 битная операционная система, к качестве которой выступила Windows Vista, предустановленная но ноутбуке - вариант 32 или 64 битный нужно было выбрать при первой загрузке. Кстати хочу сказать, что проблем с совместимостью у меня практически не было - отказались запускать лишь HOMM4 из-за дурацкого драйвера защиты от копирования Star Force а также первая цивилизация, написанная более двадцати лет назад под DOS. Поставить операционную систему на новый жесткий диск после замены удалось очень быстро - помогли созданные диски восстановления. А вот дистрибутива ОС в Хьюлетт-Паккард пожалели. С другой стороны я остался вполне доволен программной состовляющей поставки ноута - из всего софта, который был на нем установлен я удалили лишь триальный антивирус, заменив его авастом. Весь остальной стоит и по сей день, расскажу о нем поподробнее: 1) Cyber Link Powe DVD - известнеший и очень мощный проигрыватель DVD 2) Roxio Suite - простая программ для записи CD/DVD 3) Программа управления при помощи настраивыемых сенсорных кнопок - я ей почти не пользуюсь, просто позволяет переназначить сенсорные горячие клавиши 4) Программа управления беспроводными устройствами - чуть более быстрый спосооб включать/отключать Bluetooth и Wi-Fi, удобнее стандартных средств ОС, пользуюсь постоянно. 5) Программа обновления модулей HP 6) Програма проверки здоровья компьютера от HP - оказалась на удивления полезной. В определенный момент она сказала мне что логический диск для восстановления системы имеет размер больше чем нужно и предложила осовободить место, уменьшив размер того раздела более чем на полтора гигабайта. Полученное место, правда, пришлось выделить в оотдельный логический диск, но все равно приятно. 7) Менеджер паролей и аутентификации по отпечатку пальца - был очень полезен пока не сломался с выходом Windows Vista SP1.  
    Живучесть

      Могу сказать, что ноутбук показал себя с лучшей стороны - в условиях очень интенсивной эксплуатации - я в течение года каждый день носил его с собой и запускал ресурсоемкие задачи неполадок замечено не было. Время от времени он начинал шуметь сильнее чем обычно (под загрузкой он и в нормальном состоянии не тихий), но проблема решалась при помощи пылесоса. К сожалению, буквально вчера обнаружио на экране еще пару битых пикселей - черных и прямо в середине. В гарантию нести пока не собираюсь - при таком разрешении жить вполнее можно. Батарея за полтора года ожидаемо снизила ресурс, но на полтора-два часа работы еще вполне можно рассчитывать. Зато по внешнему виду совcем не скажешь, что машинка изрядно пропутешествовала - ни на внешней стороне крышки, ни в открытом состоянии никаких последствий интенсивной экплуатации не видно, и лишь приглядевшиcь можно заметит пару царапин.

    воскресенье, 8 марта 2009 г.

    Производительно Content Query Web Part

    Недавно столкнулись вот с чем: Заказчик начал жаловаться, что страничка, на который аггрегируются новости из нескольких источников (хранящиеся в списках) загружаются очень долго. Для отображения и запроса элементов использовались несколько слегка модифицированный веб-частей "Запрос содержимого"(Content Query Web Part). Данные собирались с нескольких (около 10) списков, каждый их которых жил на своем узле. Время загрузке страницы иногда достигало 20 секунд, хотя время-от времени происходило мгновенно. Почему загрузка могла происходить очень быстро стало понятно - сразу работал кэш объектов, некоторое время хранящий результаты запроса. А вот поиск причины медленной работы занял два дня. Как оказалось, в результате некоторых организационных просчетов на production-сервере заказчика оказался список размером в 900 тыс, забитый практический бесполезной информацией. А все списки SharePoint хранитв одной таблице AllUserData, размер который разросся до 1 800 000 записей. Каждый запрос к ней, которых страничка делала по числу списков занимал около секунд, а 90% времени в каждом запросе - поиск по инждексу, даже несмотря на то, что то был Clustered Index Seek. Решение напрашивалось простое - удалить огромный список и все. Но и здесь возникли сложности - при попытке его удаления веб-приложение портала обрушивалось. Причина вноь оказалась на SQL сервере - при удалении, перемещение списка в корзну вызывалось попытку выполнить 900 тысяч INSERT в одной транзакции, чего бедный сервер, конечно не выдерживал. Только отключение корзины (кстати, это удобнее делать через stsadm) решило проблему

    суббота, 7 марта 2009 г.

    Полезные для разработчика утилиты

    По мотивам вот этой статьи захотелось написать свой список утилит, которые нужно знать разработчику. 1) NUnit - потрясающий набор библиотек для написания юнит-тестов и утилита для их исполнения. Сейчас в нашем проекте мы используем версию 2.4.8, но дома я взял 2.5. Если есть возможность - очень рекоммендую! 2) Cruise Control - сервер непрерываной интеграции. Очень гибкий и совместимый с очень многими используюемым инструментами, в частности NUnit и SVN 3) Если вы пользуетесь SVN, то Visual SVN - Ваш выбор. Это плагин для Visual Studio, который позволяет управлять файлами непосредственно из IDE, например сильно упрощается переименование файлов. Плагин платный, но своих денег стоит. 4) ReSharper - еще один плагин для Visual Studio, и тоже платный, хотя вероятно в представлении не нужадется. Возможностей огромное количество - из часто используемого вспомню следующее: 1) Сильно расширенный поиск использования выделенного объекта (Find usages) 2) Возможности перехода от символа к супер-классу, подклассам и т.п. 3) Мощные возможности рефакторинга 4) Более удобное реадктирование комментариев 5) Подсветка потенциальных ошибок 6) Возможность исполнения NUnit тестов внутри студии с более удобным интерфейсом 6) .Net Reflector - еще одна известная утилита для исследования скопилированных сборок. Очень хорошо производит реконструкцию кода. Очень помогла при создании Silverlight-проекта на F# 7) Fusion Log Viewer - утилита входит в SDK, позволяет мониторить процесс загрузки сборок. Очень полезна, когда пытаешься понять что же именно не дает программе запуститься 8) PSPad - мощный текстовый редактор с подсветкой кода. Мы испольуем для рекдактирования PL/SQL кода