Velika programera naći jednostavna rješenja za složene probleme

30. lipnja 2009 po Prashant · Komentari
Varalica pod: Ostalo

Nakon dugo vremena sam mogao naći izvor za sljedeće citat-

Junior programeri izraditi jednostavna rješenja jednostavnih problema. Viši programeri stvaranje složenih rješenja za složene probleme. Velika programera naći jednostavna rješenja za složene probleme.

To je iz eseja pod nazivom Beautiful Softver Charles Connell.

Drugi najdraži od mina je Zen u Python -

Lijepa je bolje nego ružna.
Eksplicitno je bolje nego implicitna.
Jednostavno je bolje nego složen.
Kompleks je bolje nego komplicirana.
Stan je bolje nego ugniježđena.
Rijetke je bolji od gusta.
Podjela računa.
Posebni slučajevi nisu dovoljno razbiti posebnim pravilima.
Iako je praktičnost otkucaja čistoće.
Pogreške ne smije proći u tišini.
Osim ako izričito ušutkana.
U lice dvosmislenosti, odbiti napast za pogoditi.
Ima bi trebao biti jedan i po mogućnosti samo jedan očigledan-način da to učinite.
Iako na taj način ne mora biti očito na prvi osim ako ste Nizozemski.
Sada je bolje nego nikad.
Iako nikada nije često bolji od * pravo * sada.
Ako je 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 - neka je učiniti više od onih!
-------------------------
, a zatim tu je klasični Tao Programiranja

-

kredita kao i na povezane web

Preveo Geoffrey James

Prepisao Duke Hillard

Prenosi Anupam Trivedi, Sajitha Tampi, i Meghshyam Jagannatha

Ponovno HTML-nih i uredio Kragen Sittler

-

Knjiga 1 - Silent Void

Tako reče programer majstor:

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

1,1

Nešto tajanstvena je formirana, rođen u tihu prazninu. Čeka sam i
nepokretna, ona je istodobno i dalje i još u stalnom pokretu. To je izvor
svih programa. Ne znam ime, pa ću ga nazvati Tao
Programiranje.

Ako Tao je velik, a zatim operativni sustav je super. Ako je operacijski
sustav je super, onda prevodilac je super. Ako prevodilac je velik,
zatim program je super. Korisnik je zadovoljan i postoji
sklad u svijetu.

Tao Programiranja teče u beskraj i vraća se na vjetar jutro.

1,2

Tao je rodila strojni jezik. Strojni jezik rodila
asembler.

Asemblerski rodila prevodilac. Sada postoje 10.000
jezicima.

Svaki jezik ima svoju svrhu, ali skroman. Svaki jezik izražava
Yin i Yang softvera. Svaki jezik ima svoje mjesto u Tao.

Ali nemojte program 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 razumiju Tao uvijek istječu vremena
i prostor za njihove programe. Programeri koji shvatiti Tao uvijek
imati dovoljno vremena i prostora kako bi ostvarili 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 smijeh na njega.

Ako nije bilo smijeha, ne bi bilo Tao.

Najviše zvukovi su najteže čuti.
Ići naprijed način da se povući.
Veliki talent pokazuje sam kasno u životu.
Čak i savršeni program još uvijek ima bugova.

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

Knjiga 2 - drevnih majstora

Tako reče programer majstor:

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

2,1

Programeri iz davnina su tajanstvene i duboke. Ne možemo shvatiti
svoje misli, tako da sve što činimo je opisati njihov izgled.

Svjesna, poput lisica prijelaza vode. Alert, kao opće na
bojištu. Ljubazni, kao domaćica pozdrav svoje goste. Jednostavno, kao što su
uncarved blokova drva. Neproziran, kao što su crne bazenima u zamračenim špiljama.

Tko može reći tajne njihovih srca i misli?

Odgovor postoji samo u Tao.

2,2

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

"Ne znam da li sam Turing sanjala da sam stroj, ili
stroj sanjala da sam Turingov! "

2,3

