Size: a a a

JavaScript.Ninja

2020 July 24

IK

Illya Klymov in JavaScript.Ninja
Valentin
можно полностью отделить логику от ui, но нам потребовался тяжелый IoC/DI InfersifyJS
Это не решает вопроса скрытых зависимостей
источник

AE

Andrey Eremenko in JavaScript.Ninja
Illya Klymov
К примеру компонент тянет данные из сторы предполагая что они загружены
Это не проблема стейт-менеджера, а скорее вопрос подхода.
Возьмем redux. Типичный нормализованный стор каких-нибудь пользоватей:

users: {
  [id: string]: {
    name: 'Vasia'
  }
}

Типичный подход - в селекторе написать:
// получить юзера, в полной уверенности что он там есть - а как же иначе?? я же сам его туда клал!
const user = store.users[id];

return { name: user.name } // получить ошибку "undefined тебе не объект"

Но на самом деле в Redux структура стейта - простой key/value объект.
Что он гарантирует? Только то, что по ключу key можно получить либо данные, хранящиеся под этим ключом, либо undefined. Чтобы быть уверенным, что какое-то поле точно есть, необходимо использовать классы, они могут гарантировать наличие каких-то своих обязательных полей. Key/value объект никогда ничего такого не гарантировал. И поэтому отсутствие каких-то данных в сторе - это вопрос ни на чем не основанных ожиданий разработчика :)

==========

Собственно, я зашил поблагодарить за отличные видео!
Классный рассказ про InfersifyJS. Если бы раньше знал, может быть его взял бы себе в проект, но я не нашел ничего кроме сервис-локаторов среди DI, не требующих TS. В итоге написал свой. Заодно без reflect-metadata
источник

IK

Illya Klymov in JavaScript.Ninja
Andrey Eremenko
Это не проблема стейт-менеджера, а скорее вопрос подхода.
Возьмем redux. Типичный нормализованный стор каких-нибудь пользоватей:

users: {
  [id: string]: {
    name: 'Vasia'
  }
}

Типичный подход - в селекторе написать:
// получить юзера, в полной уверенности что он там есть - а как же иначе?? я же сам его туда клал!
const user = store.users[id];

return { name: user.name } // получить ошибку "undefined тебе не объект"

Но на самом деле в Redux структура стейта - простой key/value объект.
Что он гарантирует? Только то, что по ключу key можно получить либо данные, хранящиеся под этим ключом, либо undefined. Чтобы быть уверенным, что какое-то поле точно есть, необходимо использовать классы, они могут гарантировать наличие каких-то своих обязательных полей. Key/value объект никогда ничего такого не гарантировал. И поэтому отсутствие каких-то данных в сторе - это вопрос ни на чем не основанных ожиданий разработчика :)

==========

Собственно, я зашил поблагодарить за отличные видео!
Классный рассказ про InfersifyJS. Если бы раньше знал, может быть его взял бы себе в проект, но я не нашел ничего кроме сервис-локаторов среди DI, не требующих TS. В итоге написал свой. Заодно без reflect-metadata
Есть важная вещь - помогает ли инструмент не делать неправильно
источник

IK

Illya Klymov in JavaScript.Ninja
И большинство стейт менеджеров не очень хорошо решают эту задачу
источник
2020 July 25

DB

Dmytro Braginets in JavaScript.Ninja
Illya Klymov
И большинство стейт менеджеров не очень хорошо решают эту задачу
А какие стейт менеджеры по вашему мнению наиболее удачны в этом аспекте?
источник

IK

Illya Klymov in JavaScript.Ninja
Dmytro Braginets
А какие стейт менеджеры по вашему мнению наиболее удачны в этом аспекте?
Мне кажетс что mobx-state-tree но это субъективно
источник

DB

Dmytro Braginets in JavaScript.Ninja
Спасибо. Нужно будет ознакомиться
источник

MM

