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

30 юни 2009 г. от Prashant ° Коментари
Пила под: Разни

След дълго време успях да намеря източник за следните цитат

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

Тя е от есе, наречен "Красива софтуер от Чарлз Конъл .

Друг мой любим един от Zen на Python -

Красива е по-добре, отколкото грозна.
Изрично е по-добре, отколкото имплицитно.
Обикновено е по-добре, отколкото сложни.
Комплексът е по-добре, отколкото сложно.
Апартамента е по-добре, отколкото вложени.
Sparse е по-добре, отколкото плътен.
Яснота брои.
Специални случаи не са специални достатъчно, за да се нарушават правилата.
Въпреки че практичността бие чистота.
Грешки никога не трябва да мине тихо.
Освен ако изрично не е заглушено.
В лицето на неяснота, се отказва на изкушението да се отгатне.
Не трябва да има една и за предпочитане само един очевиден начин да го направя.
Въпреки че по този начин не може да бъде очевидна в началото, освен ако не сте холандски.
Сега е по-добре, отколкото никога.
Въпреки че никога не е често по-добре, отколкото * * сега.
Ако изпълнението е трудно да се обясни, че е лоша идея.
Ако изпълнението е лесно да се обясни, то може да бъде добра идея.
Пространствата от имена са на една клаксони велика идея - нека да направим повече от тези!
-------------------------
и след това е класически Тао на програмиране

-

кредити, като на свързан сайт

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

Транскрипция от Duke Hillard

Предавани от Anupam Триведи, Sajitha Tampi и Meghshyam Jagannath

Re-HTML-рана и редактирана от Крейгън Sittler

-

Книга 1 - The Silent Void

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

"Когато сте научили да грабне код за грешка от капана рамка,
ще бъде време, за да напусне. "

1.1

Се формира нещо тайнствено, роден в тихата невалидни. Чакащи сам и
неподвижен, е все още, и още в постоянно движение. Тя е източник
на всички програми. Аз не знам името му, така че аз ще го наричат ​​Тао на
Програмиране.

Ако Тао е голямо, а след това операционната система е страхотно. Ако операционната
система е голям, тогава компилатор е страхотно. Ако компилатора е страхотно,
след това заявлението е страхотно. Потребителят е доволен и съществува
хармония в света.

Тао на програмиране потоци далеч и се връща на вятъра на сутринта.

1.2

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

Асемблер даде раждане на компилатор. Сега има десет хиляди
езици.

Всеки език има своя цел, обаче е скромен. Всеки език изразява
Ин и Ян на софтуер. Всеки език има своето място в рамките на Тао.

Но не програма в COBOL, ако можете да го избегне.

1.3

В началото бе Тао. Дао ражда пространството и времето.
Ето защо пространството и времето са Ин и Ян на програмиране.

Програмистите, които не разбират Дао винаги се натъкват на време
и пространството за техните програми. Програмистите, които разбират Тао винаги
да имат достатъчно време и пространство, за да постигнат целите си.

Как би могло да бъде другояче?

1.4

Мъдрият програмист е казал за Тао и го следва. Средната
програмист е разказал за Тао и търсения за него. Безумната програмист
се разказва за Тао и се смее на нея.

Ако не беше за смях, няма да има Тао.

Най-високата звуци са най-силно да чуят.
Занапред е начин да се оттеглят.
Голям талант показва себе си в края на живота.
Дори перфектно програма все още има бъгове.

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

Книга 2 - The Ancient Masters

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

"След три дни без програмиране, животът става безсмислен."

2.1

Програмистите на стари са тайнствена и дълбока. Ние не може да проумее
мислите им, така че всичко, което правим, е да опише външния им вид.

Съзнавайки, като лисица, преминаване на водата. Alert, като общо за
бойното поле. Вид, като стюардеса поздрав гостите си. Обикновено, като
uncarved блокове от дърво. Непрозрачни, като черни басейни в затъмнена пещери.

