powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Оффтоп на тему микросервисы/фронтэнд/закон Конвея
25 сообщений из 46, страница 1 из 2
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39312688
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема не совсем про Java, но мне почему то все равно хочется задать его в этой ветке. Допустим мы все нижесказанное будет относиться к кровавому java энтерпрайзу.

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

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

Интересует в том плане в каком направлении развиваться самому / развивать проект (как следствие развивать команду)? Универсальные бойцы или узкие специализации front/server/db?
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39312698
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirИнтересует в том плане в каком направлении развиваться самому / развивать проект (как следствие развивать команду)? Универсальные бойцы или узкие специализации front/server/db?
Я всегда за специалистов широкого спектра. Я несколько раз наблюдал команды со строгим разделением ролей. И, когда, 5 человек пилит каждую фичу, это жопа. Вася запилил морду и ждет Петю, который должен написать сервис, Ване некогда добавить поле в таблицу, он занят. И все друг на друга показывают пальцем в случае чего. А когда Ваня уходит в отпуск, то всё, приплыли. Нужно уговаривать кого-то написать SQL скрипт.

В своей команде я всегда назначал фичу на человека целиком. В результате человек разбирался во всём проекте. Конечно, со временем возникает некоторая специализация, и кто-то в большей степени отвечает за UI чем за SQL. Но специализация должна быть размытой, а ответственность за фичу - конкретной. В противном случае, может оказаться что ответственность размыта, в специализация очень конкретная и, посему, узкая. И в этом нет ничего хорошего.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39312723
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
если это стек технологий в стиле UI на JSF или GWT или что-нибудь не очень хитрое на базе пары jQuery компонент, нехитрый серверный код (без заморочек на j/u/c) + работа с базой через JPA, то вопросов нет. А если будет стек технологий, когда одновременно лабают UI на TypeScript+Angular 2, но при этом если что нужно и подправить PL/SQL процедурку на сотню-другую строчек?
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39312730
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Узкие и широкие .
Что касается технологий, то с моей кочки зрения, наблюдается некий "кризис жанра" - все пытаются бежать ещё быстрее, чтобы только остаться на месте.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39312780
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirесли это стек технологий в стиле UI на JSF или GWT или что-нибудь не очень хитрое на базе пары jQuery компонент, нехитрый серверный код (без заморочек на j/u/c) + работа с базой через JPA, то вопросов нет. А если будет стек технологий, когда одновременно лабают UI на TypeScript+Angular 2, но при этом если что нужно и подправить PL/SQL процедурку на сотню-другую строчек?
Мысль верная, но пример, конечно, так себе. Я, например, и на Flex/ActionScript писал. И на T-SQL ваял хранимки на несколько экранов. И TypeScript не без удовольствия попробовал бы. Нужды не было. Из коллег Java-программистов почти никто iOS/Android/Angular не чурается. А некоторые даже получили сертификат Oracle DBA.
Но, конечно, UX эксперт или дизайнер и DBA это очень слабо коррелирующие специализации. Но и к программированию они относятся мало. Поэтому, если оставаться в рамках программирования, то я не вижу никаких ограничений в широкой специализации.
А вот если выйти за рамки программирования, на весь IT и дальше, то очевидно, что у ширины специализации всегда есть предел. У кого-то он меньше, у кого-то больше.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39312781
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov Узкие и широкие .

Теория хорошая, интересная. Но не доказанная.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39312783
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доказательство требует очень чёткой организации команды и некоторых доп.условий.
Обычно, проще иметь группу "умеренно широких" специалистов, чем пытаться создать идеально сыгранный оркестр из узких.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39312789
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovДоказательство требует очень чёткой организации команды и некоторых доп.условий.
Обычно, проще иметь группу "умеренно широких" специалистов, чем пытаться создать идеально сыгранный оркестр из узких.
То есть, если команда широких специалистов способна к некоторой самоорганизации, то для орекстрирования узкими специалистами нужны дополнительные затраты на менеджмент.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39312798
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не только - в вашем же примере, узкий SQL-специалист, прежде чем создать таблицу, обязан поинтересоваться: какая, собственно, задача решается. По результатам обсуждения может быть предложен более эффективный вариант. А может и не быть.
Я бы сказал, что это часть более общей проблемы: надо ли изначально закладывать затраты на "эффективную разработку", если, обычно, "и так сойдёт". Причём - неплохо сойдёт.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39312808
rrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас микросервисы и специализация. По сути система из 3х основных сервисов-слоев, каждую фичу пилит 3 человека. Нас это мало волнует, потому что мы никуда не спешим.

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

Если любая фича требует внесения изменений во все существующие сервисы, то возможно это никакие не сервисы, а просто систему попилили на связанные части (на практике обычно так и есть :).
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313002
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirУниверсальные бойцы или узкие специализации front/server/db?
не в той плоскости вопрос.
Управление проектом это одно. А архитектура это другое.
Скажу больше по архитектуре, а не по людям).
...
Сейчас IMHO фреймворк определяет как мы пишем.
А вот если мы сами пишем свой фреймворк (изобретаем "микросервисы") то я их нигде не видел.
Вроде обычные у всех решения.
IMHO
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313075
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirВ последние годы наблюдаю несколько трендов, которые по ощущениям даже немного противоречат друг другу. Первый из них это выделение фронт-энд в целую отдельную нишу со своим стеком технологий и т.д., второй тренд это стремление к различным микросервисам, где вроде как наоборот пропагандируются кросс-функциональные компетенции.


Вот хоть убей не вижу противоречия.
Наоборот эти вещи неразрывно связаны.

Грубо говоря back-end`щик пишет микросервис на своем любимом ЯП. Создает API (например REST API) для взаимодействия с микросеврсом.
А front-end`щик на своем любимом JS-фреймворке рисует "морду" к данному микросервису.

Все довольный. Никто ни от кого сильно не зависит.
Тесты те же писать одно удовольствие.
back-end рисует свои тесты, для проверки правильности работы API, а front-end свои.

Засада, как обычно в "деталях".
Спроектировать API взаимодействия front-end и back-end не совсем тривиальная задача.

Особенно когда бизнес-логика не тривиальная.
Вот тогда начинается "футбол" м/у front-end и back-end, за то кто и где будет писать эту логику.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313225
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И все забыли про первое сообщение "... где вроде как наоборот пропагандируются кросс-функциональные компетенции."

Т.е. всё логично- вот мы пилим дополнение к большой системе. Там, как принято, веб-UI на javascript. Отдельные микросервисы на java.
Вот и получается- что да, мы хорошо отделены от остальной части, общаемся только через rest-api, у себя моки, заглушки и т.п.

Но веб-морда - всё пишет отдельный человек. Он может у нас что-то править, а вот мы у него- не можем.

И дело даже не в том, что javascript для всех видится невнятной кашей букв, но и в том, что веб-морда по сути один большой кусок... кода. И править его никто из нас не готов. Становится js-разработчиками желания нет- хватает своих обязанностей и нужных знаний.

Так что получается такая забавная структура- каждая команда делает кусок бэкенда, а отдельная команда- весь UI.
Потому что пользователю пофиг, где у нас там стыки микросервисов- он хочет видить один сайт.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313258
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazguljust_vladimirВ последние годы наблюдаю несколько трендов, которые по ощущениям даже немного противоречат друг другу. Первый из них это выделение фронт-энд в целую отдельную нишу со своим стеком технологий и т.д., второй тренд это стремление к различным микросервисам, где вроде как наоборот пропагандируются кросс-функциональные компетенции.
Вот хоть убей не вижу противоречия.
Наоборот эти вещи неразрывно связаны.
He вот читаю я статью Фаулера (умный мужик говорят, обычно знает что пишет):
http://martinfowler.com/articles/microservices.html Organized around Business Capabilities

When looking to split a large application into parts, often management focuses on the technology layer, leading to UI teams, server-side logic teams, and database teams. When teams are separated along these lines, even simple changes can lead to a cross-team project taking time and budgetary approval. A smart team will optimise around this and plump for the lesser of two evils - just force the logic into whichever application they have access to. Logic everywhere in other words. This is an example of Conway's Law[5] in action.

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.

-- Melvyn Conway, 1967

Figure 2

Figure 2: Conway's Law in action

The microservice approach to division is different, splitting up into services organized around business capability. Such services take a broad-stack implementation of software for that business area, including user-interface, persistant storage, and any external collaborations. Consequently the teams are cross-functional, including the full range of skills required for the development: user-experience, database, and project management.
Может конечно у меня с английским как то не очень?
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313265
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominИ все забыли про первое сообщение "... где вроде как наоборот пропагандируются кросс-функциональные компетенции."