Programer iz velike računarske kuće otišao softvera
konferencija, a zatim se vratio u izvješću njegov menadžer, kaže: "Kakvi
programeri rade za druge tvrtke? Ponašali su se jako i bili su
ravnodušan s nastupa. Njihova kosa bila duga i raščupan i
odjeća bila naborana i stara. Oni se srušio u našem gostoprimstvu suite i
napravio primitivan zvukovi za vrijeme mog izlaganja. "

Voditelj je rekao: "Ja bi nikada ste poslali na konferenciji. Oni
programeri žive izvan fizičkog svijeta. Oni smatraju život apsurdan,
slučajno podudarnost. Oni dolaze i odlaze bez znanja ograničenja.
Bez brige, žive samo za svoje programe. Zašto bi se bavili
s društvenim konvencijama?

"Oni su živi unutar Taa."

2,4

Početnik upita Učitelja: "Ovdje je programer koji nikad ne priprema,
dokumenata ili testira svoje programe. Ipak, svi koji znaju ga smatraju ga jednim od
najboljih programera na svijetu. Zašto je to? "

Učitelj odgovori: "To je programer ima mastered Tao. On je otišao
izvan potreba za dizajn, a on ne postane ljut kad je sustav
ruši, ali prihvaća svemir bez brige. On je otišao dalje
potreba za dokumentaciju, on više ne brine ako bilo tko drugi vidi njegov kod.
On je otišao dalje potrebu za testiranje, svaki njegov program su savršeni
u sebi, skladna i elegantna, njihova svrha očigledna. Zaista,
On je ušao u otajstvo Tao. "

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

Knjiga 3 - dizajn

Tako reče programer majstor:

"Kada je program testira, to je prekasno da bi dizajn
promjene. "

3,1

Bio jednom čovjek koji je otišao u show računalo trgovine. Svaki dan kao što je
ušao je čovjek rekao stražar na vratima:

"Ja sam veliki lopov, poznat po mom podvizima krađe. Biti
Upozoravam Vas, ovaj sajam neće izbjeći pljački. "

Ovaj govor poremećen straže uvelike, jer su milijuni
dolara računalne opreme unutra, tako da je gledao čovjek pažljivo. Ali
čovjek samo zalutao iz izloga u štand, zuji tiho u sebi.

Kada je čovjek otišao, stražar ga je na stranu i tražili svoju odjeću, ali
ništa je može naći.

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

Zadnjeg dana sajma, stražar mogao odoljeti radoznalosti
više. "Gospodine lopov", rekao je, "Ja sam tako zbunjeni, ja ne mogu živjeti u
mir. Molim prosvijetli. Što je to što ste krade? "

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

3,2

Bio jednom majstor programer koji je napisao nestrukturirane programe.
početnik programer, tražeći da ga oponaša, također je počeo pisati
nestrukturirane programe. Kada Početnik upita učitelja za ocjenu njegove
napredak, majstor ga je kritizirao za pisanje nestrukturirane programe,
govoreći: "Ono što je prikladno za gospodar nije prikladna za
novak. Morate razumjeti Tao prije nadilazi strukture. "

3,3

Bio jednom programer koji je bio priključen na dvoru cara
Wu. Car upitani programer: "Koji je lakše dizajn:
knjigovodstvo ili operativni sustav? "

"Operativni sustav", odgovorio je programer.

Car izrekao uzvik nevjerice. "Sigurno računovodstvo
paket je trivijalan uz složenost operativnog sustava ", kazao je
, rekao je.

"Ne tako", rekao je programer, "kada za knjigovodstvo,
programer djeluje kao posrednik između ljudi različitih
ideja: kako mora raditi, kako moraju izgledati, te kako će se
u skladu s poreznim zakonima. S druge strane, operativni sustav nije ograničen
vanjski izgled. Kod projektiranja operacijskog sustava, programer
traži najjednostavniji sklad između stroja i ideje. To je razlog zašto
operativni sustav je lakše dizajn. "

Car Wu klimnula glavom i nasmiješila. "To je sve lijepo i dobro, ali
koji je lakše ispravljanje? "

Programer ne odgovori ništa.

3,4

