Veliki programeri naći jednostavna rješenja za kompleksne probleme

30. lipnja 2009 by prashant · Komentari
Varalica pod: misc

Nakon dugo vremena sam mogao pronaći izvor za slijedeći citat-

Junior programeri stvorili jednostavnih rješenja do jednostavnog problema. Viši programeri stvaranje složenih rješenja za složene probleme. Veliki programeri pronašli jednostavnih rješenja do složenih problema.

To je iz eseja pod nazivom Beautiful Software Charles Connell.

Drugi favorit je jedan od mina je zen od Python -

Lijepa je bolje nego ružna.
Eksplicitno je bolje nego implicitno.
Jednostavno je bolje od kompleksa.
Kompleks je bolje nego komplicirano.
Stan je bolje nego smješteno.
Rijetka je bolji od gusta.
Očitanja računa.
Posebni slučajevi nisu dovoljno razbiti posebna pravila.
Iako praktično kuca čistoću.
Greške ne smije proći u tišini.
Osim ako izričito ušutkati.
U lice dvosmislenosti, odbiti u napast da pogodi.
Ima bi trebao biti jedan i po mogućnosti samo jedna očigledan način da to učinite.
Iako na taj način ne može biti očigledan na prvi osim ako ste Nizozemski.
Sada je bolje nego nikad.
Iako nikada je često bolji od * pravo * sada.
Ako provedba je teško objasniti, to je loša ideja.
Ako provedba je lako objasniti, on svibanj biti dobra ideja.
Imenskom prostoru jedna sirena odlična ideja - Učinimo više onih!
-------------------------
i onda je klasična Tao Programiranja

-

krediti su na stranice povezane-

Preveo Geoffrey James

Prepisao Duke Hillard

Prenosi Anupam Trivedi i Sajitha Tampi, i Meghshyam Jagannath

Re-html-ispunjene i uredio Kragen Sittler

-

Knjiga 1 - Silent Void

Tako je govorio programer master:

"Kada ste naučili da zauzme kod pogreške iz zamka okvira, to
će biti vrijeme za vas da odu. "

1,1

Nešto tajanstveno je formirana, rođen u mirnom praznini. Čeka sam i
nepokretna, ona je istodobno i dalje, a ipak u stalnom pokretu. To je izvor
svih programa. Ne znam ime, pa ću ga nazvati Tao
Programiranje.

Ako Tao je velik, zatim operativni sustav je super. Ako je operativni
sustav je velik, zatim prevodilac je super. Ako prevodilac je super,
zatim primjena je super. Korisnik je zadovoljan i postoji
sklad u svijetu.

Tao Programiranja teče u beskraj i vraća se na jutarnjim vjetrom.

1,2

Tao je rodila strojni jezik. Strojni jezik rodila
asembler.

Monter rodila prevodilac. Sada ima 10.000
jezika.

Svaki jezik ima svoju svrhu, ma kako skroman. Svaki jezik izražava
Yin i Yang softvera. Svaki jezik ima svoje mjesto unutar Tao.

Ali ne programirati u COBOL, ako možete izbjeći.

1,3

U početku bijaše Tao. Tao je rodila prostora i vremena.
Stoga prostor i vrijeme su Yin i Yang programiranja.

Programeri koji ne shvatiti Tao uvijek istječu vremena
i prostor za njihove programe. Programeri koji shvatiti Tao uvijek
imati dovoljno vremena i prostora da ostvari svoje ciljeve.

Kako bi moglo biti drukčije?

1,4

Mudar programer je rekao o Tao i slijedi ga. Prosječna
programer je rekao o Tao i traži za njega. Lud programer
je govorio o Tao i smije mu se.

Ako nije bilo smijeha, ne bi bilo Tao.

Najviše zvukovi su najteže čuti.
Ići naprijed način da se povuče.
Veliki talent pokazuje i sama kasnije u životu.
Čak savršen Program još uvijek ima bugova.

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

Knjiga 2 - starih majstora

Tako je govorio programer master:

"Nakon tri dana bez programiranja, život postaje besmislen."

2,1

Programeri iz davnina bila tajanstvena i duboka. Mi ne možemo shvatiti
njihove misli, tako da sve što činimo je opisati njihov izgled.

