Обновить
0
Евгений Косухин@kosuha666

fullstack

Отправить сообщение

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

А я тоже пробовал MSW, но решил все таки mockoon
я сделал возможность настраивать адреса эндпоинтов разных бэкэндов в localStorage
Благодаря этому даже в закрытой системе можно в рантайме перенастроить для своего браузера эндпоинты.

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

Но для демонстрации не подходит - да. Просто у меня тестировщик дотошный возможно поэтмоу я выбрал mockoon а не остался с msw

Пример в ООП части, я бы не согласился что это ООП, по-моему это процедура calculate обернутая в неймспейс TaxCalculator.

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

Я бы такой код написал в ООП.

class TaxOfPrice {
    constructor(price, tax) {
        this.price = price;
        this.tax = tax;
    }

    valueOf() {
        return (this.price * this.tax).toFixed(2);
    }

    toString() {
        return this.valueOf();
    }
}

class Tax {
    constructor(tax) {
        this.tax = tax;
    }
    
    valueOf() {
        return this.tax;
    }
}

const vat = new Tax(0.2);
const sales = new Tax(0.07);

console.log(`of price 100 vats = ${new TaxOfPrice(100, vat)}`);                   // of price 100 vats = 20.00
console.log(`of price 100 sales = ${new TaxOfPrice(100, sales)}`);                // of price 100 sales = 7.00
console.log(`of price 100 vats and sales = ${new TaxOfPrice(100, vat + sales)}`); // of price 100 vats and sales = 27.00


И это не синглтоны =). Как по мне в ООП синглтоны не очень нужны именно для ООП. Они скорее нужны иногда для какой-то оптимизации на уровне компьютера. а на уровне ООП по-моему не нужны - чисто логически.

А я использую mockoon программу, она проксирует бэкэнд или может просто быть бэкэндом которого еще нет. тоже удобно

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

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

Мы же можем сделать инверсию зависимости и без Интерфейсов. И даже без внедрения чего-либо в конструктор или методы.

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

В общем мне кажется инъекция зависимостей к SOLID все таки не относится.

В этом месте википедии говорится о последствиях того что класс зависит от интерфейса, но это же не значит что инверсия зависимости неразрывно связана с инъекцией зависимости.

В SOLID для инъекции зависимостей выделена отдельная буква

В SOLID нет отдельной буквы для инъекции зависимостей, D - инверсия зависимостей, I - разделение интерфейсов.

Ну ок, ~~x в js это больше подсказка компилятору. Явно не уровень тех, кто неосилил двойное отрицание

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

Хм, ну такие баги скорее вызваны тем что человек забыл что 0 или '' - это допустимое значение переменной. Мне кажется в этом случае не использовать !! - не решает проблему
тот же человек может написать
if (value) {...}
и value будет либо пустой строкой либо 0. и будет тот же баг.

Если я правильно понял суть проблемы

Можно было изменять element.style.display свойство чтобы прятать показывать блок.

Поспешили вы с первой статьей)) да и как по мне не в статьях счастье

Watch с флагом sync для этого не подойдет?

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность