Najlepsza odpowiedź
Abstrakcja proceduralna jest wtedy, gdy wiemy, co robi metoda lub procedura lub co chcemy, aby robiła, ale nie wiemy jak robi to.
W tej chwili wpisuję tę odpowiedź w Quorze i kiedy klikam Prześlij, spodziewam się, że pojawi się ona w moim kanale. Wiem, że są metody, które zaakceptują moją odpowiedź, zapisz ją gdzieś. Ale naprawdę nie mam pojęcia, jak to jest zaimplementowane.
Jeśli zastosujemy to w Javie, użyjesz wielu metod z różnych pakietów Java. Na przykład, jeśli chcę wydrukować podłańcuch łańcucha
String str=”Hello world”
String s1=str.substring(0,6);
Teraz w powyższym kodzie chcę, aby metoda podciąg zwracała mi część z ciągu od początku do szóstego znaku. Ale w jaki sposób metoda podciągu implementuje tę funkcjonalność, o której naprawdę nie mam pojęcia ani nie jest to dla mnie ważne.
Odpowiedź
Abstrakcja to ogólna koncepcja obejmująca wiele różnych rzeczy .
HTML jest językiem podstawowym i jeśli chcesz tworzyć strony internetowe, musisz się go nauczyć, chyba że planujesz tworzyć strony ogólne o bardzo niewielkich możliwościach funkcjonalnych.
W pewnym momencie z czasem będziesz musiał spojrzeć na HTML i dowiedzieć się, co zrobiła twoja abstrakcja źle.
Abstrakcja (ogólna):
- Spowalniają działanie, warstwy abstrakcji mają tendencję do ma koszt w szybkości przetwarzania.
- Może to nie być wielka sprawa dla wielu, ale może zacząć się szybko sumować.
- Kiedyś przepisałem aplikację napisaną w Rubim, streszczenie: załadowanie listy zajęło godziny (dosłownie), przepisałem ją w Javie i zamieniłem na około 3 minuty, dodałem kilka kluczy do bazy danych i zredukowałem do kilku sekund.
- PHP strona, której załadowanie trwało 2 minuty, po przepisaniu w PHP zajęło to 3-4 sekundy, awaria bazy danych spowodowała spadek do 2 sekund. (90\% czasu ładowania stanowiło później framework, co oznacza kiepski framework).
- Wspólny czynnik, znacznie obniżam poziom abstrakcji. Python jest językiem skryptowym, podobnie jak PHP, co oznacza, że za każdym razem musi odbudowywać warstwy abstrakcji, co może być kosztowne.
- może utrudniać debugowanie / śledzenie. Abstrakcja ogólnie ułatwia śledzenie jednostki (klas lub metod), ale trudniej jest zobaczyć, jak są one powiązane z całością (integracja), ponieważ takie błędy mają tendencję do przemieszczania się i stają się trudniejsze do znalezienia.
- Włącz plus, błędy są mniej prawdopodobne. Chociaż wydają się być bardziej spektakularne, gdy zostaną znalezione.
- Ma tendencję do przyspieszania programowania (do pewnego momentu), jednak zbyt wiele może spowolnić rozwój, ciężkie frameworki, takie jak framework Zend (PHP), Spring (Java) to świetne przykłady ciężkich frameworków, które są w zasadzie zbyt rozbudowane.
Mam nadzieję, że to da ci jakiś pomysł.