Никак не могу найти нормальное сравнение, может быть вы можете подсказать. Почему tailwind, а не styled-components / scss например?
Чем он конкретно лучше? Из минусов, которые я вижу: - гриды нормально из коробки не работают (grid-template-areas сторонним плагином ставится) - нет варианта написания js in css (для доступа к позиции скролла, либо тоггл класса и тд. да, тоггл решается classNames, но просто как пример) - проблема с дебагом (по классу не всегда понятно, как конкретно найти нужный компонент в коде, т.к. могут повторяться) - в сравнении с styled-components - нет поддержки typescript. Если какие-то стили не переданы - тайпскрипт не отловит ошибку - темизация очень скудная. Как сделать больше двух тем я так и не понял. У меня обычно на проекте от 4х тем. - опять же в копилку тем - её нужно поддерживать. Я честно говоря не очень понимаю, как большом проекте (экранов на 30) поддерживать цвета, отступы и тд. Если дизайнер изменил цвета на странице какой-то. Например красный не такой как обычно, белый заменили на чёрный, ещё чего, как мне поменять его в теме? Вообще, нужно ли его менять или писать просто инлайн в таком случае? В styled-components или scss я могу просто тему новую создать и передать её как обёртку новой страницы. А тут как?
Токен не надо расшифровывать. достаточно проверять, например, что подписи нет в БД.
В статье написано: Главное преимущество: поскольку метод никак не оперирует состояниями, серверу не нужно хранить записи с пользовательскими токенами или сессиями. Каждый токен самодостаточен, содержит все необходимые для проверки данные, а также передаёт затребованную пользовательскую информацию. Поэтому токены не усложняют масштабирование.
Вы говорите, что достаточно проверять, что подписи нет в бд.
Нашёл ещё одно видео (https://www.youtube.com/watch?v=s-4k5TcGKHg), в котором написано, что в бд нужно хранить только рефреш токен, что выглядит очень логично со всем, что я прочитал.
Ху из райт, соответственно. Потому как уже 3 мнения.
И подскажите, как вообще должен отрабатывать рефреш токен и почему. Здесь, я нашёл, что рефреш токен максимум должен жить 15 минут (https://www.youtube.com/watch?v=jzB4TfmOZyw). В другом видео - 1 день норм (https://www.youtube.com/watch?v=s-4k5TcGKHg). От чего это зависит? И если у меня истёк токен, всегда ли я должен кидать пользователя на окно авторизации? Если да, то почему я спокойно могу заходить в сервисы гугла без логина. Там на месяц токен? В таком случае, почему кто-то говорит, что он должен быть на минуты?
Статья конечно крайне полезная. Добавил в закладки, спасибо автору большое.
Но есть несколько вопросов по JWT токенам. 1) На некоторых конференциях я нашёл, что есть возможность revoke jwt токена (ну например вот с ndc https://www.youtube.com/watch?v=YF8coyfQb0Y). Из комментариев я так понял (прошу поправить, если не так понял), что revoke возможен только через бан лист. Но для проверки, содержится токен или нет в бан листе нужен доступ к базе / редису, то есть проблема скейлинга всё равно присутствует. Нет, данных хранитьменьше, но в статье говорится про фишку в скорости расшифровке vs скорость доступа к базе. А тут получается и расшифровка и доступ к базе. Смысл? 2) Но двигаясь дальше, допустим выбрали мы бан лист. И каждый раз в нём что-то смотрим. Возник следующий вопрос, а как по refresh токену получать данные? В видосике выше с конференции ребята используют одну и ту де функцию - revoke token для запроса нового токена и логаута. Но мы не можем её же использовать, она у нас за бан лист отвечает. Следовательно ребята делают с ошибкой? Но тут тогда следующий вопрос. А как работает refresh токен в таком случае в логике статьи? Допустим я отправил токен, получил новый, аксес токен, у меня спёрли рефреш, как вылогинить ребят, которые спёрли рефреш? Они же могут новый получать, валидации на сервере нет, в бан лист добавлять? А как понять, кого в бан лист добавлять? И почему добавлять нужно? Я же не знаю, что его спёрли. Знал бы, не дал бы спереть.
Почему не в ту? Код никак не противоречит. В коде нет проблем с четностью и нечетностью. То, что вы написали дальше про колонки в статье и используется. Там абзац про инвертирование логики.
Возможно вы предложили вариант отразить лучше. Статья об этом. Я предложил один вариант, вы ещё более понятный по вашему мнению.
Великолепно, значит мы вместе охватывает сразу кучу вариантов написания.
Главное, чтобы логика заказчика была отображена в коде максимально близко к логике его рассуждения.
Если он мыслит в brakepoint, то нельзя делать по другому. Тк именно так думает заказчик. Даже если кому-то кажется, что так логичнее.
Иначе получится классика, что одни сделали по гайдам фейсбука, вторые поддерживают по гайдам майкрософта, третьи тестируют по гайдам гугла. А бедный заказчик бегает и не знает, почему его код ужасен. Нужно делать по гайдам заказчика.
З. Ы. Я не говорю про сохранение логики дизайна, я говорю про сохранение логики заказчика. Это разное. Дизайн - лишь очередной инструмент в переводе мыслей заказчика в код. Просто более наглядный, чем слова заказчика.
По первым 3м пунктам думаю нет смысла отвечать. Они никак не противоречат статье. Странно, что вам показалось, что я спорю хоть с чем-то из этого.
А по поводу последних двух.
Это шикарно, если можно сделать всё динамично - это ещё лучше передаст мысли заказчика.
Во второй части статьи я привёл свой пример, где нужно было сделать только для определённых телефонов дизайн, но вкорне отличным.
Если вы можете сделать не так, а записать другим способом, например используя медиа квери с ориентации девайса или ещё чего - это намного лучше, чем не используя их или хард кодя.
Идея статьи описана в первом предложении отражена. Поясните пожалуйста, где вы увидели в корне не правильные выводы.
По этому использую его для сложных шаблонов, а для простого выравнивания по центру, сторонам - flex.
В остальном - флекс без проблем, но нужно объединять в контейнеры будет каждую строку, либо проставлять на детях flex-grow 1/2. А через grid можно всё в одном месте задать.
Нихрена 11я винда под него не заточена. У меня просто бомбануло, написал и на вопросы и в центр отзывов уже.
Такое ощущение, что они вообще не думали, как пользоваться этим в связке.
У меня есть монитор, за которым работаю и собственно сам сёрф, в котором чёт тыкаю иногда, статьи там читаю.
Жесты следующие - нельзя вызвать что-то типо альт таба в сенсором варианте, можно только последнее использовано приложение открыть. Кароче, альт таб для двух приложений.
Ок, допустим, значит разбиваю по рабочим столам 2 приложения. Например, браузер - один стол, мессенджеры другой и музыка третий.
Я подрубаю это к монитору. И оно переносит только то, что открыто на данном столе. Например только браузер. И никак не возможно перетянуть с других столов на экран сёрфейса мессенджеры, чисто руками.
Допустим делаю это. Отсоединяю от монитора. И опа, они все на одном столе рабочем. И их блин снова разделять на другие столы нужно.
А переключиться между ними нельзя, тк жест то всего на 2 приложения.
Я уже не говорю про то, что для сенсорного экрана нет жеста растянуть на весь экран или свернуть. Это просто трындец. Очень надеюсь они поправят.
Что можно сделать скриптом — сделал скриптом. Логика в том, чтобы ускорить.
Shadow mode)
Диоген объяснил, что нужна только бочка. По этому да, по сути подтвердил. Да и проект ему не нужен, по этой же логике
А если серьёзно, то обычно работаю с заказчиками людьми, с ними можно разговаривать.им какие-то вещи нравятся, какие-то нет. Не вижу причин решать за них, что им нужно, а что нет. За спрос ещё ни разу не били, только спасибо говорили.
Не знаю в какой вы там брод лезете. Нет, тесты на styled-component никто не писал. Думаю это несколько бредовое занятие. Какой каждый новый разработчик? Там была определённая команда и они выбрали такой код стайл — создавать новый styled-component в стилях рядом с каждым контейнером.
Мне очень приятно, что вы отметили соответствие текста статьи её названию.
Через 3 месяца стал более понятный сторибук. Не выгорели. Ничего не стало хуже. Работы было много, но с некоторыми видео пояснениями и блок схемами монотонную работу отдали джунам. Затем я за ними доделал работу. Под гнетом миллиона туду не выгорели, Т.к его на было
Я с заказчиком играю против правил. По этому объяснив плюсы и пообещав больший контроль за проектом приступил к работе. Рефакторинг ему оказался нужен. Может и не нужен, тут уж я не спрашивал. По итогу ему очень понравилась новая версия проекта.
Никак не могу найти нормальное сравнение, может быть вы можете подсказать.
Почему tailwind, а не styled-components / scss например?
Чем он конкретно лучше?
Из минусов, которые я вижу:
- гриды нормально из коробки не работают (grid-template-areas сторонним плагином ставится)
- нет варианта написания js in css (для доступа к позиции скролла, либо тоггл класса и тд. да, тоггл решается classNames, но просто как пример)
- проблема с дебагом (по классу не всегда понятно, как конкретно найти нужный компонент в коде, т.к. могут повторяться)
- в сравнении с styled-components - нет поддержки typescript. Если какие-то стили не переданы - тайпскрипт не отловит ошибку
- темизация очень скудная. Как сделать больше двух тем я так и не понял. У меня обычно на проекте от 4х тем.
- опять же в копилку тем - её нужно поддерживать. Я честно говоря не очень понимаю, как большом проекте (экранов на 30) поддерживать цвета, отступы и тд. Если дизайнер изменил цвета на странице какой-то. Например красный не такой как обычно, белый заменили на чёрный, ещё чего, как мне поменять его в теме?
Вообще, нужно ли его менять или писать просто инлайн в таком случае? В styled-components или scss я могу просто тему новую создать и передать её как обёртку новой страницы. А тут как?
Как вариант styled-components, но более быстрых есть vanila-extract, не думали смотреть в эту сторону?
***первая ссылка в гугле про RN, но - https://github.com/marklawlor/neapolitan-extract
Благодарю за статью, сам что-то похожее сейчас ищу.
Видел вариант keystone + t3, пробовали ли сравнивать?
Как на счёт t3 варианта решений?
Спасибо большое.
Крайне полезная статья. Как минимум помогла собрать воедино доку гугла))
Подскажите пожалуйста, а может знаете, как к этому счастью ещё кнопку гугловую добавить на фронт часть, типа google identity provider (https://developers.google.com/identity/gsi/web/guides/overview)?
Ищу решение, чтобы на фронте была красивая кнопка идентити провайдера, и можно было работать с бэком по принципу как у вас в статье.
в общем и целом понял, большое спасибо за разъяснение
Токен не надо расшифровывать. достаточно проверять, например, что подписи нет в БД.
В статье написано:
Главное преимущество: поскольку метод никак не оперирует состояниями, серверу не нужно хранить записи с пользовательскими токенами или сессиями. Каждый токен самодостаточен, содержит все необходимые для проверки данные, а также передаёт затребованную пользовательскую информацию. Поэтому токены не усложняют масштабирование.
Вы говорите, что достаточно проверять, что подписи нет в бд.
Нашёл ещё одно видео (https://www.youtube.com/watch?v=s-4k5TcGKHg), в котором написано, что в бд нужно хранить только рефреш токен, что выглядит очень логично со всем, что я прочитал.
Ху из райт, соответственно. Потому как уже 3 мнения.
И подскажите, как вообще должен отрабатывать рефреш токен и почему. Здесь, я нашёл, что рефреш токен максимум должен жить 15 минут (https://www.youtube.com/watch?v=jzB4TfmOZyw). В другом видео - 1 день норм (https://www.youtube.com/watch?v=s-4k5TcGKHg).
От чего это зависит?
И если у меня истёк токен, всегда ли я должен кидать пользователя на окно авторизации? Если да, то почему я спокойно могу заходить в сервисы гугла без логина. Там на месяц токен? В таком случае, почему кто-то говорит, что он должен быть на минуты?
Статья конечно крайне полезная. Добавил в закладки, спасибо автору большое.
Но есть несколько вопросов по JWT токенам.
1) На некоторых конференциях я нашёл, что есть возможность revoke jwt токена (ну например вот с ndc https://www.youtube.com/watch?v=YF8coyfQb0Y). Из комментариев я так понял (прошу поправить, если не так понял), что revoke возможен только через бан лист. Но для проверки, содержится токен или нет в бан листе нужен доступ к базе / редису, то есть проблема скейлинга всё равно присутствует. Нет, данных хранитьменьше, но в статье говорится про фишку в скорости расшифровке vs скорость доступа к базе. А тут получается и расшифровка и доступ к базе. Смысл?
2) Но двигаясь дальше, допустим выбрали мы бан лист. И каждый раз в нём что-то смотрим. Возник следующий вопрос, а как по refresh токену получать данные? В видосике выше с конференции ребята используют одну и ту де функцию - revoke token для запроса нового токена и логаута. Но мы не можем её же использовать, она у нас за бан лист отвечает. Следовательно ребята делают с ошибкой?
Но тут тогда следующий вопрос. А как работает refresh токен в таком случае в логике статьи? Допустим я отправил токен, получил новый, аксес токен, у меня спёрли рефреш, как вылогинить ребят, которые спёрли рефреш? Они же могут новый получать, валидации на сервере нет, в бан лист добавлять?
А как понять, кого в бан лист добавлять? И почему добавлять нужно? Я же не знаю, что его спёрли. Знал бы, не дал бы спереть.
Как это должно работать, объясните пожалуйста?
Очень рад, что не я один так думаю. А-то прямо чувство одиночества появилось какое-то)
Прошу прощения. Заменил.
Почему не в ту? Код никак не противоречит. В коде нет проблем с четностью и нечетностью. То, что вы написали дальше про колонки в статье и используется. Там абзац про инвертирование логики.
Возможно вы предложили вариант отразить лучше. Статья об этом. Я предложил один вариант, вы ещё более понятный по вашему мнению.
Великолепно, значит мы вместе охватывает сразу кучу вариантов написания.
Главное, чтобы логика заказчика была отображена в коде максимально близко к логике его рассуждения.
Если он мыслит в brakepoint, то нельзя делать по другому. Тк именно так думает заказчик. Даже если кому-то кажется, что так логичнее.
Иначе получится классика, что одни сделали по гайдам фейсбука, вторые поддерживают по гайдам майкрософта, третьи тестируют по гайдам гугла. А бедный заказчик бегает и не знает, почему его код ужасен. Нужно делать по гайдам заказчика.
З. Ы. Я не говорю про сохранение логики дизайна, я говорю про сохранение логики заказчика. Это разное. Дизайн - лишь очередной инструмент в переводе мыслей заказчика в код. Просто более наглядный, чем слова заказчика.
По первым 3м пунктам думаю нет смысла отвечать. Они никак не противоречат статье. Странно, что вам показалось, что я спорю хоть с чем-то из этого.
А по поводу последних двух.
Это шикарно, если можно сделать всё динамично - это ещё лучше передаст мысли заказчика.
Во второй части статьи я привёл свой пример, где нужно было сделать только для определённых телефонов дизайн, но вкорне отличным.
Если вы можете сделать не так, а записать другим способом, например используя медиа квери с ориентации девайса или ещё чего - это намного лучше, чем не используя их или хард кодя.
Идея статьи описана в первом предложении отражена. Поясните пожалуйста, где вы увидели в корне не правильные выводы.
Тут дело такое.
У меня в одном дизайне были разные отступы в дизайне вокруг одного элемента.
Сверху 9px, справа 7px, снизу 8px.
Я на своё усмотрение сделал единое. На дизайн было похоже - все были рады)
Само собой нет, но проекты под него станут ну очень редкими. Я ставлю на то, что только поддержка будет.
А новых проектов под него вообще не будет делаться.
Думаю привычка от styled-components)
Мне более читаемым/явным показался grid.
По этому использую его для сложных шаблонов, а для простого выравнивания по центру, сторонам - flex.
В остальном - флекс без проблем, но нужно объединять в контейнеры будет каждую строку, либо проставлять на детях flex-grow 1/2. А через grid можно всё в одном месте задать.
Пользуюсь тем самым сёрфейсом 7м.
Нихрена 11я винда под него не заточена. У меня просто бомбануло, написал и на вопросы и в центр отзывов уже.
Такое ощущение, что они вообще не думали, как пользоваться этим в связке.
У меня есть монитор, за которым работаю и собственно сам сёрф, в котором чёт тыкаю иногда, статьи там читаю.
Жесты следующие - нельзя вызвать что-то типо альт таба в сенсором варианте, можно только последнее использовано приложение открыть. Кароче, альт таб для двух приложений.
Ок, допустим, значит разбиваю по рабочим столам 2 приложения. Например, браузер - один стол, мессенджеры другой и музыка третий.
Я подрубаю это к монитору. И оно переносит только то, что открыто на данном столе. Например только браузер. И никак не возможно перетянуть с других столов на экран сёрфейса мессенджеры, чисто руками.
Допустим делаю это. Отсоединяю от монитора. И опа, они все на одном столе рабочем. И их блин снова разделять на другие столы нужно.
А переключиться между ними нельзя, тк жест то всего на 2 приложения.
Я уже не говорю про то, что для сенсорного экрана нет жеста растянуть на весь экран или свернуть. Это просто трындец. Очень надеюсь они поправят.
А если серьёзно, то обычно работаю с заказчиками людьми, с ними можно разговаривать.им какие-то вещи нравятся, какие-то нет. Не вижу причин решать за них, что им нужно, а что нет. За спрос ещё ни разу не били, только спасибо говорили.
Блин, с телефона дублировался комментарий, а удалить не могу. Извиняюсь за мусор...
Через 3 месяца стал более понятный сторибук. Не выгорели. Ничего не стало хуже. Работы было много, но с некоторыми видео пояснениями и блок схемами монотонную работу отдали джунам. Затем я за ними доделал работу. Под гнетом миллиона туду не выгорели, Т.к его на было
Ураа, у меня появился хейтер))