Great programmører at finde enkle løsninger på komplekse problemer

30 Juni 2009 ved prashant
Filed under: misc

Efter en lang tid jeg kunne finde kilden til følgende citat-

Junior programmører skabe enkle løsninger på simple problemer. Senior programmører skaber komplekse løsninger på komplekse problemer. Great programmører at finde enkle løsninger på komplekse problemer.

Det er fra et essay kaldet Beautiful Software af Charles Connell.

En anden favorit en af mine er Zen af Python -

Smuk er bedre end grimme.
Eksplicit er bedre end implicit.
Simpelt er bedre end kompleks.
Komplekset er bedre end kompliceret.
Lejligheden er bedre end indlejret.
Sparsomme er bedre end tæt.
Læsbarhed tæller.
Særlige tilfælde ikke er særlig nok til at bryde reglerne.
Selv om praktiske beats renhed.
Fejl bør aldrig gå lydløst.
Medmindre det udtrykkeligt tavshed.
I lyset af tvetydighed, nægte fristelsen til at gætte.
Der bør være én og helst kun en oplagt måde at gøre det.
Selv om denne måde ikke kan være indlysende ved første medmindre du er hollandsk.
Nu er bedre end aldrig.
Selv om der aldrig er ofte bedre end * ret * nu.
Hvis gennemførelsen er svært at forklare, det er en dårlig idé.
Hvis gennemførelsen er let at forklare, kan det være en god idé.
Namespaces er et dyttende rigtig god idé - lad os gøre flere af dem!
-------------------------
og så er der klassisk Tao Programmering

-

kreditter som på linket sted-

Oversat af Geoffrey James

Transskriberet af Duke Hillard

Transmitteres af Anupam Trivedi, Sajitha Tampi, og Meghshyam Jagannath

Re-html-ized og redigeret af Kragen Sittler

-

Bog 1 - The Silent Void

Det sagde master programmør:

"Når du har lært at snuppe den fejl kode fra den fælde ramme, det
vil være tid for dig at forlade. "

1,1

Noget mystisk er dannet, født i det stille ugyldig. Venter alene og
unmoving, det er på en gang stille og endnu i konstant bevægelse. Det er kilden
af alle programmer. Jeg kender ikke dens navn, så jeg vil kalde det med Tao
Programmering.

Hvis Tao er stor, så operativsystemet er stor. Hvis det transporterende
system er stor, så compileren er stor. Hvis compiler er stor,
så ansøgningen er stor. Brugeren er glad og der findes
harmoni i verden.

Tao Programmering strømme langt væk, og afkastet af vinden i morgen.

1,2

Den Tao fødte maskine sprog. Machine sprog fødte
assembler.

Den assembler fødte compileren. Nu er der ti tusind
sprog.

Hvert sprog har sit formål, men ydmyg. Hvert sprog udtrykker
Yin og Yang af software. Hvert sprog har sin plads i Tao.

Men ikke program i COBOL, hvis du kan undgå det.

1,3

I begyndelsen var Tao. Den Tao fødte tid og rum.
Derfor rum og tid er Yin og Yang af programmeringen.

Programmører, der ikke forstår Tao er altid løbe tør for tid
og plads til deres programmer. Programmører at forstå Tao altid
har tid nok og plads til at nå deres mål.

Hvordan kunne det være anderledes?

1,4

Den kloge programmør er fortalt om Tao og følger det. Den gennemsnitlige
programmør er fortalt om Tao og søger efter det. De tåbelige programmør
fortælles om Tao og griner på det.

Hvis det ikke var til Latter, ville der ikke være nogen Tao.

Den højeste lyde er hårdest for at høre.
Fremadrettet er en måde at trække sig tilbage.
Great talent viser sig sent i livet.
Selv en perfekt program stadig bugs.

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

Bog 2 - The Ancient Masters

Det sagde master programmør:

"Efter tre dage uden programmering, bliver livet meningsløst."

2,1

Programmørerne af gamle var mystisk og dyb. Vi kan ikke forstå
deres tanker, så alle vi gør, er beskrive deres udseende.

