Общий код vs индивидуальный код
От: Shmj Ниоткуда  
Дата: 15.06.21 18:21
Оценка:
Как бы вы предпочли в команде:

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

2. Некая система контрактов (договоренностей) и их реализация. Каждый реализует сугубо свой модуль, который взаимодействует с другими про некому протоколу и никак не использует код из других модулей. Каждый правит только код своего модуля, к другим даже не имеет доступа.

?
Re: Общий код vs индивидуальный код
От: notacat  
Дата: 15.06.21 18:30
Оценка:
>Каждый правит только код своего модуля, к другим даже не имеет доступа.
и если кто-то уволится, то..?
Re[2]: Общий код vs индивидуальный код
От: Shmj Ниоткуда  
Дата: 15.06.21 18:35
Оценка:
Здравствуйте, notacat, Вы писали:

>>Каждый правит только код своего модуля, к другим даже не имеет доступа.

N>и если кто-то уволится, то..?

Тогда распределяют модули уходящего между другими.
Re[3]: Общий код vs индивидуальный код
От: notacat  
Дата: 15.06.21 19:18
Оценка:
>>>Каждый правит только код своего модуля, к другим даже не имеет доступа.
N>>и если кто-то уволится, то..?

S>Тогда распределяют модули уходящего между другими.

если кто-то любит неприятные сюрпризы, то может и годится. Но в чем смысл команды, если каждый будет жить сам по себе, и при случае ему достанется никому неизвестное легаси?
Re[4]: Общий код vs индивидуальный код
От: YuriV  
Дата: 15.06.21 20:23
Оценка: 1 (1) +2
Здравствуйте, notacat, Вы писали:

>>>>Каждый правит только код своего модуля, к другим даже не имеет доступа.

N>>>и если кто-то уволится, то..?

S>>Тогда распределяют модули уходящего между другими.

N>если кто-то любит неприятные сюрпризы, то может и годится. Но в чем смысл команды, если каждый будет жить сам по себе, и при случае ему достанется никому неизвестное легаси?
А ещё товарищ получит N имплементаций одной и той же функциональности разными способами, разными авторами и в разных модулях.
Re: Общий код vs индивидуальный код
От: vsb Казахстан  
Дата: 15.06.21 20:31
Оценка:
Здравствуйте, Shmj, Вы писали:

S>1. Один большой солюшн на всех, все загружают один и тот же код и правят свою часть. Периодически приходится мерджить, т.к. рано или поздно двое затронут один и тот же файл.


Однозначно этот вариант. Если код хоть сколько-нибудь адекватно разделён и задачи распределяются не от балды, то мердж это скорей исключение, чем правило. А нетривиальный мердж — тем более. А если реально будет конфликт, то обычно про это известно и ничего не мешает поговорить с человеком заранее, например чтобы сделать и согласовать изменения в отдельной ветке, на которую потом обоим перебазировать свои ветки.

В общем проблема мерджа скорей надумана. А возможность быстро посмотреть по всему коду всего проекта — бесценна.

S>2. Некая система контрактов (договоренностей) и их реализация. Каждый реализует сугубо свой модуль, который взаимодействует с другими про некому протоколу и никак не использует код из других модулей. Каждый правит только код своего модуля, к другим даже не имеет доступа.


Про то, чтобы вообще не иметь доступ к исходникам — даже думать не хочу, это ужасно. Readonly доступ будет провоцировать к плохому коду, т.к. может быть проще, например, сделать workaround у себя, чем договариваться с автором о том, чтобы поправить у него баг.

Вообще не вижу плюсов второго варианта. Разве что работают люди, к которым нет доверия. Чисто гипотетический вариант — нанял нескольких фрилансеров и раскидал между ними задачи. Но, мне кажется, такой стиль работы не взлетит. По моему опыту проще фрилансеру дать все нужные доступы и надеяться на его адекватность, по крайней мере обычно так поступают.
Re: Общий код vs индивидуальный код
От: Je suis Mamut  
Дата: 15.06.21 20:54
Оценка: :)
S>1. Один большой солюшн на всех, все загружают один и тот же код и правят свою часть. Периодически приходится мерджить, т.к. рано или поздно двое затронут один и тот же файл.

S>2. Некая система контрактов (договоренностей) и их реализация. Каждый реализует сугубо свой модуль, который взаимодействует с другими про некому протоколу и никак не использует код из других модулей. Каждый правит только код своего модуля, к другим даже не имеет доступа.


Ща прям тут родятся микросервисы. Опять.
Re: Общий код vs индивидуальный код
От: varenikAA  
Дата: 16.06.21 05:49
Оценка:
Здравствуйте, Shmj, Вы писали:

S>2. Некая система контрактов (договоренностей) и их реализация. Каждый реализует сугубо свой модуль, который взаимодействует с другими про некому протоколу и никак не использует код из других модулей. Каждый правит только код своего модуля, к другим даже не имеет доступа.


Есть живой пример того что вы имеете виду? Иногда приходится использовать бинарные dll. в этом нет ничего плохого, если это сторонняя библиотека.
но когда у вас общая кодовая база в большинстве ЯП удобнее 1-е( т.к. в основном ЯП монолитные несмотря на физическое разделение на компоненты).
Контракт соблюдает компилятор созданный умными людьми и его нельзя нарушить.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Общий код vs индивидуальный код
От: Sharov Россия  
Дата: 16.06.21 07:11
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Здравствуйте, Shmj, Вы писали:


