Bästa svaret
Procedurell abstraktion är när vi vet vad en metod eller procedur gör, eller vad vi vill att den ska göra, men vi vet inte hur det gör det.
Just nu skriver jag det här svaret i Quora, och när jag klickar på Skicka förväntar jag mig att det ska visas i mitt flöde. Jag vet att det finns metoder som accepterar mitt svar, spara det någonstans. Men jag har verkligen ingen aning om hur den implementeras.
Om vi tillämpar detta på Java använder du en hel del metoder, från olika Java-paket. Till exempel om jag vill skriva ut strängens delsträng
String str=”Hello world”
String s1=str.substring(0,6);
Nu i ovanstående kod vill jag att substringsmetoden ska returnera delen från sträng från start till sjätte tecken. Men hur implementerar substringsmetoden denna funktionalitet, jag har egentligen ingen aning om, och det är inte heller viktigt för mig.
Svar
abstraktion är ett allmänt begrepp som täcker många olika saker .
HTML är ett basspråk, och om du behöver göra webbutveckling måste du lära dig det såvida du inte planerar att använda allmänna sidor med mycket liten funktionell förmåga.
Vid någon tidpunkt med tiden måste du titta på HTML och ta reda på vad din abstraktion gjorde fel.
abstraktion (allmänt):
- De gör saker långsammare, abstraktionslag tenderar att har en kostnad i bearbetningshastigheten.
- Det här kanske inte är en stor sak för många, men det kan börja lägga upp snabbt.
- Jag skrev en gång om en ansökan skriven i Ruby som var så abstrakt tog det timmar att ladda en lista (bokstavligen), jag skrev om den i java och förvandlade den till cirka 3 minuter, lade till några nycklar i databasen och tog ner den till några sekunder.
- En PHP sida som det tog två minuter att ladda, efter att ha skrivit om det i PHP tog det 3–4 sekunder, att röra med databasen släppte ner det till 2 sekunder. (90\% av laddningstiden var ramen efter det, vilket betyder en dålig ram).
- Den gemensamma faktorn, jag minskar abstraktionsnivån betydligt. Python är ett skriptspråk, som PHP, vilket innebär att det måste byggas om abstraktionslager varje gång, det kan bli dyrt.
- det kan göra det svårare att felsöka / följa. Abstraktion gör i allmänhet enheten (klasser eller metoder) lättare att följa, men svårare att se hur de knyter fast till helheten (Integration), eftersom sådana buggar tenderar att flytta ut och bli svårare att hitta.
- På plus, buggar är mindre troliga. Även om de tenderar att vara mer spektakulära när de hittas.
- Det tenderar att göra utvecklingen snabbare (till en punkt) men för mycket kan bromsa utvecklingen, tunga ramverk som Zend framework (PHP), Spring (Java) är bra exempel på ramar med tunga händer som i grunden är överkonstruerade.
Jag hoppas att detta ger dig en uppfattning.