Великие программисты находить простые решения для сложных проблем

30 июня 2009 по Prashant
Рубрики: разное

После долгого времени я не мог найти источник следующую цитату-

Младший программистам создавать простые решения для простых задач. Старший программистам создавать сложные решения для сложных проблем. Великие программисты находить простые решения сложных проблем.

Именно из эссе под названием Красивые программного обеспечения Чарльз Коннелл.

Другой фаворит один из шахты Дзен Python -

Красивое лучше, чем некрасиво.
Явный лучше чем неявный.
Чем проще, тем лучше, чем сложные.
Комплекс лучше, чем сложные.
Плоские лучше, чем вложенными.
Редкие лучше, чем плотная.
Читаемость имеет значение.
Особые случаи не являются специальными достаточно, чтобы нарушать правила.
Хотя практичность бьет чистоты.
Ошибки никогда не должны проходить молча.
Если явно не замолчать.
В условиях неопределенности, отказываются соблазн угадать.
Там должна быть одна и, желательно, только один очевидный способ сделать это.
Хотя таким образом, возможно, не очевидно на первый, если вы не голландцы.
Теперь лучше, чем никогда.
Хотя никогда не часто лучше, чем права * * сейчас.
Если реализация трудно объяснить, это плохая идея.
Если реализация легко объяснить, она может быть хорошей идеей.
Пространства имен являются одним сигналят отличная идея - давайте делать больше таких!
-------------------------
и тогда уже классическим Дао Программирования

-

кредитов, как на сайтах-

Перевод Джеффри Джеймс

Трансляции герцога Hillard

Передано Анупам Триведи, Sajitha Tampi и Meghshyam Джаганнатха

Повторное HTML-ized под редакцией Kragen Ситтлер

-

Книга 1 - Тихий Пустота

Так говорил мастер программист:

"Когда вы узнали урвать код ошибки из ловушки кадр, он
будет для вас время, чтобы уйти. "

1,1

Что-то таинственное формируется, родился в тихой пустоте. Ожидание в одиночку и
неподвижный, он сразу еще и тем не менее в постоянном движении. Это источник
всех программ. Я не знаю его имени, так что я буду называть его Дао
Программирование.

Если Дао велико, то операционная система является большим. Если операционная
Система большая, то компилятор хороший. Если компилятор велик,
Затем приложение является большим. Пользователь доволен и существует
гармонии в мире.

Дао Программирования потоки далеко и возвращается на ветер утром.

1,2

Тао родился машинный язык. Машинный язык породил
ассемблер.

Ассемблер родила компилятора. Сейчас Есть десять тысяч
языков.

Каждый язык имеет свою цель, тем не менее скромным. Каждый язык выражает
Инь и Ян программного обеспечения. Каждый язык имеет свое место в Дао.

Но не в программе COBOL, если вы можете избежать этого.

1,3

В начале было Дао. Дао породило Пространство и Время.
Поэтому пространство и время являются Инь и Янь программирования.

Программисты, которые не постичь Дао, всегда не хватает времени
и пространства для их программ. У программистов постигших Дао всегда
имеют достаточно времени и пространства для достижения своих целей.

Как могло быть иначе?

1,4

Мудрый программист слышит о Дао и следует ему. Средняя
программист слышит о Дао и ищет его. Глупо программист
слышит о Дао и смеется над ней.

Если бы это было не для смеха, не было бы Дао.

Высокие звуки труднее слышать.
В дальнейшем это путь к отступлению.
Большой талант проявляется в конце жизни.
Даже совершенная программа все еще есть ошибки.

-------------------------

Книга 2 - Древние мастера

Так говорил мастер программист:

"После трех дней без программирования жизнь становится бессмысленной."

2,1

Программисты старых были загадочны и глубоки. Мы не можем понять
свои мысли, так что все что мы делаем, описать их внешний вид.

