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