среда, 23 марта 2016 г.

New, new, new

Не надо писать new в названии чего-либо. Раздражает, мешает, запутывает.

Есть к примеру модуль. Пусть для определенности с названием ABC. Потом один из разработчиков делает сильное усовершенствование и считает что изменение таково что надо давать даже другое название. И появляется NewABC.

В реальности для того чтобы отличать модуль и усовершенствованный модуль есть такая штука как версия. Если изменения таковы что даже замены номера версии недостаточно чтобы отразить всю мощь, то дается другое название. Но это уже тогда не ABC, и в названии должно стоять что-то другое, например DEF.

Проходит время, но название NewABC остается, используется, интегрируется в контроле версий, плодятся каталоги. Приходит еще один разработчик, видит название NewABC. Что ему должно сказать в данном случае это слово-приставка new?

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

Может, просто лучше пользоваться обычными общеупотребляемыми соглашениями?

В большинстве случаев наименование или идентификация элемента, модуля, продукта состоит из трех частей - Производитель, Название, Версия. Версия в классическом понимании состоит из 4-х чисел. Самое первое - самое главное, остальные вроде более подробной детализации. Начнем с конца. Последнее 4-е число означает что при его изменении есть хоть какое-то отличие от предыдущей версии.

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

Изменение 3-го числа версии означает, что автоматика не добирается до его изменения и это изменение более значимо чем 4-е число и это изменение делает человек, и осмысленно. Важность третьего числа такова, что программист может изменять его сам, должен вложить в это изменение что-то осмысленное, заметное. Например, исправление ошибки. Или добавленная функция. Для изменения 3-го знака не требуется разрешения руководства и каких-либо согласований. По измененному третьему знаку может начаться переписка например по теме техподдержки, поскольку это изменение осмысленно и для кого-то может означать решение какой-то небольшой но проблемы.

Изменение 2-го числа версии является сильно значимым, означает что в этой версии продукта или модуля изменения заметны невооруженным глазом. Изменения 2-го числа версии планируются, согласуются, строится список задач. В рамках этой версии и производятся изменения 3-го и 4-го числа. Например, если была версия 2.2.34.78, то после совещания и принятия планов на следующую версию ее переименовывают в 2.3.0.0, от которой и начинается отсчет всех остальных последующих в рамках версии 2.3.

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

Во второе число версии вносятся изменения, которые функционально или внешне сильно заметны пользователю, и дают качественно новую возможность. Например, поддерживается еще один формат данных или протокол. Или несколько. Объем изменений, делаемых в пределах второго числа версии определяется общим соглашением о первом числе версии, объем изменений не должен приводить к тому что уже требуется изменение и первого числа.

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

Изменения, более сильные чем в первом числе версии это уже изменение самого продукта настолько, что нет смысла называть его также. Уже требуется изменение названия. И вот тут слово New в качестве приписки к названию по своему факту есть попытка перенести в название то что должно быть в версии, то есть структурировать не версию, а название. Это просто неправильно. Сбивает с толку. Что это такое становится - тот же продукт но более новой версии или совершенно новый продукт, который имеет другое назначение, поскольку изменено название.

Ну и самое сильное изменение после смены названия продукта это смена продукту названия производителя. Это происходит при покупке продукта целиком или при покупке производителя. Изменения которые могут при этом произойти могут быть непредсказуемыми. Малоизвестный продукт с трехкопеечным функционалом может превратиться в монстра, интегрированного со всей линейкой продуктов нового производителя. Хотя название может остаться то же самое.

В общем, не надо использовать слово new. Раздражает.

Комментариев нет:

Отправить комментарий