Svjesna, poput lisice prijelaza vode. Obavijesti, kao općenito na
bojno polje. Ljubazan, kao domaćica pozdravljanje svoje goste. Jednostavno, kao što su
uncarved blokovi drva. Opaque, kao što su crne bazenima u tamnim spiljama.

Tko zna tajne njihovih srca i misli?

Odgovor postoji samo u Tao.

2,2

Grand Master Turing je jednom sanjao da je stroj. Kad se probudio
uzviknuo je:

"Ne znam da li sam Turingov sanjala da sam ja za kavu, ili
stroj sanjala da sam Turingov! "

2,3

Programer iz velike računarske kuće otišao u softveru
konferencija i zatim se vratio prijaviti njegov menadžer, kaže: "Kakav
od programeri rade za druge tvrtke? Ponašali su se i bili su jako
ravnodušan s nastupa. Dlaka im je bila duga i zapušten i njihovih
odjeća bila naborana i stara. Oni se srušio u našem gostoprimstvu paket i oni
je primitivan zvukove tijekom moje prezentacije. "

Upravitelj je rekao: "Ja nikada ne treba vam poslana na konferenciji za novinare. Oni
programeri žive izvan fizičkog svijeta. Smatraju život apsurdno,
slučajno slučajno. Oni dolaze i odlaze bez znanja ograničenja.
Bez brige, žive samo za njihove programe. Zašto bi se bavili
sa socijalnim konvencijama?

"Oni su živi unutar Taa."

2,4

Početnik upita Učitelja: "Ovdje je programer koji nikada ne dizajnira,
dokumenti ili testira svoje programe. Unatoč tome, tko ga zna, smatra jedan od
najboljih programera na svijetu. Zašto je to? "

Učitelj odgovori: "To je programer svladao Tao. On je otišao
izvan potrebu za dizajnom, on ne postane ljut kad je sustav
pad, ali prihvaća svemir bez brige. On je otišao izvan
potrebno za dokumentaciju, on više nije briga ako netko drugi vidi njegov kod.
On je otišao izvan potrebe za testiranje, svaki od njegovih programa su savršeni
u sebi, skladna i elegantna, a njena namjena očigledna. Zaista,
je ušao u otajstvo Tao. "

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

Knjiga 3 - Dizajn

Tako je govorio programer master:

"Kada je program koji se ispituje, to je prekasno da bi dizajn
promjene. "

3,1

Bio jednom jedan čovjek koji je otišao na predstavu računala trgovine. Svaki dan kao on
stupio je, čovjek je rekao stražar na vratima:

"Ja sam veliki lopov, poznat po svojim podvizima shoplifting. Biti
Upozoravam Vas, ovaj sajam neće pobjeći unplundered. "

Taj govor poremećen straže u velikoj mjeri, jer su milijuni
dolara računalne opreme iznutra, tako da je gledao čovjeka pažljivo. Ali
čovjek samo lutao od štanda na štand, zuji tiho u sebi.

Kad je čovjek odlazio, stražar ga je odveo na stranu i tražiti svoju odjeću, ali
ništa je ne može naći.

Na sljedeći dan sajma, covjek se vratio, kritizirao straže
govoreći: "Ja sam pobjegao s obilnim plijenom jučer, a danas će biti još
bolje. "Dakle, stražar ga je promatrala sve bliže, ali bez uspjeha.

Zadnjeg dana sajma, stražar mogao obuzdati svoju znatiželju
više. "Gospodine Lopov", rekao je: "Ja sam tako zbunjen, ja ne mogu živjeti u
mir. Molimo vas da me prosvijetli. Što je to što ste krađu? "

Čovjek se nasmiješi. "Ja sam krađu ideje", rekao je on.

3,2

Tu je nekada bio glavni programer koji je napisao nestrukturiranih programe.
Početnik, tražeći da ga nasljedujemo, također je počeo pisati
nestrukturiranih programi. Kad Početnik upita učitelja procijeniti njegov
napredak, majstor ga je kritizirao za pisanje nestrukturirane programe,
govoreći: "Ono što je prikladno za majstora nije prikladna za
novak. Morate razumjeti prije Tao nadilazi strukturu. "

3,3

Bio jednom programer koji je priključen na dvoru cara
od Wu. Vojvoda upitani programer: "Koji je lakše dizajn: jedan
računovodstvo paket ili operativni sustav? "

