РозробкаПідрозділ
Бекенд
Сім мов і середовищ, описаних через єдине, що між ними справді відрізняється: модель виконання — як кожне поводиться з паралелізмом, памʼяттю і збоями. Не синтаксис, не розмір екосистеми, не бенчмарки, бо саме модель виконання вирішує, які задачі мова робить легкими, а які дорогими. Пʼять — звичні серверні середовища. Rust звільняє памʼять без збирача сміття, у місці, яке перевіряє компілятор. Solidity працює на публічній машині, де кожен виклик відкритий будь-кому, а код не можна змінити. Прочитайте дві поруч — і більшість суперечок «яку мову брати» відповість сама собі.
Що всередині
Усі сторінки цієї групи — і про що кожна з них.
- PHPПроцес на запит, що починається й закінчується чистим, — модель, яка робить PHP простим для міркувань і незручним для стану.На запитНічого спільного
- JavaJVM як справжній продукт: кожен реліз JDK тоді й тепер, памʼять у контейнері, проксі Spring і віртуальні потоки.JVMПотоки
- Node.jsЯкий потік платить за кожну роботу: event loop, пул із чотирьох, щорічні релізи з Node 27 і 502 за балансувальником.Event loopНеблокуючий
- PythonЧекає чи обчислює: GIL і збірка без нього, пастки asyncio, версії до 3.15 і чому воркери ділять менше памʼяті.GILasyncio
- Go (Golang)Де чекає кожна горутина і що її відпускає: витоки, GOMAXPROCS у контейнері, GOMEMLIMIT і що змінив Go 1.27.ГорутиниGOMAXPROCS
- RustВолодіння, перевірене під час компіляції: дванадцять помилок, які зустрічає кожен, що насправді означає unsafe, async і Rust 1.99.ВолодінняBorrow checker
- SolidityСмартконтракти в EVM: дванадцять серверних звичок, що не працюють у ланцюгу, reentrancy, проксі, флеш-кредити й пʼять втрат.EVMСмартконтракти
З чого почати
- Обираєте середовищеПрочитайте ті два, між якими обираєте, і порівняйте моделі паралелізму. Усе інше обговорюване, а це — ні.
- Ваш сервіс повільний під навантаженнямСторінка вашого середовища. Майже кожна проблема навантаження — це боротьба задачі з моделлю виконання, а не брак заліза.
- Прийшли з іншої мовиПрочитайте старе й нове середовище разом: засвоїти треба саме різницю між двома моделями.
- Просять зробити на блокчейніSolidity, і спершу її останній розділ: контракт виправдовує свою ціну, лише коли користувачі не мусять довіряти оператору.
Інше в цьому розділі
- РозробкаРозробка програмного забезпечення — це робота про те, де проходять межі в системі, що працює по кожен їхній бік і чого коштуватиме зсунути одну з цих меж, коли код уже працює. У розділі 30 тем: архітектура, браузер, сім бекенд-мов, чотири мобільні платформи, мовні моделі та бази даних під усім цим. Кожна сторінка тримається на обмеженні, яке справді відрізняє варіанти, а не на поверхні API.
- АрхітектураДе проводити межі й чого коштує кожна з них. Чотири теми: дві форми, яких може набути система; міграція між ними, за яку більшість команд береться не в той момент; і контракт, що робить будь-яку межу придатною для когось іншого. Наскрізна думка: межа не безкоштовна — вона купує незалежність і бере плату затримкою, налагодженням та операційною поверхнею.
- Бази данихДе живе стан і що кожне сховище про нього гарантує. Три теми: як реляційний рушій насправді відповідає на запит, чим нереляційне сховище платить за масштаб і як спроєктувати схему, що лишиться правдивою через три роки. Моделювання йде останнім навмисно: саме воно вирішує, чи будуть перші дві легкими, чи болючими.
Було корисно?
Поділіться з тим, хто працює над тією ж задачею.