Кой може да каже тайните на сърцата и умовете си?

Отговорът съществува само в Тао.

2.2

Grand Master Тюринг веднъж сънувал, че той е една машина. Когато той се събудил, той
възкликна:

"Аз не знам дали съм Тюринг сънувах, че съм машина, или
машина, сънувах, че съм съм Тюринг! "

2.3

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

Мениджърът заяви: "Аз никога не са ви изпратили на конференцията. Тези
програмисти живеят отвъд физическия свят. Те считат за живота е абсурдно,
случайно съвпадение. Те идват и си отиват, без да знае ограничения.
Без да се грижа, те живеят само за техните програми. Защо трябва да те притеснява
със социалните конвенции?

"Те са живи в рамките на Тао."

2.4

Новак попита Учителя: "Тук е програмист, който никога не проектира,
документи или тестовете си програми. Но всички, които знаят, него не го обмислите един от
най-добрите програмисти в света. Защо е това? "

Учителят отговори: "Това програмист е овладял Дао. Той е отишло
, отвъд необходимостта за проектиране; той да не се превърне ядосан, когато системата
катастрофи, но приема, вселената, без притеснение. Той е отишло отвъд
необходимостта от документация, той вече не му пука, ако някой друг не вижда код.
Той е отишло отвъд необходимостта от изпитване, всяка от неговите програми са перфектни
в себе си, спокойни и елегантни, тяхната цел, очевидно. Наистина,
той е влязъл в тайната на Тао. "

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

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

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

"Когато се тества програмата, тя е твърде късно да се направи дизайн
промени. "

3.1

Има веднъж беше човек, който отиде в шоу на компютъра. Всеки ден, тъй като той
влезе, мъжът казал на охраната на вратата:

"Аз съм велик крадец, известен с подвизите си в кражба от магазин. Бъдете
предупредени за тази търговия, шоу не се отърве unplundered. "

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

Когато си тръгне човекът, телохранителите му дръпна настрана и търси дрехите си, но
нищо не е да се намери.

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

В последния ден на търговия показват, телохранителите можаха да сдържат любопитството си
вече не. "Сър Thief", каза той, "Аз съм толкова объркани, не могат да живеят в
мир. Моля да ме просвети. Какво е това, че ви крадат? "

Мъжът се усмихна. "Аз съм кражба на идеи", каза той.

3.2

Има веднъж е майстор програмист, който пише неструктурирани програми. А
начинаещ програмист, се стреми да го имитират, също започна да пиша
неструктурирани програми. Когато новак поиска капитанът да се оцени неговата
напредък, капитанът го критикува за писане на неструктурирани програми,
казвайки: "Това, което е подходящо за капитана не е подходящ за
новак. Трябва да разберете, Тао преди отвъд структура. "

3.3

Имаше веднъж програмист, който е бил прикрепен към съда на военачалник
Wu. Военачалник попита програмист: "Кое е по-лесно да се проектира:
счетоводен пакет или операционна система? "

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

Военачалник изречени удивителен на неверие. "Със сигурност счетоводна
Пакетът е тривиален до сложността на една операционна система ", каза той
каза.

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

Военачалник на Wu кимна и се усмихна. "Това е всичко добро и добре, но
което е по-лесно да трасирате? "

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

3.4

Мениджърът отиде на главния програмист и го показва на изискванията
документ за ново заявление. Мениджърът попитал капитана: "Колко дълго
ще се предприемат, за да проектират тази система, ако ми зададете пет програмистите да? "

"Това ще отнеме една година," каза капитанът незабавно.

"Но ние нужда от тази система веднага или дори по-рано! Колко време ще
предприеме, ако зададете десет програмистите да? "

Майстор програмист се намръщи. "В този случай, тя ще отнеме две години."

"И какво ще стане, ако задам сто програмисти да го?"

Майстор програмист сви рамене. "Тогава дизайнът никога няма да бъде
завършен ", каза той.

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

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

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

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

4.1

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

