Կոդի վերամշակումը հեշտացավ

Մոտիվացիա

Մաքուր և էլեգանտ կոդերի բազաներ գրելը ծրագրավորման թերագնահատված հմտություն է: Շատ ծրագրավորողներ, հատկապես նորեկները, պարզապես կենտրոնանում են իրենց հիմունքները ճիշտ ձևակերպելու վրա:

Այնուամենայնիվ, միայն մի քանիսն են հետևում ընթեռնելիությանը և պահպանմանը, քանի որ նրանք ենթադրում են, որ նրանք միակն են, ովքեր երբևէ կօգտագործեն կոդը:

Դա միայն այն դեպքում, երբ նրանք ի վերջո անցնում են համագործակցային նախագծերի, որտեղ ամիսներ (եթե ոչ տարիներ) խառնաշփոթ և ոչ էլեգանտ ծրագրավորման սովորություններից հետո պետք է հարմարվել ծրագրավորման «ճիշտ» մեթոդներին:

Կոդի վերամշակումը ծրագրային ապահովման մշակման գործընթացի էական մասն է, բայց այն հաճախ անտեսվում կամ անտեսվում է:

Իրականում, 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-ում՝ տեսնելու բոլոր հետագա գրառումները:

Այլապես, դուք կարող եք նաև դրանք ստանալ էլեկտրոնային փոստի միջոցով՝ բաժանորդագրվելով ստորև.

🚀Բաժանորդագրվեք տվյալների գիտության ամենօրյա չափաբաժինին: Այստեղ ես կիսում եմ էլեգանտ խորհուրդներ և հնարքներ Data Science-ի վերաբերյալ, օրական մեկ հուշում: Ստացեք այս խորհուրդները հենց ձեր մուտքի արկղում ամեն օր:

🧑‍💻Դարձի՛ր տվյալների գիտության պրոֆեսոր: Ստացեք ԱՆՎՃԱՐ Data Science Mastery Toolkit-ը 450+ Pandas, NumPy և SQL հարցերով:

Շնորհակալություն կարդալու համար: