Co to jest abstrakcja proceduralna?


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ł.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *