@mizantrol: Ty napisałeś strukturalny kod, a ten drugi jest obiektowy W twoim kodzie brzydkie i niebezpieczne jest przekazywanie stdin na open w ten sposób, ale na potrzeby zadania to nie jest aż takie krytyczne (generalnie to problem natury bezpieczeństwa powodujesz tym) Druga sprawa: eager loading vs lazy loading: sprawdź czym jest yield i wykorzystaj to jako feeder do funkcji weryfikującej ilość znaków w linii, gdyż splitlines() załaduje każdą linie kodu
@mizantrol: skrypt? Nadal jest to programowanie strukturalne, tylko uproszczone do jednej funkcji - ciało skryptu, który zamieściłeś jest równocześnie jego jedyną fukcją wykonywaną linijka po linijce
Kod świadczy o Tobie i to przez niego robisz swoją wizytówkę, więc sugeruj się Clean Codem, SOLIDem, Pep8, Linterem (np pylint) i przede wszystkim testami jednostkowymi.
Ogólnie to najważnieszym elementem twojego kodu jest nie tylko to, że działa, ale równocześnie też powinien być czytelny i zrozumiały, więc potencjał na over-engineering w kodzie też powinien być niwelowany
@Igbt: ja właśnie nie rozumiem po co ludzie takie litanie piszą z klasami, co dla mnie jest w ogóle nieczytelne, ale to pewnie o mnie świadczy ( ͡°͜ʖ͡°)
@mizantrol: obecnie jest tendencja do odchodzenia od OOP na rzecz struktur, albo lepiej: funkcji (programowanie funkcyjne w pythonie również jest możliwe) Natomiast z mojej perspektywy to obiekty z typowaniem np taka bilblioteka pydantic to sztos nad sztosy w zastosowaniu do frameworka fastapi, gdyż bardzo ładnie pozwala zarządzać przepływem danych już na samym wejściu przez walidatory (oszczędza trochę błędów później)
https://hyperskill.org/projects/112/stages/609/implement#solutions
takie coś mi wyszło:
https://pastebin.com/RFgdEvw1
ale ludzie piszą takie rzeczy:
https://pastebin.com/4XuaZTjj
W twoim kodzie brzydkie i niebezpieczne jest przekazywanie stdin na open w ten sposób, ale na potrzeby zadania to nie jest aż takie krytyczne (generalnie to problem natury bezpieczeństwa powodujesz tym)
Druga sprawa: eager loading vs lazy loading: sprawdź czym jest yield i wykorzystaj to jako feeder do funkcji weryfikującej ilość znaków w linii, gdyż splitlines() załaduje każdą linie kodu
a jak to się nazywa.
Nadal jest to programowanie strukturalne, tylko uproszczone do jednej funkcji - ciało skryptu, który zamieściłeś jest równocześnie jego jedyną fukcją wykonywaną linijka po linijce
Kod świadczy o Tobie i to przez niego robisz swoją wizytówkę, więc sugeruj się Clean Codem, SOLIDem, Pep8, Linterem (np pylint) i przede wszystkim testami jednostkowymi.
Ogólnie to najważnieszym elementem twojego kodu jest nie tylko to, że działa, ale równocześnie też powinien być czytelny i zrozumiały, więc potencjał na over-engineering w kodzie też powinien być niwelowany
źródło: comment_1656846592ORuwFRC1B4tfN100WeTGPq.jpg
PobierzNatomiast z mojej perspektywy to obiekty z typowaniem np taka bilblioteka pydantic to sztos nad sztosy w zastosowaniu do frameworka fastapi, gdyż bardzo ładnie pozwala zarządzać przepływem danych już na samym wejściu przez walidatory (oszczędza trochę błędów później)