Mikita Melnikau in JavaScript.Ninja
всем привет. уважаемые гуру. всвязи с приобретением ноутбука решил основательно подсесть на vim. я и до этого работал на vim'e, но в светлой теме. а на ноутбуке в светлой теме почему-то очень нечётко видно буквы. я понимаю, что можно яркость уменьшать, но, мне кажется проще найти хорошую тёмную тему. может кто-то посоветовать хорошую тёмную тему в которой есть и airline. спасибо!
источник

VK

Vlad Krokhin in JavaScript.Ninja
Mikita Melnikau
всем привет. уважаемые гуру. всвязи с приобретением ноутбука решил основательно подсесть на vim. я и до этого работал на vim'e, но в светлой теме. а на ноутбуке в светлой теме почему-то очень нечётко видно буквы. я понимаю, что можно яркость уменьшать, но, мне кажется проще найти хорошую тёмную тему. может кто-то посоветовать хорошую тёмную тему в которой есть и airline. спасибо!
one dark, gruvbox, solarized dark
источник

z

zeroWheel in JavaScript.Ninja
Mikita Melnikau
всем привет. уважаемые гуру. всвязи с приобретением ноутбука решил основательно подсесть на vim. я и до этого работал на vim'e, но в светлой теме. а на ноутбуке в светлой теме почему-то очень нечётко видно буквы. я понимаю, что можно яркость уменьшать, но, мне кажется проще найти хорошую тёмную тему. может кто-то посоветовать хорошую тёмную тему в которой есть и airline. спасибо!
На gruvbox год работаю уже, до этого пробовал dracula и solarized.  На gruvbox глаза меньше устают. Субъективно.
источник

MM

Mikita Melnikau in JavaScript.Ninja
Спасибо!
источник

IK

Illya Klymov in JavaScript.Ninja
Но я бы советовал разобраться с первоисточником проблемы
источник

IK

Illya Klymov in JavaScript.Ninja
Нечётко видно буквы звучит как проблемы с хинтингом, а это для глаз Бобо
источник

VK

Vladimir Klimov in JavaScript.Ninja
Mikita Melnikau
всем привет. уважаемые гуру. всвязи с приобретением ноутбука решил основательно подсесть на vim. я и до этого работал на vim'e, но в светлой теме. а на ноутбуке в светлой теме почему-то очень нечётко видно буквы. я понимаю, что можно яркость уменьшать, но, мне кажется проще найти хорошую тёмную тему. может кто-то посоветовать хорошую тёмную тему в которой есть и airline. спасибо!
Вот статья была, может поможет)
https://www.google.com/amp/s/m.habr.com/ru/amp/post/506770/
источник

VK

Vladimir Klimov in JavaScript.Ninja
Если коротко - тёмная тема вроде как читаемость не улучшает
источник

V

Valentin in JavaScript.Ninja
Vladimir Klimov
Если коротко - тёмная тема вроде как читаемость не улучшает
Из-за контраста. Логично
источник
2020 July 26

SS

Sasha Semaniuk in JavaScript.Ninja
Всем привет
Помогите пожалуйста с Razzle

Сделал SSR app с помощью Razzle, тепер хочу добавить возможность, чтобы с razzle сервера html приходил уже с стилями

Есть ли возможность сделать такое?
источник

H

He111 in JavaScript.Ninja
как зделать вызов функцыии   когда человек нажымает на  ссылку вида href="#callnew" -  например  alert('okey')
источник

DB

Dmytro Braginets in JavaScript.Ninja
He111
как зделать вызов функцыии   когда человек нажымает на  ссылку вида href="#callnew" -  например  alert('okey')
Повесить addEventListener и колбэке сделать event.preventDefault() (event придёт в колбэк) - это нужно чтобы не сработал переход по ссылке
источник

DB

Dmytro Braginets in JavaScript.Ninja
Ни и в колбэке уже делать то что вам нужно ))
источник