JavaRush /Блоги Java /Random-TG /Чӣ тавр бояд рамзи тоза нависед

Чӣ тавр бояд рамзи тоза нависед

Дар гурӯҳ нашр шудааст
Тоза ва зебо кардани codeи худ як роҳи олии риоя кардани мӯҳлатҳост. Роберт Мартин бо яке аз изҳороти мухтасари худ ба сари нохун зад: “Ягона ченаки воқеии сифати code воҳиди What-The-F**ks/Minute аст. ." " дар асл). Коди тозаро чӣ гуна бояд нависед - 1Биёед ман фаҳмонам, ки ин чӣ маъно дорад. Ҳар дафъае, ки ман codeро аз назар мегузаронам, майнаи ман яке аз се эҳсосотро аз сар мегузаронад:
  • "WTF?! Чӣ бало?!" (бо нафрат) - ин не... ҳамааш хеле бад аст....
  • "WTF?! Чӣ бало?!" (бо мафтуни) - хм, як бачаи доно ин корро кард!
  • "WTF?! Чӣ бало?!" (бо ғазаб) - як навъ ошуфтагӣ, мо ҳатто дар бораи чӣ ҳарф мезанем?!
Пас, чӣ муҳим аст ва вақте ки мо ягон codeро мебинем, маҳз чиро арзёбӣ мекунем? Ин аст: покӣ ва зебоии он. Қобorяти навиштани рамзи тоза ва зебо нишондиҳандаи таҳиягари баландихтисос мебошад. Омӯзиши ин маҳорат ба ду ҷузъ – дониш ва кор асос меёбад. Дониш ба шумо намунаҳо, принсипҳо, амалияҳо ва эвристикаро таълим медиҳад. Ба шумо лозим аст, ки онҳо ба таври касбӣ рушд кунанд. Танҳо шумо бояд ин донишро мисли исфанҷеро тавассути машқҳои доимӣ ва меҳнати сахт аз худ кунед. Хулоса, навиштани рамзи тоза осон нест. Ин кори душвор ва душвор аст ва шумо бояд дар ин кор сахт кор кунед. Тавассути озмоиш ва хатогӣ, шумо бо такрори такрори ҳамон қадамҳо то он даме, ки ҳалли дилхоҳатонро пайдо кунед, беҳтар хоҳед шуд. Ягон роҳи соддатар вуҷуд надорад. Дар зер чанд маслиҳате ҳастанд, ки ба шумо дар омӯхтани тарзи навиштани рамзи тоза кӯмак мекунанд.

Дар ном чист

Кендрик Ламар (артист хип-хопи амрикоӣ - ёддошти муҳаррир) боре дақиқ қайд карда буд: "Агар ман воқеаи воқеаро нақл карданӣ бошам, бояд аз номи худ оғоз кунам." Номҳо дар таҳияи нармафзор дар ҳама ҷо ҳастанд. Мо функсияҳо, синфҳо, аргументҳо, бастаҳо, барномаҳо - ҳама чизро ном мебарем. Мо файлҳои сарчашма ва китобҳои маълумотнома ва ҳама чизҳои бо он алоқамандро номбар мекунем. Мо чизҳоро беохир ном мебарем ва ин як қисми муҳими кор барои эҷоди рамзи тоза мегардад. Номе, ки шумо чизе медиҳед, бояд ниятро инъикос кунад. Ҷустуҷӯи номи хуб осон нест, вақт лозим аст, аммо он инчунин вақти зиёдеро сарфа мекунад, вақте ки шумо бояд бо code мубориза баред ва вазъият мураккаб мешавад. Аз ин рӯ, дар бораи ин раванд эҳтиёт шавед ва аз тағир додани номҳо натарсед, агар шумо ягон чизи мувофиқтаре пайдо кунед. Ҳар касе, ки бо рамзи шумо сарукор дорад, аз шумо хеле миннатдор хоҳад буд.