Upravitelj je otišao glavni programer i pokazao mu zahtjeve
dokument za novi zahtjev. Upita ga: "Koliko dugo
će ga odvesti na ovom sustavu, ako sam dodijeliti pet programera? "

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

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

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

"A što ako zaposlim sto programera?"

Glavni programer slegnuo ramenima. "Tada dizajn nikada neće biti
završena ", kazao je.

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

Knjiga 4 - Kodiranje

Tako reče programer majstor:

"Dobro napisan program svoje nebo, slabo pismeni program
vlastiti pakao. "

4,1

Program bi trebao biti lagan i okretan, njegova potprograme povezani kao
niz bisera. Duh i namjera programa treba zadržati
tijekom. Ima bi trebao biti ni premalo ili previše, niti
nepotrebnih petlji, niti beskorisna varijabli, niti manjka strukture, niti
neodoljiv krutost.

Program treba slijediti 'Zakon o najmanje čuđenje ". Što je taj zakon?
To je jednostavno da se program uvijek trebali odgovoriti korisniku u načinu
da ga zadivljuje najmanje.

Program, bez obzira koliko kompleksa, treba djelovati kao jedna cjelina. Program
trebala bi biti usmjerena prema logici iznutra, a ne po vanjskom izgledu.

Ako program ne uspije u tim zahtjevima, to će biti u stanju
nereda i konfuzije. Jedini način da ispravi ovo je prepisati
program.

4,2

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

Učitelj odgovori: "Vi ste zbunjeni, jer ne razumiju Tao.
Samo budala očekuje racionalnog ponašanja od svojih kolega ljudi. Zašto
to očekivati ​​od stroja da su ljudi konstruirao? Računala simulirati
determinizam, samo Tao nije savršen.

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

"Ali kako ću znati kada sam dobio prosvjetljenja", upitao
novak.

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

4,3

Majstor je objašnjavajući prirodu Tao za jedan od njegovih novaka. "
Tao je utjelovljen u svim softvera - bez obzira koliko beznačajan ", rekao je
gospodara.

"Je li Tao u ručni kalkulator", upitao novak.

"To je" došao odgovor.

"Je li Tao u video igri?" Nastavio je početnik.

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

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

Majstor zakašljao i pomaknuo svoju poziciju blago. "Lekcija je preko
za danas ", rekao je on.

4,4

Princ Wang programer je kodiranje softver. Njegovi prsti plesali na
tipkovnica. Program sastavlja, bez poruke o pogrešci, a program
ran kao blagi vjetar.

"Izvrsno!" Princ uzviknuo, "tvoje umijeće je besprijekorno!"

"Tehnika?", Rekao je programer okreće iz terminala: "Što ja
slijediti je Tao - izvan svih tehnika! Kada sam prvi puta počeo sam programu
će vidjeti prije mene cijeli problem u jednoj masi. Nakon tri godine sam ne
više vidio ovu masu. Umjesto toga, vidio sam potprograme. Ali sada vidim ništa.
Moje cijelo biće postoji u bezobličnu nevažeće. Moja osjetila su u stanju mirovanja. Moj duh,
slobodno raditi bez plana, slijedi svoj instinkt. Ukratko, moj program
sama piše. Istina, ponekad postoje teške probleme. Vidim ih
dolazi, ja usporim, i gledati tiho. Tada sam promijeniti jednu liniju koda
i teškoće nestaju poput oblaka rijetkog dima. Zatim sam sastaviti
program. Sam sjedio i dalje i neka radost rada ispuniti moje biće. Mogu zatvoriti moj
oči na trenutak, a zatim se odjaviti. "

Princ Wang je rekao, "kad bi se svi moji programera su kao mudri!"

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

Knjiga 5 - Održavanje

Tako reče programer majstor:

"Iako program biti, ali tri linije dugo, jednog dana to će morati biti
održava. "

5,1

Dobro-se koristi vrata ne treba podmazivati.
SWIFT-potok ne raste stagnira.
Ni zvuka ni misli mogu putovati kroz vakuum.
Softver trune ako se ne koristi.