"Operativni sustav", odgovorio je programer.

Vojvoda izrekao je uzvik u nevjerici. "Sigurno računovodstvo
Paket je trivijalan pored složenosti operativnog sustava ", kazao je
, rekao je.

"Nije tako", rekao je programer, "kada za knjigovodstvo,
programer djeluje kao posrednik između ljudi koji imaju različite
ideja: kako mora raditi, kako moraju izgledati, te kako će se
u skladu s poreznim zakonima. Za razliku od toga, operativni sustav nije ograničen
vanjski nastupa. Kod projektiranja operacijskog sustava, programer
traži najjednostavniji sklad između stroja i ideja. To je razlog zašto
operativni sustav je lakše oblikovati. "

Vojvoda od Wu je kimnuo i nasmiješio se. "To je sve lijepo i dobro, ali
što je lakše za ispravljanje? "

Programer ne odgovori.

3,4

Upravitelj je otišao na master programer i pokazao mu zahtjeve
dokument za nove primjene. Upita ga: "Koliko dugo
će ga odvesti na ovom sustavu, ako dodijelite pet programera? "

"To će potrajati godinu dana," rekao je glavni odmah.

"No, sustav nam treba odmah ili čak prije! Koliko dugo će
poduzeti ako mi dodijeliti deset programera? "

Master programer namršti. "U tom slučaju, to će potrajati dvije godine."

"A što ako zaposlim stotinu programera?"

Master programer slegnuo ramenima. "Tada dizajn nikada neće biti
završio ", rekao je on.

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

Knjiga 4 - Kodiranje

Tako je govorio programer master:

"Dobro napisan program je vlastiti raj, loše napisan program
vlastiti pakao. "

4,1

Program bi trebao biti lagan i okretan, njegovi potprograme povezane su kao
niz bisera. Duh i namjera programa treba zadržati
tijekom. Ima bi trebao biti ni premalo ili previše, ni
nepotrebnih petlji, niti beskorisne varijabli, niti manjka strukture, niti
Velika krutost.

