JavaRush /Java блогу /Random-KY /Таза кодду кантип жазуу керек

Таза кодду кантип жазуу керек

Группада жарыяланган
Кодуңузду таза жана кооз кылуу - бул мөөнөттөрдү аткаруунун эң сонун жолу. Роберт Мартин өзүнүн кыска сөздөрүнүн бири менен башына мык чапты: "Коддун сапатынын бирден-бир чыныгы өлчөмү бул What-The-F**ks/Minute бирдиги. .” " түп нускада). Таза codeду кантип жазуу керек - 1Бул эмнени билдирерин түшүндүрүп берейин. Мен codeду карап чыккан сайын мээм үч эмоциянын бирин башынан өткөрөт:
  • “WTF?! Эмне болду?!" (жийиркенүү менен) - бул эмес... баары абдан жаман....
  • “WTF?! Эмне болду?!" (суктанып) - мм, бир акылдуу жигит кылыптыр!
  • “WTF?! Эмне болду?!" (кыжырдануу менен) - кандайдыр бир баш аламандык, эмнени айтып жатабыз?!
Демек, эмне маанилүү жана биз кандайдыр бир codeду көргөндө эмнени баалайбыз? Мына ушундай: анын тазалыгы жана сулуулугу. Таза жана кооз codeду жазуу жөндөмү жогорку кесипкөй иштеп чыгуучунун көрсөткүчү болуп саналат. Бул жөндөмгө окутуу эки компонентке негизделген - бorм жана эмгек. Бorм сизге үлгүлөрдү, принциптерди, практикаларды, эвристиканы үйрөтөт. Алар кесиптик жактан өсүш үчүн керек. Сиз гана бул бorмди тынымсыз машыгуу жана талыкпаган эмгек аркылуу губка сыяктуу сиңирип алышыңыз керек. Кыскасы, таза code жазуу оңой эмес. Бул оор, түйшүктүү иш, ага талыкпай иштөөгө туура келет. Сыноо жана ката аркылуу, сиз каалаган чечимди тапканга чейин ошол эле кадамдарды кайра-кайра кайталоо менен жакшырасыз. Жөнөкөй жол жок. Төмөндө таза codeду кантип жазууну үйрөнүүгө жардам бере турган бир нече кеңештер бар.

Атында эмне бар

Кендрик Ламар (америкалык хип-хоп артисти – редактордун эскертүүсү) бир жолу: «Эгер мен чыныгы окуяны айта турган болсом, анда мен өз атымдан башташым керек», - деп так белгилеген. Программалык камсыздоону иштеп чыгуудагы ысымдар бардык жерде. Биз функцияларды, класстарды, аргументтерди, пакеттерди, программаларды — баарын атайбыз. Биз баштапкы файлдарды жана маалымдама китептерди жана аны менен байланышкан нерселердин баарын атайбыз. Биз нерселерди чексиз атайбыз жана бул таза codeду түзүү боюнча иштөөнүн маанилүү бөлүгү болуп калат. Бир нерсеге берген атыңыз ниетти чагылдырышы керек. Жакшы ат табуу оңой эмес, убакытты талап кылат, бирок code менен күрөшүүгө туура келип, кырдаал татаалдашып кеткенде көп убакытты үнөмдөйт. Андыктан бул процессте этият болуңуз жана ылайыктуураак нерсе тапсаңыз, кийинчерээк ысымдарды өзгөртүүдөн коркпоңуз. Сиздин codeуңуз менен алектенген ар бир адам сизге абдан ыраазы болот.

Ар кандай өзгөрмөнүн, класстын, функциянын аталышы үч негизги суроого жооп бериши керек экенин унутпаңыз: ал эмне үчүн (өзгөрмө, функция ж.б.) бар, эмне кылат жана эмне үчүн колдонулат.

Бул жакшы сүрөттөө жөндөмүн гана эмес, жалпы эрудицияны жана кеңири көз карашты да талап кылат. Жана муну сага өзүңдөн башка эч ким үйрөтө алbyte.

таза code

"Бир функция" - бир нерсе

Луи Генри Салливан (америкалык рационалист жана модернист архитектор) бир жолу: "функция форманы аныктайт " деп айткан . Ал үйлөрдүн архитектурасы жөнүндө мындай деди, бирок бул маңызын өзгөртпөйт. Ар бир система программисттер аны так сүрөттөп берүү үчүн түзгөн доменге тиешелүү тилге курулган. Функциялар тилдин этиштеринин милдетин аткарат, ал эми класстар зат атоочтор. Көбүнчө функциялар программалоо тorн уюштурууда биринчи орунда турат жана аларды туура жазуу жакшы codeду түзүүнүн маңызы болуп саналат. Сапаттуу функцияларды жазуу үчүн эки гана алтын эреже бар:
  1. Алар кичинекей болушу керек
  2. Алар бир нерсени, бир тапшырманы аткарып, аны жакшы аткарышы керек
Башкача айтканда, сиздин функцияңыз кичинекей болушу керек жана уяланган структураларды камтыбашы керек. Ошентип, функция чегинүү деңгээли бир же экиден ашпашы керек. Бул ыкма codeду окууну, түшүнүүнү жана түшүнүүнү бир топ жеңилдетет. Мындан тышкары, функциянын ичиндеги туюнтмалардын абстракциянын бирдей деңгээлинде экендигине ишенишибиз керек. Функциянын ичиндеги абстракция деңгээлин аралаштыруу ар дайым көп баш аламандыктарды жаратат жана акыры башкарылгыс codeго алып келет. Мыкты программисттер функцияларды жөн гана жаза турган code эмес, айтып бере турган окуялар катары карашат. Алар өзүлөрүнүн тандаган программалоо тorнин куралдарын колдонуп, бай, экспрессивдүү жана тазараак code блогун түзүшөт.

"Комментарийлер жаман codeдун ордун толтурbyte"

Америкалык теннисчи, Уимблдондун беш жолку чемпиону Венус Уильямс башына мык тийип: «Ар ким өз пикирин калтырат. Ушактар ​​ушундай пайда болот " . Комментарий эки миздүү кылычтай.Туура жазылган комментарий абдан пайдалуу нерсе. Башка жагынан алып караганда, мейкиндикти жөнсүз, пайдасыз комментарийлерден башка эч нерсе каптай алbyte. Бирок эң зыяндуу комментарийлер – бул туура эмес маалымат тараткандар жана калп. Кыскасы, комментарийлер зарыл болгон жамандыктын бир түрү. Дайыма эмес, бирок көпчүлүк учурда. Неге? Бул жөнөкөй, комментарий канчалык эски болсо, аны сактоо ошончолук кыйын болот жана көпчүлүк программисттер, өзүңүздөр билгендей, codeдогу өзгөртүүлөр менен бирге комментарийлерди дайыма эле өзгөртүшпөйт. Код жылып, өнүгөт. Коддун бөлүктөрү алдыга жана артка жылдырылат, бирок комментарийлер жок. Жана бул көйгөй болуп калат!

Эсиңизде болсун: бир нече комментарийлер менен таза, так code татаал, баш аламан codeдон алда канча жакшыраак. Комментарийлерде жараткан башаламандыкты түшүндүрүп, энергияңызды текке кетирбеңиз. Ошол убакытты ошол башаламандыкты тазалоо үчүн өткөргүлө.

таза code

"Кодду форматтоо ар дайым артыкчылыктуу"

Муну Роберт Си Мартинден (Роберт Сесил Мартин) башка эч ким айткан эмес, ака Боб байке, иштеп чыгуучу, программалык камсыздоону иштеп чыгуу боюнча көптөгөн китептердин автору, консультант, Agile манифестинин авторлошу ж.б. Ал кошумчалагандай: "Кодду форматтоо - бул байланыштын бир түрү. Ал эми баарлашуу ар бир профессионал иштеп чыгуучу үчүн эң башкы приоритет болуп саналат». Жогоруда айтылган сөздү баалабай коюуга болбойт, анткени ал мыкты иштеп чыгуучунун эң маанилүү мүнөздөмөлөрүнүн бири жөнүндө айтылат. Форматталган code сиздин оюңузга терең кароого мүмкүндүк берет. Биз адамдарды тыкандыгыбыз, майда-чүйдөсүнө чейин көңүл бурушубуз, уюштура билүү жана оюбузду ачык айта билүүбүз менен таң калтыргыбыз келет. Бирок, эгер адамдар codeду карап жатканда, винегретти эске салган кандайдыр бир баш аламандыкты көрүшсө, башталышы да, аягы да жок, бул сиздин аракеттериңизди жокко чыгарат жана иштеп чыгуучунун аброюн түшүрөт. Андан шектенбеңиз! Эгер сиз бул бизнесте негизги нерсе "code жөн эле иштейт" деп ойлосоңуз, сиз чындыктан өтө алыссыз. Бүгүн сиз түзгөн функция кийинки чыгарылышта өзгөрөт, бирок codeдун окулушу өзгөрбөйт. Коддун стor жана анын жакшы окулушу, баштапкы code таанылгыс болуп өзгөртүлгөндөн кийин да codeду узак убакытка сактоону жеңилдетет.
Келечекте сиздин codeуңуз эмес, стorңиз жана ырааттуулугуңуз эсте калаарын эч качан унутпаңыз. Ошондуктан, code жакшы форматталганын жана команданын бардык мүчөлөрүнө түшүнүктүү болгон жөнөкөй эрежелерди сактаганын текшериңиз.

