
BG Development · За реклама · За контакти |
![]() ![]() ![]() ![]() ![]() |
Здравей! ( Включване | Регистриране ) |
![]() ![]() ![]() |
nfosdnfkanfjdsn |
Публикувано на: 14-03-2022, 00:26
|
||
Име: Група: Потребител Ранг: Новопостъпил Мнения: 4 Регистриран на: 05.02.22 ![]() |
Здравейте, за първи път ми се наложи да пиша код на Python и резултата е долу. На прав път ли съм или не? Инак като РНР кодер ми харесва питона, че на база indentation-а разбираш къде свършва иф-а или лооп-а. И най-вече няма нужда всичко да се затваря с ;
|
||
boundless |
Публикувано на: 14-03-2022, 15:18
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 3 Регистриран на: 18.04.16 ![]() |
Кода изглежда наред, но ако искаш да се занимаваш повече с Python или това ти е нещо за работата (което ще се поддържа и променя с години) те съветвам да обърнеш внимание на следните моменти:
1. работиш с sys.argv, но никъде не го проверяваш колко параметра държи в себе си - потенциален краш. Ако искаш да е удобно на user-a провери argparse библиотеката. 2. Създаваш излишни променливи които само пречат на бързото четене на програмата (pdf_file_path_check, img_folder_check) 3. Използвай os.path.join вместо some_path = str1 + str2 4. Прекомерно използваш str(): pdf_id и img_folder_file са си стрингове 5. Използвай вече създадения item от enumerate-a вместо pdf.pages[index] 6. Хубаво е работата с DB и OC да е затворена с try..except block |
nfosdnfkanfjdsn |
Публикувано на: 14-03-2022, 19:27
|
||
Име: Група: Потребител Ранг: Новопостъпил Мнения: 4 Регистриран на: 05.02.22 ![]() |
Благодаря. Ще обърна внимание на съветите ти и ще оправя кода. Иначе съм поредния провинциален РНР мазач и това можех и на РНР да го напиша. Но от доста време искам да науча нещо ново и почнах с този скрипт. |
||
CPPlus |
Публикувано на: 16-03-2022, 17:15
|
![]() Име: Людмил Григоров Група: Потребител Ранг: Почетен член Мнения: 1118 Регистриран на: 22.06.11 ![]() |
Защо да пречат на четенето на кода променливите?
Да, аз бих преименувал pdf_file_path_check на pdf_exists ама без pdf_file_path как ще знаеш, че sys.argv[1] какво е без коректно именувана променлива? Аз даже бих отишъл в екстремум с тея неща и бих изкарвал нещата в 4-5 редови методи само за да може да се чете като английски език програмата (изключвам performance код) -------------------- Нищо не е свършило, докато не е свършило! Не се предавай и ще постигнеш целта си!
|
cilylu |
Публикувано на: 17-03-2022, 16:23
|
||
Име: Група: Потребител Ранг: Новопостъпил Мнения: 2 Регистриран на: 14.03.22 ![]() |
до тук го докарах, но още не съм го тествал как се справя в реална среда, че сървъра има само питон 2.*... |
||
boundless |
Публикувано на: 17-03-2022, 19:34
|
||
Име: Група: Потребител Ранг: Новопостъпил Мнения: 3 Регистриран на: 18.04.16 ![]() |
Аз съм написал че pdf_file_path_check е излишна, а ти коментираш pdf_file_path, която очевидно не е излишна. Важното е че човека ме е разбрал и в новата си версия ги е махнал. |
||
boundless |
Публикувано на: 17-03-2022, 19:53
|
Име: Група: Потребител Ранг: Новопостъпил Мнения: 3 Регистриран на: 18.04.16 ![]() |
От нещата които си променил само try..except може да се развие повече.
Знам че е много лесно и бързо да хванеш само с обикновен except евентуален проблем, но е лоша практика. Но дори и ако не решиш да напишеш специфичния/специфичните Exceptions за дадения код поне си принтирай хванатия проблем в конзолата или в лог файл за да знаеш защо се е появил нов запис в pdf_errors. Аз бих затворил в try..except блок и db.connect и db.execute. И между другото по някое време ще почнеш да се чудиш какво значи в ДБ-то error_type 1 i 2 (magic numbers). Използвай константи най-отгоре в скрипта ти за такива числа така че да не ти се налага да го четеш целия после за да разбереш какво точно беше грешка 1 или 2. (А и със сигурност по някое време ще се появят и error_types 3 и 4...) |
![]() |
![]() ![]() ![]() |