All streams
Search
Write a publication
Pull to refresh
0
0
Send message

предлагается на каждую комбинацию репозиториев заводить агрегат и хардкодить его сохранение?

неужели в го нет ни одного прямого способа реализовать cross cutting concerns

есть еще определение: микросервисы - это распределенный монолит

ибо сначала они говорят, что сервисы независимы, но на практике A зависит от B и C, B зависит от D и E и конечно особый шик это закольцевать зависимости чтобы E зависел от А,B

и тогда раскатка любой мажорной фичи - просто песня, надо загасить весь кластер, обновиться и заново поднять

3-5 человек мало! зовите минимум шесть - кандидат должен себя почувствовать как на съемках гэнгбэнг

начали за здравие, закончили за упокой..

так где описание взаимодействий со смежными системами? где процессы, где протоколы? где предусловия, постусловия, инварианты?

на выходе картинка DI графа. это полнейшая СТАТИКА. а где динамика?

из картинки можно извлечь что userService вызвал phoneService - офигеть какое великое знание

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

через сигма типы могут

все ждал когда же влепит рекламу телеграм канала

не подвел

МВУ предоставляет интерфейс и разумеется вы обязаны его имплементировать. имплементация лежит в МНУ - вы его создаете под конкретный кейс в конкретном контексте (как именно реализовать интерфейс это out of scope и вообще не важно с использованием сторонних библиотек или без)

где тут цикл может возникнуть я не представляю: цикл МНУ -> МВУ -> МНУ ???

МВУ никогда не зависит от МНУ, иначе это нарушение целой пачки принципов, DIP в том числе

import <module.name>;
или include <module.name>;
или require "<module.name>";

вы что никогда либы не подключали к проекту? скорее всего подключали.

как узнали про их интерфейсы? наверно из исходников и документации

в самом классическом понимании: единица программы, предназначенная для решения конкретной задачи

я не понимаю что это за убермодуль в котором собраны все подряд интерфейсы

по какой причине и по какому правилу они собраны? соответствует ли эта группировка common closure / сommon reuse principle?

и кроме того априори модуль с десятком зависимостей имеет запашок и тенденцию стать big ball of mud. крайне не рекомендую

а вы ничего не перепутали? например coupling и cohesion?

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

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

все верно, именно в этом суть инверсии: детали зависят от абстракций

вы про какие обертки? интерфейс/абстр.класс это не обертка, это способ выделения абстракции

class Interface{
  virtual void m() = 0;
}

class A {
  A(Interface i) {}
}

class B extends Interface {
	virtual void m() { ... implement me ... }
}

void main() {
  B b = new B();
  A a = new A(b);
}

void main_test() {
// а в тестах подкладываем другую имплементацию: мок или стаб
  MockB b = new MockB();
  // при этом в классе A ничего не поменяется, у него зависимость на интерфейс
  A a = new A(b);
}

еще ситуация: злоумышленник продублировал p.id и посылает запросы одновременно с легальным узлом. ваши действия?

вместо n подставляем p.id - предлагать можно только один раз в жизни?

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

помешали ... хм может конские санкции? когда ебнули все активы россиян

Information

Rating
6,127-th
Registered
Activity

Specialization

Specialist
Lead
Git
Python
SQL
C#
Java
Golang
C++