Կոդի վերամշակումը հեշտացավ
Մոտիվացիա
Մաքուր և էլեգանտ կոդերի բազաներ գրելը ծրագրավորման թերագնահատված հմտություն է: Շատ ծրագրավորողներ, հատկապես նորեկները, պարզապես կենտրոնանում են իրենց հիմունքները ճիշտ ձևակերպելու վրա:
Այնուամենայնիվ, միայն մի քանիսն են հետևում ընթեռնելիությանը և պահպանմանը, քանի որ նրանք ենթադրում են, որ նրանք միակն են, ովքեր երբևէ կօգտագործեն կոդը:
Դա միայն այն դեպքում, երբ նրանք ի վերջո անցնում են համագործակցային նախագծերի, որտեղ ամիսներ (եթե ոչ տարիներ) խառնաշփոթ և ոչ էլեգանտ ծրագրավորման սովորություններից հետո պետք է հարմարվել ծրագրավորման «ճիշտ» մեթոդներին:
Կոդի վերամշակումը ծրագրային ապահովման մշակման գործընթացի էական մասն է, բայց այն հաճախ անտեսվում կամ անտեսվում է:
Իրականում, Python-ի Զենն ասում է.
Եթե իրականացումը դժվար է բացատրել, դա վատ գաղափար է: Եթե իրականացումը հեշտ է բացատրել, ապա դա կարող է լավ գաղափար լինել:
Թեև հասկանալի է, որ կոդերի վերամշակումն այնպիսի գործունեություն չէ, որին ակնկալում ենք, այնուամենայնիվ, այն կարևոր է տարբեր պատճառներով: Օրինակ՝ դուք կարող եք ժամանակի ընթացքում մաքուր և լավ կազմակերպված պահել ձեր կոդի բազան՝ երկարաժամկետ հեռանկարում խնայելով ձեր ժամանակն ու ջանքը:
Գործերն ավելի հեշտացնելու համար հաճելի չէ՞ ունենալ գործիք, որը կարող է ընդգծել վերամշակման հնարավոր ոլորտները, որպեսզի մենք ձեռքով վերանայենք:
Հետևաբար, այս բլոգում ես կցուցադրեմ, թե ինչպես կարող եք վերամշակել կոդը՝ օգտագործելով Sourcery-ը, որը կոդերի վերամշակման ավտոմատ գործիք է, որը ձեր կոդը դարձնում է ավելի պարզ, հակիրճ և Pythonic:
Սկսենք 🚀!
Տեղադրում և կարգավորում
Դուք կարող եք օգտագործել Sourcery-ը որպես IDE հավելված VS Code-ում և PyCharm-ում, Command-Line Interface-ում (CLI), Sublime Text-ում, Vim-ում, GitHub-ում և մի քանի այլ տարբերակներում:
Այս բլոգի համար մենք կկենտրոնանանք Sourcery-ի օգտագործման վրա հատուկ IDE-ում և CLI-ում:
Հրամանի տող
Դուք կարող եք տեղադրել Sourcery-ի հրամանի տողի միջերեսը՝ գործարկելով հետևյալ հրամանը.
pip install sourcery-cli
Տեղադրվելուց հետո դուք պետք է մուտք գործեք այս հրամանով.
sourcery login
Մուտք գործելուց հետո ձեր տերմինալում կտեսնեք նմանատիպ պատասխան.
Visual Studio կոդը IDE
Դուք կարող եք օգտագործել Sourcery-ը VS Code-ում՝ տեղադրելով դրա ընդլայնումը: Սրանք քայլերն են.
Կոդի վերամշակում CLI-ում
Հաջորդը, եկեք տեսնենք մի քանի ցուցադրություն, թե ինչպես կարող եք վերամշակել կոդը՝ օգտագործելով Sourcery-ը CLI-ում:
Այստեղ մենք կգրենք կոդի որոշ հատվածներ սցենարում, կվերափոխենք այն Sourcery-ի միջոցով և կվերանայենք առաջարկները:
Code Refactoring Demo #1
Համարենք, որ մենք ունենք my_code.py
ֆայլ:
## my_code.py def find_even(numbers): even_numbers = [] for num in numbers: if num%2 == 0: even_numbers.append(num) print(even_numbers)
Վերափոխելու համար գործարկեք հետևյալ հրամանը.
sourcery review --in-place my_code.py
Դրանով Sourcery's AI-ի վերամշակումը փոխակերպում է մեր կոդը՝
## my_code.py def find_even(numbers): even_numbers = [num for num in numbers if num%2 == 0] print(even_numbers)
Առաջարկվող փոփոխությունը ճշգրիտ, հակիրճ և էլեգանտ է:
Code Refactoring Demo #2
Մտածեք հիմա մեր my_code.py
ֆայլն ունի հետևյալ կոդը.
# my_code.py def is_special_number(number): if number == 7: return True elif number == 18: return True else: return False
Վերափոխելու համար գործարկեք հետևյալ հրամանը.
sourcery review --in-place my_code.py
Այս անգամ մենք տեսնում ենք հետևյալ փոփոխությունները ֆայլում.
# my_code.py def is_special_number(number): return number in [7, 18]
Սա ևս մեկ անգամ ճիշտ և մաքուր է:
Code Refactoring Demo #3
Դիտարկենք nested if հայտարարությունների օրինակ.
## my_code.py def check_numbers(number1, number2): if number1: if number2: return True return False
Հաջորդը, մենք գործարկում ենք հետևյալ հրամանը.
sourcery review --in-place my_code.py
Sourcery-ն առաջարկում է հետևյալ փոփոխությունները ֆայլում.
## my_code.py def check_numbers(number1, number2): return bool(number1 and number2)
Սա իսկապես ճիշտ է և ավելի էլեգանտ, քան նախկինում:
Code Refactoring Demo #4
Հաջորդը, մենք ունենք for-loop, որը գտնում է, թե արդյոք թվերի մուտքագրման ցուցակը դրական ամբողջ թիվ ունի, թե ոչ:
## my_code.py def has_positive(numbers): for number in numbers: if number>0: return True return False
Դա անելու իդեալական միջոցը Python-ում any()
-ն օգտագործելն է: Տեսնենք, արդյոք Sourcery-ն կարող է դա հայտնաբերել:
Մենք գործարկում ենք հետևյալ հրամանը.
sourcery review --in-place my_code.py
Sourcery-ն առաջարկում է հետևյալ փոփոխությունները ֆայլում.
def has_positive(numbers): return any(number>0 for number in numbers)
Սուպեր տպավորիչ!
Code Refactoring Demo #5
Հաջորդը, մենք ունենք if-condition, որը արժեք է վերագրում my_var
փոփոխականին՝ հիմնվելով պայմանի վրա
## my_code.py def set_variable(condition): if condition: my_var = 1 else: my_var = 2 return my_var
Դա անելու իդեալական միջոցը Python-ում if-արտահայտությունն օգտագործելն է: Տեսնենք, արդյոք Sourcery-ն առաջարկում է դա:
Վերափոխելու համար մենք գործարկում ենք հետևյալ հրամանը.
sourcery review --in-place my_code.py
Sourcery-ն առաջարկում է հետևյալ փոփոխությունները ֆայլում.
def set_variable(condition): return 1 if condition else 2
Կոդի վերամշակում IDE-ում
Հաջորդը, եկեք տեսնենք, որ մենք կարող ենք վերափոխել կոդը VS Code-ում:
Այս ցուցադրման համար ես փոխանցել եմ վերը նշված հինգ կոդի վերամշակման ցուցադրությունները VS Code-ում բացված սցենարով:
Երբ մենք միացնում ենք վահանակը, մենք տեսնում ենք Sourcery-ի վերամշակման առաջարկները: Սա ցույց է տրված ստորև.
Երբ մենք սավառնում ենք վահանակի առաջարկի վրա և սեղմում նախազգուշացման ⚠️ նշանը, մենք տեսնում ենք երեք տարբերակ, ինչպես ցույց է տրված ստորև.
Առաջին տարբերակը վերափոխում է կոդը: Երկրորդը բաց է թողնում առաջարկը: Վերջնական տարբերակը երբեք չի ցուցադրի առաջարկվող վերամշակումը որևէ ֆայլի վրա:
Առաջին տարբերակը ընտրելուց հետո Sourcery-ն կվերափոխի կոդը: Սա ցույց է տրված ստորև.
Եզրակացություն
Շնորհավորում ենք ավելի մաքուր կոդ գրելու ուղղությամբ քայլ ձեռնարկելու կապակցությամբ, որը երկար ճանապարհ կանցկացնի ձեր ծրագրավորման կարիերայում:
Կոդի վերամշակումը ծայրից ծայր ծրագրային ապահովման մշակման գործընթացի էական մասն է, որը կարող է զգալիորեն բարելավել ձեր կոդերի բազայի որակը և պահպանելիությունը, որտեղ Sourcery-ի նման գործիքները կարող են մեծապես օգնել:
Ավելին, երբեմն կարելի է ցանկանալ վերափոխել կոդը՝ համաձայն իրենց սեփական ուղեցույցների: Բարեբախտաբար, Sourcery-ի միջոցով դուք կարող եք անհատականացված վերամշակման կանոններ տրամադրել:
Աղբյուրի մասին ավելին կարող եք կարդալ այստեղ:
Եթե ցանկանում եք ավելին իմանալ նման նրբագեղ գործիքներ, խորհուրդներ և հնարքներ Data Science-ի և Python-ի մասին, ես ամեն օր տեղեկատվական հուշումներ եմ տեղադրում LinkedIn-ում:
Դուք կարող եք գտնել բոլոր խորհուրդները, որոնք ես տեղադրել եմ Իմ LinkedIn-ի գրառումների արխիվում: Դուք կարող եք հետևել ինձ LinkedIn-ում՝ տեսնելու բոլոր հետագա գրառումները:
Այլապես, դուք կարող եք նաև դրանք ստանալ էլեկտրոնային փոստի միջոցով՝ բաժանորդագրվելով ստորև.
Շնորհակալություն կարդալու համար: