Салом ба ҳама, ҷомеаи JavaRush! Имрӯз мо дар бораи сифати code сӯҳбат хоҳем кард. Оре, бале, дустони азиз. Ҳеҷ кас комил нест. Ҳама рӯзе ба фаҳмиш меоянд, ки code метавонад беҳтар бошад... Аммо дар ин ҳолат чӣ бояд кард? Ҳадди ақал ба таҳқиқи ин масъала шурӯъ кунед. Азбаски шумо дар ин ҷо ҳастед, ин маънои онро дорад, ки мавзӯъ барои шумо ҷолиб аст, пас биёед биравем. Имрӯз мо роҳҳоеро тавсиф хоҳем кард, ки шумо метавонед codeи худро беҳтар ва тозатар созед. То ки дар оянда аз codeи кунунии худ шарм надоред!..)) Ҳамаи ин усулҳо ба барномасоз кӯмак мекунанд, ки барномасози хуб шавад.
Habré JavaRush :D хонед, аз ҷумла ман. Блогҳои хубро пайгирӣ кунед ва дар бораи паёмҳо шарҳ диҳед, андешаи худро мубодила кунед.
1. Агар шумо хоҳед, ки рамзи худро такмил диҳед, рамзи ягон каси дигарро хонед
Агар шумо хоҳед, ки малакаҳои барномасозии худро ба таври назаррас такмил диҳед, шумо бояд ... codeи навиштаи дигар барномасозонро хонед. Шумо метавонед ба он бовар кунед, шумо наметавонед ба он бовар кунед. Аммо агар шумо таваккал кунед, ба шумо ваъда медиҳам, ки барои вақти шумо мукофоте хоҳад буд. Масалан, дар Habré нахонед, ки чӣ тавр HashMap, ArrayList, LinkedList ва ғайра кор мекунанд, балки рамзи онҳоро хонед ва худатон фаҳмед. Дар ин ҷо як рӯйхати дарсҳо барои хондан аст:-
HashMap саволи аз ҳама бештар дар мусоҳибаҳост. Шумо метавонед якчанд паррандагонро бо як санг кушед: рамзро фаҳмед ва дониши заруриро гиред.
-
ArrayList ҳамон ҳолатест, ки бо HashMap. Дар он ҷо ягон чизи мураккаб вуҷуд надорад, аммо он воқеан ба хондан ва фаҳмидан меарзад.
-
String як намунаи олӣ аст. Бифаҳмед, ки чаро он тағирнопазир аст.
-
AtomicInteger синфи олӣ аст: он раванди чӣ гуна ба таври атомӣ иҷро кардани амалҳоро дар an objectҳои Integer тавсиф мекунад.
-
Ва он гоҳ - ҳадди аққал ҳамаи синфҳо дар як саф ...)
2. Конвенсияҳои Кодексро риоя кунед - конвенсияҳо барои навиштани code
Конвенсияҳои рамзгузорӣ маҷмӯи дастурҳое мебошанд, ки аз ҷониби гурӯҳҳои таҳиякунанда таҳия шудаанд, ки дастурҳоро оид ба услуб ва усулҳои барномасозӣ барои ҳар як ҷанбаи code, ки дар дохor ширкат ё лоиҳаи мушаххас навишта шудаанд, дар бар мегиранд. Ин конвенсияҳо маъмулан ба ҳар як забони барномасозӣ хос буда, ташкor файлҳо, абзорҳо, шарҳҳо, эъломияҳо, операторҳо, фазои холӣ, конвенсияҳои номгузорӣ, усулҳо ва принсипҳои барномасозӣ, қоидаҳои барномасозӣ, таҷрибаҳои беҳтарини меъморӣ ва ғайраро фаро мегиранд. Бартарии асосии стандартҳои муайян дар он аст, ки рамзи якхела аст ва бо ҳамон услуб навишта шудааст. Ин онро бештар хондан мегардонад ва ба барномасозон дар фаҳмидани codeи навиштаи барномасози дигар кӯмак мекунад. Агар дар тамоми раванди таҳия стандартҳои рамзгузорӣ риоя ва пайваста татбиқ карда шаванд, нигоҳдорӣ ва васеъ кардани code, рефакторизатсияи он ва ҳалли низоъҳои ҳамгироӣ дар оянда осонтар мешавад. Конвенсияҳои рамзгузорӣ барои барномасозон бо як қатор сабабҳо муҳиманд:- 40-80% хароҷоти нармафзор барои нигоҳдории он сарф мешавад;
- Муаллиф дар давоми ҳаёти худ қариб ягон нармафзорро нигоҳ медорад;
- Конвенсияҳои code хониши нармафзорро беҳтар мекунанд ва ба барномасозон имкон медиҳанд, ки codeи навро зудтар дарк кунанд.
3. Баррасии codeро истифода баред - баррасии code аз ҷониби дигарон
Баррасии code яке аз воситаҳои пурқувват барои такмил додани code мебошад. Чаро? Зеро codeро хамон мутахассисоне, ки онро нанавиштаанд, дида мебароянд. Ва намуди тару тоза хеле муфид аст. Ва аксар вақт ин Шарҳи Code мебошад, ки аз навиштани рамзи даҳшатнок пешгирӣ мекунад. Ман медонам, ки ин на ҳамеша имконпазир аст, зеро шумо бояд шахси дигареро пайдо кунед, ки ин корро кардан мехоҳад. Аммо ин маънои онро надорад, ки ин асбоб арзанда нест. Баръакс: ин сабаби пайдо кардани одамони ҳамфикр аст, ки барои онҳо беҳтар кардани сифати code низ муҳим аст. Дар омади гап, кӣ шуморо манъ мекунад, ки онҳоро дар JavaRush дар ин ҷо пайдо кунед? Дар ҷое, ки ҳама мехоҳад барномасоз шавад.4. Навиштани тестҳои воҳиди - санҷишҳои воҳиди
То ба ҳол усули дӯстдоштаи ман барои такмил додани code ин навиштани санҷишҳои воҳид мебошад. Гузашта аз ин, ҳар қадаре ки шумо онҳоро нависед, ҳамон қадар беҳтар аст. Дар барномасозии компютерӣ, санҷиши воҳид раванди таҳияи нармафзор аст, ки дар он хурдтарин қисми санҷишшавандаи codeи ибтидоӣ, ки воҳид номида мешавад, ба таври инфиродӣ ва мустақилона санҷида мешавад, то ки оё онҳо мувофиқи интизорӣ кор кунанд. Ин ба шумо кӯмак мекунад, ки нокомиҳо дар алгоритмҳо ва/ё мантиқро пеш аз баровардани code муайян кунед. Азбаски санҷиши воҳид сохтори мувофиқи codeи шуморо талаб мекунад, ин маънои онро дорад, ки code бояд ба функсияҳои хурдтар ва бештар нигаронидашуда тақсим карда шавад. Ҳар яки онҳо барои як амалиёти ягона дар маҷмӯи додаҳо масъуланд, на функсияҳои калон, ки як қатор амалҳои гуногунро иҷро мекунанд.(Чунон ки мегӯянд, салом аз Принсипи Ягона Масъулият ...) Фоидаи дуюми навиштани codeи хуб санҷидашуда он аст, ки шумо метавонед нокомиҳои ояндаро дар тағироти хурд ба функсияи вайронкунии codeи мавҷуда пешгирӣ кунед. Вақте ки нокомӣ рух медиҳад, санҷишҳои воҳид ба шумо мегӯянд, ки чизе нодуруст навишта шудааст. Дар назари аввал, сарфи вақти навиштани санҷишҳои воҳидҳо ҳангоми таҳия ба як хароҷоти иловагӣ ба назар мерасад. Бо вуҷуди ин, ин дар оянда вақтро сарфа мекунад, ки бояд барои ислоҳи хатоҳо сарф карда шавад. Ин бояд як раванди зина ба зина бошад. Аз ин рӯ, пеш равед ва суруд хонед - барои ҳама усулҳо ва синфҳо тестҳо нависед :D5. Истифодаи асбобҳо барои беҳтар кардани сифати code
Ягон таҳиягаре нест, ки ҳеҷ гоҳ хато накунад. Одатан, компилятор масъалаҳои синтаксис ва арифметикиро ҳал мекунад ва пайгирии стекро мебарорад. Аммо то ҳол шояд баъзе мушкилоте вуҷуд дошта бошад, ки компилятор онҳоро ҳал намекунад. Масалан, талаботҳои нодуруст татбиқшуда, алгоритмҳои нодуруст, сохтори нодурусти code ё баъзе мушкилоти эҳтимолӣ, ки аз таҷриба ба ҷомеа маълуманд. Ягона роҳи дарёфти чунин хатогиҳо ин аст, ки аз як таҳиягари калон хоҳиш кунед, ки codeи худро аз назар гузаронад. Ин равиш як панацея нест ва каме тағир меёбад. Бо ҳар як таҳиягари нав дар даста, шумо бояд як ҷуфт чашми иловагӣ дошта бошед, ки ба рамзи ӯ нигоҳ мекунанд. Аммо хушбахтона, асбобҳои зиёде мавҷуданд, ки метавонанд ба шумо дар назорат кардани сифати codeи худ кӯмак расонанд. Ман дар кори худ дар лоиҳаҳои гуногун Checkstyle, PMD, FindBugs, SonarQube истифода кардам. Дигарон низ ҳастанд. Ҳамаи онҳо одатан барои таҳлor сифат ва тавлиди баъзе гузоришҳои муфид истифода мешаванд. Аксар вақт ин гузоришҳо аз ҷониби serverҳои пайвастаи ҳамгироӣ ба монанди Ҷенкинс нашр мешаванд.6. Рамзи содда ва равшан нависед
Ҳамеша рамзи оддӣ, равшан ва мантиқӣ нависед. Одамон майл доранд, ки рамзи мураккабро барои исботи қобorяти худ дар ин кор нависед. Рамзи оддӣ, вале мантиқӣ ҳамеша хуб кор мекунад, боиси кам шудани мушкилот мегардад ва васеътар аст. Рамзи хуб маънои ҳуҷҷатгузории беҳтарро дорад. Агар шумо дар бораи илова кардани шарҳ фикр кунед, аз худ бипурсед: " Чӣ тавр ман метавонам codeро такмил диҳам, то ин шарҳ лозим нашавад? "~ Стив МакКоннелл.7. Ҳуҷҷатҳоро хонед
Яке аз одатҳои муҳими барномасозони хуб хондани ҳуҷҷатҳои зиёд аст. Бигзор он мушаххасот, JSR, ҳуҷҷатҳои API, дастурҳои дарсӣ ва ғайра бошад. Хондани ҳуҷҷатҳо ба шумо кӯмак мекунад, ки заминаи мустаҳкамеро, ки дар он беҳтарин барномарезӣ мекунед, бунёд кунед. Дар охир, вале муҳимтар аз ҳама, худро бо дигарон муқоиса накунед, муқоисаи худро бо дигарон танҳо ба эҳсосоти манфӣ ва рақобати носолим оварда мерасонад. Ҳар кимнинг кучли ва заиф томонлари бор. Аз ин рӯ, донистани онҳо ва кор кардан бо онҳо муҳим аст. Худро таҳлил кунед, ҷиҳатҳои тавонои худро номбар кунед ва дар болои онҳо кор кунед. Барномасозӣ шавқовар аст: аз он лаззат баред."Тағйирёбандаи як мард тағйирёбандаи дигар аст."
8. Ба блогерҳои ҷолиб пайравӣ кунед
Дар саросари ҷаҳон ҳазорҳо дӯстдорони ҳамон технологияҳо кор мекунанд ва дар бораи он менависанд. Блогҳоро аксар вақт худи барномасозон менависанд ва аксари онҳо андешаҳо ва таҷрибаи шахсиро мубодила мекунанд. Шумо метавонед дурнамои гуногуни як технологияро дар блогҳо бубинед. Шумо метавонед дар блогҳо ҳам технологияи хуб ва ҳам бадро бубинед. Ҳадди ақал мақолаҳоро дар бораи9. Китобҳои махсусро хонед
Ҳеҷ чиз ҷои китоби хубро гирифта наметавонад. Китоби хуб мафҳумҳои асосиро ба таври соддатар таълим медиҳад ва ба an objectҳои ҷаҳони воқеӣ татбиқ мешавад. Муаллифони онҳо худи барномасозони бузурганд. Бо мутолиаи китоб шумо метавонед аз таҷрибаи дигарон омӯзед. Ман тавсия медиҳам, ки “Java. Барномасозии самаранок аз ҷониби Ҷошуа Блок. Ин китоб ҳафтоду ҳашт қоидаҳои ивазнашавандаи барномасозро пешниҳод мекунад: кор, беҳтарин ҳалли мушкилоти барномасозӣ, ки шумо ҳар рӯз дучор мешавед. Он дастурҳои амалӣ ва бонуфузеро дар бар мегирад, ки шумо метавонед барои навиштани барномаҳои муассир ва хуб тарҳрезишуда истифода баред. Агар шумо нав бо Java оғоз карда бошед ва таҷрибаи барномасозӣ надошта бошед, шумо метавонед Sams Teach Yourself Java 2-ро дар давоми 24 соат хонед. Ва барои навиштани рамзи тоза, китоби аълои "Кодекси тоза аз ҷониби Роберт Мартин" мавҷуд аст. Пас аз он, нисбат ба рамз «ҳисси зебоӣ» пайдо мешавад.10. Код! Код! Код!
Фақат бо аз ёд кардани китоб барномасози хуб шуда наметавонед. Дар бораи мафхумхои назариявй сухан рондан осон аст. Аммо шумо метавонед танҳо ҳангоми навиштани code маҳдудиятҳои забонро омӯзед ё таҷрибаҳои беҳтаринро таҳия кунед. Аз ин рӯ, барои барномасози хуб шудан, шумо бояд codeи зиёде нависед. Агар шумо навкор бошед, аз навиштани барномаҳо барои мушкилоти оддӣ, ба мисли силсилаи Фибоначӣ, палиндром, секунҷаи Паскал ва ғайра оғоз кунед ва сипас ба мушкилоти калонтаре, ба мисли дарахти ҷустуҷӯи дуӣ ва ғайра гузаред. Агар шумо платформаи онлайнро барои амалӣ кардани барномаҳои Java ҷустуҷӯ кунед, ба Coding Ground назар андозед . Ғайр аз он, шумо метавонед курси CS50- ро омӯзед , ки тарҷумаи онро ба мо "шумо медонед, ки кӣ" додааст: DБиёед онро чамъбаст кунем
Касе, ки ҳеҷ кор намекунад, хато намекунад. Аз ин рӯ, мо бояд пурсабр бошем ва мисли Ҷопони меҳнатдӯст, мо малакаҳои рамзгузории худро сайқал диҳем. Барои ин, фаромӯш накунед:- рамзи ягон каси дигарро хонед;
- Таҷдиди Кодексро иҷро кунед ва дархост кунед;
- навиштани санҷишҳои воҳиди;
- барои такмил додани code асбобҳоро истифода баред;
- рамзи содда ва фаҳмо нависед;
- ҳуҷҷатҳои онҳоеро, ки тавонистанд, хонед;
- ба барномасозони ҷолиб пайравӣ кунед;
- хондани китобҳои махсус;
- Код! Код! Код!
- ба Roman дар GitHub обуна шавед .
истинодҳои муфид
- 10 Роҳҳои такмил додани малакаҳои барномасозии шумо
- Як роҳи осони такмил додани малакаҳои барномасозии шумо ин хондани рамзи одамони дигар аст
- 11 Таҷриба ва асбобҳои беҳтарин барои беҳтар кардани сифати codeи Java
- Чӣ тавр такмил додани маҳорати барномасозии Java
- 10 Маслиҳат барои табдил додани таҳиягари беҳтари Java
Бештар аз мақолаҳои ман
- Debug дар Intellij IDEA: дастур барои шурӯъкунандагон
- Дастур барои эҷоди муштарӣ барои API Skyscanner ва нашри он дар jCenter ва Maven Central [Қисми 1]
- Таъсиси системаи мониторинги нархи чиптаҳои ҳавопаймо: дастури қадам ба қадам [Қисми 1]
- Сабзӣ: чӣ, чӣ тавр, дар куҷо ва бо чӣ? Чӣ тавр санҷиши мусоҳиба ба китобхонаи кушодаасос табдил ёфт
- Таърихи муваффақият. 20 соат барномасозӣ дар як ҳафта, дараҷаи магистрӣ ва ҳаёти шахсӣ
- Чӣ тавр пайдо кардани кор? Маслиҳатҳо барои фиристодани резюме
GO TO FULL VERSION