S>>2. Некая система контрактов (договоренностей) и их реализация. Каждый реализует сугубо свой модуль, который взаимодействует с другими про некому протоколу и никак не использует код из других модулей. Каждый правит только код своего модуля, к другим даже не имеет доступа.


AA>Есть живой пример того что вы имеете виду?


Микросервисная архитектуру не оно?
Кодом людям нужно помогать!
Re[3]: Общий код vs индивидуальный код
От: varenikAA  
Дата: 16.06.21 07:18
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Микросервисная архитектуру не оно?


да, только преимуществ ноль на мой взгляд.
героически преодолевать самими созданными трудности?
прикручивать свагер, графкьэль, загружать в докер. зачем?

https://www.osp.ru/os/1996/06/179017
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Общий код vs индивидуальный код
От: Sharov Россия  
Дата: 16.06.21 08:38
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>прикручивать свагер, графкьэль, загружать в докер. зачем?


Для контроля и облегчения работы с распределенной системой, которая нужна, чтобы держать нагрузку.
Кодом людям нужно помогать!
Re[5]: Общий код vs индивидуальный код
От: varenikAA  
Дата: 16.06.21 08:43
Оценка:
Здравствуйте, Sharov, Вы писали:


S>Для контроля и облегчения работы с распределенной системой, которая нужна, чтобы держать нагрузку.


часто ли вы сталкиваетесь с такой нагрузкой, что требуется особые инженерные решения?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[6]: Общий код vs индивидуальный код
От: Sharov Россия  
Дата: 16.06.21 09:55
Оценка:
Здравствуйте, varenikAA, Вы писали:

S>>Для контроля и облегчения работы с распределенной системой, которая нужна, чтобы держать нагрузку.

AA>часто ли вы сталкиваетесь с такой нагрузкой, что требуется особые инженерные решения?

К сожалению нет, надеюсь пока нет, но вообще учитывая 5g и iot, бигдата скоро будет общим местом.
Дело даже не в нагрузке, сколько в переходе к SAAS модели, когда все эти инструменты внезапно пригождаются.
Кодом людям нужно помогать!
Re[5]: Общий код vs индивидуальный код
От: Shtole  
Дата: 13.07.21 16:47
Оценка:
Здравствуйте, YuriV, Вы писали:

>>>>>Каждый правит только код своего модуля, к другим даже не имеет доступа.

N>>>>и если кто-то уволится, то..?

S>>>Тогда распределяют модули уходящего между другими.

N>>если кто-то любит неприятные сюрпризы, то может и годится. Но в чем смысл команды, если каждый будет жить сам по себе, и при случае ему достанется никому неизвестное легаси?
YV>А ещё товарищ получит N имплементаций одной и той же функциональности разными способами, разными авторами и в разных модулях.

А например?

Если это базовая функциональность, она реализована в FCL/boost/wherever...

Если это узкоспециальная функциональность, как так получается, что её пришлось реализовывать в 2 разных модулях 2 разных авторов?

В общем, хотелось бы конкретный пример.
Do you want to develop an app?
Re[6]: Общий код vs индивидуальный код
От: Muxa  
Дата: 13.07.21 16:58
Оценка:
YV>>А ещё товарищ получит N имплементаций одной и той же функциональности разными способами, разными авторами и в разных модулях.
S>Если это узкоспециальная функциональность, как так получается, что её пришлось реализовывать в 2 разных модулях 2 разных авторов?
См. условия задачи

Каждый правит только код своего модуля, к другим даже не имеет доступа.

Re[7]: Общий код vs индивидуальный код
От: Shtole  
Дата: 13.07.21 17:01
Оценка:
Здравствуйте, Muxa, Вы писали:

YV>>>А ещё товарищ получит N имплементаций одной и той же функциональности разными способами, разными авторами и в разных модулях.

S>>Если это узкоспециальная функциональность, как так получается, что её пришлось реализовывать в 2 разных модулях 2 разных авторов?
M>См. условия задачи
M>

Каждый правит только код своего модуля, к другим даже не имеет доступа.


Я просил пример, а не общие рассуждения.
Do you want to develop an app?
Re[5]: Общий код vs индивидуальный код
От: ylem  
Дата: 14.07.21 09:26
Оценка:
YV>N имплементаций одной и той же функциональности разными способами, разными авторами и в разных модулях.
И если надо в каком-то из модулей ее поправить, можно делать это смелее, потому что меньше опасности сломать что-нибудь неизвестно где
Re: Общий код vs индивидуальный код
От: rosencrantz США  
Дата: 14.07.21 20:26
Оценка: 6 (1) +1
Здравствуйте, Shmj, Вы писали:

S>Как бы вы предпочли в команде:


S>?


Есть же Закон Конвея: https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%BA%D0%BE%D0%BD_%D0%9A%D0%BE%D0%BD%D0%B2%D0%B5%D1%8F

Организации проектируют системы, которые копируют структуру коммуникаций в этой организации


В данном случае нужно просто ответить на вопрос: какова структура коммуникаций команды? Если всё более менее однородно, с монолитом будет удобно. Если очень неоднородно, контракты — наше всё.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.