Една програма трябва да следва "Закона за най-слабо учудване". Какъв е този закон?
Това е просто, че програмата трябва винаги да отговорят на потребителя в начина, по който
че го учудва малко.

Една програма, без значение колко сложни, трябва да действа като едно цяло. Програмата
трябва да бъдат насочени от логиката в рамките, отколкото навън изяви.

Ако програмата не успее в тези изисквания, той ще бъде в състояние на
безредици и объркване. Единственият начин да се коригира това е да се пренапише
програма.

4.2

Новак попитал капитана: "Имам програма, която по някое време работи и
понякога прекъсва. Следя правилата на програмирането, а аз съм
напълно объркани. Каква е причината за това? "

Капитанът отговори: "Вие сте объркани, защото не разбират Тао.
Само глупак очаква рационално поведение от колегите си хора. Защо ви е
очаквате от една машина, която хората са изградили? Компютри симулират
детерминизъм; само Тао е перфектен.

"Правилата на програмирането са преходни, само Дао е вечен. Следователно
трябва да съзерцава Тао, преди да сте получили просветление. "

"Но как ще разбера, когато съм получил просветление?", Попита
новак.

"Вашата програма ще работи коректно", отговори капитанът.

4.3

Учител е, разясняване на характера на Тао на на един от новаците си. "
Тао е въплътена във всички софтуер, независимо колко незначителен ", каза
капитанът.

"Дао ръчни калкулатор?", Попита новак.

"Това е" бил отговорът.

"Дао във видео игра?", Продължи новак.

"Това е дори във видео игра", каза капитанът.

"И е Тао в DOS за персонален компютър?"

Капитанът се изкашля и леко измести позицията си. "Урокът е над
за днес ", каза той.

4.4

Програмист Принц Уан софтуер за кодиране. Пръстите му танцуваха
клавиатурата. Програмата, съставен без съобщение за грешка и програмата
затича като нежен вятър.

"Отлично!" На Prince възкликна, "Вашата техника е безупречна!"

"Техника" заяви, че програмистът превръща от своя терминал, "Това, което
следват е Тао - отвъд всички техники! Когато за първи път започва да съм програма
ще видя пред мен целият проблем в една маса. След три години аз не
вече видях тази маса. Вместо това, аз използва подпрограми. Но сега виждам нищо.
Цялото ми същество съществува в безформена празнота. Сетивата ми се бездейства. Моят дух,
свободни да работят без план, следва своя собствен инстинкт. В Накратко, моята програма
пише себе си. Вярно е, че понякога има трудни проблеми. Аз ги виждам
идва, аз бавно надолу, гледам безмълвно. След това променя един ред код
и трудностите изчезват като кълба на празен ход дим. След това се компилира
програма. Все още седя и нека радостта на работата попълнете моето същество. Завършвам ми
очите за момент и след това да излезете. "

Принц Уан каза, "че всички ми програмисти са като мъдри!"

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

Книга 5 - Поддръжка

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

"Въпреки че програмата да бъде, но три реда, някой ден той ще трябва да бъдат
поддържани. "

5.1

Един добре използвани врата не се нуждае от масло на пантите си.
Бързо прелял поток не расте в застой.
Нито звук, нито мисли могат да пътуват чрез вакуум.
Софтуер гние, ако не се използва.

Това са най-големите мистерии.

5.2

Мениджърът поиска програмист, за колко време ще го вземе, за да завърши
програма, на която той е работил. "Това ще бъде завършен утре,"
програмист незабавно отговори.

"Мисля, че са нереалистични", каза мениджърът "Честно казано, как
време ще отнеме? "

Програмистът се замисли за момент. "Имам някои характеристики, които бих искал да
добавите. Това ще отнеме най-малко две седмици ", той най-накрая каза.

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

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

Няколко години по-късно, мениджър пенсиониран. По пътя до пенсионирането му
обяд, той открил, програмист заспал му терминал. Той е бил
програмирането цяла нощ.

