A legjobb válasz
Az eljárási absztrakció az, amikor tudjuk, hogy egy módszer vagy eljárás mit csinál, vagy mit akarunk csinálni, de nem tudjuk, hogyan megteszi.
Jelenleg ezt a választ írom be a Quorába, és amikor a Küldés gombra kattintok, akkor azt várom, hogy megjelenjen a hírcsatornámban. Tudom, hogy vannak olyan módszerek, amelyek elfogadják a válaszomat, elmentik valahova. De valójában fogalmam sincs a megvalósítás módjáról.
Ha ezt alkalmazzuk a Java-ra, akkor nagyon sok módszert használsz, a különféle Java-csomagoktól kezdve. Például, ha egy sztring alszövegét akarom kinyomtatni
String str=”Hello world”
String s1=str.substring(0,6);
Most a fenti kódban azt akarom, hogy az subing metódus visszaadja nekem a karakterlánc részét a kezdetektől a 6. karakterig. De az alstring módszer hogyan valósítja meg ezt a funkcionalitást, erről fogalmam sincs, és nekem sem fontos.
Válasz
az absztrakció egy általános fogalom, amely sok mindenre kiterjed. .
A HTML egy alapnyelv, és ha webfejlesztést kell végeznie, akkor meg kell tanulnia, hacsak nem tervez olyan általános használatú oldalakat készíteni, amelyek nagyon kevés funkcionális képességgel rendelkeznek.
Egy bizonyos ponton idővel meg kell néznie a HTML-t és ki kell derítenie, hogy az absztrakciója mit csinált rosszul.
absztrakció (általános):
- Lassabbá teszik a dolgokat, az absztrakciós rétegek általában költsége van a feldolgozási sebességben.
- Lehet, hogy ez sokak számára nem jelent nagy problémát, de gyorsan összeadódhat.
- Egyszer átírtam egy Ruby-ba írt alkalmazást, amely így volt órákig töltött egy lista betöltése (szó szerint), átírtam a Java-ba, és kb. 3 percre változtattam, néhány kulcsot felvettem az adatbázisba, és néhány másodpercre lehoztam.
- A PHP 2 percig tartott oldal betöltése, miután újraírta a PHP-be, 3-4 másodpercbe telt, az adatbázissal való összevesztés 2 másodpercre csökkent. (A betöltési idő 90\% -a ezután a keret volt, ami rossz keretet jelent).
- A közös tényező, az absztrakció szintjét jelentősen csökkentem. A Python egy szkriptelt nyelv, hasonlóan a PHP-hez, ami azt jelenti, hogy minden egyes alkalommal fel kell építenie az absztrakciós rétegeket, ez költségessé válhat.
- nehezebbé teheti a hibakeresést / követést. Az absztrakció általában megkönnyíti az egység (osztályok vagy módszerek) követését, de nehezebben látja, hogyan kötődnek az egészhez (Integráció), mivel az ilyen hibák általában kimozdulnak és nehezebben megtalálhatók.
- ráadásul a hibák kevésbé valószínűek. Bár általában látványosabbak, ha megtalálják őket.
- Hajlamos gyorsabbá tenni a fejlődést (egy pontig), de túl sok lelassíthatja a fejlődést, olyan nehéz keretek, mint a Zend keretrendszer (PHP), a Spring (Java) remek példák a nehéz kezű keretekre, amelyek alapvetően túl vannak tervezve.
Remélem, hogy ez ad némi ötletet.