Дар хотир доред, ки номи ҳар як тағирёбанда, синф, функсия бояд ба се саволи асосӣ ҷавоб диҳад: чаро он (тағйирёбанда, функсия ва ғ.) вуҷуд дорад, чӣ кор мекунад ва барои чӣ истифода мешавад.

Ин на танҳо малакаи хуби тасвирӣ, балки дониши умумӣ ва ҷаҳонбинии васеъро талаб мекунад. Ва ҳеҷ кас наметавонад инро ба шумо беҳтар аз худатон таълим диҳад.

рамзи тоза

"Як функсия" - як чиз

Луис Ҳенри Салливан (меъмори рационалист ва модернисти амрикоӣ) боре машҳур гуфта буд: "функсия шаклро муайян мекунад " . Вай дар бораи меъмории хонахо чунин гуфт, аммо ин мохиятро тагьир намедихад. Ҳар як система бар баъзе забони мушаххаси домен сохта шудааст, ки барномасозон барои тавсифи дақиқи он эҷод мекунанд. Функсияҳо ҳамчун феълҳои забон амал мекунанд ва синфҳо исм мебошанд. Аксар вақт, функсияҳо дар ташкor забони барномасозӣ муҳиманд ва дуруст навиштани онҳо моҳияти эҷоди рамзи хуб аст. Барои навиштани функсияҳои сифат танҳо ду қоидаҳои тиллоӣ мавҷуданд:
  1. Онҳо бояд хурд бошанд
  2. Онхо бояд як кор, як вазифаро ичро кунанд ва онро нагз ичро кунанд
Яъне, вазифаи шумо бояд хурд бошад ва набояд сохторҳои лона дошта бошад. Ҳамин тариқ, сатҳҳои дохилшавии функсия набояд аз як ё ду зиёд бошад. Ин равиш хондан, фаҳмидан ва фаҳмиши codeро хеле осон мекунад. Илова бар ин, мо бояд итминон дошта бошем, ки ифодаҳои дохor функсия дар як сатҳи абстраксия қарор доранд. Омезиши сатҳҳои абстраксия дар дохor функсия ҳамеша нофаҳмиҳои зиёдеро ба вуҷуд меорад ва дар ниҳоят ба codeи идоранашаванда оварда мерасонад. Беҳтарин барномасозон ба функсияҳо ҳамчун ҳикояҳо муносибат мекунанд, на танҳо рамзи навиштан. Онҳо аз абзорҳои забони барномасозии интихобкардаи худ истифода мебаранд, то як блоки ғанӣ, возеҳ ва тозатареро эҷод кунанд, ки аслан ҳамчун ҳикоянависи олӣ амал карда метавонанд.

"Тафсирҳо рамзи бадро ҷуброн намекунанд"

Венус Уилямс, теннисбози амрикоӣ ва қаҳрамони панҷкаратаи Уимблдон ба сари нохун зад ва гуфт: “Ҳама шарҳҳои худро тарк мекунанд. Ҳамин тавр овозаҳо пайдо мешаванд » . Коментария мисли шамшери дудама аст.Каментари хуб гузошташуда чизи хеле муфид аст. Аз тарафи дигар, чизе ҷуз шарҳҳои бефоида ва бефоида фазоро печидатар намекунад. Аммо аз ҳама зиёновар шарҳҳоест, ки маълумоти бардурӯғ паҳн мекунанд. Хулоса, эродхо як навъ бади зарурист. На ҳамеша, балки барои қисми бештари. Чаро? Ин оддӣ аст, шарҳ ҳар қадар кӯҳна бошад, нигоҳ доштани он душвортар мешавад ва аксари барномасозон, тавре ки шумо медонед, на ҳамеша шарҳҳоро дар баробари тағир додани code иваз мекунанд. Рамз ҳаракат мекунад ва инкишоф меёбад. Қисмҳои code ба пеш ва бозгашт интиқол дода мешаванд, аммо шарҳҳо вуҷуд надоранд. Ва ин мушкилот мегардад!