Aware, som en ræv krydser vandet. Alert, som en generel om
slagmarken. Kind, som en værtinde hilsen hendes gæster. Enkel, ligesom
uncarved blokke af træ. Uigennemsigtig, som sorte pools i mørke huler.

Hvem kan fortælle hemmeligheder i deres hjerter og sind?

Svaret findes kun i Tao.

2,2

Grand Master Turing drømte engang, at han var en maskine. Da han vågnede han
udbrød:

"Jeg ved ikke, om jeg er Turing drømmer at jeg er en maskine, eller en
maskine drømte, at jeg er Turing! "

2,3

En programmør fra en meget stor computer selskabet blev solgt til en software
konference og vendte derefter tilbage til at rapportere til hans manager, siger: "Hvilken slags
af programmører arbejde for andre virksomheder? De opførte sig dårligt og blev
ligeglade med optrædener. Deres hår var langt og filtret og deres
tøj var rynket og gamle. De styrtede vores gæstfrihed suite, og de
gjort rude støj i mit indlæg. "

Lederen sagde: "Jeg skulle have aldrig sendt dig til konferencen. Disse
programmører leve over den fysiske verden. De mener, livet absurd, en
utilsigtet tilfældighed. De kommer og går uden at vide begrænsninger.
Uden en pleje, lever de kun for deres programmer. Hvorfor skulle de gider
med sociale konventioner?

"De er i live i Tao."

2,4

En novice spurgte Master: "Her er en programmør, der aldrig design,
dokumenter eller prøver hans programmer. Men alle, som kender ham overveje ham til en af
de bedste programmører i verden. Hvorfor er dette? "

Master svar: "Det programmør har mestrer Tao. Han har gået
ud over behovet for design, han ikke bliver vred, når systemet
krak, men accepterer universet uden bekymring. Han har gået ud over den
behovet for dokumentation, han ikke længere bryder sig om nogen andre ser sin kode.
Han har gået ud over behovet for afprøvning hver af hans programmer er perfekte
i sig, rolig og elegant, formål deres selvindlysende. Sandelig,
han er gået ind i mysteriet om Tao. "

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

Book 3 - Design

Det sagde master programmør:

"Når programmet er ved at blive testet, det er for sent at gøre design
ændringer. "

3,1

Der var engang en mand, som gik til en computer messe. Hver dag som han
ind, manden fortalte vagt ved døren:

"Jeg er en stor tyv, kendt for mine bedrifter af butikstyveri. Vær
forewarned, for denne handel viser skal ikke slippe unplundered. "

Dette indlæg forstyrret vagt i høj grad, fordi der var millioner af
dollars af edb-udstyr inde, så han iagttog manden omhyggeligt. Men
Manden blot vandrede fra bod til bod, nynnede stille til sig selv.

Når manden til venstre, vagten tog ham til side og søgte hans tøj, men
intet var at finde.

På den næste dag i messe, vendte manden og skældt ud afskærmningen
siger: "Jeg slap med et stort bytte i går, men i dag vil være endnu
bedre. "Så afskærmningen iagttog ham stadig tættere, men til ingen nytte.

På den sidste dag i messe, kunne bevogte beherske sin nysgerrighed
ikke længere. "Sir Thief," sagde han, "jeg er så forvirret, kan jeg ikke leve i
fred. Venligst forklare mig det. Hvad er det, at du stjæler? "

Manden smilede. "Jeg er stjæler idéer," sagde han.

3,2

Der var engang en mester programmør, der skrev ustruktureret programmer. A
novice programmør, der søger at efterligne ham, også begyndte at skrive
ustruktureret programmer. Når novice spurgte mester vurdere hans
fremskridt, master kritiserede ham for at skrive ustruktureret programmer,
siger, "Hvad er egnet til at skibsføreren ikke passende for
novice. Du skal forstå Tao før overskridende struktur. "

3,3

Der var engang en programmør, der var knyttet til retten i krigsherre
af Wu. Krigsherren spurgte programmør: "Hvilket er lettere at designe: en
regnskabsmæssig pakke eller et operativsystem? "

"Et styresystem," svarede programmør.

Den krigsherre udstødte et udbrud af vantro. "Sikkert en regnskabsmæssig
pakke er trivielt siden af kompleksiteten af et operativsystem, "siger han
sagde.

