У каждого программного проекта есть жизненный цикл. Для разных этапов такого цикла есть средства управления — багтрекеры, системы документирования, тестирования. Однако хочется найти полноценную систему для управления всеми этапами жизненного цикла проекта.
Если совсем упрощать, этапы жизненного цикла такие:
- сбор требований
- проектирование
- реализация
- рецензирование кода
- контроль исполнения задач
- тестирование
- внедрение
- поддержка/сопровождение
Для некоторых этапов есть различные инструментальные средства, например, для автоматизации тестирования есть TestLink, для контроля исполнения задач — разнообразные трекеры, например, Bugzilla, JIRA, Trac; для документирования есть разнообразные WIKI-системы. Есть попытки построить интегрированные решения из нескольких компнентов, например, линейка продуктов компании Atlassian — Confluence, JIRA и другие. Однако полноценного продукта, охватывающего ВСЕ этапы, мне не встречалось вообще.
Далее пойдут мои размышления на тему ожидаемой функциональности от подобного продукта.
Перевод статьи Сары Шерд «Life Cycle of a Silver Bullet», 2003 г.
«Внимание! Выбросьте из головы другие методы оптимизации — мы открыли самый лучший. С нашим методом уровень качества у вас будет расти, а стоимость и время разработки — падать». Практически любой метод оптимизации провозглашается лучшим способом спасти молодой бизнес от проблем. К сожалению, спустя несколько лет этот же самый метод оказывается уже разгромленным и разнесённым в пух и прах, и заменяется новым. В этой притче рассказывается, как это происходит.
Программа Assistant из Qt4 сделана довольно небрежно, например, даже при небольшом количестве открытых табов переключаться между ними очень неудобно. Поэтому фиксим это.
- В файле
centralwidget.h
исправляем параметры строки табов. Нам не нужны табы по ширине всего заголовка, обойдёмся скрыванием части заголовка за многоточием, этот параметр классаQTabBar
называетсяelideMode
, для нас подойдёт значениеQt::ElideMiddle
. Теперь табы будут при необходимости «сжиматься» и исчезнет дико неудобная кнопка прокрутки табов. - Также можно добавить кнопку закрытия на каждый таб.