5.3

А някога е бил начинаещ програмист, възложени код прост финансов пакет.

Новак е работил в продължение на много дни яростно, но когато господаря си преразгледа
програмата си, той открил, че тя съдържа екран редактор, набор от
генерализирана графични съчетания, интерфейс изкуствен интелект, но
не се споменава нищо финансови.

Когато капитанът попита за това, послушницата става възмутен. "Не се
толкова нетърпелив, "каза той," Ще сложа във финансовия неща в крайна сметка. "

5.4

Има ли добър фермер пренебрегване култура, той е посадил?
Има ли добър учител пренебрегват дори и най-скромен студент?
Има ли добър баща позволява едно дете да гладуват?
Има ли добър програмист да откаже да поддържа кода си?

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

Книга 6 - Управление

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

"Нека програмистите да бъдат много и мениджърите на няколко - тогава всички ще бъдат
продуктивни. "

6.1

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

Наистина, това не е Тао на програмиране.

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

Наистина, това е Тао на програмиране.

6.2

Защо са програмисти непроизводствени?
Защото се губи времето си в срещи.

Защо са непокорни програмисти?
Тъй като управлението се намесва твърде много.

Защо са програмисти да подаде оставка един по един?
Защото те са изгорени.

След като е работил за лошо управление, те вече не стойността им работни места.

6.3

Един мениджър бе на път да бъде уволнен, но програмист, който е работил за него
изобретил нова програма, която стана популярна и се продават добре. В резултат на това
мениджър запази работата си.

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

Управителят след като чул това отбеляза: "Това програмист, макар че той държи
състояние на малка почит, разбира добре правилното задължение на
служител. Нека го насърчава да издигнат позицията на управление
консултант! "

Но когато каза така, програмистът още веднъж отказал, казвайки: "Аз съществувам
, че мога да програмирате. Ако ми бяха популяризирани, аз ще направя нищо друго освен отпадъци
всеки път. Мога ли сега накъде? Имам програма, която аз работя. "

6.4

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

Така мениджърът каза: "Добре, в този случай може да зададете своя собствена
работно време, докато приключите с проекти по график. "
програмисти, които сега са доволни, започнаха да идват в по обяд и да работят за пиш
часове на сутринта.

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

Книга 7 - Корпоративна Мъдростта

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

"Вие може да докаже, програма за корпоративен изпълнителен директор, но не можете да
да го направи компютърно грамотни. "

7.1

Новак попитал капитана: "На изток има голямо дърво структура
че хората наричат ​​"Корпоративна щаб". Това е подут от форма с
заместник-председатели и счетоводители. Той издава множество бележки, всяка
казвайки: Иди, а оттам! " или `Go, тука!" и никой не знае какво се има предвид. Всеки
година Новите имена са поставени върху клоните, но всички без резултат. Как може да
такава неестествена единица да бъде? "

Капитанът отговори: "Вие възприемат тази огромна структура и са
обезпокоен, че тя не е рационална цел. Не можеш да се увеселителен от
безкрайните си gyrations? Не ви ли се радват на спокоен лекота на програмирането
под подслон клонове? Защо са ви притесняват от неговия
безполезност? "

7.2

На изток има акула, която е по-голям, отколкото всички други риби. То
промени в птица, чиито крила са като облаци, попълване на небето. Когато това се
Птицата се движи по земята, той ви дава съобщение от Корпоративна
Централата. Това съобщение капки в средата на програмистите,
като чайка направи своя белег върху плажа. Тогава птицата се монтира върху
вятъра и с синьото небе на гърба си, се завръща у дома.

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

7.3

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

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

Капитанът вдигна вежди леко. "Това е наистина невероятно", каза той
каза.

"Централата е заповядал", продължава на магьосника ", че
всеки използвате тази работна станция като платформа за нови програми. Съгласни ли сте,
за това? "

"Разбира се", отговори капитанът, - аз ще го транспортират до
център за данни веднага! "И магьосник се върна да си кула, и
доволен.