To su velike tajne.

5,2

Menadžer pitao programer koliko dugo će mu trebati da dovrši
Program na kojem je radio. "To će biti završena sutra"
programer odvrati.

"Mislim da se nerealno", izjavio je menadžer, "Doista, koliko
dugo će to trajati? "

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

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

Programer pristao na to.

Nekoliko godina kasnije, menadžer u mirovini. Na putu do njegova odlaska u mirovinu
svečani ručak, otkrio programer spava u svom terminalu. On je bio
programiranje cijelu noć.

5,3

Početnik jednom je dodijeljen kod jednostavni knjigovodstveni paket.

Novak radio bijesno za nekoliko dana, ali kad njegov gospodar pregledao
njegov program, otkrio je da u njoj ekran urednik, skup
biblioteku grafičkih rutina, umjetna inteligencija sučelje, ali
ne najmanji spomen bilo financijski.

Kad učitelj upita o ovome, učenik postade ljut. "Nemojte biti
tako nestrpljiv ", rekao je," ja ću staviti u financijskom stvari na kraju. "

5,4

Li dobar poljoprivrednik zanemarivanja usjeva je zasadio?
Li dobar učitelj gledaju čak i skromni učenik?
Li dobar otac dopustiti jedno dijete umire od gladi?
Li dobar programer odbijaju održavati svoj kod?

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

Knjiga 6 - Upravljanje

Tako reče programer majstor:

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

6,1

Kada se menadžeri drže beskrajne sastanke, programeri pisati igre. Kada
računovođe razgovaraju kvartalnih 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, igra programi ignoriraju. Kada
računovođe napraviti dugogodišnji plan, sklad i red su o biti
obnovljena. Kad viši znanstvenici rješavanja problema pri ruci,
problemi će uskoro biti riješeno.

Doista, to je Tao Programiranja.

6,2

Zašto programeri ne-produktivni?
Budući da svoje vrijeme troši na sastancima.

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

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

Nakon što je radio za loše upravljanje, oni više ne vrijednosti posla.

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 programer bonus, ali programer
to odbio, rekavši, "napisao sam program, jer sam mislio da je
zanimljiv koncept, a time ne očekujem nagradu. "

Voditelj čuvši to primijetio, "Ovaj programer, iako je ima
položaj malih poštovanje, dobro razumije dužnosti
zaposlenika. Neka nam ga promovirati na uzvišeni položaj menadžmenta
konzultant! "

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

6,4

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

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

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

Knjiga 7 - Mudrost poduzeća

Tako reče programer majstor:

"Možete pokazati program za korporativni izvršni, ali ne možete
da ga računalo pismen. "

7,1

Početnik upita učitelja: "Na dalekom istoku postoji velika stabla strukture
da su muškarci nazivaju 'Sjedište tvrtke'. To je otečen iz oblika s
potpredsjednika i računovođe. Ona pitanja mnoštvo podsjetnika, svaki
govoreći: 'Idi, dakle! " ili: 'Idi, ovamo! " i nitko ne zna što se mislilo. Svaki
godine, nova imena stavljaju na granama, ali sve bez uspjeha. Kako
takva neprirodna entiteta biti? "

Učitelj odgovori: "Ti to vide goleme strukture i
poremećen da nema racionalne svrhe. Može li se ne zabavljaju
njene neprestane promjene? Zar ne uživati ​​u spokojan jednostavnost programiranja
ispod svoje utočište grane? Zašto ste smeta njegova
beskorisnost? "

7,2

U istočnoj je morski pas koji je veći od svih ostalih riba. To
promjene u pticu, čija krila su kao oblaci ispunjavaju nebo. Kada se to
ptica prelazi zemlje, donosi poruku iz korporativnog
Sjedište. Ova poruka je kapi u usred programera,
kao galeb što svoj pečat na plaži. Zatim ptica nosače na
vjetar i, uz plavo nebo na svojim leđima, vraća se kući.

