De underligste programmeringsprincipper, du aldrig har hørt om

  • Harry James
  • 0
  • 1441
  • 168
Reklame

Vi har allerede ledt dig gennem de mest væsentlige programmeringsprincipper 10 Grundlæggende programmeringsprincipper Hver programmerer skal følge 10 grundlæggende programmeringsprincipper Hver programmerer skal følge Skriv altid kode, der kan vedligeholdes af alle, der kan ende med at arbejde på din software. Med henblik herpå er her flere programmeringsprincipper, der hjælper dig med at rydde op i din handling. du har brug for at vide om, men der er en anden klasse programmeringsprincipper, der kan bevise endnu mere fordelagtigt end dem.

Mens ovennævnte principper lærer dig, hvordan du skal være det smart med din kode vil de følgende principper lære dig at være klog med din kode. Nogle af dem er underlige, og mange af dem er humoristiske, men de er alle lige så praktiske og vigtige. Pas på!

1. Oppustningsprincippet

Denne har så mange variationer, at det er svært at vælge en som den vigtigste. Måske mest “officiel” version er loven om softwarekonvolutter, der ofte kaldes Zawinskis lov, opkaldt efter Jamie Zawinski og nævnt i Kunsten at UNIX-programmering:

“Hvert program forsøger at udvide, indtil det kan læse mail. De programmer, der ikke kan udvides så erstattes af dem, der kan.”

Det taler om programmernes tendens til at tiltrække flere og flere funktioner over tid og uundgåeligt køre mod stigende kompleksitet. Du ved muligvis dette som funktion kryb, hvilket er den løbende tilføjelse af nye funktioner, der ikke har noget at gøre med programmets hovedformål. Funktionskryp fører til oppustethed, og oppustethed er ofte uønsket.

Dette kan også gælde for softwarepræstation:

“Software udvides til at forbruge alle tilgængelige ressourcer.”

Tilbage i 90'erne var harddiske og CPU'er og RAM langt mere restriktive end de er i dag, og programmerere arbejdede hårdt for at passe så meget de kunne inden for grænserne. Men nu, hvor vi har større drev og hurtigere CPU'er og mere RAM, kæmper vi stadig for at respektere grænser. Alt bliver oppustet med tiden. Det er dit job at holde det i skak.

2. Den “Værre er bedre” mentalitet

Næsten som om vi har svar på oppustningsprincippet Værre er bedre mentalitet, først myntet af Richard P. Gabriel i et essay, han skrev om softwarekvalitet:

“Software, der er begrænset, men enkel at bruge, kan være mere tiltalende for brugeren og markedet end det omvendte.”

Med andre ord er det klogt at finde ud af et problem din software sigter mod at løse og derefter være meget godt ved den ene ting. Hold det simpelt. Jo mere du spreder dig tynd, desto mere uhåndterbart bliver projektet, og jo mere uønsket bliver det for brugerne.

Hvad sker der, når du ignorerer dette? Du ender med Software Peter Princip:

“Et alt for komplekst projekt vil efterhånden blive for kompliceret til at forstås selv af dets egne udviklere.”

Det kommer fra det bredere Peter-princip, der siger, at når medarbejdere fremmes baseret på deres nuværende kompetence og ikke deres forventede kompetence i deres næste position, ender alle medarbejdere i sidste ende i en inkompetenceposition. Tag dette princip og anvend det på software, så ser du, hvorfor værre software ofte kan være bedre.

3. Eaglesons lov

“Enhver af dine egne koder, som du ikke har set på i seks eller flere måneder, kunne lige så godt være skrevet af en anden.”

Dette tilsyneladende demotiverende ordsprog er faktisk noget at omfavne. Faktum er, at ingen er perfekte. Du tror måske, du er en genial programmerer lige nu, men der er altid noget mere du kan lære, altid mere plads til at vokse. Hvis du nogensinde ser tilbage på gammel kode og klirrer, betyder det sandsynligvis du har lært noget nyt siden da.

Sagt på en anden måde: Hvis du ser tilbage på et gammelt projekt, og du ikke kan se noget, du kan forbedre eller ville gøre anderledes næste gang, har du sandsynligvis stagneret som en programmør.

4. Princip for mindst forbavselse

