🥳 После 1.5 месяцев непрерывной разработки (рекорд получается) я с радостью готов представить мой новый турбо-курс - IndexedDB в действии (kobezzza.ru/indexeddb) 🔥
По началу может показаться странным, что я потратил так много времени на разработку и общая длительность получившегося материала ~8 часов.
Но дело в том, что там действительно есть много чего рассказать и курс хоть построен вокруг конкретного инструмента, но затрагивает очень многие вещи от разрешения конфликтов в распределенных системах до принципов поточной архитектуры работы с данными.
Да и сам IndexedDB на мой взгляд один из самых недооцененных инструментов в Web.
* Во-первых, он с нами уже 100 лет в обед (только задумайтесь, IndexedDB появился раньше Promise) и он прекрасно поддерживается во всех браузерах.
* Во-вторых, он реализует документ-ориентированную модель хранения данных и позволяет бесшовно сохранять в базе почти все стандартные JS объекты, а затем также бесшовно их считывать.
* В третьих, он позволяет хранить гигабайты информации (в том числе бинарной), что выглядит особенно внушительно против 5МБ у LocalStorage. Более того, IndexedDB использует индексы, чтобы не держать в памяти все данные сразу, а также осуществлять более сложные запросы.
* В четвертых, IndexedDB изначально спроектирован на поддержку работы из нескольких потоков. Механизмы транзакций позволят вам гарантированно защитится от гонок данных.
* А самое главное, что использовать его почти также просто как LocalStorage и, на мой взгляд, в половине случаев, когда мы используем LocalStorage, нам удобнее будет работать с IndexedDB.
Но при всех этих безусловных плюсах инструмент старательно избегается большинством разработчиков. Вместо этого они либо грузят сотни килобайт библиотек, которые "как будто бы проще" (спойлер, это не так) и они под капотом все равно используют IndexedDB. Либо всегда используют LocalStorage и обмазываются костылями, для обхода всех ограничений.
Я постарался сделать курс таким, чтобы не только рассказать про существующий API, но и объяснить почему он именно такой. На протяжение 8 часов курса мы будем вновь и вновь задавать вопросы, а затем находить ответы.
При этом пусть цифра 8 часов не пугает вас, ведь курс поделен на лекции, где постепенно, шаг за шагом, мы погружаемся в разбор этого могущественного API и связанного с ним. Кроме того, помимо ванильного API в курсе разбираются наиболее популярные библиотеки использующие IndexedDB: idb, idb-keyval, LocalForage, Dexie.js, PouchDB.
Не обошёл стороной я и тему с архитектурой Local First: в курсе разбираются сразу два возможных решения для синхронизации данных (Dexie Cloud и CouchDB/PouchDB). Причем PouchDB посвящена отдельная лекция, где мы разбираем стратегии разрешения конфликтов, распределенные индексы, Map/Reduce и многое другое!
При этом курс доступен в двух вариантах: только IndexedDB и с дополнительными лекциями по библиотекам и Local First.
На сайте турбо-курса можно детальнее ознакомится с тарифами, программным планом и посмотреть кусочек первой лекции.
Андрей Кобец
🥳 После 1.5 месяцев непрерывной разработки (рекорд получается) я с радостью готов представить мой новый турбо-курс - IndexedDB в действии (kobezzza.ru/indexeddb) 🔥
По началу может показаться странным, что я потратил так много времени на разработку и общая длительность получившегося материала ~8 часов.
Но дело в том, что там действительно есть много чего рассказать и курс хоть построен вокруг конкретного инструмента, но затрагивает очень многие вещи от разрешения конфликтов в распределенных системах до принципов поточной архитектуры работы с данными.
Да и сам IndexedDB на мой взгляд один из самых недооцененных инструментов в Web.
* Во-первых, он с нами уже 100 лет в обед (только задумайтесь, IndexedDB появился раньше Promise) и он прекрасно поддерживается во всех браузерах.
* Во-вторых, он реализует документ-ориентированную модель хранения данных и позволяет бесшовно сохранять в базе почти все стандартные JS объекты, а затем также бесшовно их считывать.
* В третьих, он позволяет хранить гигабайты информации (в том числе бинарной), что выглядит особенно внушительно против 5МБ у LocalStorage. Более того, IndexedDB использует индексы, чтобы не держать в памяти все данные сразу, а также осуществлять более сложные запросы.
* В четвертых, IndexedDB изначально спроектирован на поддержку работы из нескольких потоков. Механизмы транзакций позволят вам гарантированно защитится от гонок данных.
* А самое главное, что использовать его почти также просто как LocalStorage и, на мой взгляд, в половине случаев, когда мы используем LocalStorage, нам удобнее будет работать с IndexedDB.
Но при всех этих безусловных плюсах инструмент старательно избегается большинством разработчиков. Вместо этого они либо грузят сотни килобайт библиотек, которые "как будто бы проще" (спойлер, это не так) и они под капотом все равно используют IndexedDB. Либо всегда используют LocalStorage и обмазываются костылями, для обхода всех ограничений.
Я постарался сделать курс таким, чтобы не только рассказать про существующий API, но и объяснить почему он именно такой. На протяжение 8 часов курса мы будем вновь и вновь задавать вопросы, а затем находить ответы.
При этом пусть цифра 8 часов не пугает вас, ведь курс поделен на лекции, где постепенно, шаг за шагом, мы погружаемся в разбор этого могущественного API и связанного с ним. Кроме того, помимо ванильного API в курсе разбираются наиболее популярные библиотеки использующие IndexedDB: idb, idb-keyval, LocalForage, Dexie.js, PouchDB.
Не обошёл стороной я и тему с архитектурой Local First: в курсе разбираются сразу два возможных решения для синхронизации данных (Dexie Cloud и CouchDB/PouchDB). Причем PouchDB посвящена отдельная лекция, где мы разбираем стратегии разрешения конфликтов, распределенные индексы, Map/Reduce и многое другое!
При этом курс доступен в двух вариантах: только IndexedDB и с дополнительными лекциями по библиотекам и Local First.
На сайте турбо-курса можно детальнее ознакомится с тарифами, программным планом и посмотреть кусочек первой лекции.
kobezzza.ru/indexeddb
9 months ago | [YT] | 3