"Ikke det," sagde programmør, "når udforme en regnskabsmæssig pakke,
programmøren fungerer som mægler mellem mennesker med forskellige
ideer: hvordan det skal fungere, hvordan rapporterne skal vises, og hvordan det skal
i overensstemmelse med skattelovgivningen. Derimod er et operativsystem ikke er begrænset
af eksterne optrædener. Når du designer et operativsystem, programmøren
søger den enkleste harmoni mellem maskine og ideer. Det er grunden til en
operativsystem er lettere at designe. "

Den krigsherre af Wu nikkede og smilede. "Det er alle gode og godt, men
som er nemmere at debug? "

Programmøren svarede ikke.

3,4

En leder gik til master programmør og viste ham de krav
dokument for en ny ansøgning. Lederen spurgte mester: "Hvor længe
vil det tage at udforme dette system, hvis jeg tildeler fem programmører til det? "

"Det vil tage et år," sagde manden hurtigt.

"Men vi har brug for dette system med det samme eller endda før! Hvor lang tid vil det
tage, hvis jeg tildeler ti programmører til det? "

Føreren programmør rynkede panden. "I så fald vil det tage to år."

"Og hvad hvis jeg tildele hundrede programmører til det?"

Føreren programmør trak. "Så design vil aldrig blive
afsluttet, "sagde han.

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

Book 4 - Kodning

Det sagde master programmør:

"En velskrevet program er dets egen himmel, et dårligt skrevet program er
sin egen helvede. "

4,1

Et program skal være let og adræt, dens subrutiner tilsluttet som et
perlesnor. Den ånd og hensigten med programmet bør bevares
hele vejen igennem. Der bør være hverken for lidt eller for meget, hverken
unødvendige sløjfer eller ubrugelig variabler, hverken mangel på struktur eller
overvældende stivhed.

Et program bør følge »lov af mindst Forundring«. Hvad er denne lov?
Det er simpelthen, at programmet altid bør reagere på brugeren i den måde
at undrer ham det mindste.

Et program, uanset hvor kompleks, skal handle som én enkelt enhed. Programmet
bør ledes af logikken i stedet for det ydre.

Hvis programmet ikke i disse krav, vil det være i en tilstand af
uorden og forvirring. Den eneste måde at rette dette på er at omskrive
program.

4,2

En novice spurgte mester: "Jeg har et program, der engang kører og
undertiden afbryder. Jeg har fulgt reglerne i programmering, men jeg
helt forvirret. Hvad er årsagen til dette? "

Føreren svarede: "Du er forvirret, fordi du ikke forstår Tao.
Kun en tåbe forventer rationel opførsel fra hans medmennesker. Hvorfor har du
forventer det fra en maskine, at mennesker har konstrueret? Computere simulere
determinisme, kun Tao er perfekt.

"Reglerne for programmering er forbigående, kun Tao er evig. Derfor
du skal overveje Tao, før du modtager oplysning. "

"Men hvordan vil jeg vide, når jeg har modtaget oplysning?" Spurgte
novice.

"Dit program vil derefter køre korrekt," sagde mesteren.

4,3

En master blev forklarer arten af Tao til en af sine novicer. "Den
Tao er indarbejdet i alle software - uanset hvor ubetydelig, "sagde
master.

"Er Tao i en håndholdt lommeregner" spurgte nybegyndere.

"Det er," lød svaret.

"Er Tao i et videospil?" Fortsatte nybegyndere.

"Det er endda i et videospil," sagde manden.

"Og er det Tao i DOS for en personlig computer?"

Føreren hostede og skiftede hans holdning en smule. "Læren er slut
for i dag, «sagde han.

4,4

Prince Wangs programmør var kodning software. Hans fingre dansede på
tastaturet. Programmet kompileret uden en fejlmeddelelse, og programmet
løb som en blid vind.

"Fremragende!" Prince udbrød "Din teknik er fejlfri!"

