Annonse
Vi har allerede ledet deg gjennom mest essensielle programmeringsprinsipper 10 grunnleggende programmeringsprinsipper hver programmerer må følgeSkriv alltid kode som kan vedlikeholdes av alle som kan ende opp med å jobbe med programvaren din. Her er flere programmeringsprinsipper som hjelper deg med å rydde opp i handlingen. Les mer du trenger å vite om, men det er en annen klasse med programmeringsprinsipper som kan bevise enda mer fordelaktig enn de.
Mens de nevnte prinsippene lærer deg å være smart med koden din, vil følgende prinsipper lære deg å være klok med koden. Noen av dem er rare, og mange av dem er humoristiske, men de er alle like praktiske og viktige. Pass på!
1. Oppblåsningsprinsippet
Denne har så mange varianter at det er vanskelig å velge en som den viktigste. Den kanskje "offisielle" versjonen er Law of Software Envelopment, mer ofte kalt Zawinskis lov, oppkalt etter Jamie Zawinski og nevnt i Kunsten å UNIX-programmering:
“Hvert program prøver å utvide til det kan lese e-post. Disse programmene som ikke kan utvides så erstattes av programmer som kan. "
Det snakker om tendensen til programmer til å tiltrekke seg flere og flere funksjoner over tid og uunngåelig bevege seg mot økende kompleksitet. Du vet kanskje dette som funksjonskryp, som er det pågående tillegget til nye funksjoner som ikke har noe å gjøre med hovedformålet med programmet. Funksjonskryp fører til oppblåsthet, og oppblåsthet er ofte uønsket.
Dette kan også gjelde for ytelse av programvare:
"Programvare utvides til å konsumere alle tilgjengelige ressurser."
Tilbake på 90-tallet var harddisker og CPUer og RAM langt mer restriktive enn de er i dag, og programmerere jobbet hardt for å passe så mye de kunne innenfor rammene. Likevel, nå som vi har større stasjoner og raskere CPUer og mer RAM, sliter vi fortsatt med å respektere grenser. Alt blir oppblåst over tid. Det er din jobb å holde det i sjakk.
2. Den "verre er bedre" mentaliteten
Nesten som om vi har svar på oppblåsningsprinsippet Verre er bedre mentalitet, først myntet av Richard P. Gabriel skrev i et essay han skrev om programvarekvalitet:
"Programvare som er begrenset, men enkel å bruke, kan være mer attraktiv for brukeren og markedet enn motsatt."
Det er med andre ord lurt å finne ut av ett problem programvaren din tar sikte på å løse og deretter være det veldig bra på den ene tingen. Hold det enkelt. Jo mer du sprer deg tynn, jo mer uhåndterlig blir prosjektet, og jo mer uønsket blir det for brukere.
Hva skjer når du ignorerer dette? Du ender opp med Programvare Peter prinsipp:
"Et altfor sammensatt prosjekt vil til slutt bli for sammensatt til å forstås selv av egne utviklere."
Det kommer fra det bredere Peter-prinsippet, som sier at når ansatte blir forfremmet basert på deres nåværende kompetanse og ikke deres forventede kompetanse på deres neste stilling, alle ansatte til slutt havner i en stilling inkompetanse. Ta det prinsippet og bruk det på programvare, så ser du hvorfor verre programvare ofte kan være bedre.
3. Eaglesons lov
"Enhver egen kode som du ikke har sett på i seks eller flere måneder, kan like godt ha blitt skrevet av noen andre."
Dette tilsynelatende demotiverende ordtaket er faktisk noe å favne. Faktum er at ingen er perfekte. Du tror kanskje du er en genial programmerer akkurat nå, men det er det bestandig noe mer du kan lære, bestandig mer rom for å vokse. Hvis du noen gang ser tilbake på gammel kode og kryper, betyr det sannsynligvis har du lært noe nytt siden den gang.
Sagt på en annen måte: Hvis du ser tilbake på et gammelt prosjekt og ikke ser noe du kan forbedre eller ville gjort annerledes neste gang, har du sannsynligvis stagnert som programmerer.
4. Prinsippet om minste forbauselse
"Hvis en nødvendig funksjon har en høy forbauselsesfaktor, kan det være nødvendig å redesigne funksjonen."
Først publisert i IBM Systems Journal tilbake i 1984 er dette prinsippet fortsatt overraskende relevant i dag - kanskje mer enn noen gang før.
Den berører i hovedsak den delikate balansen mellom innovasjon og kjennskap: hvis det er et programvare for annerledes fra andre i sitt slag og samsvarer ikke med brukerens forventninger de vil sannsynligvis ikke adoptere det. Det er bedre å strebe etter trinnvise forbedringer som er like store nok til å være imponerende, men små nok til å holde seg kjent.
5. Law of Cybernetic Entomology
"Det er alltid en feil til."
Ofte kalt Lubarskys lov om kybernetisk entomologi, det er uklart hvem denne Lubarsky faktisk er. Prinsippet hans stemmer imidlertid for alle programmerere: uansett hvor rent du skriver koden din, uansett hvordan robust du tester modulene dine, uansett hvor ofte du refaktorerer klassene dine, vil det alltid være en annen feil.
På en måte er dette et frigjøringsprinsipp. Mens vi absolutt burde streve For feilfri kode er det også viktig å huske at perfeksjonisme er godens fiende. Se etter feil, fikse dem når de oppstår, og fortsett deretter.
6. Kernighans lov
“Feilsøking er dobbelt så vanskelig som å skrive koden i utgangspunktet. Derfor, hvis du skriver koden så smart som mulig, er du per definisjon ikke smart nok til å feilsøke den. ”
Brian Kernighan, den samme som var medforfatter C-programmeringsspråket Bibelen Hvorfor C-programmering fortsatt er verdt å læreC er ikke et dødt språk. Faktisk rangerte IEEE Spectrum magasinet som toppspråket nr. 2 i 2017. Her er fem grunner. Les mer , er kjent for denne innsiktsfulle loven. Det viktigste er dette: skriv flink kode, skriv leselig kode, skriv enkel kode, noe så lenge det ikke er flink kode.
Å prøve å bøye programmeringsmusklene med elfenbenstårnekompleksitet er det motsatte av hva det vil si skriv ren og bedre kode 10 tips for å skrive renere og bedre kodeÅ skrive ren kode ser lettere ut enn det faktisk er, men fordelene er verdt det. Slik kan du begynne å skrive renere kode i dag. Les mer . Jo vanskeligere koden din er å forstå, jo vanskeligere vil det være å feilsøke når den uunngåelig går i stykker.
Og som Robert C. Martin forklarer, det handler ikke bare om feilsøking heller:
“Forholdet mellom tid på lesing og skriving er faktisk over 10 til 1. Vi leser stadig gammel kode som en del av arbeidet med å skrive ny kode... [Derfor] som gjør det enkelt å lese gjør det lettere å skrive. "
7. Debugging av gummi and
Dette er ikke så mye et prinsipp som det er en teknikk, men det er så nyttig og rart at vi blir overgivet til å la det være ute.
Først fortalt i Den pragmatiske programmereren, feilsøking av gummiand er når du feilsøker ødelagt programvare ved å forklare koden din til et livløst objekt (f.eks. en gummiand) en linje om gangen. Det fungerer fordi forklaringen utløser forskjellige deler av hjernen din, og det er mer sannsynlig at du vil oppdage uoverensstemmelser og finne ut hvor du gikk galt.
Av denne grunn kan en gummiand være en overraskende kjekk gave til programmerere De beste nørdgavene for programmerere: 20 ideer for kodere og nerderLeter du etter en gave til en programmerer? Her er de beste nørdgavene, alt fra mekaniske tastaturer til stående pulter og mer. Les mer , enten du kjøper det for deg selv eller til en programmeringskompis til deg.
8. Nitti-nitti-regelen
“De første 90 prosentene av koden utgjør de første 90 prosentene av utviklingstiden. De resterende 10 prosent av koden utgjør de andre 90 prosent av utviklingstiden. ”
Dette frekke lille ordtaket fra Tom Cargill får kjernen i hvorfor programmering kan være så frustrerende: uansett hvor nær du tror du er til å være ferdig, så er du mye lenger unna enn til og med de beste estimatene dine. Når du tror du er ferdig, er du bare halvveis der.
Det går hånd i hånd med Hofstadter's Law:
"Det tar alltid lengre tid enn du forventer, selv når du tar hensyn til Hofstadter's Law."
9. Parkinsons lov
"Arbeidet utvides for å fylle den tilgjengelige tiden for fullføring."
Dette ene prinsippet, myntet av Cyril Northcote Parkinson, er et bredere prinsipp som absolutt gjelder programmering og går hånd i hånd med Ninety-Ninety Regelen ovenfor: uansett hvor mye tid du må fullføre et prosjekt er nøyaktig hvor lang tid det kommer til ta. I programvareutvikling er "etterbehandling tidlig" ganske mye en myte.
Parkinsons lov er grunnen til at riktige frister er avgjørende hvis du vil fullføre og sende programvaren din. Det er derfor moderne profesjonelle programmerere ofte anbefaler smidige prosjektledelsesprinsipper Hvordan bruke smidige prosjektledelsesprinsipper for å organisere livet dittAgile, best kjent som en prosjektledelsesmetode, er en flott ramme for å styre ditt personlige liv. Vi viser deg hvilke prinsipper du kan låne - gratis nedlastning av regnearket inkludert! Les mer og prosjektstyringsverktøy som Asana Trello vs. Asana: Det beste gratis prosjektstyringsverktøyet er ...Å velge mellom Trello og Asana er vanskelig. Her sammenligner vi gratisplanene og hjelper deg med å bestemme hvilket prosjektstyringsverktøy som er best for teamet ditt. Les mer .
10. Brook's Law
"Å legge til arbeidskraft til et sent programvareprosjekt gjør det senere."
Neste gang du kommer sent på et prosjekt, som sannsynligvis er fordi de fleste programmeringsprosjekter trenger mer tid enn tildelt, husk at å legge til kodere ikke vil løse det raskere.
Faktisk vil det sannsynligvis ta lenger å fullføre. Ikke bare trenger du å bringe den nye koderen (e) opp i fart, de vil sannsynligvis kollidere med de eksisterende koderne. Flere ting må dokumenteres, mer byråkrati vil trenge for å holde alle på samme side, og mer friksjon vil komme ut av hele crunch-tiden opplevelsen.
Fremover som programmerer
Nå som du kjenner disse prinsippene, er du faktisk bedre egnet for virkelige verden av programmering, ikke bare det du har møtt på skolen, på et nettkurs eller i en bootcamp. Disse prinsippene kommer fra mange års erfaring og feil.
Med denne nyvunne klokskapen, kan du nå sette opp til en høye etterspørsel programmering karriere 10 datamaskinprogrammeringsjobber som er etterspurt akkurat nåSiden det kan være tøft å lande en programmeringsjobb i det nåværende landskapet, kan du vurdere å fokusere på en av følgende konsentrasjoner for å forbedre sjansene for suksess. Les mer med mer realistiske forventninger. For det, lær hvordan du gjør det maksimere programmeringsmulighetene dine Slik forbedrer du programmeringsmulighetene dineHvis du håper å starte, starte på nytt eller på annen måte forbedre programmeringskarrieren din, er det ikke lett. Hvis du er på college, er tiden nå. Her er noen tips som kan ta deg langt. Les mer . Og hvis du bestemmer deg for at programmering ikke er noe for deg, ikke bekymre deg - vurder en av disse ikke-kodende tekniske jobber i stedet Koding er ikke for alle: 9 tekniske jobber du kan få uten detIkke bli motløs hvis du vil være en del av det tekniske feltet. Det er mange jobber for mennesker uten kodingsevner! Les mer .
Hvilke av disse prinsippene ringer virkelig for deg? Vet du om andre rare programmeringsprinsipper som vi savnet? Gi oss beskjed i kommentarfeltet nedenfor!
Joel Lee har en B.S. innen informatikk og over seks års profesjonell skriveerfaring. Han er sjefredaktør for MakeUseOf.