Početnik zuri u čudo u ptica, jer on to razumije
ne. Prosječna programer dreads dolazak ptica, jer je strah
njezinu poruku. 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 je bjelokosna kula donio njegov najnoviji izum za
glavni programer ispitati. Mađioničar na kotačima veliki crnu kutiju u
kapetaniji, a majstor čekao u tišini.

"Ovo je integrirana, distribuirati, opće namjene radna stanica," započeo
čarobnjak ", ergonomski dizajniran s vlasničkih operativnih
sustava, š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 nevjerojatno? "

Majstor podigao je obrve lagano. "To je doista nevjerojatna", rekao je
, rekao je.

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

"Svakako," odgovorio je majstor, "Ja ću ga prevezli u
podatkovni centar odmah! "I mađioničar vratio u kulu, te
zadovoljni.

Nekoliko dana kasnije, novak zalutao u ured glavnog
programer i reče: "Ja ne mogu naći popis za svoj novi program. Činiti
znate gdje bi moglo biti? "

"Da", odgovorio je majstor ", oglasi se slažu na platformi u
podatkovnog centra. "

7,4

Majstor programer kreće 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 reče programer majstor:

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

8,1

Početnik upita učitelja: "Ja 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 sadržavati cijeli posao. Zašto je
to tako? "

Učitelj odgovori: "Zašto pitaš tako glupa pitanja? To je tvrtka
je velik jer je velik. Ako se samo od hardvera, nitko ne bi kupiti
njega. Ako je samo napravio softver, nitko se ne bi ga koristiti. Ako se samo održava
sustava, ljudi bi ga tretirati kao sluga. Ali, budući da kombinira sve
od tih stvari, ljudi misle da jedan od bogova! Po ne traži da
nastojati, da pobjeđuje bez napora. "

8,2

Master programer prošao Početnik jedan dan. Majstor primijetio
novak 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 se da je uređaj tvrdi da ima tri razine igranja: Easy, Medium i
Hard ", rekao je majstor. "Ipak, svaka ovakva uređaj ima još jedan stupanj
igra, gdje se uređaj ne nastoji pokoriti čovjeka, niti da treba osvojiti
od strane čovjeka. "

"Molite, velikog majstora," upita početnik, "Kako se pronaći ovo
tajanstvena postavke? "

Majstor pao uređaj na zemlju i slomiti pod nogama. I
iznenada novak je prosvijetlio.

8,3

Bio jednom programer koji je radio na mikroprocesorima. "Pogledajte kako
mi je dobro ovdje ", rekao je glavno programer koji je došao u posjet,
"Imam vlastiti operativni sustav i datoteke uređaja za pohranu. Ja ne moram
dijele moje resurse s kim. Softver je self-konzistentan i
jednostavan za uporabu. Zašto ne zatvoriti svoj sadašnji posao i mi se pridružiti ovdje? "

Mainframe programer tada je počeo opisati njegov sustav kako bi njegov prijatelj,
govoreći: "mainframe sjedi kao drevni mudrac meditirajući u sredini
u podatkovnom centru. Njegova diskovi laž end-to-end kao veliki ocean
strojevima. Softver kao višeslojan kao dijamant, kao i savijen
kao iskonsku džungli. Programa, svaki jedinstven, kretanje kroz sustav
poput SWIFT-teče rijeka. Zato sam sretan gdje sam. "

Programer mikroprocesora, čuvši ovo, utihnu. No, dva
Programeri ostali prijatelji do kraja svojih dana.

8,4

Hardware Software susreo na putu do Changtse. Softver je rekao: "Vi ste
Yin i Yang sam. Ako putujemo zajedno ćemo postati poznati i zaraditi
ogromne svote novca. "I tako utvrđenih zajedno, s namjerom da osvoje
u svijetu.

Trenutno su se susreli Firmware, koji je bio odjeven u prnje i othrama
uz poduprt trnovitim stick. Firmware im reče: "Tao se nalazi
izvan Yin i Yang. 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, jer je kompletan u sebi. On postoji izvan prostora i
vrijeme. "

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

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

Knjiga 9 - Epilog

Tako reče programer majstor:

"To je vrijeme za vas da odu."

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

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