"Teknik" sagde programmør dreje fra sin terminal, "Hvad jeg
Følg er Tao - ud over alle teknikker! Da jeg først begyndte at programmere jeg
ville se for mig hele problemet i en masse. Efter tre år har jeg ikke
længere så denne masse. I stedet brugte jeg subrutiner. Men nu ser jeg ingenting.
Min hele væsen findes i en uformelig tomrum. Mine sanser er i brug. Min ånd,
fri til at arbejde uden plan, følger sin egen instinkt. Kort sagt, mit program
skriver sig selv. True, nogle gange er der vanskelige problemer. Jeg ser dem
kommer, langsom jeg ned, jeg ser tavst. Så jeg ændre en enkelt linje kode
og de vanskeligheder forsvinde som pust af tomgang røg. Jeg så kompilere
program. Jeg sidder stadig og lad glæden ved arbejdet fylde mit væsen. Jeg lukker mine
øjnene et øjeblik og så logge ud. "

Prins Wang sagde, "Ville, at alle mine programmører var så klog"! "

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

Book 5 - Vedligeholdelse

Det sagde master programmør:

"Selvom et program, men tre linjer lang, en dag vil det være
opretholdes. "

5,1

En godt brugt dør ikke behøver olie på sine hængsler.
En hurtig-løber strøm ikke vokse stagnerende.
Hverken lyd eller tanker kan rejse gennem et vakuum.
Software rådner hvis den ikke anvendes.

Der er tale om store mysterier.

5,2

En leder spurgte en programmør, hvor lang tid det ville tage ham at afslutte
program, hvor han arbejdede. "Det vil være færdig i morgen," den
programmør hurtigt svarede.

"Jeg tror, du er urealistisk," sagde manager, "sandheden, hvordan
lang tid vil det tage? "

Programmøren tænkte sig om et øjeblik. "Jeg har nogle funktioner, som jeg ønsker at
tilføje. Det vil tage mindst to uger, "sagde han til sidst.

"Selv det er for meget at forvente," insisterede manager, "jeg vil være
opfyldt, hvis du bare fortælle mig, når programmet er afsluttet. "

Programmøren accepteret denne.

Flere år senere manager pensioneret. På vej til sin pensionering
frokost, opdagede han programmøren i søvn på hans terminal. Han havde været
programmering hele natten.

5,3

En novice programmør engang blev tildelt kode en simpel finansiel pakke.

Begynderens arbejdede rasende i mange dage, men da hans mester reviewed
hans program, opdagede han, at det indeholdt en skærm editor, et sæt
generaliseret grafik rutiner, en kunstig intelligens interface, men
ikke den mindste omtale af noget økonomisk.

Da han spurgte om dette, den uerfarne blev indignerede. "Vær ikke
så utålmodig, "sagde han," Jeg vil tage i den finansielle ting til sidst. "

5,4

Er en god landmand forsømmelse en afgrøde, han har plantet?
Er en god lærer overse selv de mest ydmyge studerende?
Er en god far give et enkelt barn til at sulte?
Er en god programmør nægte at bevare sin kode?

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

Bestil 6 - Management

Det sagde master programmør:

"Lad programmører være mange og ledere få - så skal vi
produktive. "

6,1

Når ledere holder endeløse møder, programmører skrive spil. Hvornår
revisorer tale om kvartalsvis overskud, udvikling budget er ved at
skæres. Når ledende forskere taler blå himmel, skyerne er ved at rulle
i.

Sandelig, det er ikke Tao Programmering.

Når ledere indgår forpligtelser, der er vildt programmer ignoreres. Hvornår
revisorer gøre langtrækkende planer, harmoni og orden er ved at blive
genoprettet. Når ledende forskere løse problemerne ved hånden,
problemer vil snart blive løst.

Sandelig, det er Tao Programmering.

6,2

Hvorfor er programmører ikke-produktive?
Fordi deres tid går til spilde i møder.

Hvorfor er programmører oprørsk?
Fordi forvaltningen griber for meget.

Hvorfor er programmører afgående én efter én?
Fordi de er brændt ud.

Efter at have arbejdet for dårlig forvaltning, de ikke længere værdsætter deres job.

6,3

En leder var ved at blive fyret, men en programmør, der arbejdede for ham
opfundet et nyt program, der blev populære og solgte godt. Som en følge heraf
manager beholdt sit job.