Няколко дни по-късно, новак нахлули в офиса на капитана
програмист и каза: "Не мога да намеря листинг за новата ми програма. Правя
знаете къде може да е? "

"Да", отговори капитанът, - обяви са подредени на платформа в
център за данни. "

7.4

Майстор програмист се движи от програма на програма без страх. Не
промяна в управлението, може да му навреди. Той няма да бъде уволнен, дори ако на
Проектът е отменен. Защо е това? Той е изпълнен с Тао.

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

Книга 8 - хардуер и софтуер

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

"Без вятър, тревата не се движи. Без софтуер, хардуер
безполезни. "

8.1

Новак попитал капитана: "Аз усетих, че една компютърна компания е много
по-голям от всички останали. Той се извисява над конкуренцията си като гигант сред
джуджета. Всеки един от неговите поделения могат да обхваща цялата дейност. Защо е
това е така? "

Капитанът отговори: "Защо питаш такива глупави въпроси? Това дружество
е голям, защото тя е голяма. Ако тя прави само хардуер, никой няма да купува
нея. Ако само софтуер, никой не би го използвате. Ако само я поддържа
системи, хората ще го третират като слуга. Но тъй като той съчетава всички
от тези неща, мисля, че един от боговете! Като не иска да
Стремим се, тя побеждава без усилие. "

8.2

А майстор програмист премина начинаещ програмист един ден. Капитанът отбелязва
новак занимание с ръчни компютърна игра. "Извинете ме"
каза той, "може ли да го разгледа?"

Новак прикован към внимание и връчи на устройството на капитана. "Аз
се види, че устройството твърди, да има три нива на игра: лесни, средно и
Hard ", каза капитанът. "И все пак всяко такова устройство има друго ниво на
играе, когато устройството не се стреми да завладее човека, нито да бъде завладян
от човешкото. "

"Молете се, голям майстор", умоляваше новак, "как може да намерите този
мистериозен настройка? "

Капитанът се отказа от устройството на земята и го смачкват под краката. И
изведнъж новак бил просветлен.

8.3

Имало едно време един програмист, които са работили при микропроцесори. "Вижте как
заможни аз съм тук, "каза той на мейнфрейм програмист, който дойде да посети,
"Имам си собствена операционна система и устройство за съхранение на файлове. Аз не трябва да
споделя моите ресурси с никого. Софтуерът е последователен и
лесни за използване. Защо не напуснете сегашната работа и да се присъедините към мен тук? "

Мейнфрейм програмист, след това започна да описва своята система за приятеля си,
казвайки: "мейнфрейм седи като древен мъдрец медитира в средата
на център за данни. Неговите дискове лежат край до край като голям океан
машини. Софтуерът е толкова многостранна, като диамант, и като сложен
като първобитни джунгла. Програмите, всяка уникална, се движат чрез системата
като бързо течаща река. Ето защо аз съм щастлив където съм. "

Микрокомпютър програмист, след като чул това, млъкна. Но двете
програмисти остават приятели до края на дните си.

8.4

Хардуер срещна Софтуер по пътя към Changtse. Софтуер каза: "Вие сте
Ин и аз съм Ян. Ако пътуваме заедно, ние ще станат известни и да печелят
огромни суми пари. "И така, изложени заедно, мислейки за завладяване
на света.

В момента те се срещнаха фърмуера, който беше облечен в парцаливи дрипи и спъва
заедно подпряна на трънлив пръчка. Firmware им каза: "Тао се крие
отвъд Ин и Ян. Тя е тиха и все още като езеро с вода. Той не
не търси слава, затова никой не знае нейното присъствие. Той не се стреми
богатство, защото тя е пълна в себе си. Тя съществува отвъд пространството и
време. "

Софтуер и хардуер, срам, се завръща по домовете си.

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

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

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

"Време е за вас да напусне."

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

Ако сте харесали тези, може също така да прочетете по-лошо е по-добре