Beste antwoord
Procedurele abstractie is wanneer we weten wat een methode of procedure doet, of wat we willen dat het doet, maar we weten niet hoe het doet het.
Op dit moment typ ik dit antwoord in Quora, en wanneer ik op Verzenden klik, verwacht ik dat het in mijn feed zal verschijnen. Ik weet dat er methoden zijn die mijn antwoord accepteren, het ergens opslaan. Maar ik heb echt geen idee hoe het is geïmplementeerd.
Als we dit op Java toepassen, gebruik je een heleboel methoden, uit de verschillende Java-pakketten. Bijvoorbeeld als ik de substring van een string wil afdrukken
String str=”Hello world”
String s1=str.substring(0,6);
Nu in de bovenstaande code, wil ik dat de substring-methode me het deel van string van start tot het 6e teken teruggeeft. Maar hoe implementeert de substring-methode deze functionaliteit, daar heb ik echt geen idee van en is het ook niet belangrijk voor mij.
Antwoord
abstractie is een algemeen concept dat veel verschillende dingen omvat .
HTML is een basistaal, en als u webontwikkeling moet doen, moet u dit leren, tenzij u van plan bent paginas voor algemeen gebruik te maken met zeer weinig functionele mogelijkheden.
Op een gegeven moment na verloop van tijd zul je naar de HTML moeten kijken en erachter moeten komen wat je abstractie verkeerd deed.
abstractie (algemeen):
- Ze maken dingen langzamer, abstractielagen hebben de neiging om kosten in verwerkingssnelheid.
- Dit is voor velen misschien niet zo erg, maar het kan snel beginnen op te tellen.
- Ik heb ooit een applicatie herschreven die in Ruby was geschreven en dat was zo samengevat duurde het uren om een lijst te laden (letterlijk), ik herschreef het in java en veranderde het in ongeveer 3 minuten, voegde wat sleutels toe aan de database en bracht het terug naar een paar seconden.
- Een PHP pagina die 2 minuten duurde om te laden, na het herschrijven in PHP duurde het 3 à 4 seconden, het rommelen met de database bracht het terug tot 2 seconden. (90\% van de laadtijd was daarna het raamwerk, wat een slecht raamwerk betekent).
- De gemeenschappelijke factor, ik verlaag het abstractieniveau aanzienlijk. Python is een scripttaal, net als PHP, wat betekent dat het de abstractielagen elke keer opnieuw moet opbouwen, dit kan duur worden.
- het kan dingen moeilijker maken om te debuggen / volgen. Door abstractie is de eenheid (klassen of methoden) over het algemeen gemakkelijker te volgen, maar moeilijker om te zien hoe ze aansluiten op het geheel (integratie), aangezien dergelijke bugs de neiging hebben om te verdwijnen en moeilijker te vinden worden.
- Aan het voordeel, bugs zijn minder waarschijnlijk. Hoewel ze de neiging hebben om spectaculairder te zijn wanneer ze worden gevonden.
- Het heeft de neiging om de ontwikkeling (tot op zekere hoogte) sneller te maken, maar te veel kan de ontwikkeling vertragen, zware frameworks zoals Zend framework (PHP), Spring (Java) zijn geweldige voorbeelden van hardhandige frameworks die in feite te veel zijn ontworpen.
Ik hoop dat dit je een idee geeft.