Т.е. всё логично- вот мы пилим дополнение к большой системе. Там, как принято, веб-UI на javascript. Отдельные микросервисы на java.
Вот и получается- что да, мы хорошо отделены от остальной части, общаемся только через rest-api, у себя моки, заглушки и т.п.

Но веб-морда - всё пишет отдельный человек. Он может у нас что-то править, а вот мы у него- не можем.

И дело даже не в том, что javascript для всех видится невнятной кашей букв, но и в том, что веб-морда по сути один большой кусок... кода. И править его никто из нас не готов. Становится js-разработчиками желания нет- хватает своих обязанностей и нужных знаний.

Так что получается такая забавная структура- каждая команда делает кусок бэкенда, а отдельная команда- весь UI.
Потому что пользователю пофиг, где у нас там стыки микросервисов- он хочет видить один сайт.
Все верно, об этом и речь.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313268
just_vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Управление проектом это одно. А архитектура это другое.
Скажу больше по архитектуре, а не по людям)
Не верите в закон Конвея?
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313278
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulВот тогда начинается "футбол" м/у front-end и back-end, за то кто и где будет писать эту логику.

А это решается просто- за каждую фичу есть один ответственный, который распределяет задачи.
Если начинается футбол, то пас даёт ответственный без права перепаса
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313353
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirmad_nazgulпропущено...
Вот хоть убей не вижу противоречия.
Наоборот эти вещи неразрывно связаны.

He вот читаю я статью Фаулера (умный мужик говорят, обычно знает что пишет):
...
Может конечно у меня с английским как то не очень?

Правильно пишет.
Но это если кто-то пишет один микросервис.
То да, он и швец, и жнец, и на дуде игрец.

Но если использовать микросервисную архитектуру, то разработка не вполне может свестись к тому что вы привели в первом абзаце.
Кто-то делает микросервисы, а кто-то рисует к ним GUI.

Так что микросервисная архитектура все равно подвержена закону Конвея ;-)
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313376
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tominmad_nazgulВот тогда начинается "футбол" м/у front-end и back-end, за то кто и где будет писать эту логику.

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

Ну сам не сталкивался, но коллеги имели много проблем.

Бак-енд написал несколько сервисов (услуги)
Фронт-енд нарисовал к ним GUI (с валидацией, аутентифкацией и пр).

Потом пришло ТЗ сделать услугу, которая является композицией нескольких услуг.
Т.к. почти все услуги асинхронные, и должны выполнятся в определенном порядке, причем время отклика некоторых услуг могла исчисляться днями. То тут началось веселье.
По идее сервисы для всех услуг есть. Но использовать их в композиции напрямую нельзя, т.к. важно состояние.
Поначалу был "футбол", потом когда разобрались, пришлось потеть всем и back-end`у и front-end`у.

В общем микросервисы это хорошо.
Но они не "серебрянная пуля". Т.к. взаимодействие м/у микросервисами может вызвать "комбинаторный взрыв".

И да, теперь я с опаской отношусь к асинхронному взаимодействию.
Т.к. он усложняет задачу как минимум в два раза.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313381
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulИ да, теперь я с опаской отношусь к асинхронному взаимодействию.

Самое веселое это отладка, когда у тебя на один use case более трех асинхронных методов.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313778
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirНе верите в закон Конвея?
дак всё таки вопрос в управлении проектами?
Есть более простой аналог Конвея - фраза: "Пишите на том что знаете".
Эту фразу все программисты знают.
С другой стороны, я верю в личность Архитектора или руководителя проектов.
Если они - личность и рулят проектом, то и микросервисы будут положительные.
Если нет, то красивое слово микросервисы только угробят проект.
Раньше вместо микросервисов можно было сказать что слабая связанность модулей угробила проект.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313791
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulПравильно пишет.
Но это если кто-то пишет один микросервис.
То да, он и швец, и жнец, и на дуде игрец.

Но если использовать микросервисную архитектуру, то разработка не вполне может свестись к тому что вы привели в первом абзаце.
Кто-то делает микросервисы, а кто-то рисует к ним GUI.

Так что микросервисная архитектура все равно подвержена закону Конвея ;-)
Я-бы проголосовал ЗА микросервисную архитектуру т.к. я в ней вижу возможности
условного разнесения логики на отдельные независимые части (акторы) и выделение
каналов микросервисов - как потоков месседжей между акторами.