“Hvis en nødvendig funktion har en stor forbavselsesfaktor, kan det være nødvendigt at redesigne funktionen.”

Først offentliggjort i IBM Systems Journal tilbage i 1984 er dette princip stadig overraskende relevant i dag - måske mere end nogensinde før.

Det berører i det væsentlige den delikate balance mellem innovation og fortrolighed: hvis et stykke software er det for anderledes fra andre af sin art og ikke i overensstemmelse med brugerens forventninger de vil sandsynligvis ikke vedtage det. Det er bedre at stræbe efter trinvise forbedringer, der er lige store nok til at være imponerende, men små nok til at forblive fortrolige.

5. Law of Cybernetic Entomology

“Der er altid endnu en fejl.”

Ofte kaldet Lubarskys lov om cybernetisk entomologi, det er uklart, hvem denne Lubarsky faktisk er. Imidlertid rækker hans princip sandt for alle programmerere: uanset hvor rent du skriver din kode, uanset hvor robust du tester dine moduler, uanset hvor ofte du refaktorerer dine klasser, vil der altid være en anden fejl.

På en måde er dette et frigørelsesprincip. Mens vi bestemt skulle stræbe for fejlfri kode er det også vigtigt at huske, at perfektionisme er det gode fjende. Kig efter fejl, rettes dem, når de opstår, og gå derefter videre.

6. Kernighans lov

“Fejlsøgning er dobbelt så hårdt som at skrive koden i første omgang. Derfor, hvis du skriver koden så smart som muligt, er du per definition ikke smart nok til at debugge den.”

Brian Kernighan, den samme, der var medforfatter til C-programmeringssproget Bibelen Hvorfor C-programmering er stadig værd at lære Hvorfor C-programmering er stadig værd at lære C er ikke et dødt sprog. Faktisk rangerede IEEE Spectrum magasin som det topsprog nr. 2 i 2017. Her er fem grunde til. , er berømt for denne indsigtsfulde lov. Kernen i det er dette: skriv godt kode, skriv læselig kode, skriv enkel kode, noget så længe det ikke er dygtig kode.

Forsøg på at flexere dine programmeringsmuskler med kompleksitet af elfenbenstårn er det præcise modsatte af, hvad det betyder at skrive ren og bedre kode 10 tip til skrivning af renere og bedre kode 10 tip til skrivning af renere og bedre kode At skrive ren kode ser lettere ud, end det faktisk er, men fordelene er det værd. Her er, hvordan du kan begynde at skrive renere kode i dag. . Jo sværere din kode er at forstå, desto sværere vil det være at fejlsøge, når den uundgåeligt går i stykker.

Og som Robert C. Martin forklarer, handler det heller ikke kun om fejlsøgning:

“Faktisk er forholdet mellem brug af tid og læsning kontra skrivning godt over 10 til 1. Vi læser konstant gammel kode som en del af bestræbelserne på at skrive ny kode ... [Derfor] gør det let at læse gør det lettere at skrive.”

7. Debugging af gummiand

Dette er ikke så meget et princip, som det er en teknik, men det er så nyttigt og underligt, at vi ville være opmærksomme på at udelade det ude.

Først fortalt i Den Pragmatiske Programmer, debugging af gummiand er, når du fejler ødelagt software ved at forklare din kode til et livløst objekt (f.eks. en gummiand) en linje ad gangen. Det fungerer, fordi forklaringen udløser forskellige dele af din hjerne, og du er mere tilbøjelig til at se uoverensstemmelser og finde ud af, hvor du gik galt.

Af denne grund kan en gummiand være en overraskende flot gave til programmerere. De bedste nørdegave til programmerere: 20 ideer til kodere og nørder De bedste nørdegave til programmerere: 20 ideer til kodere og nørder Leder du efter en gave til en programmør? Her er de bedste nørdegaver, lige fra mekaniske tastaturer til stående skriveborde med mere. , uanset om du køber det til dig selv eller til en programkompis til dig.

8. Ninety-Reginet

“De første 90 procent af koden tegner sig for de første 90 procent af udviklingstiden. De resterende 10 procent af koden tegner sig for de øvrige 90 procent af udviklingstiden.”