Program treba slijediti dati `Zakon najmanjih čuđenje". Što je taj zakon?
To je jednostavno da je program uvijek trebali odgovoriti korisniku u načinu
koji ga zapanjuje najmanje.

Program, bez obzira kako složena, treba djelovati kao jedna cjelina. Program
treba biti usmjerena logikom, a ne u vanjskom izgledu.

Ako program ne uspije u ovim uvjetima, to će biti u stanju
nered i zbunjenost. Jedini način da ispravi to prepisati
program.

4,2

Početnik upita učitelja: "Imam program koji negdje radi, a
ponekad ne. Ja sam slijedio pravila programiranja, ali sam
potpuno zbunjen. Što je razlog za to? "

Učitelj odgovori: "Ti su zbunjeni jer ne razumiješ Tao.
Samo budala očekuje racionalno ponašanje od svojih bližnjima. Zašto ste
ga očekivati ​​od stroja da su ljudi izgrađene? Računala simulirati
determinizam, samo Tao nije savršen.

"Pravila programiranja su prolazne, samo Tao je vječan. Stoga
morate razmišljati Tao prije nego što dobijete prosvjetljenje. "

"Ali kako ću znati kada sam dobio prosvjetljenje?", Upitao je
novak.

"Vaš program onda će raditi ispravno", odgovorio je majstor.

4,3

Majstor je objašnjavajući prirodu Tao jednom od svojih novaka. "
Tao je utjelovljen u svim softvera - bez obzira koliko beznačajan ", rekao je
gospodar.

"Je li Tao u ručni kalkulator", upitao je početnik.

"To je" došao odgovor.

"Je li Tao u video igri?" Nastavi učenik.

"To je čak iu video igri", rekao je gospodar.

"A je Tao u DOS-u za osobno računalo?"

Glavni zakašljao i pomaknuo svoju poziciju po tom pitanju. "Pouka je tijekom
za danas ", rekao je on.

4,4

Prince Wang programer je kodiranje softver. Njegovi prsti su plesale na
tipkovnica. Program sastavljen bez poruke o pogrešci, a program
ran kao blagi vjetar.

"Izvrsno!" Princ uzviknuo je: "Tvoja je tehnika besprijekorno!"

"Tehnika", rekao je programer okreću iz svog terminala: "Što sam
slijediti je Tao - iznad svih tehnika! Kada sam prvi put počeo sam programirati
će vidjeti pred sobom cijeli problem u jednom mase. Nakon tri godine sam bez
nije vidio ovu masu. Umjesto toga, vidio sam potprograme. Ali sada vidim ništa.
Cijelo moje biće postoji u bezoblične praznini. Moja osjetila su u stanju mirovanja. Moj duh,
slobodno raditi bez plana, slijedi vlastiti instinkt. Ukratko, moj program
se piše. Istina, ponekad postoje teški problemi. Vidim ih
dolazi, ja usporim, i tiho ih promatram. Tada sam promjenim jednu liniju koda
i teškoće nestaju poput oblaka rijetkog dima. Zatim sam sastaviti
program. Još uvijek sjedim i neka radost rad ispuniti moje biće. Mogu zatvoriti moj
oči na trenutak i zatim se odjaviti. "

Princ Wang je rekao: "Bi li to sve moje programera bili mudar!"

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

Knjiga 5 - Održavanje

Tako je govorio programer master:

"Iako je program biti samo tri linije dugo, jednog dana će biti
održava. "

5,1

I korištena vrata ne treba podmazivati.
Brza-potok ne raste stagnira.
Ni zvuk ni misli mogu putovati kroz vakuum.
Softver trune ako se ne koristi.

To su velike tajne.

5,2

Voditelj upita programera koliko dugo će ga odvesti do kraja
Program na kojem je radio. "To će biti završena sutra"
programer odvrati.

"Mislim da su se nerealna", rekao je direktor "Doista, koliko
dugo će to trajati? "

Programer misli na trenutak. "Imam neke značajke koje želim
dodati. To će trajati najmanje dva tjedna ", rekao je napokon.

"Čak i da je previše za očekivati," inzistirao menadžer, "Ja ću biti
zadovoljni ako jednostavno mi reći kada program završi. "

Programer dogovoreno na to.

Nekoliko godina kasnije, menadžer u mirovini. Na putu do njegova odlaska u mirovinu
Ručak, otkrio programer spava na njegovu terminala. On je bio
programiranje cijelu noć.

5,3

Početnik jednom je dodijeljen kodirati jednostavni knjigovodstveni paket.

Novak radio je bijesno za nekoliko dana, ali kada je njegov gospodar pregledao
njegov program, otkrio je da u njoj screen editor, skup
grafičkih rutina, sučelje s umjetnom inteligencijom, ali
nije najmanji spomen bilo financijski.

Kad učitelj upita o ovome, učenik postade ljut. "Nemojte se
tako nestrpljivi ", rekao je," Ja ću staviti u financijskom stvari na kraju. "

5,4

Je li dobar poljoprivrednik zanemariti usjeva je zasadio?
Je li dobar učitelj previdjeti ni većina ponizno student?
Je li dobar otac dopustiti jedan dijete umire od gladi?
Je li dobar programer odbijaju održavati svoj kod?

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

Knjiga 6 - Upravljanje

Tako je govorio programer master:

"Neka programeri biti mnogo, a malo menadžeri - onda će sve biti
produktivni. "

6,1

Kad menadžeri drže beskrajne sastanke, programeri pisati igre. Kada
računovođe razgovaraju tromjesečnih profita, razvoj proračun je oko
se smanjiti. Kad glavni znanstvenici govore plavo nebo, oblaci su oko roll
u.

Doista, to nije Tao Programiranja.

Kad menadžeri čine obveze, igre programi se ignoriraju. Kada
računovođe bi long-range plan, sklad i red je da se o
obnovljena. Kad glavni znanstvenici rješavanja problema pri ruci,
problemi će uskoro biti riješeno.

Doista, to je Tao Programiranja.

6,2

Zašto programeri ne-produktivni?
Zbog svoje vrijeme gubi na sastancima.

Zašto su programeri buntovni?
Budući da je upravljanje ometa previše.

Zašto programeri ostavku jedan po jedan?
Budući da su izmoreni.

Nakon što je radio za loše upravljanje, oni više ne vrijednost svoja radna mjesta.

6,3

Voditelj je o dobiti otkaz, ali programer koji je radio za njega
izmislio novi program koji je postao popularan i dobro prodati. Kao rezultat toga,
Voditelj zadržao svoj posao.

Voditelj pokušao dati programera bonus, ali je programer
to odbio, rekavši: "Ja sam pisao program jer sam mislio da je
zanimljiv koncept, a time i očekujem nikakvu plaću. "

Voditelj čuvši to primijetio, "Ovaj programer, iako radi
položaj malog poštovanje, dobro razumije dužnost
zaposlenika. Neka nam ga promovirati na visoko mjesto upravljanja
konzultant! "

No, kada je rekao to, programer još jednom odbio, rekavši: "Ja postoje tako
da mogu programirati. Kad bih bio unaprijeđen, ja bih tratio
svačija vrijeme. Mogu li ići sada? Imam program koji sam radi na. "

6,4

Upravitelj je otišao svojim programera i rekao im: "Što se tiče za svoj rad
vrijeme: ti si idući u morati doći u devet ujutro i ostaviti
u pet popodne. "U ovom, sve od njih postali ljuti i nekoliko
podnio je ostavku na licu mjesta.

Dakle, menadžer je rekao: "U redu, u tom slučaju možete postaviti svoj vlastiti
radnog vremena, kao čeznuti kao te završiti svoje projekte na rasporedu. "
Programeri, sada zadovoljni, počeše dolaziti u podne i raditi na tome wee
sati ujutro.

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

Knjiga 7 - Mudrost poduzeća

Tako je govorio programer master:

"Možete pokazati program za korporativne izvršne vlasti, ali ne možete
bi mu računalo pismen. "

7,1

Početnik upita učitelja: "Na dalekom istoku postoji velika stabla struktura
da ljudi zovu `Sjedište tvrtke '. Ona se proširio izvan forme s
potpredsjednika i računovođa. Objavljuje mnoštvo dopisa, svaki
govoreći: 'Idi, dakle! ili: 'Idi, ovamo! " i nitko ne zna što se misli. Svaki
godine, nova imena su stavili na granama, ali sve bez uspjeha. Kako
kao neprirodna entiteta biti? "

