@oop_ru

Страница 140 из 785
Sergey
04.03.2017
14:54:36
делает то что мне нужно
об этом и разговор. В языках где есть нормальный IoC контейнер у тебя нет выхода и ты объявляешь контракты через отдельную сущность - интерфейс.

а в модулях такого нет

Paul
04.03.2017
14:54:41
Я не пойму о чём мы спорим. Если ты хочешь чтобы что-то проверялось, тебе нужно будет описать интерфейс. Отдельно или в самом япе (flow/ts) это неважно, но он должен быть описан

Google
Paul
04.03.2017
14:54:54
Ты напутал всё и вся

Sergey
04.03.2017
14:55:02
Paul
04.03.2017
14:55:39
Во-первых, соответствует интерфейсу != делает то что мне нужно Во-вторых, модуль ничем от объекта в js не отличается, так что описание объекта и модуля взаимозаменяемы

Sergey
04.03.2017
14:55:50
если тебе нужна предыстория разговора - шел разговор как соотнести модули и IoC, то есть выходит что модули = использование сервис локатора, и есть проблема с подменой зависимостей и графом зависимостей.

Paul
04.03.2017
14:56:27
Если ты можешь подменять require, тебе не нужен свой ioc

он будет поверх require

Sergey
04.03.2017
14:56:40
Paul
04.03.2017
14:57:28
во первых должно соответствовать по второму да, согласен
Если у тебя не прувер, то ни о каком соответствии кроме как интерфейсном речи идти не может.

аргументируй
Что аргументировать-то?

подменяешь require и получаешь DI на уровне модулей

Google
Paul
04.03.2017
14:58:05
Нужна проверка? Описывай интерфейс модулей

Sergey
04.03.2017
14:58:48
Если у тебя не прувер, то ни о каком соответствии кроме как интерфейсном речи идти не может.
Как я интерпритирую "интерфейс". Это не какая-то штука которая регламентирует сигнатуры методов, а штука которая описывает что "будет какая-то шляпа которая будет предоставлять тебе такое-то поведение"

Paul
04.03.2017
14:58:59
Интерфейс это совокупность сигнатур.

Ты можешь попытаться вводить некоторые пред/пост-условия или инварианты и получить контракты, но и это не будет гарантировать предоставление поведения

Sergey
04.03.2017
14:59:48
Интерфейс это совокупность сигнатур.
давай тогда на чистоту, это кастыль который нужен для языков со статической системой типов что бы таблички диспетчеризации построить

Paul
04.03.2017
15:00:03
Что

подожди

какой кастыль

Paul
04.03.2017
15:00:14
ты о interface как конструкции в джавах?

Об этой чуши никто тут не говорит

Sergey
04.03.2017
15:00:25
да) и виртуальных методах в плюсах

Об этой чуши никто тут не говорит
тогда давай только на контрактах сосредоточимся.

Paul
04.03.2017
15:01:13
Ты в компайлтайме проверить можешь только интерфейсы

Sergey
04.03.2017
15:01:17
и представим что в рамках контракта у нас есть какие-то способы взаимодействия, описываемые функциями/методами/сообщениями

да, ты не можешь в кампайл тайме проверить поведение

Paul
04.03.2017
15:01:31
Ну, если сильная система типов и это практически прувер, то ряд условий ещё, да

Aleh
04.03.2017
15:01:42
Есть модуль А, который импортит модуль Б. В конфиге я поставил резолв модуля Б на модуль В, хочу чтоьы статический анализатор это проверил, иде поняла и прочее

Paul
04.03.2017
15:01:45
Так, ладно, стоп

Google
Sergey
04.03.2017
15:01:47
но хотя бы способ коммуникации - можешь

Aleh
04.03.2017
15:02:03
Это есть, если юзаю классический Ioc framework

Хочу убрать лишнее и переложить максимум на язык

Но нужно тулзы подстроить

