Блог Константина Быченкова

Версии

August 4th, 2008 by Konstantin Bychenkov

Я перешел на работу в другую фирму. Делаю примерно то же самое - управляю проектами. Проекты достались в довольно плачевном состоянии. Одна из первых задач - наладить взаимодействие с отделом тестирования. Без номеров билдов они разговаривать не хотят, и тут они абсолютно правы. Пришлось сделать макрос для VS2008, со мной это впервые.

В общем то получилось довольно быстро. Для начала я взял проект макроса из статьи “Build Number Automation for Visual Studio .NET Projects” на CodeProject.

И сделал небольшие изменения под себя:

  1. Мой макрос меняет версию всем проектам из открытого солюшна
  2. Изменения версии попадают в лог файл. Лог файл имеет то же имя что и солюшн, но с расширением”log”

Инструкция по установке:

  1. Загружаем каталога проекта из SVN, появится подкаталог macro
  2. Открываем VS2008.
  3. Открываем MacroExplorer из меню Tools->Macros->Macro Explorer или просто Alt+F8
  4. В Macro Explorer в контекстном меню выбираем пункт Load Macro Project и выбираем проект MacroVer.vsmacros из каталога macro
  5. Создаем пункт главного меню. Для этого открываем диалог Tools->Customise->Commands. Из элемента списка Categories выбираем Macros. Из списка commands выбираем наш только что установленный макрос и перетаскиваем его в главное меню, желательно Build
  6. С помощью кнопки Rearrange Command задаем удобное имя нового пункта меню. Например, “Increment version before build”

Установку проводить только 1 раз. Макрос будет доступен для любых C#-проектов. Данный макрос пока не умеет находить и править файлы с иным расширением нежели .cs

Инструкция по применению:

  1. В открытом солюшене до сборки релиза выбираем пункт меню с макросом.
  2. В результате работы макроса изменятся файлы AssemblyVersion.cs, значения атрибутов AssemblyVersion и AssemblyFileVersion.
  3. После билда релиза все файлы-сборки увеличат последние два числа версии revision.build

Кто подскажет как поставить макрос на пребилд солюшена?

Повторю слова автора исходного проекта макроса: I kept it simple, so you can get the idea and do customizations yourself.

Пользуйтесь наздоровье macrover.vsmacros.

Posted in Proj management | No Comments »

Используй силу, Люк

July 2nd, 2008 by Konstantin Bychenkov

Путь профессионала труден и извилист. Как часто мы потом говорим себе, что если бы несколько лет назад кто нибудь подсказал и было бы время, как далеко вперед я бы сейчас ушел. Но никто не подсказал. Чтобы стать Люком Скайвокером нужно сначала встретить своего Обивана Кэноби.

К счастью, есть Сеть. К счастью, выдающиеся люди обычно хотят помочь новичкам. Они прошли долгий путь и многое понимают. Посмотрите на блог CodeCata Дэйва Томаса. Дэйв, в частности, помогал в создании знаменитого Agile Manifesto. Еще он автор нескольких замечательных книг.

Дэйв занимается карате, и он предлагает перенести методики тренировок из боевых исскуств в программирование. Нет, кирпичи лбом колоть не надо. Дэйв изобрел 21 (и наверное на этой цифре не остановится) упражнение, “ката”, которые годятся для исполнения практически на любом языке программирования и дают одновременно полезные теоретические и практические навыки.

Суть метода проста. Двигайтесь от простого к сложному, повторение - мать учения, не бойтесь ошибиться, сосредоточьтесь.

Польза от упражнений может быть огромна. Во первых - упражнения ценны сами по себе. Выполняя их, вы зарабатываете навыки мышления программиста. Учитесь беспокоиться о качестве вашей работы, приобретаете понимание того что, что хорошая программа - это не просто программа которая возвращает правильный результат. Во вторых - упражнения можно использовать для изучения почти любого нового для вас языка программирования. В третьих - каты достаточно полны для того чтоб отрабатывать на них различные методы организации производства. FDD, TDD, XP и даже RUP ( если вы достаточно упорны )

Мы с моим приятелем Дмитрием Кандаловым выполнили Cata6 в стиле XP и получили громадное удовольствие от работы. Попутно с решением задачи мы потренировались в написании юнит-тестов, в оформлении кода. Дима подучил а я повспоминал .NET.

Попробуйте и вы. Понравится.

Posted in Software Development Metodologies | 1 Comment »

Shell Revealed COM

June 3rd, 2008 by Konstantin Bychenkov

