🇺🇦 🦀 Engine/Tools developer at GSC Game World (working on Stalker 2). Coding Rust and working on muddle.run at night. Love self-isolation on a regular basis, psychedelic rock, and dogs (but have two cats 🐈🐈)
сиджу в одному британському чатіку в діскорді, вирішив зробить пошук по слову "Usyk", мені нравиться, що я бачу 😁
І шо гірше, вся документація про не-сейф варіант, бо йде припущення, що люди пишуть на чистому JS. А тому, як правильно організовувати проєкт і типи із тайпскріптом, відведена лише 1 сторінка документації, до котрої половина людей навіть не доходить
Із такими дефолтами важко підтримувати дисципліну)
Короче, мій основний beef ванільним редаксом - на ньому легше покласти хуй на type safety, і потрібні постійно свідомі зусилля, аби його не втратити ) А енфорсити певний стиль написання коду важко у великій команді, коли він дає стільки багато можливостей написати не сейфово
Від чого type safety при рефакторінгу доводилось вводити доволі точково, ну і все одно лишався ризик десь щось проїбати через any в дженеріках по дефолту і отримати невалідний код, який компілюється
Бо в бібліотеці дуже багато декларацій типу `type Dispatch
Якщо проєкт започатковували люди, які до type safety серйозно не ставляться, то вони 100% провтикали закласти такі речі, як `useDispatch.withTypes` і тд
Не пригадаю деталей, бо, на щастя, мав із тим справу вже багато років тому востаннє. Але, якщо памʼять не зраджує, там було багато місць, де можна було легко отримати імпліцитний any, забувши десь експліцитно вказати тип, від чого весь type safety їде по пизді
А мені ця строгість була важлива, бо в команді половина людей обмазувались any, і в нас купа багів була ще і через це)
Ходив переписував критичні екшени на ньому, аби ніхто не зміг щось ліве просунути та проігнорити помилки від tsc
А сагу не юзав, цікаво
Не мав багато досвіду із тулкітом, але мені подобалось, що із ним простіше було отримати більш строгі типи для екшенів та їхніх пейлоадів із меншим боілерплейтом, ніж у ванільному редаксі
This is how I used the pattern in my pet project
declaration:
github.com/mvlabat/mudd...
mapping to a response:
github.com/mvlabat/mudd...
The error both declares my custom errors and wraps an sqlx error. In the API handler, I map them to different http responses
This is how I used the pattern in my pet project:
github.com/mvlabat/mudd...
github.com/mvlabat/mudd...
The error both declares my custom errors and wraps a sqlx error. In the API handler, I map them to different http responses
(in case you want to reconsider what kind of error details you want to expose in the response)
I reread your example, and I think the code you've already had is good, considering your use-case. So apologies for derailing your into the anyhow path :)
I noticed you use the Display formatter for printing reqwest::Error, just leaving its implementation for the reference: docs.rs/reqwest/late...
Oh, if you want to convert it to a response, then I would probably suggest not to use anyhow in this scenario. And I would also refrain from the idea of exposing details of reqwest::Error. If you are writing a publicly facing API, I think that's a better practice in terms of security
It depends on the use-case. I would use it if I need to be able to process both errors of libraries and my own application errors in the calling code. If you don't need to distinguish between them, then you shouldn't care :)
yeah, that also works. You could have an enum type, that would wrap errors of other libraries, for example:
```
enum MyError {
ErrorA,
ErrorB,
ReqwestError(reqwest::Error),
SqlxError(sqlx::Error),
}
```
then it's really convenient to use in combination with `map_err`
Oh yeah, that's a common problem. If it's not a library code, and you don't care about the exact type on the calling end, you can try using the error/result type from the anyhow crate. They provide a universal Error trait object type that can wrap any other error
docs.rs/anyhow/lates...
What's the problem you are having exactly?
Usually, the `?` operator works with `Result
Недавно бачив у твіттері рекламували react-aria, показувавши їхній color picker :)
react-spectrum.adobe.com/react-aria/C...
Гадки не маю, наскільки його можна юзати, не потягнувши за собою додаткових великих залежностей, але, може, звідти можна щось витягнути)
Десь років 5 мріяв купить собі комбінезон, і нарешті таки купив. Найбільша проблема - це було щось подібне взагалі знайти 😬🙃
Рандомний чувак в сірому комбінезоні, котрого я в 2019 побачив на Øyafest в Осло, це все через тебе
Вже бачили? 😊
Подивись на Неї! Зона розквітає, у свій власний чаруючий, але загадковий і викривлений спосіб: приманює, обдаровує та забирає. Розмовляє численними голосами ...
youtu.beМій улюблений - це йобібайт
зайшов у твіттер - розʼїбало
зайшов у блускай - тут відсторонено раціоналізують на цілі треди, шо їм новину не так подали
трохи недоречно може, нє?
Ортодонтка казала, нижні зуби такі, що є ризик зламати щелепу в процесі, хоча хірург це заперечив потім) а власне хірург роздивився, що верхні дуже близько до гайморової пазухи, і там ще нерв близько
після видалення буду ходити весь запалений ну і ненульова ймовірність поїбати щось у процесі
🫂
а сильно почали турбувати в якийсь момент, чи ортодонт просто порекомендував видалити? і як воно взагалі пройшло?
тут я може щодо тривалості стаціонару перегнув, але він точно буде (втім може випустять раніше), але реабілатація, зі слів хірурга, загалом точно тиждень або більше, мда 🫠
Може і нє. Вони собі лежать і далі нікого не випихують, але треба буде ще поспілкуватися з ортодонтом
Хірург розповів про можливі ризики, і шото мені поки не хочеться видаляти) але буду ще думати
🥲
хірург у приватній клініці відмовився їх видаляти, каже, йому тут потрібна буде ціла команда (анестезіолог, гематолог, у випадку, якщо які ускладнення), а мені тижневий стаціонар для реабілітації
може, не так вже і треба їх видаляти, думаю ))
відправили ото зробити знімок щелепи/зубів
ці вісімки 🤌🤌
мені їх стає шкода інколи, деякі з них так відчайдушно просять, пінгують по 2-3 рази, чи ти отримав повідомлення
то я їм інколи відповідаю, але в цей раз теж пошкодував
це або невміння читати будь-що після фрази "добрий день", якщо там не згода на інтерв'ю
або профнепридатність і відсутність хоч якогось елементарного розуміння сфери, в котрій шукаєш людей, раз не можеш пов'язати факт, що смарт контракти / розподілені реєстри-хуєстри = блокчейн
я: зараз не розглядаю нові вакансії, і блокчейн не цікавить
рекрутер: ок! цікавить тоді така вакансія? *ще раз присилає блокчейн вакансію*
😕😕😕
💔
Я не байтнувся і не став дивитися це на ніч. Але ж блін боляче..