Сознавая, как лиса пересечения воды. Предупреждение, как и вообще на
боя. Добрые, как хозяйка приветствие ее гостей. Простой, как
uncarved блоков из дерева. Непрозрачные, как черный бассейны в затемненных пещер.

Кто может сказать, секреты их сердец и умов?

Ответ существует лишь в Дао.

2,2

Великий магистр Тьюринга когда-то мечтали, что он был машиной. Когда он проснулся, он
воскликнул:

"Я не знаю, буду ли я Тьюринга снилось, что я машина, или
Машина снилось, что я Тьюринг! "

2,3

Программист из очень большой компьютерной компании отправился в программное обеспечение
конференции, а затем вернулся представить его менеджер, говоря: "Какой
программисты работают в других компаниях? Они вели себя плохо и были
равнодушный к выступлений. Их волосы были длинные и неопрятные и их
одежду морщинистой и старых. Они разбился наше гостеприимство пакет, и они
сделаны грубые звуки во время моего выступления. "

Менеджер сказал: "Я бы никогда не послал вас на конференцию. Те
программисты живут за пределами физического мира. Они считают жизнь абсурдна,
случайное совпадение. Они приходят и уходят, не зная ограничений.
Без помощи, они живут только для своих программ. Почему они должны беспокоить
с социальными конвенциями?

"Они живы внутри Дао."

2,4

Ученик спросил учителя: "Вот программист, что никогда не проектирует,
документов или тестов его программ. Однако все, кто его знает считаю его одним из
лучших программистов в мире. Почему это происходит? "

Мастер отвечает: "Этот программист овладел Дао. Он ушел
от нужды проектирования; он не сердится, когда система
падает, но принимает вселенную без беспокойства. Он ушел от
Необходимость документации; он больше не волнует, если кто-либо другой видит, что его код.
Он ушел от необходимости тестирования, каждый из его программы идеально подходят
в себе, спокойный и элегантный, их цель очевидна. Действительно,
он вошел в тайне Дао. "

-------------------------

Книга 3 - Проектирование

Так говорил мастер программист:

"Когда программа тестируется, уже слишком поздно, чтобы сделать дизайн
изменения ".

3,1

Там когда-то был человеком, который отправился в выставке компьютера. Каждый день, когда он
вошел, человек сказал охранник у двери:

"Я великий вор, известный мои подвиги магазинных краж. Быть
предупрежден, для этой выставки не избегнут unplundered ".

Эта речь нарушенных охранник сильно, потому что там были миллионы
долларов компьютерного оборудования внутри, так он смотрел, человек тщательно. Но
Человек просто бродили от стенда к стенду, напевая тихо сам с собой.

Когда он вышел, охранник отвел его в сторону и обыскал его одежду, но
ничего не было найдено.

На следующий день после выставки, человек вернулся и упрекнул охранника
говоря: "Я бежал с огромной добычей вчера, но сегодня будет еще
лучше ". Так охранник наблюдал за ним все более тесно, но безрезультатно.

В заключительный день выставки, охранник мог удержаться от любопытства
больше не будет. "Господин Вор", он сказал: "Я так озадачен, я не могу жить в
мира. Пожалуйста, просветите меня. Что это такое, что вы крадете? "

Человек улыбнулся. "Я краже идеи", сказал он.

3,2

Там когда-то был мастер программист, который писал неструктурированные программы.
начинающий программист, стремясь подражать ему, а также начал писать
неструктурированные программы. Когда Ученик спросил мастера, чтобы оценить его
прогресса, мастер критиковали его за написание неструктурированных программ,
говоря: "Что подходит для мастера не подходит для
новичок. Вы должны понять Дао, прежде чем преодоление структуры ".

3,3

Был однажды программист, который был прикреплен ко двору военачальника
Ву. Военачальник спросил программиста: "Что легче спроектировать:
бухгалтерский пакет или операционную систему? "

"Операционная система", ответил программист.

Военачальник произнес возглас недоверия. "Конечно, бухгалтерский учет
пакет тривиально рядом со сложностью операционной системы ", он
сказал.

