Size: a a a

Programming Offtop

2020 July 30

I

Igor in Programming Offtop
В Chrome, начиная с версии 79, появилась поддержка экспериментального Keyboard Lock API, которое позволяет отлавливать нажатия системных горячих клавиш для переопределения их в приложении. Это API в данный момент не поддерживается другими вендорами и находится в стадии черновика в Web Platform Incubator Community Group, поэтому сильно завязываться на него не рекомендуется.

https://web.dev/keyboard-lock/
источник

KD

Konstantin Dovnar in Programming Offtop
Разрабатывая приложения с UDF подходом всё чаще ловлю себя на мысли, что то тут, то там ошибаюсь при проектировании стейтов, не правильно обдумываю структуру экшенов.

Отсюда часто возникает ощущение, что делаю что-то не так, хотя приложение работает.

Возможно существуют какие-то статьи, бест практисы, советы как здесь стоит поступать?
Какой-нибудь аналог пошаговой нормализации таблиц в БД? Чтобы взять общую идею стейта приложения и привести его в нормальный вид?
источник

Kd

Konstantin dmz9 in Programming Offtop
Igor
В Chrome, начиная с версии 79, появилась поддержка экспериментального Keyboard Lock API, которое позволяет отлавливать нажатия системных горячих клавиш для переопределения их в приложении. Это API в данный момент не поддерживается другими вендорами и находится в стадии черновика в Web Platform Incubator Community Group, поэтому сильно завязываться на него не рекомендуется.

https://web.dev/keyboard-lock/
ахуитильна, блокируешь alt+f4, ctrl alt del и лочишь мышь😂
источник

I

Igor in Programming Offtop
Konstantin Dovnar
Разрабатывая приложения с UDF подходом всё чаще ловлю себя на мысли, что то тут, то там ошибаюсь при проектировании стейтов, не правильно обдумываю структуру экшенов.

Отсюда часто возникает ощущение, что делаю что-то не так, хотя приложение работает.

Возможно существуют какие-то статьи, бест практисы, советы как здесь стоит поступать?
Какой-нибудь аналог пошаговой нормализации таблиц в БД? Чтобы взять общую идею стейта приложения и привести его в нормальный вид?
тесты пишешь?
источник

KD

Konstantin Dovnar in Programming Offtop
Igor
тесты пишешь?
Как и любой уважающий себя программист — нет (очень редко), но одна из причин перехода к UDF как-раз начать писать их больше.
источник

I

Igor in Programming Offtop
Я только когда начал тестировать "reducer" - понял что хреново спроектировал стейт.

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

(кэп) Когда появляются тесты - сразу начинается "переиспользование кода" и находишь все его минусы.
источник

AD

Aleksey D. in Programming Offtop
Igor
Я только когда начал тестировать "reducer" - понял что хреново спроектировал стейт.

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

(кэп) Когда появляются тесты - сразу начинается "переиспользование кода" и находишь все его минусы.
ждал, когда ты Domain Modelling in F# начнешь советовать
источник

I

Igor in Programming Offtop
Да я ее сам не читал 😺 и в f# чатике у не спорные отзывы (потому-что люди слишком упарываются).
Но в принципе да - можно почитать. Я жду когда она на русском выйдет.
источник

AD

Aleksey D. in Programming Offtop
а такое будет вообще? (вот бы еще в epub вышла)
источник

I

Igor in Programming Offtop
Пока новостей про это нет, но дк прес всякую дичь переводит)
источник

ML

Mikhail Levchenko in Programming Offtop
Konstantin Dovnar
Разрабатывая приложения с UDF подходом всё чаще ловлю себя на мысли, что то тут, то там ошибаюсь при проектировании стейтов, не правильно обдумываю структуру экшенов.

Отсюда часто возникает ощущение, что делаю что-то не так, хотя приложение работает.

Возможно существуют какие-то статьи, бест практисы, советы как здесь стоит поступать?
Какой-нибудь аналог пошаговой нормализации таблиц в БД? Чтобы взять общую идею стейта приложения и привести его в нормальный вид?
по элму много докладов про это
источник

