Книга 4
Код
А Великий Программист сказал: «Хорошо написанная программа – это свой рай.Плохо написанная программа — это собственный ад».
4.1 Программа должна быть легкой и гибкой, а ее подпрограммы должны быть подобны жемчугу, нанизанному на нить.
Дух и цель программы должны сохраняться на протяжении всего ее срока действия.
Кода не должно быть слишком много или слишком мало.
Никаких ненужных циклов, никаких бесполезных переменных.
Ни хаотичного, ни чрезмерно структурированного.
Программа должна следовать правилу «наименьшего сюрприза».
Это значит, что программа должна реагировать на действия пользователя так, чтобы он был наименее неожиданным.
Программа любой сложности должна работать как единое целое.
Работа программы продиктована логикой, а не внешними признаками.
Если программа не отвечает этим требованиям, это приводит к беспорядку и путанице.
Остается только переписать его заново.
4.2 Новичок спросил Мастера: «Моя программа иногда работает, а иногда дает сбой.
Я следовал законам программирования, но я в замешательстве.
Какова причина?" Учитель ответил: «Вы запутались, потому что не постигли Дао.
Только дурак будет ожидать от других людей разумного поведения.
Чего вы ожидали от автомобиля, созданного людьми? Компьютеры имитируют детерминизм.
Только Дао совершенно.
Законы программирования преходящи, только Дао вечно.
Поэтому вам необходимо созерцать Дао, прежде чем достичь Просветления».
«Но как я узнаю, что достиг просветленияЭ» - спросил новичок.
«Ваша программа будет работать правильно», — ответил Мастер.
4.3 Мастер объяснял суть Дао одному из новичков.
«Дао присутствует во всех программах, даже в небольших программах», — сказал Мастер.
«Есть ли Дао в калькулятореЭ» - спросил новичок.
"Есть".
«Есть ли Дао в видеоигреЭ» «Даже в видеоигре».
«Есть ли Дао в операционной системе DOSЭ» Мастер поперхнулся и слегка изменил позу.
«Урок на сегодня окончен», — сказал он.
4.4 Программист, нанятый принцем Вонгом, писал программу.
Его пальцы танцевали на клавиатуре.
Программа скомпилировалась без ошибок и работала как легкий ветерок.
"Идеальный!" - воскликнул принц.
«Ваша техника безупречна!» "Техника?" - спросил программист, отвернувшись от терминала.
«Я следую Дао и далек от техник.
Когда я начал программировать, я увидел стоящую передо мной задачу целиком.
Три года спустя вместо этого я увидел подпрограммы.
И теперь я ничего не вижу.
Моя сущность находится в бесформенной пустоте.
Мои чувства дремлют. Мой дух, не ограниченный планом, следует инстинкту.
Короче говоря, моя программа пишет сама себя.
Да, иногда бывают сложные задачи.
Я вижу, как они приближаются, я замедляю ход, молча смотрю.
Потом меняю одну строчку кода и трудности исчезают как клубы дыма.
Потом компилирую, и меня наполняет удовольствие от работы.
Я закрываю глаза на секунду, а затем выхожу из системы».
Принц Вонг сказал: «О, если бы все мои программисты были такими мудрыми!»
Книга 5
Поддерживать
И Великий Программист сказал: «Даже трехстрочную программу когда-нибудь придется поддерживать».5.1 Часто используемая дверь не требует смазки.
Проточная вода не застаивается.
Олень растворяется в цветах леса.
Программы портятся, если ими не пользоваться.
5.2 Менеджер спросил программиста, сколько времени ему нужно для завершения программы.
«Это будет закончено завтра», — быстро ответил он.
«Я не думаю, что вы реалистичны», — сказал менеджер.
«Сколько времени вам действительно нужноЭ» Программист задумался об этом.
«Ну, я хочу добавить некоторые функции.
Это займет не менее двух недель».
«И даже это слишком оптимистично», — настаивал менеджер.
— Мне будет достаточно, если ты просто скажешь мне, когда все закончится.
Программист согласился.
Через несколько лет менеджер уволился.
По пути на прощальный ужин он обнаружил программиста, спящего за терминалом.
Он работал всю ночь.
5.3 Однажды начинающему программисту была поставлена задача написать простой финансовый модуль.
Новичок яростно работал много дней, но когда Мастер проверил свою программу, он обнаружил, что в ней есть визуальный редактор, набор универсальных графических методов, интерфейс к ИИ, но ничего даже отдаленно напоминающего о финансах.
Когда Мастер спросил его об этом, новичок возмутился: «Не будь таким нетерпеливым, в конце концов я добавлю финансовую составляющую».
5.4 Хороший фермер игнорирует посаженный саженец? Проходит ли хороший учитель мимо даже самого скромного ученика? Разве хороший отец позволит своему единственному ребенку голодать? Разве хороший программист откажется поддерживать свой код?
Книга 6
Контроль
А Великий Программист сказал: «Пусть программистов много, а менеджеров нет. Тогда мы добьемся продуктивности».6.1 Когда встречаются менеджеры, программисты пишут игры.
Когда бухгалтеры обсуждают квартальные доходы, бюджет развития рискует быть урезанным.
Когда учёные говорят о ясном небе, вскоре появятся облака.
И это не Дао программирования.
Когда менеджеры берут на себя ответственность, игры отходят на второй план.
Когда бухгалтеры занимаются долгосрочным планированием, восстанавливаются гармония и порядок.
Когда ученые говорят о насущных проблемах, они скоро будут решены.
И это Дао программирования.
6.2 Почему программисты непродуктивны? Они тратят время на собраниях.
Почему программисты бунтуют? Потому что менеджеры слишком часто вмешиваются в процесс.
Почему программисты уходят? Потому что они сгорели на работе.
Поработав у плохих менеджеров, они перестают ценить свой труд. 6.3 Одного менеджера собирались уволить.
Но программист, работавший в его команде, написал новую программу, которая стала популярной и хорошо продавалась.
В результате менеджер сохранил свою работу.
Менеджер пытался дать программисту премию, но тот отказался, сказав: «Я написал программу, потому что меня заинтересовала концепция, поэтому я не жду никакого вознаграждения».
Услышав это, менеджер заметил: «Этот программист хоть и занимает не самую уважаемую должность, но понимает, в чем обязанность сотрудника.
Давайте продвинем его на высокую должность консультанта!» Программист, услышав это, снова отказался: «Я существую для того, чтобы программировать.
Если меня повысят, я буду только тратить время других людей.
Я могу идти? Программа ждет меня там».
6.4 Менеджер пришел к своим программистам и сказал им: «Что касается вашего рабочего времени: вам нужно будет приехать в девять и уйти в пять вечера».
Программисты разозлились, и некоторые сразу уволились.
Тогда менеджер сказал: «Ладно, в таком случае вы сами планируете свое время, просто заканчивайте проекты вовремя».
Программисты, довольные этим, стали приходить в полдень и работать до утра.
Книга 7
Корпоративная мудрость
А Великий Программист сказал: «Вы можете показать программу режиссёру, но не сможете научить его компьютерной грамотности».7.1 Новичок спросил Мастера: «На востоке есть огромная древовидная структура под названием «Управление Корпорацией».
Он раздут со всеми вице-президентами и бухгалтерами.
Он создает гору заметок, в которых людям предлагается «пойти туда» или «сделать это», и никто не знает, что они имеют в виду.
Каждый год в структуре появляются новые имена – и все безрезультатно.
Как может существовать такая неестественная сущностьЭ» Мастер ответил: «Вы наблюдаете за этим, и вас беспокоит то, что у этого нет цели.
Но разве вас не забавляют движения внутри нее? Разве вам не нравится безмятежное программирование в тени его раскидистых ветвей? Почему тебя беспокоит его бесполезностьЭ» 7.2 На востоке водится акула крупнее любой рыбы.
Она превращается в птицу, чьи крылья, как облака, покрывают небо.
Когда эта птица движется над землей, она несет послание от руководства корпорации.
Сообщение попадает в среду программистов, как будто чайка отмечает пляж.
Затем птица оседлала ветер и возвращается домой.
Начинающий программист смотрит на это с удивлением, потому что он этого не понимает. Среднестатистический программист с опаской ожидает ее появления, потому что боится ее сообщения.
Великий программист продолжает работать за терминалом, не замечая ее появления.
7.3 Волшебник из башни из слоновой кости принес свое последнее изобретение Великому Программисту для изучения.
Волшебник вкатил большой черный ящик в кабинет Великого и молча ждал.
«Это интегрированная распределенная рабочая станция общего назначения, — начал Мастер, — разработанная с учетом эргономики, с собственной ОС, языками шестого поколения и множеством уникальных пользовательских интерфейсов.
Моим помощникам потребовалось несколько сотен человеко-лет, чтобы построить его.
Ну, разве это не удивительная вещьЭ» Великий программист слегка приподнял брови: «Действительно, потрясающе».
«Руководство корпорации потребовало, чтобы все использовали эту рабочую станцию как платформу для новых программ.
Вы согласны на это? «Конечно», — ответил Программист. «Я прикажу немедленно доставить ее в дата-центр!» И довольный волшебник вернулся в свою башню.
Через несколько дней в офис Великого заглянул начинающий программист и спросил: «Я не могу найти листинг для своей новой программы.
Знаешь, где он может быть? «Я знаю», — ответил Мастер.
«Все листинги сложены на новой тумбочке в дата-центре».
7.4 Великий программист переходит от программы к программе без страха.
На него не влияют изменения в руководстве.
Его не уволят, даже если его проект закроют. Почему? Оно наполнено Дао.
Книга .
Железо и софт
А Великий Программист сказал: «Без ветра трава не шевелится.
Без программ оборудование бесполезно».
8.1 Начинающий программист спросил Мастера: «Я вижу, что одна компания-разработчик программного обеспечения намного крупнее всех остальных.
Она возвышается над ними, как великан среди гномов.
Любое из ее подразделений можно выделить в отдельный бизнес.
Почему это так? Мастер ответил: «Почему ты задаешь такие глупые вопросы? Компания большая, потому что она большая.
Если бы здесь производилось только железо, его бы никто не покупал.
Если бы он производил только программы, никто бы ими не пользовался.
Если бы она только поддерживала, люди относились бы к ней как к служанке.
Но поскольку она сочетает в себе все эти направления, люди думают, что она сродни богам! Не ища борьбы, она побеждает без усилий».
8.2 Однажды Мастер проходил мимо вновь прибывшего.
Он заметил, что новичок занят игрой в портативную игру.
«Мне очень жаль», — сказал он.
"Могу я взглянуть?" Новичок передал игру Мастеру.
«Я вижу, что игра предлагает три уровня сложности: легкий, средний и сложный», — сказал Мастер.
«И все же, у любого подобного устройства есть еще один уровень, где оно не пытается ни завоевать человека, ни быть им завоеванным».
«О, Великий Мастер, — взмолился новичок, — покажи, как найти эту загадочную опциюЭ» Мастер уронил прибор на землю и наступил на него каблуком.
И новичок вдруг достиг просветления.
8.3 Жил-был программист, который писал программное обеспечение для персональных компьютеров.
«Посмотрите, как хорошо я устроился», — сказал он приезжему программисту мейнфреймов.
«У меня есть собственная операционная система и устройство хранения файлов.
Мне не нужно ни с кем делиться ресурсами.
Программное обеспечение единообразно и просто в использовании.
Почему бы тебе не бросить работу и не присоединиться ко мнеЭ» Программист мэйнфреймов начал описывать свою систему: «Мэйнфрейм расположен в центре центра обработки данных, как древний мудрец в медитации.
Его приводы стоят рядом друг с другом, словно целый океан машин.
Программа многогранна, как алмаз, и сложна, как первозданные джунгли.
Программы, каждая из которых уникальна, движутся по системе, как быстрая река.
Вот почему я счастлив там, где я есть».
Программист персонального компьютера, услышав это, потерял дар речи.
Но два программиста остались друзьями до конца своих дней.
8.4 Айрон встретил Софта по дороге в Чанг-Це.
Софт сказал: «Ты Инь, а я Ян.
Если мы пойдём вместе, то прославимся и заработаем много денег».
И они вместе отправились в путь, надеясь завоевать мир.
И встретили они Прошивку, одетого в рваные лохмотья, ковыляющего по дороге, опирающегося на шипастую палку.
Прошивка сказала им: «Дао лежит за пределами Инь и Ян.
Оно тихое и тихое, как озеро.
Оно не ищет славы – поэтому о его наличии никто не знает. Оно не ищет богатства, поскольку самодостаточно.
Оно существует вне пространства и времени».
Iron and Software, пристыженная, вернулась домой.
Книга 9
Эпилог
И Великий Программист сказал: «Пришло время тебе уйти».Теги: #дао #истинное дао #да пребудет с тобой сила #так говорил Заратустра #Аномальное программирование
-
Ветка 0.8.X Стала Стабильной
19 Oct, 24 -
Symfony — Загрузка Файлов В Mongodb Gridfs
19 Oct, 24 -
Сайт Шанцева Подешевел До 1,4 Млн Рублей
19 Oct, 24 -
Не Только Google... Онлайн-Инструменты
19 Oct, 24