"Не так", сказал программист, "при проектировании бухгалтерский пакет,
Программист работает как посредник между людьми с разными
идеи: как это должно работать, как его доклады должны появиться, и как он должен
соответствуют налоговому законодательству. В отличие от операционной системы не ограничивается
внешних выступлений. При проектировании операционной системы, программист
стремится простейшей гармонии между машиной и идеями. Вот почему
операционная система проще в дизайне. "

Военачальник из Ву кивнул и улыбнулся. "Это все хорошо, но
что легче отладить? "

Программист не ответил.

3,4

Менеджер пришел к мастеру программисту и показал ему требования
документ для нового приложения. Менеджер спросил мастера: "Как долго
займет проектирование этой системы если я назначу пять программистов? "

"Это займет один год", сказал мастер в кратчайшие сроки.

"Но нам нужна эта система немедленно и даже раньше! Как долго это
принять, если я назначу десять программистов? "

Программист мастер нахмурился. "В таком случае, это займет два года."

"А что, если я назначу сто программистов?"

Программист мастер пожал плечами. "Тогда проект никогда не будет
завершено ", сказал он.

-------------------------

Книга 4 - Кодирование

Так говорил мастер программист:

"Хорошо написанная программа это свой собственный рай, плохо написанная программа
его собственный ад. "

4,1

Программа должна быть легкой и гибкой, ее подпрограммы связаны, как
нитка жемчуга. Духу и целям программы должны быть сохранены
во всем. Там должно быть ни слишком мало или слишком много, ни
ненужных петель, ни бесполезных переменных, ни отсутствия структуры, ни
Подавляющее жесткости.