KD

Konstantin Dovnar in Programming Offtop
У меня даже больше проблем с обработкой этого дела.

Из банального: сейчас в приложении может быть несколько пользователей, соответственно прилетают события типа AddUserEvent и DeleteUserEvent.

Из стейтов есть два возможных состояния DataIsLoading и DataLoaded.

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

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

Т.е. при DeleteUserEvent — лишь удалить данные исчезнувшего пользователя, здесь всё просто.
А при AddUserEvent обновить данные для нового пользователя не затрагивая тех, кто уже и так обновлён.

И вот в этом кейсе выходит ерунда в лице того, что приходится держать ссылку на предыдущий стейт, иначе не получается выдать загрузку (DataIsLoading) и обновить данные.

Насколько это нормально? Мне просто казалось, что мы должны оперировать только последним стейтом.
источник

ML

Mikhail Levchenko in Programming Offtop
Konstantin Dovnar
У меня даже больше проблем с обработкой этого дела.

Из банального: сейчас в приложении может быть несколько пользователей, соответственно прилетают события типа AddUserEvent и DeleteUserEvent.

Из стейтов есть два возможных состояния DataIsLoading и DataLoaded.

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

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

Т.е. при DeleteUserEvent — лишь удалить данные исчезнувшего пользователя, здесь всё просто.
А при AddUserEvent обновить данные для нового пользователя не затрагивая тех, кто уже и так обновлён.

И вот в этом кейсе выходит ерунда в лице того, что приходится держать ссылку на предыдущий стейт, иначе не получается выдать загрузку (DataIsLoading) и обновить данные.

Насколько это нормально? Мне просто казалось, что мы должны оперировать только последним стейтом.
чет нихера не понял кейс
источник

I

Igor in Programming Offtop
Konstantin Dovnar
У меня даже больше проблем с обработкой этого дела.

Из банального: сейчас в приложении может быть несколько пользователей, соответственно прилетают события типа AddUserEvent и DeleteUserEvent.

Из стейтов есть два возможных состояния DataIsLoading и DataLoaded.

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

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

Т.е. при DeleteUserEvent — лишь удалить данные исчезнувшего пользователя, здесь всё просто.
А при AddUserEvent обновить данные для нового пользователя не затрагивая тех, кто уже и так обновлён.

И вот в этом кейсе выходит ерунда в лице того, что приходится держать ссылку на предыдущий стейт, иначе не получается выдать загрузку (DataIsLoading) и обновить данные.

Насколько это нормально? Мне просто казалось, что мы должны оперировать только последним стейтом.
> чтобы при изменении в пользователях затрагивались и обновлялись только необходимые.

а зачем?
источник

KD

Konstantin Dovnar in Programming Offtop
Mikhail Levchenko
по элму много докладов про это
Я элм слабо вдупляю пока.
Как кто-то выдал тут, что tea == mvi с effect handler суть стала ясна, но синтаксис элма какой-то хаскеле-образно-вырвиглазный
источник

ML

Mikhail Levchenko in Programming Offtop
насчёт предыдущего стейта – если он нужен, то никто не мешает его хранить прямо в стейте
источник

KD

Konstantin Dovnar in Programming Offtop
Igor
> чтобы при изменении в пользователях затрагивались и обновлялись только необходимые.

а зачем?
А зачем обновлять 10 пользователей, когда нужно всего одного?
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Я элм слабо вдупляю пока.
Как кто-то выдал тут, что tea == mvi с effect handler суть стала ясна, но синтаксис элма какой-то хаскеле-образно-вырвиглазный
MVU, а не MVI. MVI про реактивщину в пользовательском коде.
</зануда-mode>
источник

I

Igor in Programming Offtop
Konstantin Dovnar
А зачем обновлять 10 пользователей, когда нужно всего одного?
потому что это проще?
источник

ML

Mikhail Levchenko in Programming Offtop
что значит "обновлять"?
источник