LINUX.ORG.RU

ревью кода проекта

 ,


1

2

Собственно написал первую более менее нужную тулзу, на pyqt5, пишу на этом всем месяц или полтора, хочу услышать критику и поправки которые мне следует учесть в дальнейшем написании кода.
https://github.com/foozzi/yaudio

def next_track(self):
    if self.np in self.quene_tracks:
        i = 0
        for _ in self.quene_tracks:
            if self.np == _:
                try:
                    self._play(self.quene_tracks[i + 1], self._get_np_button())
                    return
                except Exception as e:
                    return
            i = i + 1

слишком большая вложенность и Exception as e слишком обобщенное исключение, self.np == _, нижнее подчеркивание обычно используют как указатель того, что переменная не исопльзуется, переменная счетчика не нужна, можно использовать enumerate, название переменной np ничего не говорит о том что это такое.
Смысл условия self.np in self.quene_tracks сомнительный, мне кажется операция in со списком будет O(n), ты таким образом сделал только медленнее, можно можно было бы переписать хотя бы как-то так:

def next_track(self):
    for index, track in enumerate(self.quene_tracks):
        if self.np != track:
            continue
        
        try:
            self._play(self.quene_tracks[index + 1], self._get_np_button())
        finally:
            return
хотя я уверен, что тут вообще try finally не нужно, но мне лень смотреть код, это просто первое попавшееся на глаза )

Int64 ★★★
()
Последнее исправление: Int64 (всего исправлений: 1)
Ответ на: комментарий от Int64

наверное логичнее было бы переменную quene_tracks представить в виде связного списка. еще заметил: int(time / 1000) можно написать просто time // 1000, что означает целочисленное деление.

Int64 ★★★
()
Ответ на: комментарий от Int64

И названия перменных вообще ни о чем не говорят, переменные вида pushButton, pushButton_2, pushButton_3, pushButton_4 не понятно, что за кнопки и что они делать должны.

Int64 ★★★
()
Ответ на: комментарий от Int64

понял, сейчас буду усовершенствовать, инересует еще работа потоков, понял ли я как их использовать или нет?))

жду еще ответов

noname_user ★★★
() автор топика
Ответ на: комментарий от Int64

Ладно хоть я не успел потратить своё время на код... push_button_112!

kardapoltsev ★★★★★
()
Ответ на: комментарий от Int64

переменные вида pushButton, pushButton_2, pushButton_3, pushButton_4 не понятно, что за кнопки и что они делать должны

если такое в самом деле есть в коде - нужно немедленно исправить

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

учел вроде все, что отписали, закоммитил

noname_user ★★★
() автор топика
Ответ на: комментарий от Int64

нижнее подчеркивание

Окстись, это верхнее подчёркивание! И эс у него везде как доллар. Кто так пишет...

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.