вторник, 29 января 2008 г.

Новая рассылка

Для придания динамизма теме качественного кода я открыл рассылку http://subscribe.ru/catalog/comp.soft.prog.agile

Присоединяйтесь!

воскресенье, 27 января 2008 г.

суббота, 26 января 2008 г.

Научное исследование эффективности методологии TDD

Сразу с цитат:

We found that test-first students on average wrote more tests and, in turn, students who wrote more tests tended to be more productive. We also observed that the minimum quality increased linearly with the number of programmer tests, independent of the development strategy employed.

За счёт TDD были достинуты:
- лучшее понимание задачи
- лучшее фокусировка на задаче и повышенное внимание к задаче
- лучше обучаемость
- низкий процент переделки

Отчёт: Proceedings of the IEEE Transactions on Software Engineering, 31(1). January 2005.
Ссылка: источник

пятница, 25 января 2008 г.

Инструкция превращения Junior Developer'a в Agile-профи

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

Начинаем
Первым делом нужно дать сводные понятия о таких вещах как
# Agile Software Development
# Scrum
# Domain Driven Design
# Test Driven Development
# Object Oriented Design
# Enterprise Design Patterns
# Secure Development Lifecycle
# Дальше конкретные технологии (ASP.NET/BizTalk/SharePoint/WCF/WPF/etc)

Важные понятия
Чтобы стать сильным Agile объектно-ориентированным разработчиком вам обязательно нужно будет ряд простых понятий:
Separation of Concerns
Liskov Substitution Principle
Law of Demeter
Single Responsibility Principle
Open/Close Principle
Interface Segregation Principle
Dependency Inversion Principle

Закупаем литературу
Чтение статей и участие на форумах не сделает из вас сильного разработчика. Нужно обратиться к фундаментальным работам.
# Agile/Development Principles
  * Code Complete: A Practical Handbook of Software Construction (Steve McConnell)
  * Agile Software Development, Principles, Patterns, and Practices (Robert C. Martin)
  * Agile Principles, Patterns, and Practices in C# (Robert C. Martin)
  * Agile Software Development with SCRUM (Ken Schwaber)
  * User Stories Applied: For Agile Software Development (Mike Cohn)
  * Practices of an Agile Developer: Working in the Real World (Andrew Hunt)
# General Development
  * Release It!: Design and Deploy Production-Ready Software (Michael Nygard)
  * Ship it! A Practical Guide to Successful Software Projects (Jared Richardson)
  * The Pragmatic Programmer: From Journeyman to Master (Andrew Hunt)
# Design Patterns
  * Head First Object-Oriented Analysis and Design (Brett McLaughlin)
  * Patterns of Enterprise Application Architecture (Martin Fowler)
  * Design Patterns: Elements of Reusable Object-Oriented Software (GoF)
  * Head First Design Patterns (Elisabeth Freeman)
# Domain Driven Design
  * Domain-Driven Design: Tackling Complexity in the Heart of Software (Eric Evans)
  * Applying Domain-Driven Design and Patterns: With Examples in C# and .NET (Jimmy Nilsson)
# Test Driven Development
  * Test Driven Development: By Example (Kent Beck)
  * xUnit Test Patterns: Refactoring Test Code (Gerard Meszaros)
  * Pragmatic Unit Testing in C# with NUnit, 2nd Edition (Andrew Hunt)
# Refactoring
  * Refactoring: Improving the Design of Existing Code (Martin Fowler)
  * Refactoring to Patterns (Joshua Kerievsky)
# Secure Development Lifecycle
  * The Security Development Lifecycle (Michael Howard)
  * Writing Secure Code, Second Edition (Michael Howard)

И специализированная литература:
# C#/.NET Framework
  * CLR via C#, Second Edition (Jeffrey Richter)
  * Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries (Krzysztof Cwalina)

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

Источник: Starting Junior Programmers on the Right Agile Track Guidance

FxCop 1.36

Качество кода конечно же невозможно без всевозможных тулзов. Сегодня я хотел бы обратиться к уже известной программе FxCop. А причина довольна проста - её реанимация. Буквально недавно Microsoft выпустил вторую бету новой версии FxCop 1.36. Будем надеятся, что скоро будет релиз :)

FxCop is a code analysis tool that checks .NET managed code assemblies for conformance to the Microsoft .NET Framework Design Guidelines. It uses MSIL parsing, and callgraph analysis to inspect assemblies for more than 200 defects in the following areas:

Library design
Globalization
Naming conventions
Performance
Interoperability and portability
Security
Usage

Ссылка: Microsoft FxCop 1.36 Beta 2

пятница, 11 января 2008 г.

Видео "Lean: cовершенствование процессов разработки"

Доступно видео "Lean: cовершенствование процессов разработки"!!! Пока есть только первый семинар из двух, проходивших 26-го декабря. Второе видео будет скорее всего готово на следующей неделе