Мне понадобилось вспомнить уже подзабытые навыки программирования СОМ компонент. Надо было сделать Shell Extension - добавить пункт контекстного меню. Смотрел всяческие примеры и набрел в интернете на клад - shell: revealed Это блог комманды “Windows Client” разработчиков компании Microsoft. Там море полезной информации о ядре пользовательского интерфейса Windows, особенно Windows Vista. Слово “ядро” в данном контексте означает API и базовые концепции пользовательского интерфейса.

Мне конечно больше всего были интересны примеры. Это лучшие и наиболее современные примеры из всего, что я смог найти. Для того чтоб ознакомиться с ними вам понадобится VS 2005 и Windows Vista SDK. Впечатления такие:

  1. Эти парни не используют ничего кроме C++. Нет ATL, нет reg или rgs файлов. MIDL нет. ATL хорошая библиотека, но примеры этих парней ставят вопрос - “На что потратить время - на COM и WinAPI или на ATL?” У меня нет однозначного ответа. Но проект получается намного проще, это точно. Пожалуй, если вы реализуете уже задекларированные где то интерфейсы, то можно и на pure С++. Если пишете собственный COM-сервер с оригинальной функциональностью, то тут надо вспомнить про ATL. Так же  с ATL проще обеспечить переносимость сервера под разные версии Windows.
  2. СОМ не так уж страшен, если вы знаете C++ и WinAPI.
  3. Еще раз скажем себе -исходный код надо писать аккуратно и продуманно. Стиль имеет значение, в C++ особенно.

Posted in Win32 Development | No Comments »

A bit of Eclipse Platform

May 17th, 2008 by Konstantin Bychenkov

Эта штука мне нравится за внешнюю элегантность. Как же долго я искал там, в каком месте настроек текстового редактора задать подсветку для упоминаний в коде имени текущей переменной. :-) Не прошло и полгода!

Preferences->General->Editors->Text Editors-> Annotations->Occurences

Это я так, чтоб не забыть.

PS: пора продолжить про Agile. Теперь про SCRUM

Posted in Java reveal | No Comments »

Google Doctype welcome!

May 16th, 2008 by Konstantin Bychenkov

Как мне кстати новый сервис Google - Google Doctype.
Это энциклопедия и библиотека ссылок по веб-программированию. Дебри MSDN расступаются как по волшебству. Всегда уделяется внимание совместимости IE-FF-Saf. Разработчики могут развивать этот сервис и писать новые статьи.

Как минимум, этот сервис избавляет вас от надобности держать тучу букмарков на MSDN. Для новичков - клад знаний.

Posted in webdev | No Comments »

Методы оценки проекта разработки ПО

May 3rd, 2008 by Konstantin Bychenkov

После того как я опубликовал первую статью по Agile, на Habrahabr пришло несколько комментариев с вопросами о том как оценить стоимость и сроки проекта в данной методике. Agile - методология управления проектами, он не предназначен для оценки, которую потом можно вписать в договор. Но тема важная, сделаем для нее отступление.

Итак, Методы оценки проекта разработки ПО

Read the rest of this entry »

Posted in Software Development Metodologies, Стоимость разработки | No Comments »

On Agile Part 1

April 17th, 2008 by Konstantin Bychenkov

Создание программных продуктов стало индустрией с тех пор как появились персональные компьютеры, «коробочное» ПО и Internet. Как и в любой другой индустрии тут существует продукт, потребители и производители этого продукта. И, как и в любой другой индустрии, производители стремятся держать под контролем процесс создания (производства) продукта. Конечно, это не единственный процесс, который надо наладить для достижения успеха, но один из основных. И для этого важного процесса нужен метод, который позволит управлять ситуацией, не сковывая творческий порыв разработчиков. О методе и пойдет речь. Мы рассмотрим хорошо известную методологию Agile, и сравним наиболее популярные варианты применения данного метода на практике. Read the rest of this entry »

Posted in Software Development Metodologies | No Comments »

On Agile. Intro

April 17th, 2008 by Konstantin Bychenkov

Открываю цикл коротких статей по Agile. Все вместе они будут представлять собой сравнительный обзор различных методик, которые применяются под общим названием Agile Development Framework - стандарт де-факто для организации процесса производства программных продуктов. Среди них будут такие темы как SCRUM, TDD, BDD, FDD. Мы рассмотрим и сравним эти методики.
Я хотел написать одну большую статью сразу обо всем, но понял, что не закончу такой текст в обозримом будущем. А после данного анонсирования я не оставляю себе выхода :-) Съедим “слона” по частям. И начнем с краткого введения непосредственно в Agile.

Posted in Software Development Metodologies | 1 Comment »