Создаем IT-продукты на заказ

За 5 лет мы создали продукты с топовыми e-commerce компаниями, ритейлом, банками и другими бизнесами по всему миру.

Специализируемся на SaaS-решениях на архитектуре микросервисов, делаем аналитику IT-проекта перед стартом.

Посмотрите, что говорят о нас клиенты и как комфортно мы стартуем проекты.

Для обсуждения проекта пишите на ceo@byndyusoft.com или звоните +7 (904) 305 5263

среда, 19 ноября 2008 г.

Хороший коммит

Совсем недавно в очередной раз столкнулся с проблемой комитов и вообще отношения к хранилищу кода в команде. Этот вопрос очень часто поднимается в таких книжках, как Code Craft. Как показывает практика, ничего от этого не меняется. Либо книжки не читают, либо не знают, как применять на практике полученные знания.

Я уже начинаю думать, что основная причина - это лень. Или программирование в стиле "агонии". Так я называю печатание 10000 символов в час без передышки с полной самоотдачей и без коммитов. Хватаются то за одну задачу, то за другую. И на вопрос: "Почему уже 2 дня не коммитишь?", можно услышать: "Дак у меня еще не до конца функциональность готова. Вот еще немного подшлефую и закомичу".

Чтобы понять как делать хорошие коммиты, необходимо ответить на вопрос, что такое хороший комит?

Хороший комит:

  • Должен быть прокомментирован. Нельзя комитить изменения в общее хранилище кода без комментария
  • Содержит комментарий с информациeй о том, зачем (почему) этот комит был сделан (добавление новой функциональности, исправление бага и т.п.). Комментарий должен пояснить какие изменения были внесены в проект без необходимости просмотра кода
  • Оставляет систему в стабильном рабочем состоянии
  • Содержит единственное атомарное изменение. Не должен содержать изменения, которые не относятся к данному комиту. Возможно, эти изменения кода были сделаны в ходе рефакторинга или небольших багфиксов. Все эти изменения должны попасть в другой комит с соответствующим комментарием
  • Отформатирован в стиле, который приняла вся команда
  • Может содержать ссылку на тикет в вашей системе контроля багов. В некоторых организациях комит не принимаются без закрытия тикета
  • Закомиченный код не должен содержать закомментированного кода, который "оставили на всякий случай"

Этот пост должен добавить вам аргументов в споре с коллегами по этому вопросу. По опыту могу сказать, чтобы склонить команду в правильную сторону необходимо иметь уйму терпения и действовать исключительно дипломатическими приемами. Если Вы ведущий разработчик, тогда все немного проще - можно применить свой авторитет. А вот если Вы рядовой разработчик, то вам придется вести команду к хорошим комитам методами Махатмы Ганди.

Ссылки:

The importance of commit messages

Are Detailed Log Messages Really Necessary?

SVN Commit Policy

SVN и отсутвие мозга у кодера

Best Practices for Version Control

Everyone Commits Every Day

пятница, 14 ноября 2008 г.

TechDays в Екатеринбурге

12ого ноября в Екатеринбурге прошла конференция TechDays.

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

Как всегда были приятные мелочи от Microsoft - ручка, блокнот, DVD диск с записанными докладами и еще много всего. По ходу дела разыграли пару забавных сувениров.

Для всех осталось немного непонятно, почему не было докладов по самым последним тема и технологиям, таким как: ASP.NET MVC, WPF, Silverlight, ADO.NET Entity и т.д. Я, естественно, ничего не имею против Sharepoint, но по моему мнению это не "острие атаки". Зато теперь есть повод обсудить все это в нашей юзер группе.

Спасибо ребятам, которые делали доклады и всем кто присоединялся к обсуждениям в перерывах!

воскресенье, 9 ноября 2008 г.

Впечатления и материалы со встречи SUNETA на тему "Гибкие методологии разработки"

Вчера прошла первая встреча Южно-Уральского сообщества .NET разработчиков на тему "Гибкие методологии разработки".

Встречи на такие темы раньше не проводились и нам было интересно посмотреть на аудиторию. Количество собравшихся нас очень порадовало! К тому же оба доклада проходили в форме обсуждения. Вопросы задавались прямо с мест по ходу выступления.

Я делал доклад на тему "Применения принципа инверсии зависимостей". Целью доклада было показать, как на практике применяется этот принцип. На протяжении всего выступления я вместе с присутствующими совершенствовал первую версию демонстрационного проекта. Было очень много вопросов о том как надо применять этот принцип, когда этому стоит уделять внимание, как он влияет на модульность в проекте и т.п. Я постарался ответить на все вопросы и поделился практическими советами и приёмами из своих проектов. Все получили хороший практический опыт и возможно узнали что-то новое для себя.

Материалы моего доклада можно скачать здесь http://alex-byndyu-presentations.googlecode.com/svn/trunk/Dependency Inversion - Chelyabinsk 07.11.2008

четверг, 6 ноября 2008 г.

Паттерн MVP для ASP.NET WebForms

Сейчас разрабатываю проект на ASP.NET. Для отделения представления данных в слое отображения от логики их формирования и обработки применяю паттерн Model-View-Presenter.

Суть паттерна в том, чтобы ASP.NET форма (View) реализовывала интерфейс, с которым сможет работать представление данных (Presenter), которое в свою очередь оперирует объектами предметной области (Model).

воскресенье, 2 ноября 2008 г.

Red-Green-Refactoring. Зачем красная полоска?

Для «прожженых» TDD программистов это уже уже не вопрос. Воспринимайте эту статью, как заметку. Я сам иногда ленюсь смотреть на красную полосу, но заставить себя обязательно надо. Теперь будет ещё один повод - раз написал про это, значит и сам должен подавать пример!

Создаем IT-продукты на заказ

За 5 лет мы создали продукты с топовыми e-commerce компаниями, ритейлом, банками и другими бизнесами по всему миру.

Специализируемся на SaaS-решениях на архитектуре микросервисов, делаем аналитику IT-проекта перед стартом.

Посмотрите, что говорят о нас клиенты и как комфортно мы стартуем проекты.

Для обсуждения проекта пишите на ceo@byndyusoft.com или звоните +7 (904) 305 5263