Dette fræk lille sprog fra Tom Cargill får kerne i hvorfor programmering kan være så frustrerende: uanset hvor tæt du tror, ​​du er ved at være færdig, er du meget længere væk end end dine bedste skøn. Når du tror, ​​du er færdig, er du kun halvvejs der.

Det går hånd i hånd med Hofstadter's Law:

“Det tager altid længere tid, end du forventer, også når du tager højde for Hofstadter's Law.”

9. Parkinsons lov

“Arbejdet udvides for at udfylde den disponible tid til dets afslutning.”

Dette ene princip, opfundet af Cyril Northcote Parkinson, er et bredere princip, der absolut gælder for programmering og går hånd i hånd med Ninety-Ninety-reglen ovenfor: uanset hvor lang tid du har til at afslutte et projekt er nøjagtigt hvor lang tid det vil tage. I softwareudvikling, “afslutter tidligt” er stort set en myte.

Parkinsons lov er grunden til, at korrekte tidsfrister er afgørende, hvis du vil afslutte og sende din software. Derfor anbefaler moderne professionelle programmører ofte smidige projektstyringsprincipper Sådan bruges agile projektstyringsprincipper til at organisere dit liv Sådan bruges agile projektstyringsprincipper til at organisere dit liv agile, bedst kendt som en projektstyringsmetode, er en god ramme for styring af din personlige liv. Vi viser dig hvilke principper du kan låne - gratis download af regneark inkluderet! og projektstyringsværktøjer som Asana Trello vs. Asana: Det bedste gratis projektstyringsværktøj er ... Trello vs. Asana: Det bedste gratis projektstyringsværktøj er ... Det er vanskeligt at vælge mellem Trello og Asana. Her sammenligner vi de gratis planer og hjælper dig med at beslutte, hvilket projektstyringsværktøj der er bedst for dit team. .

10. Brook's Law

“At tilføje arbejdskraft til et sent softwareprojekt gør det senere.”

Næste gang du er sent på et projekt, hvilket sandsynligvis er, da de fleste programmeringsprojekter har brug for mere tid end tildelt, skal du huske, at tilføjelse af kodere ikke løser det hurtigere.

Faktisk vil det sandsynligvis tage længere at færdiggøre. Ikke kun har du brug for at bringe de nye kodere (r) op til hastighed, de vil sandsynligvis kollidere med de eksisterende kodere. Flere ting skal dokumenteres, mere bureaukrati vil være nødvendigt for at holde alle på samme side, og mere friktion kommer ud af hele crunch-tiden oplevelse.

Fremad som programmerer

Nu hvor du kender disse principper, er du faktisk bedre egnet til virkelige verden programmering, ikke kun hvad du har stødt på i skolen, på et webkursus eller i en bootcamp. Disse principper kommer fra mange års erfaring og fiaskoer.

Med denne nyvundne visdom kan du nu gå til en højterspurgt programmeringskarriere 10 Computerprogrammeringsjob der er i efterspørgsel lige nu 10 Computerprogrammeringsjob der er i efterspørgsel lige nu Da landing af et programmeringsjob kan være hårdt i det aktuelle landskab, overvej at fokusere på en af ​​følgende koncentrationer for at forbedre dine chancer for succes. med mere realistiske forventninger. For at lære, hvordan du maksimerer dine programmeringsmuligheder i programmering Sådan forbedrer du dine programmerings karrieremuligheder Sådan forbedrer du din programmering karrieremuligheder Hvis du håber på at starte, genstarte eller på anden måde forbedre din programmeringskarriere, er det ikke let. Hvis du er på college, er tiden nu. Her er nogle tip, der kan tage dig langt. . Og hvis du beslutter dig for, at programmering ikke er noget for dig, må du ikke bekymre dig - overvej et af disse ikke-kodende tech-job i stedet for Kodning er ikke for alle: 9 Tekniske job, du kan få uden det Kodning er ikke for alle: 9 Tekniske job, du kan få uden det. Bliv ikke afskrækket, hvis du vil være en del af det tekniske felt. Der er masser af job for mennesker uden kodningsevner! .

Hvilke af disse principper ringer bedst for dig? Kender du til andre underlige programmeringsprincipper, som vi har savnet? Fortæl os det i kommentarerne nedenfor!




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.