Чи швидка основна версія натрапляє на свідчення поганого дизайну?


16

Я розпочав роботу молодшим програмістом кілька місяців тому. Система, над якою ми працюємо, виробляється ~ 2 роки. Я не брав участі в жебрацтві системи та дизайні.

Одне, що я помітив, - це те, що основна версія системи вже є 11.YZ Форма мого досвіду роботи з іншими системами та бібліотеками, я не пам'ятаю, щоб продукт швидко натикався на основну версію. Є продукти, які роками перебувають у 1.XY та все ще отримують функції та виправлення.

Якщо припустити, що семантична версія використовується належним чином, чи це вказує на те, що система погано розроблена, оскільки вона вносить значні зруйновані зміни майже кожні чотири місяці?


2
Це питання буде залежати від того, чи принесуть ті основні зміни, що приносять великі переваги (та прибуток), які виправдовують високу швидкість змін.
rwong

3
Якщо в цьому номері версії використовується Semver, і якщо в системі є бібліотека або інший API, від якого залежать інші команди чи організації, то це велике основне число означає, що виникли проблеми приєднатись до стабільного розширюваного дизайну API. Це також означає, що чітке повідомлення про несумісність високо цінується, що є хорошою справою. Щодо іншого (наприклад, маркетингові назви, прикладні програми, номери не Semver,…) ця цифра є безглуздою і її слід значною мірою не враховувати. Просто запитайте своїх колег з цього приводу, як частина вас знайомиться з проектом краще.
амон

3
@amon Система використовується внутрішньо з загальнодоступними мобільними клієнтами, які спілкуються з системою за допомогою API, що нагадує REST. Як я вже згадував, це версія Semver, а не маркетингова версія.
користувач367035

Число не має значення, але я став би підозрілим, якби ідентифікатор версії включав якусь милу абревіатуру, наприклад, Windows NT або Windows ME або XP або дійсно Windows нічого.
Джон Ву

1
@JohnWu: питання стосується конкретно числа, тому так, так, число має значення. Точніше, мова йде про число в контексті SemVer, де число не тільки має значення, але і має точно вказане значення.
Йорг W Міттаг

Відповіді:


14

Якщо припустити, що семантична версія використовується належним чином, чи це вказує на те, що система погано розроблена, оскільки вона вносить значні зруйновані зміни майже кожні чотири місяці?

Не обов'язково.

Ви згадували в коментарях, що це внутрішній API. Порушення API погано, тому що ви порушуєте код кожного. Але для внутрішнього API "всі" - це лише "ви", і ви цілком здатні координувати такі зміни API з самим собою, тому біль, яка зазвичай пов'язана зі змінами API, значно гірша.

Крім того, середній показник може бути масово введеним в оману: можливо, у них відбулося 11 проривних змін API протягом перших двох днів раннього розвитку, і вони були стабільними протягом 4 років? SemVer дає змогу вносити зміни, не збільшуючи основне число, якщо основне число дорівнює 0, але це не змушує вас робити це. Можливо, вони почали використовувати SemVer з 0 дня, навіть на етапах прототипування / дослідження?


5
Ця відповідь, здається, безпосередньо стосується питання. Деякі з інших відповідей були б справедливими, якби не припущення ОП про семантичну версію.
joshp

Також примітно, що порушення змін не завжди є важливими. Іноді вони насправді зовсім невеликі (все-таки важливі). Таким чином, їм може знадобитися дуже мало змін для користувачів. Крім того, може бути досить велика ступінь порушення змін залежно від способу використання API. Інколи, наприклад, неполадка не вплине на всіх користувачів, наприклад. Крім того, виправлення помилок можуть вносити неполадки, проте їх ідеально виправити раніше, ніж пізніше. А якщо API внутрішній, то впоратися з цими невеликими переломними змінами набагато простіше.
Кет

1

Коротка відповідь

Ні

Довга відповідь

"Іноді число - це просто число"

Забудьте про "семантичну версію", "раціональність", "логіку" в сучасному шаленому світі

Чому Chrome так швидко збиває номери версій?

номери "версії" використовуються як віхи для точок відділення, а не основні релізи, щоб дивитись громадськості способом, яким користуються інші розробники. І це постійний потік розвитку, який має готові чи не готові функції, а не випадкова подія, яка об'єднує багато нових функцій, щоб зробити велику подію


7
ОП заявила, що вони використовують семантичну версію; чому ти тоді це ігноруєш?
Йорг W Міттаг

-3

При використанні семантичного версії все ще приймається рішення про те, які зміни вважаються "основними", а які "незначними". Існують різні причини збивати номер версії - або не збивати її.

Системи з обіцянками щодо зворотної сумісності можуть призвести до того, що у більшості оновлень нарікається основний номер версії, лише тому, що в деякому більш-менш езотеричному кутовому випадку відбувається розрив зворотньої сумісності. Ці ж системи можуть дотримуватися 1.xy майже невизначено, оскільки багато зусиль докладається до зворотної сумісності, намагаючись ніколи не порушувати будь-яку залежну систему. Обидва підходи до нумерації версій можна вважати «консервативними», але обидва також можуть бути ознакою глибокої основної проблеми.

В іншому випадку у вас фактично є розклад випусків (думайте про щоквартальні оновлення компакт-дисків, що надсилаються клієнтам), де є сенс змінити основний номер версії, щоб замість "Версії 3.4 / 16 жовтня" просто сказано "Версія 11.0". В даний час все більше і більше програмного забезпечення випускається з короткими інтервалами, що робить графіки випуску менше причин дотримуватися певної схеми версій. Я бачив це у великих складських системах, які дозволяють внутрішньому ІТ лише один день простою в квартал (як правило, в неділю). Цей день є днем ​​розгортання і кожного разу відзначається новою основною версією.

Деякі програми мають зовнішні залежності, які мають надзвичайно важливе значення, оскільки користувачеві доведеться оновлювати обидві одночасно. Якщо у вас є Word-addon, який працює лише з Word 2010 та ще один для Word 2013, можливо, ви захочете синхронізувати ваші основні номери версій з номером MS-Word. Тут важливі основні цифри, тому що деякі ваші користувачі будуть "позаду" вашого звичайного розкладу оновлень, оскільки вони не оновлювались до найновішої версії Word (або будь-якого іншого, на що ви покладаєтесь: SAP, Dynamics, тощо).

Інколи інші зовнішні фактори диктують номери версій. Якщо у вас є фіскальне програмне забезпечення, можуть бути щорічні оновлення, що відповідають податковому законодавству (яке, як правило, набирає чинності з 1 січня). Такі системи матимуть основні версії, що змінюються рівно один раз на рік - не тому, що це графік оновлення, а тому, що це має інше значення для клієнта: Якщо ви робите податки на 2016 рік, то краще мати програму, яка буде оновлена ​​до податкового законодавства 2016 року.

Зрештою, номери версій залежать від багатьох чинників - часто специфічних для одного домену - що число саме по собі не сказати вам що - небудь про стан вашого кодову. Це набагато кращий підхід, щоб подивитися, коли, чому і як відбувається розгортання - і як плавно це відбувається. Якщо ви зможете розгорнути основне оновлення до 10 000 клієнтів і здійснити пару телефонних дзвінків - вам, мабуть, все добре. Якщо ви розгорнете незначний виправлення до 10 клієнтів і вам доведеться працювати понаднормово через це, можливо, щось не так.


3
"Під час використання семантичної версії все ще приймається рішення, які зміни вважаються" основними ", а які" незначними "." - Ні, немає; що точно визначено в специфікації. "Існують різні причини збивати номер версії - або не збивати її." - Ні, немає; є точно одна причина збільшення основної кількості (про яку йдеться в цьому питанні), і вона визначена саме в специфікації.
Йорг W Міттаг

1
@ JörgWMittag Або я читаю це неправильно, або специфікація конкретно говорить, коли ви ОБОВ'ЯЗКОВО збільшити номери версій, але нічого не говорить про те, коли ви МОЖЕТЕ.
Hazzit

-4

Консенсус щодо значення номерів версій дійсно є головним.minor.revision.buildnumber

Якщо майор швидко зростає, це може бути у розробника всі ці нові ідеї і дуже важко працює.

Однак у світі бізнесу можуть бути інші причини збільшення основного номера версії. Подобається

  • Продажі знижуються, клієнти / користувачі чекають наступного великого випуску перед оновленням.

  • У договорі зазначено, що клієнти мають право на незначні оновлення. Постачальник не може стягувати плату за них, тому незначне поліпшення продається як головне оновлення продукту.

  • Конкурент X був у грі трохи довше, тому їх основний номер версії просто виявляється вищим, ніж ваш. Це робить його схожим на те, що ви відстаєте, вам доведеться «наздогнати».


6
Питання позначене семантичним версією , ОП у запитанні зазначає семантичну версію і в коментарях ще раз підтверджує, що вони використовують семантичну версію. Специфікація SemVer дуже чітко говорить про збільшення основних версій. Жодна з ваших "інших причин" не застосовується.
Йорг W Міттаг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.