Великите програмисти намерят прости решения на сложни проблеми
След дълго време, мога да се намери източник за следния цитат,
Младши програмисти създават прости решения на прости проблеми. Старши програмисти създават сложни решения на сложни проблеми. Великите програмисти намерят прости решения на сложни проблеми.
Той е от едно есе, наречено "Красива софтуер от Чарлз Конъл.
Друга любима моя е Zen на Python
Красива е по-добре, отколкото грозна.
Изрично е по-добре, отколкото имплицитно.
Просто е по-добре, отколкото комплекс.
Комплексът е по-добре, отколкото сложно.
Апартамента е по-добре от вложеното.
Рядка е по-добре, отколкото гъста.
Четивността се брои.
Специални случаи, които не са специални достатъчно, за да нарушават правилата.
Въпреки че практичността бие чистота.
Грешки никога не трябва да мине тихо.
Освен ако изрично е заглушено.
В лицето на неяснота, да откаже на изкушението да се отгатне.
Трябва да има и за предпочитане само един очевиден начин да го направя.
Въпреки че по този начин не може да е очевидно най-напред, освен ако не сте холандски.
Сега е по-добре, отколкото никога.
Въпреки че никога не е често по-добре, отколкото * право * сега.
Ако реализацията е трудно да се обясни, това е лоша идея.
Ако реализацията е лесно да се обясни, може би е добра идея.
Пространствата от имена са една honking страхотна идея - да направим повече от тези!
-------------------------
и след това е класически Тао на програмирането
-
кредити както на свързан сайт
Преведено от Джефри Джеймс
Транскрипция от Duke Hillard
Предавани от Анупам Триведи, Sajitha Tampi и Meghshyam Jagannath,,
Re-HTML-рана и редактират от Крейгън Sittler,
-
Книга 1 - The Silent Void
Така говореше майстор програмист:
"Когато сте научили да грабне кода на грешката от капана рамка,
ще дойде време да си тръгнеш. "1,1
Се формира нещо тайнствено, роден в тиха празнота. Изчакване сам и
неподвижно, тя е едновременно все още и все пак в постоянно движение. Тя е източник
на всички програми. Аз не знам името му, така че аз ще го наричаме Дао на
Програмиране.Ако Тао е голям, а след това операционната система е страхотно. Ако операционната
система е голям, а след това компилатора е страхотно. Ако компилаторът е голям,
след това заявлението е страхотно. Потребителят е доволен и съществува
хармонията в света.Дао на програмирането потоци далеч, и се връща на вятъра на сутринта.
1,2
Дао ражда на машинен език. Машинен език ражда
асемблер.Асемблера родила на компилатор. Сега там са десет хиляди
езици.Всеки език има своя цел, колкото и скромна. Всеки език изразява
Ин и Ян на софтуера. Всеки език има своето място в рамките на Дао.Но не програмирате в COBOL, ако можете да го избегнете.
1,3
В началото бе Дао. Дао ражда пространството и времето.
Ето защо пространството и времето са Ин и Ян на програмирането.Програмистите, които не разбират Дао са винаги вървят от време
и място за техните програми. Програмистите, които разберат Тао винаги
имат достатъчно време и пространство, за да постигнат целите си.Как би могло да бъде другояче?
1,4
Мъдрият програмист е казал за Тао и го следва. Средната
програмист се разказва за Тао и търсене за него. Глупавите програмист
се разказва за Тао и се смее на това.Ако не беше смях, няма да има Тао.
Най-високите звуци са най-силно да чуят.
В бъдеще е начин да се оттеглят.
Голям талант показва в края на живота.
Дори перфектна програма все още има бъгове.-------------------------
Книга 2 - древните майстори
Така говореше майстор програмист:
"След три дни без програмиране, животът става безсмислен."
2,1
Програмистите на стари са тайнствена и дълбока. Ние не може да разбере
мислите си, така че всичко, което правим, е да се опише външния им вид.Наясно, като лисица, преминаване на водата. Сигнализирай, като генерал на
бойното поле. Вид, като домакиня, поздрави гостите си. Обикновено, като
uncarved блокове от дърво. Непрозрачни, като черни басейни в затъмнени пещери.Кой може да каже тайните на сърцата и умовете си?
Отговорът съществува само в Тао.
2,2
Grand Master Тюринг веднъж сънувал, че е една машина. Когато той се събуди
възкликна:"Не знам дали съм Тюринг сънувам, че съм една машина, или
машина сънувам, че съм Тюринг! "2,3
Програмист от много голяма компютърна компания отиде на софтуер
конференция и след това се върна да докладва на своя ръководител, казвайки: "Какъв вид
от програмисти работят за други фирми? Те се държаха зле и са
безучастна към изяви. Косите им бяха дълги и занемарени и
дрехи са набръчкани и стари. Те се разби нашето гостоприемство апартамент и те
грубите шумове по време на представянето ми. "Мениджърът заяви: "Аз никога не трябваше да ви изпрати на конференцията. Тези
програмисти живеят отвъд физическия свят. Те считат, че живота е абсурдно,
случайно съвпадение. Те идват и си отиват, без да знае ограничения.
Без да се интересувам, те живеят само за техните програми. Защо трябва да те притеснява
със социалните конвенции?"Те са живи в рамките на Тао."
2,4
Новак попита Учителя: "Тук е програмист, който никога не проектира,
документи или тестове неговите програма. Но всички, които знаят му го смятат за един от
най-добрите програмисти в света. Защо е това? "Учителят отговаря: "Това програмист е овладял Дао. Той е отишло
отвъд необходимостта за проектиране; той да не се превърне ядосан, когато системата
катастрофи, но приема вселена без притеснения. Той е отишло отвъд
необходимостта от документация, той вече не му пука, ако някой друг не вижда кода си.
Той отиде отвъд необходимостта от изпитване, като всяка от неговите програми са перфектни
в себе си, спокойна и елегантна, тяхната цел очевидно. Наистина,
той е влязъл в тайната на Тао. "-------------------------
Книга 3 - Проектиране
Така говореше майстор програмист:
"Когато програмата се тества, че е твърде късно да се направи дизайн
промени. "3,1
Някога е бил човек, който отиде в шоу на компютъра. Всеки ден, тъй като той
влезе, мъжът казал на охраната на вратата:"Аз съм велик крадец, известен за моите подвизи в кражба от магазин. Бъдете
предупредени за тази търговия, шоу не може да избяга unplundered. "Тази реч нарушен стражата до голяма степен, защото имаше милиони
долара на вътрешна компютърна техника, така че той гледаше човек внимателно. Но
човекът просто се скитаха от щанд на щанд, тананикаше тихо себе си.Когато си тръгне човекът, телохранителите му дръпна настрана и търси дрехите си, но
нищо не е да се намери.На следващия ден на търговско изложение, човекът се върна и порица охрана
казвайки: "избягал с огромна плячка вчера, но днес ще бъде още
по-добре. ", така че охраната го наблюдаваше все по-тясно, но без резултат.В последния ден на търговско изложение, телохранителите можаха да сдържат любопитството си
вече не. "Сър крадец", каза той, "Аз съм в недоумение, не могат да живеят в
мир. Моля да ме просвети. Какво е това, че ви крадат? "Мъжът се усмихна. "Аз съм кражба на идеи", каза той.
3,2
Има веднъж е майстор програмист, който пише неструктурирани програми. А
начинаещ програмист, се стреми да го имитират, също започна да пише
неструктурирани програми. Когато новак попита капитана, за да се оцени неговата
прогрес, капитанът го критикувал за писане на неструктурирани програми,
казвайки: "Това, което е подходящо за капитана не е подходящо за
новак. Трябва да разберете, Дао преди отвъд структура. "3,3
Имаше веднъж един програмист, който е прикрепен към съда на военачалник
Wu. Военачалник попита на програмист: "Кое е по-лесно да се проектира:
счетоводен пакет или операционна система? ""Операционна система", отговори програмист.
Военачалник произнесе удивителен на неверие. "Със сигурност счетоводна
Пакетът е тривиален до сложността на една операционна система ", каза той
каза."Не е така", каза на програмиста, при проектирането на един счетоводен пакет,
програмист работи като посредник между хора, които имат различен
идеи: как трябва да работят, как своите доклади трябва да се появи, и как тя трябва да
в съответствие с данъчните закони. От друга страна, една операционна система не се ограничава
от външни изяви. При проектирането на една операционна система, програмист
търси простата хармония между машина и идеи. Ето защо един
Операционната система е по-лесно за проектиране. "Военачалник на Wu кимна и се усмихна. "Това е всичко добро и добре, но
което е по-лесно да трасирате? "Програмистът не отговори.
3,4
Мениджър отиде на капитана програмист и го показа на изискванията
документ за ново заявление. Мениджърът попитал капитана: "Колко дълго
ще отнеме да се проектира тази система, ако ми възложите пет програмисти да го? ""Това ще отнеме една година", каза капитанът на кораба незабавно.
"Но ние нужда от тази система веднага, или дори по-рано! Колко време ще
предприеме, ако зададете десет програмисти да го? "Майстор програмист се намръщи. "В този случай, тя ще отнеме две години."
"И какво ще стане, ако аз присвоите сто програмисти към него?"
Програмист майстор вдигна рамене. "Тогава дизайн никога няма да бъде
завършен ", каза той.-------------------------
Книга 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
Новак попитал капитана: "На изток има голямо дърво структура
, че хората наричат "Корпоративна щаб". Той се подути от форма с
заместник-председатели и счетоводители. Той издава множество бележки, всеки
казвайки: Иди, Оттук! " или `Върви, тука!" и никой не знае какво се има предвид. Всеки
година нови имена са поставени върху клоните, но всички да не се ползват. Как може да
неестествено юридическото лице да бъде? "Капитанът отговорил: "Вие възприемат тази огромна структура и са
обезпокоен, че има няма рационална цел. Не можеш ли да се увеселителен от
безкрайните си gyrations? Не да се насладите на безпроблемен лекота на програмирането
под подслон нейните клонове? Защо се притеснявани от неговия
безполезност? "7,2
На изток има акула, която е по-голям, отколкото всички други риби. То
промени в птица, чиито крила са като облаците, попълване на небето. Когато това се
птица се движи по земята, той ви дава съобщение от корпоративен
Щаб. Това съобщение се пада в средата на програмистите,
като чайки марки на брега. След това птицата се монтира на
вятъра и с синьото небе на гърба си, се завръща у дома.Погледите начинаещите програмист в чудо на птицата, защото той я разбира
не. Средната програмист се страхува от идването на птицата, защото той се страхува
нейното послание. Програмист майстор продължава да работи в неговия терминал, за
той не знае, че птиците идват и си отиват.7,3
Магьосникът на кула от слонова кост донесе последното си изобретение за
майстор програмист да се разгледа. Магьосникът колесни голяма черна кутия в
на капитана офис, докато капитанът чакаше в мълчание."Това е една интегрирана, разпределени, с общо предназначение, работна станция", започна
магьосник, "ергономичен дизайн с имуществена оперативни
система, шесто поколение езици, както и множество състояние на изкуството потребител
интерфейси. Трябваха ми няколко стотин човека асистенти години, за да се изгради.
Не е ли изумително? "Капитанът повдигна вежди леко. "Това е наистина невероятно", каза той
каза."Корпоративно седалище е заповядал", продължава на магьосника ", че
всички да използват тази работна станция като платформа за нови програми. Съгласни ли сте
за това? ""Разбира се", отговори капитанът, - аз ще да го транспортират до
център за данни веднага! "А магьосник се завръща в кулата си, добре
доволен.Няколко дни по-късно, новак се скитаха в офиса на капитана
програмист и каза: "Не мога да намеря в списъка за новата ми програма. Правя
знаете къде може да е? ""Да", отговори капитанът, - обявите са подредени на платформа
на център за данни. "7,4
Капитанът програмист се движи от програма на програма без страх. Не
промяна в управлението, може да му навреди. Той няма да бъде уволнен, дори ако
проектът се прекратява. Защо е това? Той е изпълнен с Тао.-------------------------
Книга 8 - хардуер и софтуер
Така говореше майстор програмист:
"Без вятър, тревата не се движи. Без софтуер, хардуер
безполезни. "8,1
Новак попита капитана: "Аз усетих, че една компютърна компания, е много
по-голям от всички останали. Той се извисява над конкуренцията си като гигант сред
джуджета. Всеки един от неговите поделения могат да обхваща цялата дейност. Защо е
това е така? "Капитанът отговорил: "Защо питаш такива глупави въпроси? Това дружество
е голям, защото той е голям. Ако само хардуер, никой няма да си купи
него. Ако само софтуер, никой не би го използвате. Ако той само поддържа
системи, хората ще го третират като слуга. Но тъй като той съчетава всички
от тези неща, хората си мислят, че един от боговете! Като не иска да
да положат усилия, побеждава без усилие. "8,2
Майстор програмист премина начинаещ програмист един ден. Капитанът отбеляза
новак занимание с ръчни компютърна игра. "Извинете ме,"
каза той, "може да го разглежда?"Новак прикован към внимание и връчи устройство на капитана. "Аз
се види, че устройството твърди, че има три нива на игра: лесни, средно и
Hard ", каза капитанът. "Но всяко такова устройство има друго ниво на
играе, когато изделието не се стреми да завладее човека, нито да бъде завладян
от човешкото. ""Молете се, голям майстор," помоли новак, "как може да намерите този
мистериозен настройка? "Капитанът падна устройството на земята и го смачкват краката. И
изведнъж новак бил просветлен.8,3
Имаше веднъж един програмист, който е работил при микропроцесори. "Вижте как
заможен, че съм тук ", каза той на мейнфрейм програмист, който дойде да посети,
"Аз имам моя собствена операционна система и устройство за съхранение на файлове. Аз не трябва да
споделя своите ресурси с никого. Софтуерът е последователен и
лесни за използване. Защо не се откажат от сегашната си работа и да се присъедините към мен тук? "Мейнфрейм програмист, след което започна да описва своята система за приятеля си,
казвайки: "мейнфрейм седи като древен мъдрец медитира в средата
на центъра за данни. Неговите дискове лежат край до край като голям океан от
машини. Софтуерът е многостранен като диамант, и извити
като първобитните джунглата. Програмите, всяка уникална, се движат чрез системата
като бързо течаща река. Ето защо аз съм щастлив, когато съм ".Микрокомпютър програмист, след като чул това, млъкна. Но двамата
програмисти остават приятели до края на дните си.8,4
Хардуер срещна Софтуер пътя към Changtse. Софтуер каза: "Вие сте
Ин и Ян. Ако пътуваме заедно, ние ще станат известни и да печелят
огромни суми пари "и т.н., изложени заедно, мислейки за завладяване
в света.В момента те се срещнаха фърмуер, който беше облечен в окъсани парцали и спъва
заедно подпрян на трънлив пръчка. Firmware им казал: "Тао се крие
Отвъд Ин и Ян. Това е тихо и все още като басейн с вода. Той прави
не търси слава, затова никой не знае нейното присъствие. Той не се стреми
имотно състояние, за него е завършена в себе си. Тя съществува отвъд пространството и
време ".Софтуер и хардуер, срамува, се завръща по домовете си.
-------------------------
Книга 9 - Епилог
Така говореше майстор програмист:
"Време е да си тръгнеш."
-------------------------
Ако ви хареса това, може също така да прочетете по-лошо е по-добре
Коментари
- H_tere2000



