Алгач "try-catch-finally" блогун түзүңүз

Жорж Кангилем (orм тарыхчысы, философ) туура белгилеген: «Адам үчүн ката кетирүү табигый нерсе, ал эми каталарды талап кылуу шайтандан » . Мүчүлүштүктөрдү жоюу бардык программисттер жасай турган нерсе. Жараксыз маалыматтар киргизүүгө кирип, түзмөктөр иштебей калышы мүмкүн. Ал эми иштеп чыгуучулар катары биз codeдун эмне кылышы керек экенин текшеришибиз керек. Маселе каталарды иштетүүдө гана эмес, “таза жана окууга оңой” каталарды иштетүүдө. Көптөгөн программалар каталарды башкарууга ылайыкташат. Эгер муну кылсаңыз, баары башаламандыкка түшүп, негизги codeдун максаты жана логикасы бузулат. Бул туура эмес, мындай болбошу керек. Код таза жана ишенимдүү болушу керек, ал эми каталарды чечүү codeдун ичине кынтыксыз жана табигый түрдө кошулушу керек. Бул жогорку класстагы программисттин көрсөткүчү. Ал эми буга жетүүнүн жолдорунун бири - бул аракет кылуучу блоктордогу бардык каталарды туура уялоо жана камтуу. Бул блоктор сиздин codeуңуздун көлөмүн аныктайт. Кодду try-catch-finally блогунун try бөлүгүндө аткарганда, сиз аткарууну каалаган убакта токтотуп, андан кийин кармап калуу менен улантаарын айтып жатасыз. Ошондуктан, code жазганда try-catch-finally менен баштоону сунуштайбыз. Бул колдонуучу codeдон эмнени күтө аларын аныктоого жардам берет, аракет учурунда code менен эмне ката кеткенине карабастан.
Сиз ыргыткан ар бир өзгөчөлүк катанын ордун жана булагын аныктоо үчүн жетиштүү контекстти камтышы керек экенин унутпаңыз. Чыгармачыл жана маалыматтык ката билдирүүлөрү code жазылгандан көп убакыт өткөндөн кийин, программист такыр башка тапшырмалар менен алек болгондо да эсте калат.
таза code

Жыйынтыктап көрөлү

Бир адаттан тыш фразалар жогоруда айтылгандардын баарын жыйынтыктоого жардам берет. Бул code-сезим же "жалпы codeдун сезими", жалпы түшүнүккө барабар программисттин бир түрү. Роберт Мартиндин сөзү менен айтканда: «Таза codeду жазуу үчүн «тазалыктын» кылдат жана бир аз оорутуучу сезиминин натыйжасында колдонулган көптөгөн майда ыкмаларды системалуу колдонуу талап кылынат. Бул кичинекей ыкмалар чогуу code-сезим деп аталат . Кээ бирибизде бул "үн codeунун мааниси" башынан эле бар, ал эми башкалары аны туруктуу практика аркылуу иштеп чыгышыбыз керек. Бул инстинкт жаман жана жакшы codeдун айырмасын таанууга гана жардам бербестен, жаман codeду жакшыга айландырууга багытталган стратегияларды түзүүгө жардам берет. Жаман code баарын кыйратат. Каймана айтканда, эң даамдуу тортту ит бок менен тоңдуруп койсоң, анда... э... эч кимге жакпайт. Кодду сезүү программистке таза codeду түзүү максатына жетүү үчүн туура куралдарды колдонууга жардам берет. Код-сезим эмне экенин түшүнгөн программист – бул бош экранда көп жылдар бою эсте кала турган көркөм чыгарма жарата алган сүрөтчү. Мит университетинин информатика боюнча профессору жана Creative Commons жана Free Software Foundation фондунун негиздөөчү директору Гарольд "Хал" Абелсон мындай деп жыйынтыктады: "Программалар адегенде адамдар окуй тургандай кылып, андан кийин аларды окуй тургандай кылып жазыш керек. өлүм жазасына тартылды.” унаасы” . Тема боюнча эмнени окуй аласыз: "Agile Software Craftsmanship колдонмосу" - Роберт Мартин. “Agile estimation колдонмосу” - Майк Кон Author жөнүндө: Рави Шанкар Раджан Мумбайдан (Индия) келген глобалдык IT программасынын менеджери. Белгилүү блогер, хайку акыны, археологияга жана тарыхка кызыккан. Сиз аны менен Twitter , Medium , LinkedIn аркылуу байланыша аласыз
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION