Як слід зберігати код у контролі версій?


19

Як слід зберігати код у контролі версій?

Дружній для розробників ? так що програміст може швидко взяти останню версію та змогти запустити від свого редактора, не зробивши багато змін? (наприклад, конфігураційні файли, що вказують на DB DB іetc)

або

Чи повинно бути виробництво дружнє ? джерело має бути таким, який легко розгорнути у виробничому середовищі, і коли розробник приймає останнє, він повинен виконувати зміни відповідно до своїх потреб у розробці.

Відповіді:


56

Чому вибирати? Це повинно бути і те, і інше.

У вашому середовищі розробки має бути налаштовано так просто, як робити замовлення, відкривати, будувати, запускати, налагоджувати (наприклад: немає абсолютного шляху!). Це можна легко зробити, використовуючи директиви компіляції, клас конфігурації + введення залежності, або навіть хитрощі, як perso.config в ASP.NET

Ваш автоматизований сценарій збірки повинен бути налаштований так, щоб він відповідав конкретній конфігурації виробництва, очищенню, упаковці тощо.


Що таке perso.config? Швидкий google мені не допоміг.
Тім Мерфі

1
У файлі конфігурації додатків .NET ви можете посилатися на інший файл конфігурації програми, який, якщо його знайдете, буде заміняти задані параметри. Таким чином, ви можете створити файл dev.config, який переосмислює такі речі, як рядки з'єднання та інші речі, і виключає його з репост.

5
+1 - розробники не повинні думати, щоб отримати правильне джерело. Також розгортання виробництва не повинно відбуватися безпосередньо з управління джерелами, але з належним чином складеними, перевіреними та відстежуваними елементами. Цей процес повинен бути повністю автоматизованим.

9

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

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

Іноді ви можете витратити більше пів дня на отримання та складання кількох інших проектів, щоб створити проект, який ви шукаєте.

Звичайно, це дійсно актуально лише для розробки в Windows.


1
Це клопоти від мене. Ви навіть знаходите його на дуже відомих ОС.
Тім Мерфі

1
Існують системи, які усувають цю проблему шляхом автоматичного отримання залежностей. Наприклад Apache Maven, Ivy або scons.
sleske

4

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


Якщо ви використовуєте двигун безперервного розгортання, виробниче розгортання не повинно бути проблемою.

1

Це повинно бути зручним для виробництва, інакше підтримувати автоматизовані конструкції проблематично.


8
Чому? Автоматизований сценарій збірки може зробити всі необхідні переклади для реструктуризації джерела у розгорнуту форму. Ніколи не набридайте людям чимось автоматизацією.
Joeri Sebrechts

1

Я все для зниження тертя, щоб легше було виконати роботу, але також потрібно враховувати режими відмов.

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

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

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


0

Я прагну до виробництва, сприятливого для виробництва. Він підтримує чистоту вашої конструкції та запобігає перетворенню сторонніх параметрів у виробництво.


0

Безумовно, дружній для розробників, зі сценаріями для автоматизації змін для забезпечення якості та виробництва.


-1

Чому б не мати відділення (залежно від того, який контроль над версіями ви використовуєте - я використовую Git) для розгорнутого коду та іншого для готової для розробника версії? Це звучить набагато краще, і це не так важко налаштувати.

Ви можете працювати та вносити зміни, а потім об'єднувати їх у розгорнутій версії.


Оскільки довгоживучі гілки дорогі в управлінні, і вони, як правило, важко злити. Вам слід запам'ятати, щоб внести всі зміни на обидві гілки. Набагато краще, щоб обидві версії були однаковими та / або мали сценарій для генерації розгортаючої штучки з готового коду розробника.
bdsl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.