Great programmører at finde enkle løsninger på komplekse problemer
Efter en lang tid jeg kunne finde frem til kilden til følgende citat -
Junior programmører skabe enkle løsninger på enkle 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.
Sparsom er bedre end tæt.
Læsbarhed tæller.
Særlige tilfælde ikke er særlige 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, afviser fristelsen til at gætte.
Der bør være én og helst kun én indlysende 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 * lige * 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 en dyttende rigtig god idé - lad os gøre flere af dem!
-------------------------
og så er der klassiske Tao Programchef
--
kreditter, som på linket hjemmeside -
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
--
Book 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 gå. "1,1
Noget mystisk er dannet, født i det stille ugyldig. Venter alene og
unmoving, det er på en gang endnu, og alligevel er 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 operativsystemet
Systemet er stor, så compileren er stor. Hvis oversætteren er stor,
så ansøgningen er stor. Brugeren er glad for, og der findes
harmoni i verden.The Tao of Programmering strømme langt væk, og afkastet af vinden i morgen.
1,2
Tao fødte maskinsprog. Maskinsprog fødte
assembler.Samlevirksomheden fødte compileren. Nu er der ti tusind
sprog.Hvert sprog har sit formål, men ydmyg. Enkelte 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. Tao fødte rum og tid.
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 nok tid 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 af det.Hvis det ikke var til Latter, ville der ikke være Tao.
Den højeste lyde er hårdest for at høre.
Fremadrettet er en måde at trække sig tilbage.
Stort talent viser sig sent i livet.
Selv et perfekt program, der stadig er fejl.-------------------------
Book 2 - The Ancient Masters
Det sagde master programmør:
"Efter tre dage uden programmering, livet bliver meningsløst."
2,1
Programmørerne af gamle var mystisk og dyb. Vi kan ikke forstå
deres tanker, så det eneste vi gør er at beskrive deres udseende.Klar, som en ræv krydser vandet. Indberetning, som en generel om
slagmarken. Art, som en værtinde hilsen hendes gæster. Simple, 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
ubekymret 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 aldrig have sendt dig til konferencen. De
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, mener han en af
de bedste programmører i verden. Hvorfor er dette? "Master svar: "Det programmør 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 er gået ud over
behovet for dokumentation, han ikke længere bryder sig om nogen ellers ser sin kode.
Han er gået ud over behovet for afprøvning hver af hans programmer er perfekte
i sig selv, rolig og elegant, klart deres formål selvstændige. Sandelig,
han er gået ind i mysteriet om Tao. "-------------------------
Bog 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, der 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ære
advaret, skal for denne messe ikke slippe unplundered. "Dette indlæg forstyrret vagt i høj grad, fordi der var millioner af
dollars af edb-udstyr inde, så han så 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 for handel viser, vendte manden og chided Vagten
sige: "Jeg slap med et stort bytte i går, men i dag vil blive endnu
bedre. "Så afskærmningen iagttog ham stadig tættere, men til ingen nytte.På den sidste dag i den messe, kunne vagt beherske sin nysgerrighed
ikke længere. "Sir Thief," sagde han, "jeg er så forvirret, kan jeg ikke leve i
fred. Please enlighten me. Hvad er det, at du stjæler? "Manden smilede. "Jeg stjæler idéer," sagde han.
3,2
Der var engang en mester programmør, som skrev ustruktureret programmer. En
novice programmør, der søger at efterligne ham, også begyndte at skrive
ustruktureret programmer. Når uerfarne bedt master til at vurdere hans
fremskridt, master kritiserede ham for at skrive ustruktureret programmer,
sige, "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. The krigsherre spurgte programmør: "Hvilket er lettere at designe: en
regnskabs-pakke eller et operativsystem? ""Et styresystem," svarede programmør.
The krigsherre udstødte et udbrud af vantro. "Sikkert en regnskabsmæssig
pakke er trivielt siden af kompleksiteten af et operativsystem, "siger han
sagde."Ikke så," sagde den programmør, "ved udformningen af 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 man udformer et operativsystem, programmøren
ønsker den enkleste harmoni mellem maskinen og ideer. Dette er grunden til en
operativsystem er nemmere at designe. "Den krigsherre af Wu nikkede og smilede. "Det er alt godt og vel, men
som er lettere at rette fejl? "Programmørerne gjort noget svar.
3,4
En leder gik til mester 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 på skulderen. "Så design vil aldrig blive
afsluttet, "sagde han.-------------------------
Book 4 - Kodning
Det sagde master programmør:
"En velskrevet program er sin egen himmel, et dårligt skrevet program er
sit eget helvede. "4,1
Et program skal være let og adræt, dens subrutiner tilsluttet som et
perlesnor. Ånd og hensigten med programmet bør bevares
helt gennem. 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,
der undrer ham det mindste.Et program, uanset hvor kompleks, bør fungere som en 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 de regler for programmering, men jeg
helt forvirret. Hvad er årsagen til dette? "Føreren svarede: "Du er forvirret, fordi du ikke forstår Tao.
Kun et fjols forventer rationel opførsel fra sine medmennesker. Hvorfor gør du
forvente det fra en maskine, som 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 får jeg at vide, når jeg har modtaget oplysning?" Spurgte
novice."Dit program vil derefter køre korrekt," svarede mester.
4,3
En master blev forklarer arten af Tao til en af sine novicer. "The
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?" Vedblev nybegyndere.
"Det er endda i et videospil," sagde manden.
"Og er Tao i DOS til en personlig computer?"
Føreren hostede og skiftede hans holdning en smule. "Læren er slut
for i dag, "sagde han.4,4
Prins Wang's programmør var kodning software. Hans fingre dansede på
tastatur. Programmet er udarbejdet uden en fejlmeddelelse, og programmet
løb som en blid vind."Excellent!" Prince udbrød "Din teknik er fejlfri!"
"Technique" sagde programmør dreje fra sin terminal, "Hvad jeg
følge 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 intet.
Mit hele væsen findes i en uformelig tomrum. Mine sanser er i brug. Min ånd,
fri til at arbejde uden at planlægge, følger sit eget instinkt. Kort sagt, mit program
skriver sig selv. True, nogle gange er der er vanskelige problemer. Jeg ser dem
kommer, jeg langsom ned, jeg ser tavst. Så jeg ændre en enkelt linje kode
og de vanskeligheder forsvinde som pust i 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:
"Selv om et program være, 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.Disse er store mysterier.
5,2
En leder spurgte en programmør, hvor lang tid det ville tage ham til at afslutte
program, hvor han arbejdede. "Det vil være færdig i morgen," Det
programmør hurtigt svarede."Jeg tror, du er urealistisk," sagde manager, "sandheden, hvordan
lang tid vil det tage? "Programmørerne tænkte sig om et øjeblik. "Jeg har nogle funktioner, som jeg ønsker at
tilføj. 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 fuldført. "Programmøren accepteret denne.
Adskillige år senere, lederen pensioneret. På vej til sin pensionering
frokost, opdagede han programmøren i søvn på sin terminal. Han havde været
programmering hele natten.5,3
En novice programmør engang blev tildelt kode en simpel finansielle 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 det mindste omtale af noget økonomisk.Når mester spurgt om dette, begynderbrugeren blev indignerede. "Må ikke
så utålmodig, "sagde han," Jeg vil tage i den finansielle ting til sidst. "5,4
Har en god landmand forsømmelse en afgrøde, han har plantet?
Er en god lærer overse selv de mest ydmyge studerende?
Har en god far give et enkelt barn til at sulte?
Har en god programmør nægte at bevare sin kode?-------------------------
Book 6 - Ledelse
Det sagde master programmør:
"Lad de programmører være mange og ledere få - så alle vil blive
produktive. "6,1
Når ledere holder endeløse møder, programmører skriver spil. Hvornår
revisorer tale om kvartalsvise overskud, udvikling budget er ved at
skæres. Når seniorforskere taler blå himmel, skyerne er ved at trille
i.Sandelig, dette er ikke Tao Programmering.
Når ledere indgår forpligtelser, spil, programmer ignoreres. Hvornår
revisorer gøre langtrækkende planer, harmoni og orden er ved at blive
genoprettet. Når seniorforskere løse problemerne ved hånden, den
problemer vil snart blive løst.Sandelig, dette er Tao Programmering.
6,2
Hvorfor er programmører ikke-produktiv?
Fordi de er spild af tid på møder.Hvorfor er programmører oprørsk?
Fordi forvaltningen blander sig for meget.Hvorfor er de programmører afgående én efter én?
Fordi de er brændt ud.At have arbejdet for dårlig ledelse, de ikke længere værdien af 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ær og solgte godt. Som et resultat heraf
manager beholdt sit job.Lederen forsøgte at give programmøren en bonus, men programmøren
nægtede det og sagde: "Jeg skrev det program, fordi jeg troede det var en
interessant koncept, og derfor forventer jeg ingen belønning. "Lederen på retsmødet dette bemærkede: "Dette programmør, men han har
en stilling lille selvværd, forstår godt de egentlig pligt til en
medarbejder. Lad os forfremme ham til den ophøjede stilling forvaltning
konsulent! "Men da sagde dette, programmøren afviste igen 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, som jeg arbejder på. "6,4
En leder gik til hans programmører og sagde til dem: "Med hensyn til dit arbejde
Åbningstider: du er nødt til at komme ind på ni om morgenen og forlader
på fem om eftermiddagen. "På dette, alle af dem blev vred og flere
fratrådte på stedet.Så lederen sagde: "Okay, i så fald kan du indstille din egen
arbejdstiden, så længe du er færdig med dine projekter til tiden. "The
programmører, nu opfyldt, begyndte at komme ved middagstid og arbejde til de små
morgentimer.-------------------------
Book 7 - Corporate Wisdom
Det sagde master programmør:
"Du kan vise et program for et medlem af ledelsen, men du kan ikke
gøre ham computerkyndig. "7,1
En novice spurgte mester: "I øst er der et stort træ-struktur
at mænd kalder »Corporate Headquarters". Det er oppustet ud af form med
næstformænd og revisorer. Det spørgsmål en lang række notater, hver
at sige »Go, derfor!" eller »Go, hid!" og ingen ved, hvad der menes. Hver
år kommer der nye navne er sat på grenene, men til ingen nytte. Hvordan kan
sådan en unaturlig enhed være? "Føreren svarede: "Du opfatter dette enorme struktur og er
forstyrret, at det har noget fornuftigt formål. Kan du ikke tage morskab fra
dens endeløse gyrations? Har du ikke nyde uforstyrret nem programmering
under sine 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 fylde himlen. Når dette
fuglen bevæger sig over hele landet, det bringer en besked fra Corporate
Hovedkvarter. Dette indlæg falder det ind midt i programmører,
som en måge gøre sit mærke på stranden. Så 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 de kommende af 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 i elfenbenstårnet bragte hans seneste opfindelse for
master programmør til at undersøge. Trolden hjul en stor sort boks i
masters kontor, mens føreren ventede i stilhed."Dette er en integreret, distribueres, almene 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 mine assistenter flere hundrede mand år at opføre.
Er det ikke fantastisk? "Føreren løftede øjenbryn lidt. "Det er jo fantastisk," siger han
sagde."Corporate Headquarters har befalet," fortsatte trolden, "at
alle bruge denne arbejdsstation som en platform for nye programmer. Er du enig
til dette? ""Ja," svarede kaptajnen, "jeg vil have den transporteret til
datacenteret straks! "Og trolden tilbage til sit tårn, samt
glad.Nogle dage senere, en novice gik ind på kontoret for master
programmør og sagde: "Jeg kan ikke finde den liste for mit nye program. Gøre
du ved, hvor det kan være? ""Ja," svarede kaptajnen, "listerne er stablet på platform i
datacenteret. "7,4
Føreren programmør bevæger sig fra program til program uden frygt. Nej
ændring i ledelsen 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, er græsset ikke flytte. Uden software, hardware
ubrugelig. "8,1
En novice spurgte mester: "Jeg fornemmer, at en computer selskab er meget
større end alle andre. Den tårner sig op over sin konkurrence som en kæmpe blandt
dværge. En af dens afdelinger kunne bestå af en hel virksomhed. Hvorfor er
det så? "Føreren svarede: "Hvorfor spørger du så dumt spørgsmål? Dette selskab
er stor, fordi det er stort. Hvis det kun foretaget hardware, ville ingen købe
det. Hvis det kun er lavet software, ville ingen bruge det. Hvis det kun opretholdes
systemer, folk ville betragte det som en tjener. Men fordi det kombinerer alle
af disse ting, tror folk det en af de guder! Ved ikke at søge at
stræbe efter, det erobrer uden anstrengelse. "8,2
En master programmør bestået en novice programmør en dag. Skibsføreren bemærkede
begynderens optagethed med en håndholdt computer spil. "Undskyld mig,"
sagde han, "kan jeg undersøge det?"Begynderbrugeren boltet til opmærksomhed og rakte enheden til master. "Jeg
se, at enheden hævder at have tre niveauer af spiller: Let, Medium, og
Hårdt, "sagde manden. "Men hver sådan enhed har et andet niveau af
spiller, hvor enheden forsøger ikke at erobre det menneskelige, at heller ikke være erobret
af det menneskelige. ""Bed, store mester," bønfaldt den novice, "hvordan kan man finde denne
mystiske indstilling? "Føreren faldt enheden til jorden og knuses det under fode. Og
pludselig nybegyndere var oplyst.8,3
Der var engang en programmør, der arbejdede på mikroprocessorer. "Se på, hvordan
godt jeg er her, "sagde han til en mainframe programmør, der kom på besøg,
"Jeg har mit eget operativsystem og fil lagerenhed. Jeg behøver ikke at
dele mine ressourcer med nogen. Softwaren er pålidelig og
nem at bruge. Hvorfor vil du ikke forlade din nuværende job og sammen med mig her? "Mainframen programmør derefter begyndte at beskrive sit system til sin ven,
sagt: "Det mainframe sidder som en gammel vismand mediterede i midten
af datacenteret. Dens diskdrev ligger ende-til-ende som et stort hav af
maskiner. Softwaren er så mange facetter som en diamant, og så indviklede
som en primeval jungle. De programmer, hver unik, bevæger sig gennem systemet
som en hurtig-strømmende flod. Derfor er jeg glad, hvor jeg er. "The mikrocomputer programmør, ved at høre 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 Yang. Hvis vi rejser sammen, vil vi blive berømt og tjene
store summer. "Og så er fastlagt sammen, tænker på at erobre
verden.Nu så mødte Firmware, der var klædt i forrevne klude og rokkede
langs stablet på et ømtåleligt stick. Firmware sagde til dem: "The Tao ligger
over Yin og Yang. Det er tavs og stille som en pulje af vand. Det gør
ikke søge berømmelse, derfor ingen, der ved sin tilstedeværelse. Det søger ikke
formue, for det er komplet i sig selv. Den findes over rummet og
tid. "Software og hardware, skamfuld, vendte tilbage til deres hjem.
-------------------------
Book 9 - Epilog
Det sagde master programmør:
"Det er tid for dig at forlade."
-------------------------
Hvis du kan lide dette, kan du også gerne læse værre er bedre



































