• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ocena kodu python

VPS Starter Arubacloud
0 głosów
768 wizyt
pytanie zadane 9 października 2017 w Python przez 0xf Dyskutant (8,180 p.)
Czesc, pisze sobie wlasnie fragment kodu i sie zastanawiam czy jest on w ogole sensowny i czy przypadkiem nie jest rakotworczy.

Prosze was o opinie i konstruktywna krytyke.

https://pastebin.com/x7SwvXgk

Pozdrawiam

2 odpowiedzi

+1 głos
odpowiedź 9 października 2017 przez adrian17 Ekspert (344,100 p.)
  • Za dużo bardzo długich linii (mimo że uważam 80 linii z PEP8 za przesadę, to >100 już zaczyna tracić na czytelności)
  • formatowanie kodu -> PEP8
  • update_prof -> update_profitability
  • self.__str__() -> str(self)
  • zduplikowane `duration_time[self.__str__()]` -> do zmiennej
  • prof_watchdog() -> wystarczy jedna linia z `return a >= b`
  • Transaction.__init__(rzeczy) -> super().__init__(rzeczy)
  • json.loads(file.read()) -> json.load(file)
  • get_profitability -> unikaj takich getterów, wystarczy dostępne pole
  • po co conclude() ma kod, jeśli zaraz potem i tak rzuci błędem że "nie jest zaimplementowane"?

A ogólnie co do tych wszystkich NotImplementedError("Bardzo Dlugi Tekst"). W Pythonie możesz mieć "normalne" klasy abstrakcyjne:

class Transaction(ABC):

    def __init__(self, currency, stop_loss, volume):
        self.currency = currency
        self.stop_loss = stop_loss
        self.volume = volume
        self.profitability = None

    @abstractmethod
    def realise(self):
        pass

    @abstractmethod
    def stop(self):
        pass

    @abstractmethod
    def update_prof(self):
        pass

 

komentarz 9 października 2017 przez 0xf Dyskutant (8,180 p.)
Czym jest PEP8?
1
komentarz 9 października 2017 przez adrian17 Ekspert (344,100 p.)
https://www.python.org/dev/peps/pep-0008/

Są automatyczne sprawdzacze jakości kodu opierające się głównie na PEP8, np flake8, pylint.
komentarz 9 października 2017 przez 0xf Dyskutant (8,180 p.)
O super przyda sie nie wiedzialem a czy w tym kodzie widac golym okiem jakies bledy?

Czy pomysl w ktorym chce zeby transakcja po swoim zakonczeniu wrzucila do jsona czas w jakim sie wykonala w taki sposob jaki to zrobilem to sposob?
komentarz 9 października 2017 przez adrian17 Ekspert (344,100 p.)
(Nie wnikałem w samą implementację.)
komentarz 9 października 2017 przez mokrowski Mędrzec (155,460 p.)
Hmm... co jeszcze zauważyłem choć podkreślam że nie znam aspektu implementacji więc traktuj jako sugestie lub luźne pytania.

Co do zrzucania informacji o czasie transakcji, zastanowił bym się nad dekoratorem logującym to zdarzenie.

Wygodny do formatowania jest program autopep8 (dostępny w pakietach np. przez pip ).

Te komentarze w zasadzie nadają się do dokumentacji metody. Jeśli to tak zapiszesz, IMHO będzie czytelniejsze.

W 35 linii masz Transaction..... jakiś powód by nie super() ?

W 19 i 23 masz stałą w postaci pliku. Może zdefiniować ją raz i użyć?

W 40 i dalej masz "długie pociągi wywołań" a.b.c... nie wiem jak to traktować bo jest tam TODO a zagadnienia nie znam. Coś można z tym zrobić.
0 głosów
odpowiedź 9 października 2017 przez Benek Szeryf (90,690 p.)

Prosze was o opinie i konstruktywna krytyke.

Kod wrzucaj na Github i dołączaj do niego zawsze dokumentację z przykładowym uruchomieniem (tak, widzę że to są tylko dwie klasy). Takie podejście bardzo zachęca do przetestowania i późniejszej analizy samego kodu.

Podobne pytania

+1 głos
1 odpowiedź 274 wizyt
pytanie zadane 8 maja 2020 w Python przez wojtek_suchy Mądrala (6,880 p.)
+1 głos
0 odpowiedzi 3,366 wizyt
pytanie zadane 23 listopada 2019 w Python przez Nieprofesjonalny Użytkownik (890 p.)
0 głosów
3 odpowiedzi 390 wizyt
pytanie zadane 16 stycznia 2019 w Python przez niezalogowany

92,454 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...