Paul
04.03.2017
15:03:18
Я не знаю в какой спор я влез и о чём тут вообще речь идёт. Кто-то возникал против модульной системы в js — я аргументировал что можно всё подменить и не нужно будет свои велосипеды с отдельными ioc фреймворками вести. Возможность чеккинга тоже есть (проверка module.exports), работает ли она где-то сейчас или нет это другой вопрос, но реализовать можно. Всё /thread

Paul
04.03.2017
15:03:47
Что " в целом"?

Хватит в воздух пердеть

Aleh
04.03.2017
15:03:55
С конфигом вебпака/любого бандлера в том, что они сами для себя. Ts/flow не поймет, нода не поймет, eslint не поймет и т.д.

Paul
04.03.2017
15:03:59
Это конкретная задача и решается на конкретных технологиях

Aleh
04.03.2017
15:04:14
Есть где-то, где решена?

Paul
04.03.2017
15:04:26
Скорее всего нет

Aleh
04.03.2017
15:04:27
Я знаю где решена с ioc framework

Paul
04.03.2017
15:04:46
ioc тоже везде придётся встраивать

Aleh
04.03.2017
15:04:47
И даже в пайтоне юзают примерно поэтому инъекцию в конструктор

Потому что с модулями неудобно

Хотя модули там хороши, но видимо эта проблема с резолвом портит все

Paul
04.03.2017
15:06:26
Модули в питоне хуже некуда

самая мудацкая система модулей

Google
Sergey
04.03.2017
15:06:44
самая мудацкая система модулей
опять же, аргументируй. Опиши почему так считаешь

Paul
04.03.2017
15:06:57
Aleh
04.03.2017
15:07:38
Ненастраиваемый резолв?)

Paul
04.03.2017
15:08:14
Ненастраиваемый резолв?)
Частичтонатсраеваемый

Aleh
04.03.2017
15:08:16
Ну это выше уже обсудили вроде

Вроде только в тестах рекомендуют менятт

Paul
04.03.2017
15:08:40
Не важно. builtin выше кастомных => в мусорку

Aleh
04.03.2017
15:08:45
Пфф

Admin
ERROR: S client not available

Aleh
04.03.2017
15:08:46
Нет

Paul
04.03.2017
15:08:52
Что "нет"?

Завтра новый модуль добавят

И у всех всё сломается

Aleh
04.03.2017
15:09:02
Это очень минорная проблема резолва

Paul
04.03.2017
15:09:14
Это охуеть какая проблема резолва

Ибо резолва ещё и нет

резолв начинается в sys.path

И внезапно туда впилить уже ничего нельзя

Google
Aleh
04.03.2017
15:09:39
Определение того, где искать модуль = резолв

Про частные реализации опустим

В пайтоне просто есть еще пользовательский, который настраивается

Paul
04.03.2017
15:10:27
Определение того, где искать модуль = резолв
вопрос определения. Модуль может и не надо искать

Aleh
04.03.2017
15:10:29
Корчое надо эту мысль в чате ноды толкнуть

Paul
04.03.2017
15:10:40
В ноде всё нормально с модульной системой

Не считая ненастраиваемого NODE_PATH отдельно для пакетов

Aleh
04.03.2017
15:10:50
Может тогда хорошо esm впилят)

Paul
04.03.2017
15:11:08
Он не решает проблем

от слова совсем

проблема ".../../...//...//.." так и останется

Aleh
04.03.2017
15:11:25
Там надо выдрать резолв отдельно

И под этого можно конфиги выдумать

Paul
04.03.2017
15:11:41
Ну, когда эту часть спеки допилят, тогда и будет о чём говорить

Aleh
04.03.2017
15:11:53
Уже вроде про интероп и цикл жизни все перетерли

В сентябре и феврале вроде

Paul
04.03.2017
15:12:24
интероп? цикл жизни?

я тебя не понимат

мы модульную систему обсуждали

Aleh
04.03.2017
15:12:38
Про cjs - esm в ноде

Paul
04.03.2017
15:12:56
А, подожди

esm это ES module, не?

Страница 140 из 785