Про классической (монолитной) архитектуре когда ПО разрабатывается так что оно
работает либо на кластере (со всеми вытекающими - штормы событий, жесткие
требования по идентичности конфигураций, сложные и неоднозначные механизмы
синхронизации общей памяти, split-brain, и невозможность включать или
исключать узлы на ходу) либо на просто очень мощной и дорогой железке
которая тоже имеет естесвтенные (природные ограничения) по частоте тактового
генератора.

Монолитное ПО обычно обновляется единоразово с остановом сервиса. Оно - критично.
Его нельзя трогать. Над ним трясутся. И сдувают пыль.

Микросервисное ПО (я надеюсь) будет не только синхронным но и асинхронным
что открывает новые возможности по организации процессов обработки данных.

А само по себе ТЗ которое требует единой точки входа и единого "дирижера"
вроде механизма транзакций и требований по ACID нужно просто пересматривать
с точки зрения законов развития естественого мира. Под развитием я подразумеваю
сроки порядка 10-100 лет.

Никто не сможет построить полностью синхронное ПО в условиях коммуникации
нескольких планет солнечной системы. У нас нет физических сред где можно
генерировать такты. Мы сможем строить только потоки данных. Причем односторонние.

Разумеется я не говорю что обычные архитектуры будут не нужны. Они нужны.
Просто их надо пересмотреть с точки зрения ближнего и далекого будущего.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313835
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonmad_nazgulПравильно пишет.
Но это если кто-то пишет один микросервис.
То да, он и швец, и жнец, и на дуде игрец.

Но если использовать микросервисную архитектуру, то разработка не вполне может свестись к тому что вы привели в первом абзаце.
Кто-то делает микросервисы, а кто-то рисует к ним GUI.

Так что микросервисная архитектура все равно подвержена закону Конвея ;-)
Я-бы проголосовал ЗА микросервисную архитектуру т.к. я в ней вижу возможности
условного разнесения логики на отдельные независимые части (акторы) и выделение
каналов микросервисов - как потоков месседжей между акторами.


Я тоже за "микросервисную" архитектуру, т.к. она позволяет собрать сложную систему из не сложных компонентов.
Но проблема в том, что сложность никуда не девается.
Она переходит во взаимодействие м/у компонентами.
Что налагает большую ответственность на разработку API микросервисов.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313838
Sergunka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
just_vladimirТема не совсем про Java, но мне почему то все равно хочется задать его в этой ветке. Допустим мы все нижесказанное будет относиться к кровавому java энтерпрайзу.

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

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

Интересует в том плане в каком направлении развиваться самому / развивать проект (как следствие развивать команду)? Универсальные бойцы или узкие специализации front/server/db?

Вообще сейчас явно наметился тренд Cloud + Machine Learning - все остальное по баблу резко уступает здесь в Долине.
...
Рейтинг: 0 / 0
Оффтоп на тему микросервисы/фронтэнд/закон Конвея
    #39313877
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulmaytonпропущено...

Я-бы проголосовал ЗА микросервисную архитектуру т.к. я в ней вижу возможности
условного разнесения логики на отдельные независимые части (акторы) и выделение
каналов микросервисов - как потоков месседжей между акторами.


Я тоже за "микросервисную" архитектуру, т.к. она позволяет собрать сложную систему из не сложных компонентов.
Но проблема в том, что сложность никуда не девается.
Она переходит во взаимодействие м/у компонентами.
Что налагает большую ответственность на разработку API микросервисов.
Верная мысль насчет сложности. Мне пришлось работать как-то в проекте из
50 чел.
Разработка была разбита на команды по 5-7 чел. Работали по Ajile. Времени на освоение
кода почти не было. (знакомая ситуация) Шла разведка боем.
До этого. Я заметил что возникает miss comunications и одна команда не знает чем занята другая.
Разумеется борды с тикетами публиковались но очевидно этого было недостаточно.
Формат митингов не позволял собрать все 50 чел. Кроме того часть людей были в другом
часовом поясе.

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

И если тренд на микро-сервисность помогает переосмыслить важность и значимость интрефейсов
(один пункт в философии SOLID) то я еще раз голосую +1 за микросервисность.

Кстати в тему сложности на хабре лежит новая статья.
https://habrahabr.ru/post/310782/
...
Рейтинг: 0 / 0
25 сообщений из 46, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Оффтоп на тему микросервисы/фронтэнд/закон Конвея
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]