Lederen prøvede at give programmøren en bonus, men programmøren
nægtede det og sagde: "Jeg skrev programmet, fordi jeg troede, det var en
interessant koncept, og derfor forventer jeg ingen belønning. "

Lederen efter at have hørt denne bemærkede, "Dette programmør, selv om han besidder
en stilling lille selvværd, forstår godt den korrekte afgift af en
medarbejder. Lad os forfremme ham til den ophøjede position i forvaltningen
konsulent! "

Men da fortalte, programmøren atter nægtede og sagde: "Jeg eksisterer, så
at jeg kan programmere. Hvis jeg blev forfremmet, ville jeg ikke gøre noget, men affald
alles tid. Kan jeg gå nu? Jeg har et program, jeg arbejder på. "

6,4

En leder gik til hans programmører og fortalte dem: "Hvad angår Deres arbejde
Åbningstider: du er nødt til at komme i ni om morgenen og forlader
på fem om eftermiddagen. "På dette skal alle af dem blev vred og flere
opsagt sin stilling på stedet.

Så manager sagde: "Okay, i dette tilfælde kan du indstille din egen
arbejdstider, så længe du er færdig med dine projekter til tiden. "Den
programmører, der nu er opfyldt, begyndte at komme ind på middag og arbejde for at de små
timer om morgenen.

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

Book 7 - Corporate Wisdom

Det sagde master programmør:

"Du kan vise et program for en corporate udøvende magt, men du kan ikke
gør ham computerkyndig. "

7,1

En novice spurgte mester: "I øst er der en stor træ-struktur
at mænd kalder »Corporate hovedkvarter«. Det er oppustet ud af form med
vice præsidenter og revisorer. Det udsteder en lang række notater, der hver
siger »Kom så, derfor!" eller »Go, hid!" og ingen ved, hvad der menes. Hvert
år kommer der nye navne er sat på grenene, men alle uden held. Hvordan kan
sådan en unaturlig enhed? "

Føreren svarede: "Du opfatter dette enorme struktur og er
foruroliget over, at det ikke har nogen rationel formål. Kan du ikke tage morskab fra
dens endeløse gyrations? Har du ikke nyde uforstyrret let programmering
under sin beskyttende grene? Hvorfor er du generet af sin
ubrugelighed? "

7,2

I øst er der en haj, som er større end alle andre fisk. Det
ændringer til en fugl, hvis vinger er som skyer fylder himlen. Når denne
Fuglen bevæger sig over hele landet, det bringer et budskab fra Corporate
Hovedkvarter. Dette indlæg det falder ned midt i programmører,
som en måge at gøre sit præg på stranden. Fuglen mounts på
vind og med den blå himmel på ryggen, vender hjem.

Begynderens programmør stirrer forundret på fuglen, for han forstår det
ikke. Den gennemsnitlige programmør frygter komme fuglen, for han frygter
dens budskab. Føreren programmør fortsætter med at arbejde på sin terminal, for
han ikke ved, at Fuglen er kommet og gået.

7,3

Trolden af elfenbenstårnet bragte hans seneste opfindelse for
master programmør til at undersøge. Tryllekunstneren hjul et stort sort boks i
Mesterens kontor, mens føreren ventede i tavshed.

"Dette er en integreret, distribueres, til generelle formål arbejdsstation," begyndte
trolden, "ergonomisk designet med et proprietært operativsystem
system, sjette generation sprog, og flere state of the art-bruger
grænseflader. Det tog min assistenter flere hundrede mand år at opføre.
Er det ikke fantastisk? "

Føreren løftede øjenbryn en smule. "Det er virkelig forbløffende," siger han
sagde.

"Corporate hovedkvarter har befalet," fortsatte tryllekunstneren, "at
alle bruge denne arbejdsstation som en platform for nye programmer. Er du enig
til dette? "

"Selvfølgelig," sagde mesteren, "Jeg vil have det transporteres til
datacenter straks! "Og trolden tilbage til hans tårn, samt
glad.

Adskillige dage senere, en novice vandrede ind på kontoret for master
programmør og sagde: "Jeg kan ikke finde listen for min nye program.
du ved hvor det kan være? "

