Many thanks to Tristan Morris for creating a beautiful illustrated hardcover print edition of the site |
|||||||||||||||||
Один послушник сказал учителю Кайму: “Я слышал, что предпочтительнее иметь только один оператор возврата в одной функции. Вы согласны?” Кайму спросил: “Где Ваша чаша?” Монах извинился и ушёл, чтобы взять свою чашу. Когда послушник вернулся, то показал учителю свою чашу и сказал: “Я слышал, что предпочтительнее иметь только один оператор возврата в одной функции. Вы согласны?” Кайму спросил: “Почему в чаше нет риса?” Монах извинился и ушёл, чтобы принести немного риса. Когда послушник вернулся, то показал учителю свою чашу, полную дымящегося белого риса, и сказал: “Я слышал, что предпочтительнее иметь только один оператор возврата в одной функции. Вы согласны?” Кайму взял у монаха чашу и поставил её на стол. “Вы говорите об одном из самых древних принципов разработки, который называется Один Вход Один Выход”, - сказал учитель. Затем он рассказал монаху о давно минувших славных днях кодирования, когда памяти было мало, компьютеры были медленными, а ресурсами надо было управлять с осторожностью. - “Язык С совсем не помогал с этим”, - сказал Кайму, - “а Ассемблер и тем более. Так что, если Ваша функция что-то заимствовала, то Вашей же функции приходилось освобождать это обратно. А как это проще всего сделать? Поставив весь код для освобождения в одном месте, перед выходом из функции... Эта традиция продолжается и по сей день”. Затем Кайму рассказал о рождении объектов, о деструкторах и финализаторах. Он рассказал о сборке мусора, подсчёте ссылок и алгоритме пометок, о компиляторах, которые могут определить, когда объект выходит из области видимости. Он рассказал о буферах, которые могут расти по необходимости или же уничтожаться, о файлах, закрывающих самих себя, о пулах соединений и пулах потоков, а также о том, насколько чудесным и волшебным является современный зверинец языков, где монахи могут направить свою энергию на более интересные задачи, чем суета с malloc и free или goto fail. “Да”, - в конце концов сказал уставший монах. - “Но согласны ли Вы с принципом разработки Один Вход Один Выход или нет?” Кайму взглянул на стол и спросил: “Почему рис в чаше белый, а не коричневый?” Перевод Sergey Malenkov. Отрывок из The Codeless Code, созданная Qi (qi@thecodelesscode.com). При условии, в соответствии с условиями Creative Commons Attribution-NonCommercial 3.0 Unported License. |