Bedste svar
Procedureabstraktion er, når vi ved, hvad en metode eller procedure gør, eller hvad vi ønsker, at den skal gøre, men vi ved ikke, hvordan det gør det.
Lige nu skriver jeg dette svar i Quora, og når jeg klikker på Send, forventer jeg, at det vises i mit feed. Jeg ved, at der er metoder, der accepterer mit svar, gem det et eller andet sted. Men jeg har virkelig ingen idé om, hvordan det implementeres.
Hvis vi anvender dette på Java, bruger du en hel del metoder fra de forskellige Java-pakker. For eksempel hvis jeg vil udskrive en strengs understreng
String str=”Hello world”
String s1=str.substring(0,6);
Nu i ovenstående kode vil jeg have, at substringsmetoden skal returnere mig delen fra streng fra start til det 6. tegn. Men hvordan implementerer substring-metoden denne funktionalitet, har jeg virkelig ingen idé om, og det er heller ikke vigtigt for mig.
Svar
abstraktion er et generelt koncept, der dækker mange forskellige ting .
HTML er et basissprog, og hvis du har brug for webudvikling, skal du lære det, medmindre du planlægger at bruge generelle sider med meget ringe funktionel kapacitet.
På et eller andet tidspunkt med tiden bliver du nødt til at se på HTML og finde ud af, hvad din abstraktion gjorde forkert.
abstraktion (generelt):
- De gør tingene langsommere, abstraktionslag har tendens til at har en pris i behandlingshastighed.
- Dette er måske ikke en stor ting for mange, men det kan begynde at tilføje hurtigt.
- Jeg skrev en gang om en ansøgning skrevet i Ruby, der var så abstrakt det tog timer at indlæse en liste (bogstaveligt talt), jeg omskrev den i java og forvandlede den til ca. 3 minutter, tilføjede nogle nøgler til databasen og bragte den ned til et par sekunder.
- En PHP side, der tog 2 minutter at indlæse, efter omskrivning af det i PHP tog det 3-4 sekunder, hvis man sladrede med databasen, faldt det ned til 2 sekunder. (90\% af belastningstiden var rammen efter det, hvilket betyder en dårlig ramme).
- Den fælles faktor, jeg reducerer abstraktionsniveauet markant. Python er et script-sprog, ligesom PHP, hvilket betyder, at det er nødvendigt at genopbygge abstraktionslagene hver gang, dette kan blive dyrt.
- det kan gøre tingene sværere at debugge / følge. Abstraktion gør generelt enheden (klasser eller metoder) lettere at følge, men sværere at se, hvordan de binder sig til helheden (Integration), da sådanne bugs har tendens til at bevæge sig ud og blive sværere at finde.
- On plus, bugs er mindre sandsynlige. Selvom de har tendens til at være mere spektakulære, når de findes.
- Det har tendens til at gøre udviklingen hurtigere (til et punkt), men for meget kan bremse udviklingen, tunge rammer som Zend framework (PHP), Spring (Java) er gode eksempler på tungehåndede rammer, der grundlæggende er overudviklede.
Jeg håber, det giver dig en idé.