РозробкаПідрозділ
Бази даних
Де живе стан і що кожне сховище про нього гарантує. Три теми: як реляційний рушій насправді відповідає на запит, чим нереляційне сховище платить за масштаб і як спроєктувати схему, що лишиться правдивою через три роки. Моделювання йде останнім навмисно: саме воно вирішує, чи будуть перші дві легкими, чи болючими.
Що всередині
Усі сторінки цієї групи — і про що кожна з них.
- SQLШістнадцять несподіванок — хибні рядки, повільні запити, загублені оновлення, — планувальник, ізоляція, черга блокувань і п’ять кейсів.ПланувальникІндекси
- NoSQLШістнадцять речей, які реляційна база робила за вас, ключ партиціювання, кворуми й загублені записи та п’ять кейсів.ПартиціїПатерни доступу
- Моделювання данихШістнадцять питань до кожної таблиці — ключі, нормальні форми, типи й NULL, історія й два годинники, «зірка» і п’ять кейсів.Нормальні формиІсторія
З чого почати
- Запити повільніSQL, і спершу розділ про планувальник: майже кожен повільний запит — це план, якого ви не очікували.
- Обираєте сховищеNoSQL — заради питання партиціювання. Якщо ви ще не можете назвати свої патерни доступу, це і є відповідь.
- Проєктуєте схемуМоделювання даних, починаючи з шістнадцяти питань: на кожне значно дешевше відповісти до появи першої таблиці.
Інше в цьому розділі
- РозробкаРозробка програмного забезпечення — це робота про те, де проходять межі в системі, що працює по кожен їхній бік і чого коштуватиме зсунути одну з цих меж, коли код уже працює. У розділі 30 тем: архітектура, браузер, сім бекенд-мов, чотири мобільні платформи, мовні моделі та бази даних під усім цим. Кожна сторінка тримається на обмеженні, яке справді відрізняє варіанти, а не на поверхні API.
- BackendСім мов і середовищ, описаних через єдине, що між ними справді відрізняється: модель виконання — як кожне поводиться з паралелізмом, памʼяттю і збоями. Не синтаксис, не розмір екосистеми, не бенчмарки, бо саме модель виконання вирішує, які задачі мова робить легкими, а які дорогими. Пʼять — звичні серверні середовища. Rust звільняє памʼять без збирача сміття, у місці, яке перевіряє компілятор. Solidity працює на публічній машині, де кожен виклик відкритий будь-кому, а код не можна змінити. Прочитайте дві поруч — і більшість суперечок «яку мову брати» відповість сама собі.
- АрхітектураДе проводити межі й чого коштує кожна з них. Чотири теми: дві форми, яких може набути система; міграція між ними, за яку більшість команд береться не в той момент; і контракт, що робить будь-яку межу придатною для когось іншого. Наскрізна думка: межа не безкоштовна — вона купує незалежність і бере плату затримкою, налагодженням та операційною поверхнею.
Було корисно?
Поділіться з тим, хто працює над тією ж задачею.