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