Программа должна следовать Закону `наименьшего удивления». Что это за закон?
Это просто, что программы должны всегда отвечать на пользователя в пути
Поражает, что его меньше всего.

Программы, независимо от того, насколько сложным, должна действовать как единое целое. Программа
должны быть направлены на логику внутри, а не по внешнему виду.

Если программа не в эти требования, он будет в состоянии
беспорядка и путаницы. Единственный способ исправить это переписать
программы.

4,2

Ученик спросил мастера: "У меня есть программа, которая когда-то бежит и
иногда прерывается. Я следовал правилам программирования, но я
полностью сбиты с толку. В чем причина этого? "

Мастер ответил: "Вы в замешательстве, потому что вы не понимаете, Дао.
Только глупец ожидает разумного поведения от своих собратьев. Почему вы
ожидать от машины, что люди построили? Компьютеры имитировать
детерминизма, только Дао совершенно.

"Правила программирования преходящи, только Дао вечно. Поэтому
Вы должны созерцать Дао прежде чем вы получите просветления. "

"Но как я знаю, когда я получил просветление?" Спросил
новичок.

"Ваша программа будет работать правильно," ответил мастер.

4,3

Мастер объяснял природу Дао одному из своих новичков. "
Дао воплощено во всех программных - независимо от того, как ничтожны ", сказал
мастер.

"Является ли Дао в ручной калькулятор?" Спросил новичка.

"Это", был ответ.

"Является ли Дао в видеоигре?" Продолжал послушник.

"Это даже в видеоигре," сказал учитель.

"И это Дао в ДОС для персонального компьютера?"

Мастер закашлялся и перевел положение чуть-чуть. "Урок окончен
на сегодняшний день, "сказал он.

4,4

Программист князь Ван был кодирования программного обеспечения. Его пальцы танцевали на
клавиатуры. Программа составлена ​​без сообщения об ошибке, и программа
побежал, как легкий ветерок.

"Отлично!" Князь воскликнул: «Ваша техника безупречна!"

"Техника"? Сказал программист отворачиваясь от своего терминала, "То, что я
следовать, Дао - за пределами всех техник! Когда я впервые начал программировать я
увидели бы передо мной вся проблема в одну массу. После трех лет я не
больше не видел этой массы. Вместо этого я использовал подпрограммы. Но сейчас я ничего не вижу.
Все мое существо существует в бесформенную пустоту. Мои чувства ожидания. Мой дух,
свободно работать без плана, следует своим инстинктам. Короче говоря, моя программа
пишет сама. Правда, иногда Есть сложные проблемы. Я вижу их
идет, я замедляться, я смотрю молча. Затем я изменить одну строку кода
и трудности исчезнут, как клубы дыма простоя. Я затем скомпилировать
программы. Я сижу до сих пор и пусть радость работы заполнить мое существо. Я закрываю
Глаза на мгновение и затем выйти из нее ".

Князь Ван сказал: "Если бы все мои программисты были мудры!"

-------------------------

Книга 5 - Техническое обслуживание

Так говорил мастер программист:

"Хотя программа должна быть, кроме трех строк, когда-нибудь это должно быть
поддерживается. "

5,1

Хорошо использовать дверь не требует смазки на петлях.
Быстротекущей поток не растет стагнации.
Ни звука, ни мысли могут путешествовать через вакуум.
Программное обеспечение гниет, если не используется.

Это великие тайны.

5,2

Менеджер спросил программиста, сколько времени ему потребуется, чтобы закончить
Программа, на которую он работал. "Она будет закончена завтра,"
Программист быстро ответил.

"Я думаю, что вы в настоящее время нереально," сказал менеджер, "По правде говоря, как
времени это займет? "

Программист задумался на мгновение. "У меня есть некоторые особенности, которые я хочу
добавить. Это займет не менее двух недель ", сказал он наконец.

"Даже это слишком много, чтобы ожидать", настаивал менеджер, "Я буду
выполнены, если вы просто скажите, когда программа будет готова ".

Программист согласился с этим.

Несколько лет спустя, менеджер вышел в отставку. На пути к своей отставки
обед, он обнаружил, программист спит за своим терминалом. Он был
программирования на всю ночь.

5,3

Начинающий программист когда-то был присвоен код простой финансовый пакет.

Начинающие работал неистово в течение многих дней, но когда его хозяин рассмотрел
его программу, он обнаружил, что в нем содержатся экранный редактор, набор
обобщенного графика процедур, искусственный интеллект интерфейс, но
нет ни малейшего упоминания ни о чем финансовая.

Когда мастер спросил об этом, новичок пришел в негодование. "Не
таким нетерпеливым, "сказал он," я вставлю финансовую вещи в конце концов. "

5,4

Есть ли хороший фермер пренебрежение культурой он посадил?
Есть ли хороший учитель выходят даже самого скромного студента?
Есть ли хороший отец позволить одному ребенку голодать?
Есть ли хороший программист отказаться от поддержания его код?

-------------------------

Книга 6 - Менеджмент

Так говорил мастер программист:

"Пусть программистов будет много, а менеджеров мало - тогда все будет
продуктивным. "

6,1

Когда менеджеры проводить бесконечные совещания, программисты пишут игры. Когда
бухгалтеры говорят о ежеквартальной прибыли, бюджет развития собирается
быть сокращены. Когда исследователи говорят голубое небо, облака собираются ролл
дюйм

Поистине, это не Дао Программирования.

Когда менеджеры делают обязательства, игровые программы, игнорируются. Когда
бухгалтеры делают долгосрочные планы, гармония и порядок вот-вот будут
восстановлена. Когда исследователи решения проблем под рукой,
проблемы в скором времени будет решена.

Воистину, это Дао Программирования.

6,2

Почему программисты непроизводственной?
Потому что их время растрачивается на совещаниях.

Почему программисты мятежный?
Потому что управление вмешивается слишком много.

Почему программисты отставку один за другим?
Потому что они сгорели.

Проработав плохого управления, они больше не ценят свою работу.

6,3

Менеджер был на грани увольнения, но программист, который работал на него
придумал новую программу, которая стала популярной и хорошо продавалась. В результате,
менеджер сохранил свою работу.

Менеджер попытался дать программисту премию, но программист
отказался, сказав: "Я написал программу, потому что я думал, что это
интересная концепция, и таким образом я не ожидаю награды. "

Менеджер, услышав это, заметил: "Этот программист, хоть он держит
Положение небольшого достоинства, хорошо понимает обязанности надлежащего
работника. Давайте продвигать его возвышенное положение управления
консультант! "

Но когда сказал это, программист еще раз отказался, сказав: "Я существую так
что я могу программе. Если у меня были повышены, то я бы ничего не делать, но отходы
все время. Могу ли я теперь идти? У меня есть программа, что я работаю. "

6,4

Менеджер пришел к своим программистам и сказал им: "Что касается вашей работе
Время работы: вы будете иметь, чтобы прийти в в девять утра и уходить
В пять вечера. "При этом все они рассердились и несколько
ушел в отставку на месте.

Так менеджер сказал: "Хорошо, в таком случае вы можете настроить свою собственную
рабочих часов, до тех пор, как вы закончите ваши проекты в соответствии с графиком ".
Программисты, в настоящее время удовлетворены, стали приходить в полдень и работать, чтобы крошечные
часов утра.

-------------------------

Книга 7 - Корпоративная мудрость

Так говорил мастер программист:

"Вы можете продемонстрировать программу для корпоративных исполнительной власти, но вы не можете
сделать его компьютерно грамотным. "

7,1

Ученик спросил мастера: "На востоке есть большое дерево-структурой
что люди называют `Корпоративная штаб-квартира". Это раздутый из формы с
вице-президентами и бухгалтерами. Она выпускает множество справок, каждая
так `Go, поэтому! или `Иди, сюда!" и никто не знает, что имеется в виду. Каждый
год новые имена поставлены на ветвях, но все безрезультатно. Как можно
такие неестественные лица может быть? "