Дар хотир доред: рамзи тоза ва равшан бо чанд шарҳ аз рамзи мураккаб ва печида беҳтар аст. Энергияи худро барои шарҳ додани бесарусомоние, ки дар шарҳҳо эҷод кардаед, сарф накунед. Беҳтараш он вақтро тоза кардани он бесарусомонӣ сарф кунед.

рамзи тоза

"Форматсозии code ҳамеша афзалият дорад"

Инро ба ҷуз Роберт Си Мартин, ака Боб, таҳиякунанда, муаллифи китобҳои зиёде оид ба таҳияи нармафзор, мушовир, ҳаммуаллифи манифести Agile ва ғайра касе нагуфт. Ва ӯ афзуд: “Формат кардани code як навъ муошират аст. Ва муошират барои ҳар як таҳиягари касбӣ афзалияти аввалиндараҷа аст.” Изҳороти дар боло зикршударо набояд нодида гирифт, зеро он дар бораи яке аз хусусиятҳои муҳимтарини таҳиягари аъло сухан меравад. Рамзи форматшуда ба шумо имкон медиҳад, ки ба ақли худ назар андозед. Мо мехоҳем одамонро бо тозагӣ, диққат ба ҷузъиёт, қобorяти ташкил ва возеҳ баён кардани фикрамон ба ҳайрат орем. Аммо агар, вақте ки одамон ба code назар афкананд, онҳо як навъ нофаҳмиро мебинанд, ки винегретро ба хотир меорад, на оғоз ва на анҷом, ин кӯшишҳои шуморо рад мекунад ва обрӯи таҳиягарро паст мекунад. Ҳатто шубҳа накунед! Шумо аз ҳақиқат хеле дур ҳастед, агар шумо фикр кунед, ки чизи асосӣ дар ин тиҷорат ин аст, ки "code танҳо кор мекунад". Функсияе, ки шумо имрӯз эҷод мекунед, эҳтимолан дар нашри навбатӣ тағир дода мешавад, аммо хониши code тағир намеёбад. Услуби code ва хониши хуби он нигоҳ доштани codeро барои муддати тӯлонӣ осонтар мекунад, ҳатто пас аз он ки рамзи аслӣ ба таври шинохтанашаванда тағир дода шудааст.
Ҳеҷ гоҳ фаромӯш накунед, ки дар оянда он чизе, ки дар хотир хоҳад монд, на худи рамзи шумо, балки услуб ва мувофиқати шумост. Аз ин рӯ, боварӣ ҳосил кунед, ки code хуб формат карда шудааст ва қоидаҳои оддиро риоя мекунад, ки барои ҳамаи аъзоёни даста фаҳмоанд.

Аввал блоки "try-catch-nihoyat" эҷод кунед

Ҷорҷ Кангилем (таърихшиноси илм, fileсуф) дуруст қайд кардааст: «Хато кардан барои инсон табиист, аммо исрор кардан ба хатогӣ аз шайтон аст » . Бартараф кардани мушкилот корест, ки ҳама барномасозон мекунанд. Маълумоти нодуруст метавонад ба вуруд ворид шавад ва дастгоҳҳо ноком шаванд. Ва ҳамчун таҳиягарон, мо бояд боварӣ ҳосил кунем, ки code он чизеро, ки бояд иҷро кунад, иҷро мекунад. Масъала на танҳо коркарди хатогиҳо, балки коркарди хатогиҳои "тоза ва хондан осон" аст. Бисёре аз барномаҳо ба коркарди хатогиҳо мутобиқ мешаванд. Агар шумо ин корро кунед, ҳама чиз ба чунин бесарусомонӣ меафтад, ки ҳадаф ва мантиқи рамзи асосӣ нобуд мешавад. Ин нодуруст аст, набояд ин тавр бошад. Рамз бояд пок ва боэътимод бошад ва коркарди хатогиҳо бояд бефосила ва табиатан дар code бофта шавад. Ин нишондиҳандаи барномасози дараҷаи олӣ аст. Ва яке аз роҳҳои ноил шудан ба ин тавассути ҷойгиркунии дуруст ва фарогирии ҳамаи хатогиҳо дар блокҳои try-catch мебошад. Ин блокҳо доираи рамзи шуморо муайян мекунанд. Вақте ки шумо codeро дар қисми санҷиши блоки try-catch-nihayet иҷро мекунед, шумо изҳор менамоед, ки иҷро метавонад дар вақти дилхоҳ қатъ карда шавад ва сипас дар сайд идома ёбад. Аз ин рӯ, мо тавсия медиҳем, ки ҳангоми навиштани code аз try-catch-finally оғоз кунем. Ин ба муайян кардани он, ки корбар метавонад аз code чӣ интизор шавад, новобаста аз он, ки code дар давоми кӯшиш чӣ хато мекунад, кӯмак мекунад.
Ҳамеша дар хотир доред, ки ҳар як истисное, ки шумо мепартоед, бояд барои муайян кардани макон ва манбаи хато контексти кофӣ дошта бошад. Паёмҳои хатогиҳои эҷодӣ ва иттилоотӣ хеле пас аз навиштани code дар хотир нигоҳ дошта мешаванд, ҳатто вақте ки барномасоз аллакай бо вазифаҳои тамоман дигар банд аст.
рамзи тоза

