Når du er helt nybegynder i programmering, er programmeringsparadigmer ikke af stor betydning. Men når du går op ad trapperne og begynder at skabe komplekse programmer og software, er det vigtigt at forstå, hvilket programmeringsparadigme der er bedst egnet til dit projekt. Før vi begynder, er det vigtigt at vide, hvad et paradigme præcist er. Ifølge mange citerede definitioner er et paradigme “et sæt antagelser, begreber, værdier og praksisser, der udgør en måde at se virkeligheden på for det fællesskab, der deler dem, især inden for en intellektuel disciplin.”
Denne definition er spot on, da det, der adskiller paradigmet, er den anderledes måde at se virkeligheden på for fællesskabet. Paradigmer er vigtige, da de ofte følger med en bestemt kultur for at skrive programmer og tænke over dem. I denne artikel vil vi diskutere de vigtigste programmeringsparadigmer, med særlig fokus på paradigmet Procedural Programming.
Hvad er Procedural Programming?
Procedural Programmering er måske det første programmeringsparadigme, som en ny udvikler lærer. Grundlæggende er den proceduremæssige kode den kode, der direkte instruerer en enhed om, hvordan den skal afslutte en opgave i logiske trin. Dette paradigme anvender en lineær top-down tilgang og behandler data og procedurer som to forskellige enheder. Baseret på begrebet procedureopkald opdeler procedurel programmering programmet i procedurer, som også kaldes rutiner eller funktioner, der blot indeholder en række trin, der skal udføres.
Simpelt sagt indebærer procedureprogrammering, at man skriver en liste af instruktioner ned for at fortælle computeren, hvad den skal gøre trin for trin for at afslutte den pågældende opgave.
Nøglefunktioner i procedureprogrammering
Nøglefunktionerne i procedureprogrammering er angivet nedenfor:
- Prædefinerede funktioner: En foruddefineret funktion er typisk en instruktion, der identificeres ved et navn. Normalt er de foruddefinerede funktioner indbygget i programmeringssprog på højere niveau, men de stammer fra biblioteket eller registret i stedet for fra programmet. Et eksempel på en foruddefineret funktion er “charAt()”, som søger efter en tegnposition i en streng.
- Lokal variabel: En lokal variabel er en variabel, der er deklareret i en metodes hovedstruktur, og som er begrænset til det lokale anvendelsesområde, den er tildelt. Den lokale variabel kan kun bruges i den metode, den er defineret i, og hvis den skulle blive brugt uden for den definerede metode, vil koden ophøre med at fungere.
- Global variabel: En global variabel er en variabel, som er deklareret uden for alle andre funktioner, der er defineret i koden. På grund af dette kan globale variabler bruges i alle funktioner, i modsætning til en lokal variabel.
- Modularitet: Modularitet er, når to uensartede systemer har to forskellige opgaver, men er grupperet sammen for at afslutte en større opgave først. Hver gruppe af systemer vil derefter få afsluttet sine egne opgaver efter hinanden, indtil alle opgaver er afsluttet.
- Parameter Passing: Parameter Passing er en mekanisme, der bruges til at videregive parametre til funktioner, underrutiner eller procedurer. Parameter Passing kan ske ved hjælp af “pass by value”, “pass by reference”, “pass by result”, “pass by value-result” og “pass by the name”.
For- og ulemper ved procedurel programmering
Procedural programmering kommer med sit eget sæt af fordele og ulemper, hvoraf nogle af dem er nævnt nedenfor.
Fordelene
- Procedural programmering er fremragende til programmering til generelle formål
- Den kodede enkelhed sammen med nem implementering af compilere og fortolkere
- Et stort udvalg af bøger og online kursusmateriale er tilgængeligt om testede algoritmer, hvilket gør det lettere at lære undervejs
- Kildekoden er bærbar, derfor kan den også bruges til at målrette en anden CPU
- Koden kan genbruges i forskellige dele af programmet, uden at det er nødvendigt at kopiere den
- Gennem Procedural Programming teknik, hukommelsesbehovet også skæres
- Programforløbet kan let spores
Ulemper
- Programkoden er sværere at skrive, når Procedural Programmering anvendes
- Den Procedurelle kode kan ofte ikke genbruges, hvilket kan medføre et behov for at genskabe koden, hvis den skal bruges i et andet program
- Svært at relatere til virkelige objekter
- Vigtigheden lægges på operationen snarere end på dataene, hvilket kan give problemer i nogle data-følsomme tilfælde
- Dataene er eksponeret for hele programmet, hvilket gør det ikke så meget sikkerhedsvenligt
Der er forskellige typer programmeringsparadigmer, som vi nævnte før, der ikke er andet end en programmeringsstil. Det er vigtigt at forstå, at paradigmet ikke tager højde for et bestemt sprog, men for den måde, programmet er skrevet på. Nedenfor er en sammenligning mellem procedurel programmering og objektorienteret programmering.
Hvad er objektorienteret programmering (OOP)
OOP er en tilgang til programmering, der anerkender livet, som vi kender det, som en samling af objekter, der arbejder sammen med hinanden for at løse et bestemt problem ved hånden. Den primære ting at vide om OOP er indkapsling, hvilket er ideen om, at hvert objekt, som indeholder programmet, er selvbærende, hvilket betyder, at alle de komponenter, som udgør objektet, befinder sig inden for selve objektet. Da hvert modul inden for dette paradigme er selvbærende, kan objekter nu tages fra et program og bruges til at løse et andet foreliggende problem med små eller ingen ændringer.
Fordelene
- På grund af modularitet og indkapsling giver OOP lethed i forvaltningen
- OOP efterligner den virkelige verden, hvilket gør den lettere at forstå
- Da objekter er hele i sig selv, kan de genbruges i andre programmer
Ulemper
- Objektorienterede programmer har tendens til at være langsommere og bruge en stor mængde hukommelse
- Overgeneralisering
- Programmer, der er bygget ved hjælp af dette paradigme, kan tage længere tid at skabe
Procedurel programmering vs. objektorienteret programmering: Head to Head Comparison
På den anden side fokuserer Procedural Programming i modsætning til OOP på de trin, der skal udføres for at fuldføre en opgave, snarere end på interaktionen mellem objekterne. Opgaverne er opdelt i underprogrammer, variabler og datastrukturer. På et hvilket som helst tidspunkt kan disse procedurer kaldes i forbindelse med programudførelsen.
Procedurprogrammering | Objekt-orienteret programmering | |
Anvender uforanderlige data | Anvender mutable data | |
Folger den deklarative programmeringsmodel | Folger den imperative programmeringsmodel | |
Udvider understøttelse af parallel programmering | Uegnet til parallel programmering | |
Udførelsesrækkefølgen af instruktioner er ikke det primære fokus | Udførelsesrækkefølgen af udsagn er meget vigtig | |
Flowkontrol udføres ved hjælp af funktionskald | Flowkontrol udføres gennem betingede udsagn og sløjfer | |
Anvender rekursionsbegrebet til at iterere kollektive data | Anvender sløjfe-konceptet til at iterere kollektive data | |
Ingen sådan side-virkninger af dens funktioner | Metoden kan have visse sideeffekter | |
Fokus i procedurel programmering er på “hvad du gør” | Fokus i objektorienteret programmering er på “hvordan du gør det” |
Et andet meget anvendt programmeringsparadigme er funktionel programmering. Funktionel programmering er måde adskiller sig fra både procedureprogrammering og objektorienteret programmering, da den gør brug af matematiske funktioner. Herigennem udføres operationerne kun på grundlag af de inddata, der indtastes, og de er ikke afhængige af midlertidige eller skjulte variabler.
Fordele
- Funktionel programmering tilbyder et beskyttet miljø
- Mens mange andre sprog kræver en betydelig mængde information for at kunne udføre operationer korrekt, eliminerer funktionsprogrammering behovet for en stor mængde kode, der er nødvendig for at definere tilstande
- Da dette paradigme kun er afhængigt af de indtastede argumenter, er der ingen sideeffekter
Ulemper
- Anvendelse af funktionel programmering udelukkende i kommerciel softwareudvikling anbefales ikke og gøres
- Det kræver en stor mængde hukommelse og tid
- Det kan vise sig at være mindre effektivt end andre paradigmer
Slutning
Som vi har sagt i hele denne artikel, Procedural Programmering handler mere om, hvad du gør, end hvordan du gør det. Det er den standardtilgang, der anvendes i mange computersprog såsom C, Pascal og BASIC. Selv om der ikke findes noget perfekt programmeringsparadigme, er det vigtigt at forstå, at det korrekte paradigme altid vil afhænge af den type sprog, du bruger, og det program, du ønsker at skabe. Det anbefales, at man for at opnå maksimale resultater og en stærk portefølje bør have færdigheder i alle tre store programmeringsparadigmer. Den bedste måde at forsøge at blive bedre til programmeringsparadigmer på er at prøve, og det kan Hackr hjælpe dig med.
Folk læser også:
- Hvad er programmering?
- Hvad er programmeringssprog?
- Bedste programmeringsbøger
- Bedste programmeringsinterviewspørgsmål
- Programmeringssprog til at få et job
- Hvad er procedureprogrammering?
- Hvordan lærer man at programmere?
- Gratis Coding Bootcamp
- Programmeringsbegreber og definition
- 10 bedste IDE til webudvikling