Učitelj odgovori: "Ti vidim ovu ogromnu strukturu i
poremećen da nema racionalnog svrhu. Može li se ne zabavljaju
njene neprestane promjene? Zar ne nesmetano uživati ​​u lakoći programiranja
ispod njegovih grana skrivao? Zašto smeta svojih
beskorisnost? "

7,2

Na istoku je morski pas koji je veći od svih ostalih riba. To
mijenja u pticu, čija krila su kao oblaci ispunjavaju nebo. Kada se to
ptica se seli preko zemlje, donosi poruku od Corporate
Sjedište. Ova poruka padne u usred programera,
poput galeba, čineći svoj žig na plaži. Zatim ptica na nosače
vjetar i, uz plavo nebo na svojim leđima, vraća se kući.

Početnik gleda u čudu na pticu, jer on to razumije
ne. Prosječna programer dreads dolazak ptica, jer se boji
njegova poruka. Glavni programer i dalje raditi na svom terminalu za
on ne zna da je ptica je došao i otišao.

7,3

Mađioničar od Ivory Tower donio njegov najnoviji izum za
master programer ispitati. Mađioničar na kotačima veliki crni okvir u
u kapetanija, a majstor je čekao u tišini.

"Ovo je integrirana, distribuirana, opće namjene radna stanica", počeo
čarobnjak ", ergonomski dizajniran s vlasničkim poslovanja
sustav, šestu generaciju jezika, i više state of the art korisnika
sučelja. To je moje pomoćnike nekoliko stotina godina čovjek za izgradnju.
Nije li to amazing? "

Majstor podigao obrve malo. "To je uistinu nevjerojatna", rekao je
, rekao je.

"Sjedište tvrtke je zapovjedio", nastavio je čarobnjak, "da
svatko koristiti ovu radnu stanicu kao platformu za nove programe. Slažete li se
na to? "

"Svakako," odgovorio je majstor, "Ja će se transportira u
podatkovni centar odmah! "I mađioničar vratio se tornja, i
drago.