Биёед онро чамъбаст кунем

Як ибораи ғайриоддӣ ба мо кӯмак мекунад, ки ҳамаи гуфтаҳои болоро ҷамъбаст кунем. Ин маънои рамзӣ ё "ҳисси рамзи умумӣ" аст, як навъ барномасоз ба ақли солим муодor. Ба ибораи Роберт Мартин: "Навиштани codeи тоза истифодаи мунтазами бисёре аз усулҳои хурдро талаб мекунад, ки дар натиҷаи ҳисси дақиқ ва то андозае дардноки" тозагӣ истифода мешаванд. Ин усулҳои хурд дар маҷмӯъ codeи ҳисси номида мешаванд . ” Баъзеи мо аз аввал ин "ҳисси рамзи садо" -ро дорем, дар ҳоле ки дигарон бояд онро тавассути амалияи доимӣ инкишоф диҳанд. Ин инстинкт на танҳо барои фаҳмидани фарқи байни codeи бад ва хуб кӯмак мекунад, балки инчунин дар ташаккули стратегияҳое, ки барои табдил додани codeи бад ба хуб нигаронида шудаанд, кӯмак мекунад. Рамзи бад ҳама чизро вайрон мекунад. Образона гӯем, агар шумо аз ҳама тортро бо саги саг яхбандӣ кунед, пас... у... базӯр ба касе писанд наояд. Эҳсоси code ба барномасоз кӯмак мекунад, ки абзорҳои дурустро барои ноил шудан ба ҳадафи эҷоди рамзи тоза истифода барад. Барномасозе, ки чӣ будани рамзро мефаҳмад, рассомест, ки метавонад дар экрани холӣ асари бадеиро эҷод кунад, ки солҳои зиёд дар хотир хоҳад монд. Тавре Ҳаролд "Ҳол" Абелсон, профессори илмҳои компютерӣ дар Мит ва директори муассиси Creative Commons ва Фонди нармафзори озод, хулоса кард: "Барномаҳо бояд аввал навишта шаванд, то одамон онҳоро бихонанд ва баъд, то ки онҳо тавонанд ба қатл расонида шуд." мошин" . Он чизеро, ки шумо метавонед дар мавзӯъ хонед: "Дастур оид ба ҳунармандии нармафзори Agile" - Роберт Мартин. "Дастур оид ба арзёбии Agile" - Майк Кон Дар бораи муаллиф: Рави Шанкар Раҷан менеҷери глобалии барномаи IT аз Мумбай (Ҳиндустон) мебошад. Блогери маъруф, шоири хайку, дӯстдори бостоншиносӣ ва таърих. Шумо метавонед бо ӯ дар Twitter , Medium , LinkedIn пайваст шавед
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION