РозробкаПідрозділ
Бекенд
Пʼять середовищ виконання, описаних через єдине, що між ними справді відрізняється: як кожне поводиться з паралелізмом. Не синтаксис, не розмір екосистеми, не бенчмарки, а модель виконання — бо саме вона вирішує, які задачі мова робить легкими, а які дорогими. Прочитайте дві поруч — і більшість суперечок «яку мову брати» відповість сама собі.
Що всередині
Усі сторінки цієї групи — і про що кожна з них.
- PHPПроцес на запит, що починається й закінчується чистим, — модель, яка робить PHP простим для міркувань і незручним для стану.На запитНічого спільного
- JavaJVM як справжній продукт: модель памʼяті, збирання сміття, JIT і що змінили віртуальні потоки.JVMПотоки
- Node.jsОдин потік працює, пул чекає — чому Node чудовий на вводі-виводі й поганий на обчисленнях.Event loopНеблокуючий
- PythonGIL, пояснений як слід: чому він заважає, а чому ні, і який із трьох обхідних шляхів пасує вашому навантаженню.GILasyncio
- GoГорутини й планувальник під ними: дешевий паралелізм — і місця, де дешевий перестає бути безкоштовним.ГорутиниПланувальник
З чого почати
- Обираєте середовищеПрочитайте ті два, між якими обираєте, і порівняйте моделі паралелізму. Усе інше обговорюване, а це — ні.
- Ваш сервіс повільний під навантаженнямСторінка вашого середовища. Майже кожна проблема навантаження — це боротьба задачі з моделлю виконання, а не брак заліза.
- Прийшли з іншої мовиПрочитайте старе й нове середовище разом: засвоїти треба саме різницю між двома моделями.
Інше в цьому розділі
- РозробкаРозробка програмного забезпечення — це робота про те, де проходять межі в системі, що працює по кожен їхній бік і чого коштуватиме зсунути одну з цих меж, коли код уже працює. У розділі 28 тем: архітектура, браузер, пʼять бекенд-середовищ, чотири мобільні платформи, мовні моделі та бази даних під усім цим. Кожна сторінка тримається на обмеженні, яке справді відрізняє варіанти, а не на поверхні API.
- АрхітектураДе проводити межі й чого коштує кожна з них. Чотири теми: дві форми, яких може набути система; міграція між ними, за яку більшість команд береться не в той момент; і контракт, що робить будь-яку межу придатною для когось іншого. Наскрізна думка: межа не безкоштовна — вона купує незалежність і бере плату затримкою, налагодженням та операційною поверхнею.
- Бази данихДе живе стан і що кожне сховище про нього гарантує. Три теми: як реляційний рушій насправді відповідає на запит, чим нереляційне сховище платить за масштаб і як спроєктувати схему, що лишиться правдивою через три роки. Моделювання йде останнім навмисно: саме воно вирішує, чи будуть перші дві легкими, чи болючими.
Було корисно?
Поділіться з тим, хто працює над тією ж задачею.