Nekoliko dana kasnije, novak zalutao u uredu zapovjednika
programer i rekao: "Ja ne mogu naći popis za svoj novi program. Raditi
znate gdje bi to moglo biti? "

"Da", odgovorio je majstor ", oglasi se slažu na platformi u
podatkovni centar ".

7,4

Master programer kreće se od programa do programa bez straha. Ne
Smjena u poslovodstvu može mu naškoditi. On neće dobiti otkaz, čak i ako
Projekt je otkazan. Zašto je to? On je ispunjen Tao.

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

Knjiga 8 - Hardware i Software

Tako je govorio programer master:

"Bez vjetra, trava se ne miče. Bez softver, hardver
beskoristan. "

8,1

Početnik upita učitelja: "Vidim da je jedan računalna tvrtka je mnogo
veći od svih ostalih. To kule iznad konkurencije poput diva među
patuljci. Svaki od njegovih odjela mogao obuhvatiti cijeli posao. Zašto je
to tako? "

Učitelj odgovori: "Zašto pitaš tako glupa pitanja? Ta tvrtka
je velika, jer je velik. Ako se samo da je hardver, nitko ne bi kupiti
to. Ako se samo da je softver, nitko ne bi ga koristiti. Ako se samo održava
sustavi, ljudi bi ga tretiraju kao sluge. No, budući da kombinira sve
od tih stvari, ljudi misle da je jedan od bogova! Po ne želi
težiti, to pobjeđuje bez napora. "

8,2

Master programer donijela novak programer jedan dan. Majstor primijetio
novaka zaokupljenost ručni računalne igre. "Oprostite,"
rekao je, "mogu ja to ispitati?"

Početnik se trgne i predao uređaj za gospodara. "Ja sam
vidi da je uređaj tvrdi da ima tri razine igranja: Easy, Medium i
Teško ", rekao je gospodar. "Ipak, svaki takav uređaj ima još jednu razinu
igra, gdje se uređaj ne nastoji pokoriti čovjeka, niti se osvajaju
od čovjeka. "

"Molim Vas, veliki majstor," upita početnik ", kako se jednom pronaći ovo
tajanstvena postavke? "

Glavni pao uređaj na tlo i slomiti pod nogama. I
iznenada novak je prosvijetlio.

8,3

Bio jednom programer koji je radio na mikroprocesora. "Pogledajte kako
mi je dobro ovdje ", rekao je na glavnom programer koji je došao u posjet,
"Ja imam svoj vlastiti operativni sustav i datoteke uređaj za pohranu. Ne moraju
podijeliti svoje resurse s kim. Softver je self-konzistentan i
jednostavan za korištenje. Zašto ne zatvoriti svoje sadašnje posao i mi se pridružiti ovdje? "

Mainframe programer onda je počeo da opišu svoj sustav svom prijatelju,
govoreći: "mainframe sjedi poput kadulje drevne meditacije usred
u podatkovnom centru. Njegovi diskovi leže end-to-end poput velikog oceana
strojevima. Softver je kao višeslojan kao dijamant, kao i savijen
kao izvorne prašume. Programi, svaka jedinstvena, kretanje kroz sustav
kao brza-teče rijeka. Zato sam sretan gdje sam ja. "

Programer mikroprocesora, čuvši to, utihnula. No, dva
programeri ostali prijatelji do kraja svojih dana.

8,4

Hardware Software susreo na putu prema Changtse. Softver je rekao: "Vi ste
Yin i Yang sam. Ako putujemo zajedno, postat ćemo poznati i zaraditi
ogromne svote novca. "I tako nastavi zajedno, s namjerom da osvoje
svijet.

Danas su se susreli Firmware, koji je odjeven u prnje i hobbled
zajedno poduprt trnovitim stick. Firmware im reče: "Tao se nalazi
izvan Yina i Yanga. To je tiho i još uvijek kao bazen vode. To čini
ne traži slave, pa nitko ne zna njegovu prisutnost. Ona ne traži
bogatstvo, za njega je završena u sebi. On postoji izvan prostora i
vrijeme. "

Softver i hardver, sram, vratio se u svoje domove.

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

Knjiga 9 - Epilog

Tako je govorio programer master:

"To je vrijeme za vas da odu."

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

Ako vam se svidio to, vi svibanj također željeli čitati gore je bolje