---
title: "Глава 18. Умение вместо функции"
url: "https://www.mikefluff.com/ru/read/nobody-writes-code/ch18"
locale: "ru"
author: "Mikhail Savchenko (Mike Fluff)"
updated: "2026-10-10T17:48:25.825Z"
book: "https://www.mikefluff.com/ru/books/nobody-writes-code"
access: "lead-in"
purchase: "https://www.mikefluff.com/ru/books/nobody-writes-code"
alternates:
  - locale: "ru"
    url: "https://www.mikefluff.com/ru/read/nobody-writes-code/ch18"
    markdown: "https://www.mikefluff.com/ru/read/nobody-writes-code/ch18.md"
  - locale: "en"
    url: "https://www.mikefluff.com/en/read/nobody-writes-code/ch18"
    markdown: "https://www.mikefluff.com/en/read/nobody-writes-code/ch18.md"
  - locale: "pt"
    url: "https://www.mikefluff.com/pt/read/nobody-writes-code/ch18"
    markdown: "https://www.mikefluff.com/pt/read/nobody-writes-code/ch18.md"
---

# Глава 18. Умение вместо функции

*[Код больше не пишут](https://www.mikefluff.com/ru/books/nobody-writes-code)*

В Кембридже начала пятидесятых рядом с EDSAC, одной из первых вычислительных машин, которые действительно работали, стоял стальной шкаф с бумажными лентами. На каждой ленте дырочками была записана маленькая программа, умевшая одну вещь: посчитать синус, извлечь корень, красиво напечатать число. Если в задаче нужен был синус, программист доставал ленту, механически переписывал её на свою и возвращал оригинал на полку. В 1951 году Морис Уилкс, Дэвид Уилер и Стэнли Гилл описали этот порядок в первом учебнике программирования, и маленькие программы, которые вставляют в большие, с тех пор называются подпрограммами, а потом функциями.

Историю программирования можно пересказать как историю того, что кладут в этот шкаф. Сначала туда складывали функции, потом библиотеки функций, потом целые службы на чужих серверах: отправляешь запрос, и где-то далеко проводят платёж, шлют СМС или сообщают погоду. Каждый раз то, что лежит на полке, становилось крупнее и самостоятельнее. Сейчас на полку кладут вещь, которой в пятидесятые не нашлось бы даже названия.

* * *

Проще всего показать её на счёте. Функция createInvoice() создаёт счёт, если ей аккуратно подали все данные в нужном виде. Программный интерфейс даёт адрес вроде /invoices, куда счёт можно отправить на хранение. А умение выставляет счёт клиенту, и это совсем другой глагол. Оно выясняет, кто клиент и какие у него реквизиты, собирает позиции из сделанной работы, применяет правила компании о скидках, налогах и сроках, делает документ, отправляет туда, где клиент его действительно прочитает, запоминает, что счёт ушёл, и, если к сроку денег нет, само напоминает. Внутри оно пользуется десятком функций, парой чужих служб, памятью и правами доступа, а снаружи выглядит как одно действие, понятное любому бухгалтеру.

---

Остальная часть главы — в полной книге. Купить полную книгу (690 ₽): https://www.mikefluff.com/ru/books/nobody-writes-code