"Ja," sagde mesteren, "oversigterne er stablet på perronen i
datacentret. "

7,4

Føreren programmør bevæger sig fra program til program uden frygt. Nr.
ændringer i ledelse kan skade ham. Han vil ikke blive fyret, selv om
Projektet er aflyst. Hvorfor er dette? Han er fyldt med Tao.

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

Book 8 - Hardware og software

Det sagde master programmør:

"Uden vinden, går græsset ikke bevæge sig. Uden software, hardware er
ubrugelig. "

8,1

En novice spurgte mester: "Jeg fornemmer, at en computer selskab er meget
større end alle andre. Det tårner sig op over sin konkurrence som en kæmpe blandt
dværge. En af dens afdelinger kan omfatte en hel virksomhed. Hvorfor er
det så? "

Føreren svarede: "Hvorfor spørger du om sådan tåbelig spørgsmål? Dette selskab
er stor, fordi det er stort. Hvis det kun foretaget hardware, ville ingen købe
den. Hvis det kun foretaget software, ville ingen bruge det. Hvis det kun opretholdes
systemer, ville folk behandle det som en tjener. Men fordi det kombinerer alle
af disse ting, tror folk, det en af de guder! Ved ikke søger at
stræbe, det erobrer uden anstrengelse. "

8,2

En master programmør bestået en novice programmør én dag. Føreren noterede
begynderens optagethed med en håndholdt computer spil. "Undskyld mig,"
sagde han, "kan jeg undersøge det?"

Begynderens boltet til opmærksomhed og rakte apparatet til master. "Jeg
se, at enheden hævder at have tre niveauer spiller: Let, Medium, og
Hårdt, "sagde manden. "Men alle sådanne enhed har en anden grad af
play, hvor enheden søger ikke at erobre den menneskelige eller at blive erobret
af det menneskelige. "

"Bed, store mester," bad den uerfarne, "hvordan kan man finde denne
mystisk indstilling? "

Føreren faldt enheden til jorden og knuste det fode. Og
pludselig novice var oplyst.

8,3

Der var engang en programmør, der arbejdede på mikroprocessorer. "Se på, hvordan
velhavende Jeg er her, "sagde han til en mainframe programmør, der kom for at besøge,
"Jeg har min egen operativsystem og fil lagringsenhed. Jeg behøver ikke at
dele mine ressourcer med nogen. Softwaren er selvstændig konsekvent og
nem at bruge. Hvorfor har du ikke forlade dit nuværende job og slutte sig til mig her? "

Mainframen programmør derefter begyndte at beskrive sit system til sin ven,
sagt: "Det mainframe sidder som en gammel vismand mediterer midt
af datacenteret. Dens diskdrev ligge end-to-end som et stort hav af
maskiner. Softwaren er så mange facetter som en diamant, og som indviklede
som en ur-junglen. Programmerne, der hver unik, bevæger sig gennem systemet
som en hurtig-strømmende flod. Derfor er jeg glad, hvor jeg er. "

Microcomputeren programmør, efter at have hørt dette, tav. Men de to
programmører forblev venner indtil slutningen af deres dage.

8,4

Hardware mødtes Software på vej til Changtse. Software sagde: "Du er
Yin og jeg er Yang. Hvis vi rejser sammen, vil vi blive berømt og tjene
enorme summer af penge. "Og så sættet ud sammen, tænker på at erobre
i verden.

I øjeblikket mødte de Firmware, som var klædt i laser og rokkede
langs støttet mod et ømtåleligt stick. Firmware sagde til dem: "Den Tao ligger
ud Yin og Yang. Det er stille og stadig som en pulje af vand. Det gør
ikke søge berømmelse, derfor ingen kender sin tilstedeværelse. Det søger ikke
Formue, for det er fuldstændig i sig selv. Den findes over rummet og
tid. "

Software og Hardware, skamfuld, vendte tilbage til deres hjem.

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

Book 9 - Efterord

Det sagde master programmør:

"Det er tid for dig at gå."

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

Hvis du kunne lide disse, kan du også lide at læse værre er bedre

Kommentarer

    blog kommentarer powered by DISQUS