Мастер ответил: "Ты видишь эту огромную структуру и
обеспокоен тем, что она не имеет рациональной цели. Вы можете не принимать от развлечений
его бесконечной циркуляции? Разве вы не насладитесь безмятежным легкость программирования
под его укрытие филиалы? Почему вы беспокоили его
бесполезности? "

7,2

На востоке есть акула, которая больше всех других рыб. Это
изменения в птицу, чьи крылья подобны облакам заполнения небе. При этом
птица перемещается по земле, она приносит послание от корпоративного
Штаб-квартиры. Это сообщение он падает в гущу программистов,
как чайка вносит свой отпечаток на пляже. Затем птица устанавливается на
ветер, а с голубого неба на спине, возвращается домой.

Начинающий программист смотрит в удивлении на птицу, потому что он это понимает
нет. Средний программист страшится прихода птицы, потому что он страхи
его сообщения. Программист мастер продолжает работать за своим терминалом, для
он не знает, что птицы приходят и уходят.

7,3

Волшебник Ivory Tower привез свое последнее изобретение для
мастеру программисту проверить. Маг колесных большой черный ящик в
магистра офис в то время как хозяин ждал в тишине.

"Это интегрированная, распределенная, общего назначения, рабочая станция," начал
магом ", эргономичные с собственной операционной
системы, шестого поколения языков, а также несколько современных пользователей
интерфейсов. Он принял мои помощники несколько сотен человеко-лет, чтобы построить.
Разве не удивительно? "

Мастер поднял брови чуть-чуть. "Это действительно удивительно," он
сказал.

«Корпоративная штаб-квартире повелел," продолжал волшебник, "что
всем использовать эту станцию ​​как платформу для новых программ. Согласны ли вы
на это? "

"Конечно," ответил мастер, "я буду иметь его транспортируется в
центр обработки данных немедленно! "И волшебник вернулся в свою башню, а
доволен.

Через несколько дней новичок забрел в офис мастера
программист и сказал: "Я не могу найти листинг моей новой программы. Делать
Вы знаете, где это может быть? "

"Да", ответил мастер, "листинги сложены на платформе
центра обработки данных. "

7,4

