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

30 июня 2009 по Prashant
Подано в: разное

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

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

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

Еще одно мое любимое один из шахты Дзен Python -

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

-

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

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

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

Передано Anupam Trivedi, Sajitha Tampi и Meghshyam Джаганнатха

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

-

Книга 1 - Silent Void

Так говорил учитель:

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

1,1

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

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

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

1,2

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

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

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

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

1,3

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

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

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

1,4

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

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

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

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

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

Так говорил учитель:

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

2,1

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

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

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

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

2,2

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

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

2,3

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

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

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

2,4

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

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

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

Книга 3 - Дизайн

Так говорил учитель:

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

3,1

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

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

В этой речи нарушается охранник очень, потому что миллионы
долл. США, компьютерное оборудование внутри, так что он смотрел мужчина осторожно. Но
Человек просто бродил от палатки к палатке, тихо сам с собой.

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

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

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

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

3,2

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

3,3

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

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

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

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

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

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

3,4

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

"Это займет один год", сказал учитель.

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

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

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

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

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

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

Так говорил учитель:

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

4,1

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

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

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

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

4,2

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

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

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

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

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

4,3

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

"Является Тао в ручной калькулятор, спросил послушник.

"Это", пришел ответ.

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

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

"И Тао в DOS для персонального компьютера?"

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

4,4

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

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

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

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

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

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

Так говорил учитель:

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

5,1

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

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

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 - оборудования и программного обеспечения

Так говорил учитель:

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

8,1

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

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

8,2

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

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

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

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

8,3

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

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

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

8,4

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

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

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

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

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

Так говорил учитель:

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

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

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

Комментарии

    комментарии блога приведенные в действие