Responsive background images with image-set, the srcset for background-image
https://dev.to/ingosteinke/responsive-background-images-with-image-set-the-srcset-for-background-image-259a
#coding
#css
https://dev.to/ingosteinke/responsive-background-images-with-image-set-the-srcset-for-background-image-259a
#coding
#css
DEV Community
Responsive background images with image-set, the srcset for background-image
Source sets can help us to make websites load faster. We can use them in different ways to offer...
Build a progressive web app (PWA) with React
https://blog.logrocket.com/building-pwa-react/#from-web-app-pwa-using-workbox
#coding
#react
https://blog.logrocket.com/building-pwa-react/#from-web-app-pwa-using-workbox
#coding
#react
LogRocket Blog
Build a progressive web app (PWA) with React - LogRocket Blog
Progressive web apps are a (terribly named) wonderful idea. Go from create-react-app to PWA in a snap, saving your business money on the way.
How to Pass Data Between Pages in react-router-dom V6?
https://plainenglish.io/blog/how-to-pass-data-between-pages-in-react-router-dom-v6
#coding
#react
https://plainenglish.io/blog/how-to-pass-data-between-pages-in-react-router-dom-v6
#coding
#react
plainenglish.io/blog/how-to-pass-data-between-pages-in-react-router-dom-v6
How to Pass Data Between Pages in react-router-dom V6?
3 ways of passing data between pages in react-router-dom V6
Sharing Logic Between Components in Different React Renderers
https://www.braingu.com/blog/share-react-component-logic
#coding
#react
https://www.braingu.com/blog/share-react-component-logic
#coding
#react
How to Use HTML5 “picture”, “srcset”, and “sizes” for Responsive Images
https://webdesign.tutsplus.com/quick-tip-how-to-use-html5-picture-for-responsive-images--cms-21015t#toc-ghtu-how-to-use-srcset-for-a-set-of-images
#coding
#html
https://webdesign.tutsplus.com/quick-tip-how-to-use-html5-picture-for-responsive-images--cms-21015t#toc-ghtu-how-to-use-srcset-for-a-set-of-images
#coding
#html
Web Design Envato Tuts+
How to Use HTML5 “picture”, “srcset”, and “sizes” for Responsive...
In this tutorial we’ll see what the srcset and sizes attributes can do, how to use them with an img or picture element, and how to know which combination is the right choice.
Forwarded from Frontender's notes [ru]
🧐Рефлексия в JavaScript и TypeScript: обзор основных техник. Как сгенерировать CLI-интерфейс для класса
В этой статье я хочу рассмотреть основные такие возможности, плюс показать, как можно получить ещё больше информации о типах при использовании TypeScript, и как добавить классам и их полям собственные метаданные при помощи декораторов.
Читать...
В этой статье я хочу рассмотреть основные такие возможности, плюс показать, как можно получить ещё больше информации о типах при использовании TypeScript, и как добавить классам и их полям собственные метаданные при помощи декораторов.
Читать...
Forwarded from Организованное программирование | Кирилл Мокевнин (Kirill Mokevnin)
Канареечный релиз
Одна из ключевых концепций, позволяющих снизить проблемы при деплое кода это канареечный релиз. Работает он так. Новый релиз выкатывается рядом со старым, затем на него переводится какой-то очень небольшой процент пользователей. Если ошибок нет, то постепенно происходит полное перетекание пользователей и остановка старой версии кода. Что нужно чтобы реализовать такой механизм?
Zero Downtime Deploy
Подход при котором запуск новой версии кода происходит без остановки старой. С точки зрения пользователя выглядит так, что сайт не останавливается, а при очередном обновлении страницы начинает работать новая версия. Для реализации требуется правильная работа с балансировщиком нагрузки. Лучше всего такой вид деплоя автоматизирован в Kubernetes, который позволяет настроить его буквально несколькими настройками. Все остальные способы как правило более затратны и требуют либо ручных действий, либо необходимости написания автоматизации самостоятельно.
Обратная совместимость по структурам данных в базах, очередях и т.п.
Zero Downtime Deploy, а следовательно и Канареечный Релиз не может работать без изменения подходов в разработке. Например в таком случае нельзя делать изменения в базе данных без обратной совместимости, иначе будет невозможно одновременно запустить старую и новую версию кода. Совместимость нужна не постоянная, а только на ближайший релиз. Дальше можно менять или удалять то что требовалось для предыдущих релизов.
Этот подход автоматически позволяет отказаться от такой сложной и проблемной вещи как откат базы данных при откате деплоя. И действительно, в таком случае база двигается только вперед. Подход может показаться непривычным, но помимо прочего, он значительно влияет на надежность, пропадает страх сделать что-то не так.
В итоге если новый релиз и содержит ошибки, то это коснется только небольшой части пользователей, а хорошо настроенный мониторинг и автоматизация позволят быстро переключить пользователей на старую версию кода.
Одна из ключевых концепций, позволяющих снизить проблемы при деплое кода это канареечный релиз. Работает он так. Новый релиз выкатывается рядом со старым, затем на него переводится какой-то очень небольшой процент пользователей. Если ошибок нет, то постепенно происходит полное перетекание пользователей и остановка старой версии кода. Что нужно чтобы реализовать такой механизм?
Zero Downtime Deploy
Подход при котором запуск новой версии кода происходит без остановки старой. С точки зрения пользователя выглядит так, что сайт не останавливается, а при очередном обновлении страницы начинает работать новая версия. Для реализации требуется правильная работа с балансировщиком нагрузки. Лучше всего такой вид деплоя автоматизирован в Kubernetes, который позволяет настроить его буквально несколькими настройками. Все остальные способы как правило более затратны и требуют либо ручных действий, либо необходимости написания автоматизации самостоятельно.
Обратная совместимость по структурам данных в базах, очередях и т.п.
Zero Downtime Deploy, а следовательно и Канареечный Релиз не может работать без изменения подходов в разработке. Например в таком случае нельзя делать изменения в базе данных без обратной совместимости, иначе будет невозможно одновременно запустить старую и новую версию кода. Совместимость нужна не постоянная, а только на ближайший релиз. Дальше можно менять или удалять то что требовалось для предыдущих релизов.
Этот подход автоматически позволяет отказаться от такой сложной и проблемной вещи как откат базы данных при откате деплоя. И действительно, в таком случае база двигается только вперед. Подход может показаться непривычным, но помимо прочего, он значительно влияет на надежность, пропадает страх сделать что-то не так.
В итоге если новый релиз и содержит ошибки, то это коснется только небольшой части пользователей, а хорошо настроенный мониторинг и автоматизация позволят быстро переключить пользователей на старую версию кода.
Vue3 + TS + Vue Query + Express + tRPC: setup example
https://dev.to/alousilva/vue3-typescript-express-trpc-setup-example-2mlh
#coding
#vue
#typescript
https://dev.to/alousilva/vue3-typescript-express-trpc-setup-example-2mlh
#coding
#vue
#typescript
DEV Community
Vue3 + TS + Vue Query + Express + tRPC: setup example
Table of contents Introduction Setup Project folder structure Server script Router Vue...
useDelayedRender hook and its usage
#coding
#react
const useDelayedRender = delay => {
const [delayed, setDelayed] = useState(true);
useEffect(() => {
const timeout = setTimeout(() => setDelayed(false), delay);
return () => clearTimeout(timeout);
}, []);
return fn => !delayed && fn();
};
const DataComponent = ({ url, fallback, fallbackDelay }) => {
const [data, setData] = useState(null);
const delayedRender = useDelayedRender(fallbackDelay);
useEffect(() => {
let unmounted = false;
fetch(url)
.then(res => res.json())
.then(data => !unmounted && setData(data))
.catch(console.error);
return () => (unmounted = true);
}, []);
return data ? <pre>JSON.stringify(data, null, 2)</pre> : delayedRender(() => fallback);
};
#coding
#react
Forwarded from На фронте - javascript, html, css
react-query vs SWR и избавимся ли мы от Redux?
Давайте сначала познакомимся с обоеми библиотеками, чтобы сравнить их и убедиться, что лучше. react-query и SWR — это две популярные библиотеки для управления состоянием данных в React-приложениях. Они обе предназначены для облегчения работы с данными, получаемыми с сервера, но имеют некоторые различия в функциональности и подходах.
https://habr.com/ru/articles/758360/
#js #react #ru
💬 Чат фронтендеров
Давайте сначала познакомимся с обоеми библиотеками, чтобы сравнить их и убедиться, что лучше. react-query и SWR — это две популярные библиотеки для управления состоянием данных в React-приложениях. Они обе предназначены для облегчения работы с данными, получаемыми с сервера, но имеют некоторые различия в функциональности и подходах.
https://habr.com/ru/articles/758360/
#js #react #ru
💬 Чат фронтендеров
Navigate to a URL with Query Strings (Search Params) in React Router
https://ultimatecourses.com/blog/navigate-to-url-query-strings-search-params-react-router
#coding
#react
https://ultimatecourses.com/blog/navigate-to-url-query-strings-search-params-react-router
#coding
#react
Ultimatecourses
Navigate to a URL with Query Strings (Search Params) in React Router - Ultimate Courses
React Router has a useSearchParams hook to help us read or update the query string of a route that’s active, but it doesn’t allow us...
How can I refresh already deleted Git remote branches?
https://intellij-support.jetbrains.com/hc/en-us/community/posts/360006539480-How-can-I-refresh-already-deleted-Git-remote-branches-
#coding
#git
#phpstorm
https://intellij-support.jetbrains.com/hc/en-us/community/posts/360006539480-How-can-I-refresh-already-deleted-Git-remote-branches-
#coding
#git
#phpstorm
IDEs Support (IntelliJ Platform) | JetBrains
How can I refresh already deleted Git remote branches?
I know I have to use VCS->Git->Fetch to refresh remote inventories, but that does not delete from the list branches that I have already deleted in Github. How can I do that? I think "Fetch" s...
Move files in S3 bucket to folder based on file name pattern
https://stackoverflow.com/questions/60571081/move-files-in-s3-bucket-to-folder-based-on-file-name-pattern
#coding
#aws
https://stackoverflow.com/questions/60571081/move-files-in-s3-bucket-to-folder-based-on-file-name-pattern
#coding
#aws
Stack Overflow
Move files in S3 bucket to folder based on file name pattern
I have an S3 bucket with a few thousand files where the file names always match the pattern {hostname}.{contenttype}.{yyyyMMddHH}.zip. I want to create a script that will run once a day to move these
Using custom events in React
https://blog.logrocket.com/using-custom-events-react/#building-custom-event-react
#coding
#react
https://blog.logrocket.com/using-custom-events-react/#building-custom-event-react
#coding
#react
LogRocket Blog
Using custom events in React - LogRocket Blog
Learn how to build your own custom events in React apps, an essential skill for frontend devs of all levels, in this complete tutorial.
Forwarded from Frontender Libs - обзор библиотек JS / CSS
Представляем атомарный дизайн в Vue.js
Атомный дизайн — это методология создания систем дизайна, которая разбивает пользовательские интерфейсы на небольшие повторно используемые компоненты.
Рассмотрим:
1. Атомы.
2. Молекулы.
3. Организмы.
4. Шаблоны.
5. Страницы.
👉 @sWebDev
Атомный дизайн — это методология создания систем дизайна, которая разбивает пользовательские интерфейсы на небольшие повторно используемые компоненты.
Рассмотрим:
1. Атомы.
2. Молекулы.
3. Организмы.
4. Шаблоны.
5. Страницы.
👉 @sWebDev
Forwarded from Простой JavaScript | Программирование
Object.freeze
Статический метод Object.freeze() замораживает объект. Замораживание объекта предотвращает расширение и делает существующие свойства недоступными для записи и настройки. Замороженный объект больше нельзя изменить: нельзя добавить новые свойства, нельзя удалить существующие свойства, нельзя изменить их перечисляемость, конфигурируемость, возможность записи или значение, а прототип объекта нельзя переназначить.
#практика
Статический метод Object.freeze() замораживает объект. Замораживание объекта предотвращает расширение и делает существующие свойства недоступными для записи и настройки. Замороженный объект больше нельзя изменить: нельзя добавить новые свойства, нельзя удалить существующие свойства, нельзя изменить их перечисляемость, конфигурируемость, возможность записи или значение, а прототип объекта нельзя переназначить.
#практика
Forwarded from JavaScript test
Использование класса для работы с элементами DOM
Класс
JavaScript test
Класс
DOMHelper
содержит методы для скрытия и отображения элементов на веб-странице.JavaScript test
Forwarded from Frontender's notes [ru]
🔍Увеличиваем свою производительность в WebStorm / PhpStorm c помощью шаблонов
В этой статье я расскажу, как можно сократить рутинную работу написания кода, используя шаблоны для создания файлов.
Читать...
В этой статье я расскажу, как можно сократить рутинную работу написания кода, используя шаблоны для создания файлов.
Читать...