Программист мастер переходит от программы к программе без страха. Нет
изменения в управлении может навредить ему. Он не будет уволен, даже если
Проект будет отменен. Почему это происходит? Он полон Дао.

-------------------------

Книга 8 - оборудования и программного обеспечения

Так говорил мастер программист:

"Без ветра, трава не двигается. Без программного обеспечения, аппаратных
бесполезно. "

8,1

Ученик спросил мастера: "Я вижу, что одна компьютерная компания намного
больше, чем все другие. Она возвышается над конкурентами, как гигант среди
карликов. Любой из его подразделений могут включать в себя весь бизнес. Почему
это так? "

Учитель ответил: "Почему ты задаешь такие глупые вопросы? Эта компания
велика, потому что это большой. Если бы она выпускала только аппаратные средства, никто не купит
его. Если бы она выпускала только программы, никто бы не использовать его. Если это только сохранила
Системы, люди будут относиться к нему как к прислуге. Но так как она сочетает в себе все
из этих вещей, люди думают, что один из богов! По не стремится
стремиться, она побеждает без усилий. "

8,2

Программист мастер прошло начинающий программист один день. Мастер отметил,
новичка озабоченность ручные компьютерную игру. "Простите меня",
он сказал, "я могу рассмотреть его?"

Начинающие болтами к вниманию и передал устройство к хозяину.
видеть, что устройство утверждает, что три уровня игры: легкий, средний и
Жесткий ", сказал учитель. "Однако каждый такой аппарат имеет другой уровень
игры, когда устройство не стремится завоевать человека, ни быть побежденным
на человека ".

"Молись, великий мастер", умолял начинающих ", как найти эту
таинственные настройки? "

Мастер бросил устройство на пол и раздавил ногой. И
вдруг начинающего был просветленным.

8,3

Был однажды программист, который работал на микропроцессоры. "Посмотрите, как
обеспеченными я здесь ", сказал он мэйнфреймов программист, который пришел в гости,
"У меня есть своя операционная система и устройство для хранения файлов. У меня нет к
поделиться своими ресурсами с кем. Программное обеспечение является самосогласованным и
простой в использовании. Почему бы тебе не бросить свою нынешнюю работу и присоединиться ко мне? "

Мэйнфреймов программист начал описывать свою систему своему другу,
говоря "мэйнфреймов сидит, как древний мудрец медитации среди
в центре обработки данных. Его диски лежат конца в конец, как великий океан
техники. Программное обеспечение как многогранное, как алмаз, и, как запутанный
как первобытные джунгли. Программ, каждый из которых уникален, перемещаться по системе
как быстротекущей реки. Вот почему я счастлив где я есть. "

Микрокомпьютер программист, услышав это, замолчал. Но два
программисты оставались друзьями до конца своих дней.

8,4

Аппаратные встретился Программное обеспечение на пути к Changtse. Программное обеспечение сказал: "Вы
Инь и Ян я. Если мы будем путешествовать вместе мы прославиться и заработать
огромные суммы денег. "И так изложенные вместе, думая покорить
мира.

Вскоре они встретили Firmware, который был одет в рваные тряпки и заковылял
а опираясь на тернистом палку. Прошивка сказал им: "Дао лежит
за Инь и Ян. Она молчит и до сих пор, как бассейн с водой. Это
не стремиться к славе, поэтому никто не знает, что его присутствие. Оно не ищет
состояния, для ее завершения в себе. Он существует вне пространства и
время ".

Программного и аппаратного обеспечения, стыдно, вернулись в свои дома.

-------------------------

Книга 9 - Эпилог

Так говорил мастер программист:

"Настало время для вас, чтобы уйти".

-------------------------

Если вы понравились эти, возможно, также хотели бы прочитать хуже, лучше

Комментарии

  • H_tere2000
    Большой материал!

    Любое программирование мудрость?

    Пожалуйста, послал его ко мне в h_tere2000 на ком Yahoo точка. Я ценю это.

    Спасибо.
комментарии блога двигались на большой скорости Diskus