Wpis z mikrobloga

Tak się zastanawiam odnośnie mojego mikro crud'a w #python - Chciałem samymi funkcjami pozbierać inputy i konwertować je odpowiednio pod insert do sqla(z użyciem sqlalchemy), a później traktować produkt końcowy (składający się z 5 inputów) jako obiekt i poobrabiać go metodami (np zmiana liczby produktów). Zdałem sobie sprawę, że w sumie musiałbym pisać wszystkie założenia inputów jeszcze raz, co jest bez sensu. Zakładam, że muszę wybrać podejście - użycie OOP lub jego brak. Wolałbym to jednak zrobić obiektowo, bo to jednak coś zupełnie nowego dla mnie, a apkę piszę strcte po to, żeby się uczyć.

1) Czy są rzeczy, których nie powinno się pisać obiektowo? Jeżeli tak, to co na to wpływa?

2) Moje wstępne(zapewne błędne) założenie jest takie, że instancja będzie zawierała 5 zmiennych, które "zbiorę" w jakiś sposób wcześniej. Tutaj pytanie, zapewne wynikające z błędnego rozumienia oop - narazie stworzyłem @classmethod z inputem roboczym ale nie wiem, jak podłączyć pod to założenia (typu opis max 255 char, kategoria 1-12 itd).

Jeśli dobrze rozumiem - metody mają umożliwiać "operacje" na obiektach, jednak, skoro mam defakto 1 obiekt (dodawanie do listy zakupów produktu jeden po drugim) to czy to wszystko ma sens? #naukaprogramowania
  • 49
@michael93pl: Spoko, ale ja właśnie polecam najpierw przeanalizować rożne przypadki/przykłady a dopiero później samemu robić. Podejście OOP trzeba po prostu dobrze zrozumieć i wbrew pozorom jest trudne nie tylko dla ciebie zwłaszcza, że modeluje się abstrakcje a nie fizyczne obiekty jak to się podaje w #!$%@? przykładach w stylu samochód ma silnik, człowiek jeździ samochodem są różne typy samochodów xD
@michael93pl: Chociaż nawet modelowanie fizycznych obiektów bywa problematyczne. Pamiętam jak kiedyś na studiach musieliśmy zamodelować cały proces egzaminacyjny - nikt tego nie zrobił całkowicie dobrze
@gryzon_c: No właśnie o ABC czytałem na podstawie ABC - vehicle, a te, które dziedziczą to samochód, motocykl i ciężarówka ; p

Dobrze wiedzieć, że to nie tylko dla mnie całkiem niezły orzech do zgryzienia, bo OOP naprawdę jest trochę magią dla mnie, na studiach nie byłem, a przez te 3 miesiące nauki narazie do tego nie siadałem
@michael93pl: Jest oddzielna specjalizacja w informatyce która zajmuje się właśnie tego typu problemami - architekt systemu. Taki typek wbrew pozorom nie programuje a jesli juz to bardzo mało. Zarabia więcej od programisty.
@gryzon_c: Słyszałem właśnie o tym, generalnie mega ciekawa tematyka ale to pewnie na "za lata" dla mnie. Narazie jest plan tak, żeby może za 6 miesięcy gdzieś się wkręcić na juniorka, nieważne gdzie, byleby robić już coś komercyjnie i uczyć się jak najwięcej, teraz mogę max 4h dziennie bo mi po prostu dnia nie starcza (robię na pełen etat + różowy)
@michael93pl: robiłeś w ogóle jakiś research jacy specjaliści są poszukiwani w twojej okolicy? Jak mieszkasz w Wawie to spoko, ale ja na przykład mieszkam w 3m i tam jest raczej mocno przeciętnie z pracą dla pythonistów
@biwalencik: znajdę w sqlalchemy konkretne metody do konwertowania inputu usera ? Z tego co czytałem i jak zakładam, sqlalchemy umożliwi mi dodanie gotowego "obiektu" do bazy, jednak nie ustali mi jego wcześniejszej formy ( czego potrzebuję atm) - cytat samego siebię :

Zakładam, że zbieranie inputów z @classmethod jest poprawne, może trochę lepiej się wyrażę w ten sposób - mam ja taki początek znowu: https://pastebin.com/tBSh07J7


Czy da się "podłączyć" na poziomie
@gryzon_c: mieszkam w ldz, będę szukał czegoś na miejscu, a jak nie wyjdzie to krk/pzn/wroclaw/waw - tylko wtedy muszę już coś lepiej płatnego załapać, niż gówno staż, bo za mniej, niż 3 000 się tam po prostu nie utrzymam(błędy tego roku, mam sporo długów)
@michael93pl Masz model danych i tam mozesz dzialac na dekoratorach @property . Tworzysz obiekt danych z inputu (albo przekazanych do konstruktora). Walidujesz za pomoca dekoratora, nastepnie zapisujesz w bazie. A walidatory na rozne zadania mozesz napisac sam za pomoca rwgeksow, lub pozyczyc z django lub wtforms. ma
@biwalencik: Ciekawe też, będę pewnie szukał.

Jeżeli dobrze rozumiem, to z pomocą tego(https://pastebin.com/tBSh07J7), po prostu zbieram dane (załóżmy) i do tego muszę napisać walidatory, czyli np to (https://pastebin.com/yiaihfs7) muszę napisać gdzieś indziej ?

Ten przykład który podaję mnie najbardziej interesuje, bo jak ogarnę jak zrobić to, będę miał "wykładnię" do dalszej nauki, bazując na czymś, co znam i widzę, a nie na określeniach, które niestety niewiele mi jeszcze mówią.
Z tego co widze, to zabierasz sie od tego po SPOJwemu. PO co te wszystkie inputy od uzytkownika? Serio musisz zatrzymywac porogram i czekac az ktos cos wklepeie z klawiatury? Lepiej naucz sie to robic od razu webowo, bo mozesz w prosty sposob zrobic formularz we Flasku, lub Django i na poziomie formularza HTML walidowac dane. Walidacja z konsoli to calkowicie inne zrodlo danych i ma swoje wlasne myki.

Generalnie calosc sprowadza