Pomóżcie mi proszę, wyjaśnijcie w czym OOP okaże się bardziej skuteczne od napisania kilku prostych funkcji,
które będą odpowiedzialne za przyznanie odznaki użytkownikowi, pobranie wszystkich odznak użytkownika itd.
W niczym, w zasadzie zarówno OOP jak i programowanie proceduralne można napisać dobrze, albo spieprzyć. Równie dobrze możesz na siłę pchać jakieś obiekty, a możesz zrobić to proceduralnie i nie będzie to gorsze. Pod warunkiem, że napiszesz to proceduralnie w sposób dobry (zarazem elastyczny, ale i niezbyt skomplikowany, dający się łatwo zmienić w przyszłości, ale nie wymagający zbytniej konfiguracji itp. -- można to sprowadzić do paru prostych akronimów typu SOLID czy DRY albo KISS - chociaż też nie należy brać tych akronimów jak dogmat. To są tylko wskazówki jak ładnie pisać). Więc to nie kwestia paradygmatu (OOP, proceduralny, funkcyjny itp.) a raczej ogólnej jakości kodu.
Z drugiej strony nic nie stoi na przeszkodzie, żeby to zrobić obiektowo.
Chciałbym - w ramach nauki - zastosować OOP. Ale za nic nie wiem jak do tego podejść.
Wskazówka. Jak masz rzeczownik, to często się to przekłada bezpośrednio na obiekt, jak masz czasownik to na metodę.
Użytkownik może dostać odznakę za np. utworzenie konta jako jeden z pierwszych, napisanie X komentarzy itd.
Chciałbym - w ramach nauki - zastosować OOP. Ale za nic nie wiem jak do tego podejść.
Tu już masz obiekty w zasadzie. Użytkownik to obiekt, "pisz" to metoda, "komentarz" to jakiś inny obiekt (metoda "pisz" operuje na tych obiektach-komentarzach itp.).
Oczywiście, czasem takie podejście będzie zbyt naiwne, jednak myślę, że to dobry punkt startowy. W końcu już de facto masz (w wyobraźni) jakieś obiekty typu użytkownik, konto, komentarz. Nie zawsze się to można przełożyć 1:1 na kod (czasem potrzeba w kodzie dodatkowych abstrakcji, albo odwrotnie - jakichś uproszczeń), jednak obiektówka miała chyba w założeniu odzwierciedlać rzeczywistość (stąd te pszczółki i kotki w podręcznikach).
Druga wskazówka - warto rysować na papierze kwadraty(reprezentujące poszczególne obiekty) i łączyć je strzałkami. To pomaga zwizualizować sobie co właściwie te obiekty robią, w jaki sposób są połączone.