JavaRush /Блоги Java /Random-TG /10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ сан...
Roman Beekeeper
Сатҳи

10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст

Дар гурӯҳ нашр шудааст
Салом ба ҳама, ҷомеаи JavaRush! 10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 1 Имрӯз мо дар бораи сифати code сӯҳбат хоҳем кард. Оре, бале, дустони азиз. Ҳеҷ кас комил нест. Ҳама рӯзе ба фаҳмиш меоянд, ки code метавонад беҳтар бошад... Аммо дар ин ҳолат чӣ бояд кард? Ҳадди ақал ба таҳқиқи ин масъала шурӯъ кунед. Азбаски шумо дар ин ҷо ҳастед, ин маънои онро дорад, ки мавзӯъ барои шумо ҷолиб аст, пас биёед биравем. Имрӯз мо роҳҳоеро тавсиф хоҳем кард, ки шумо метавонед codeи худро беҳтар ва тозатар созед. То ки дар оянда аз codeи кунунии худ шарм надоред!..)) Ҳамаи ин усулҳо ба барномасоз кӯмак мекунанд, ки барномасози хуб шавад.

1. Агар шумо хоҳед, ки рамзи худро такмил диҳед, рамзи ягон каси дигарро хонед

10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 2Агар шумо хоҳед, ки малакаҳои барномасозии худро ба таври назаррас такмил диҳед, шумо бояд ... codeи навиштаи дигар барномасозонро хонед. Шумо метавонед ба он бовар кунед, шумо наметавонед ба он бовар кунед. Аммо агар шумо таваккал кунед, ба шумо ваъда медиҳам, ки барои вақти шумо мукофоте хоҳад буд. Масалан, дар Habré нахонед, ки чӣ тавр HashMap, ArrayList, LinkedList ва ғайра кор мекунанд, балки рамзи онҳоро хонед ва худатон фаҳмед. Дар ин ҷо як рӯйхати дарсҳо барои хондан аст:
  1. HashMap саволи аз ҳама бештар дар мусоҳибаҳост. Шумо метавонед якчанд паррандагонро бо як санг кушед: рамзро фаҳмед ва дониши заруриро гиред.

  2. ArrayList ҳамон ҳолатест, ки бо HashMap. Дар он ҷо ягон чизи мураккаб вуҷуд надорад, аммо он воқеан ба хондан ва фаҳмидан меарзад.

  3. String як намунаи олӣ аст. Бифаҳмед, ки чаро он тағирнопазир аст.

  4. AtomicInteger синфи олӣ аст: он раванди чӣ гуна ба таври атомӣ иҷро кардани амалҳоро дар an objectҳои Integer тавсиф мекунад.

  5. Ва он гоҳ - ҳадди аққал ҳамаи синфҳо дар як саф ...)

Агар мо дар бораи чизи ҷиддӣ сухан ронем, албатта, хондани codeи Pivotal меарзад. Ин бачаҳо экосистемаи серталабтарин дар ҷаҳони Java навиштаанд. Рамзи онҳо бешубҳа сазовори хондан аст. Аз ин рӯ, ман ба шумо маслиҳат медиҳам, ки аз Spring Core оғоз кунед . Хондани codeи сарчашмаи ношинос кори душвор, вале хеле судбахш аст.)

2. Конвенсияҳои Кодексро риоя кунед - конвенсияҳо барои навиштани code

10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 3Конвенсияҳои рамзгузорӣ маҷмӯи дастурҳое мебошанд, ки аз ҷониби гурӯҳҳои таҳиякунанда таҳия шудаанд, ки дастурҳоро оид ба услуб ва усулҳои барномасозӣ барои ҳар як ҷанбаи code, ки дар дохor ширкат ё лоиҳаи мушаххас навишта шудаанд, дар бар мегиранд. Ин конвенсияҳо маъмулан ба ҳар як забони барномасозӣ хос буда, ташкor файлҳо, абзорҳо, шарҳҳо, эъломияҳо, операторҳо, фазои холӣ, конвенсияҳои номгузорӣ, усулҳо ва принсипҳои барномасозӣ, қоидаҳои барномасозӣ, таҷрибаҳои беҳтарини меъморӣ ва ғайраро фаро мегиранд. Бартарии асосии стандартҳои муайян дар он аст, ки рамзи якхела аст ва бо ҳамон услуб навишта шудааст. Ин онро бештар хондан мегардонад ва ба барномасозон дар фаҳмидани codeи навиштаи барномасози дигар кӯмак мекунад. Агар дар тамоми раванди таҳия стандартҳои рамзгузорӣ риоя ва пайваста татбиқ карда шаванд, нигоҳдорӣ ва васеъ кардани code, рефакторизатсияи он ва ҳалли низоъҳои ҳамгироӣ дар оянда осонтар мешавад. Конвенсияҳои рамзгузорӣ барои барномасозон бо як қатор сабабҳо муҳиманд:
  • 40-80% хароҷоти нармафзор барои нигоҳдории он сарф мешавад;
  • Муаллиф дар давоми ҳаёти худ қариб ягон нармафзорро нигоҳ медорад;
  • Конвенсияҳои code хониши нармафзорро беҳтар мекунанд ва ба барномасозон имкон медиҳанд, ки codeи навро зудтар дарк кунанд.
Рости гап, ман як мухлиси бузурги стандартҳои рамзгузорӣ ҳастам. Барои ман, сарф кардани вақт барои муҳокима ва баҳс дар бораи онҳо маъно дорад, зеро ин як кори арзишмандест, ки вақт ва кӯшиши шуморо дар оянда сарфа мекунад. Конвенсияҳои codeекс бояд зуд-зуд баррасӣ карда шаванд. Қоидаҳоро аз “ҳатмӣ” ба “ихтиёрӣ” ва баръакс тарҷума кардан мумкин аст. Агар баъзеи онҳо дуруст кор накунанд, онҳоро аз нав тарҳрезӣ кардан ё аз дастурҳо хориҷ кардан лозим аст.

3. Баррасии codeро истифода баред - баррасии code аз ҷониби дигарон

Баррасии code яке аз воситаҳои пурқувват барои такмил додани code мебошад. 10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 4Чаро? Зеро codeро хамон мутахассисоне, ки онро нанавиштаанд, дида мебароянд. Ва намуди тару тоза хеле муфид аст. Ва аксар вақт ин Шарҳи Code мебошад, ки аз навиштани рамзи даҳшатнок пешгирӣ мекунад. Ман медонам, ки ин на ҳамеша имконпазир аст, зеро шумо бояд шахси дигареро пайдо кунед, ки ин корро кардан мехоҳад. Аммо ин маънои онро надорад, ки ин асбоб арзанда нест. Баръакс: ин сабаби пайдо кардани одамони ҳамфикр аст, ки барои онҳо беҳтар кардани сифати code низ муҳим аст. Дар омади гап, кӣ шуморо манъ мекунад, ки онҳоро дар JavaRush дар ин ҷо пайдо кунед? Дар ҷое, ки ҳама мехоҳад барномасоз шавад.

4. Навиштани тестҳои воҳиди - санҷишҳои воҳиди

10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 5То ба ҳол усули дӯстдоштаи ман барои такмил додани code ин навиштани санҷишҳои воҳид мебошад. Гузашта аз ин, ҳар қадаре ки шумо онҳоро нависед, ҳамон қадар беҳтар аст. Дар барномасозии компютерӣ, санҷиши воҳид раванди таҳияи нармафзор аст, ки дар он хурдтарин қисми санҷишшавандаи codeи ибтидоӣ, ки воҳид номида мешавад, ба таври инфиродӣ ва мустақилона санҷида мешавад, то ки оё онҳо мувофиқи интизорӣ кор кунанд. Ин ба шумо кӯмак мекунад, ки нокомиҳо дар алгоритмҳо ва/ё мантиқро пеш аз баровардани code муайян кунед. Азбаски санҷиши воҳид сохтори мувофиқи codeи шуморо талаб мекунад, ин маънои онро дорад, ки code бояд ба функсияҳои хурдтар ва бештар нигаронидашуда тақсим карда шавад. Ҳар яки онҳо барои як амалиёти ягона дар маҷмӯи додаҳо масъуланд, на функсияҳои калон, ки як қатор амалҳои гуногунро иҷро мекунанд.(Чунон ки мегӯянд, салом аз Принсипи Ягона Масъулият ...) Фоидаи дуюми навиштани codeи хуб санҷидашуда он аст, ки шумо метавонед нокомиҳои ояндаро дар тағироти хурд ба функсияи вайронкунии codeи мавҷуда пешгирӣ кунед. Вақте ки нокомӣ рух медиҳад, санҷишҳои воҳид ба шумо мегӯянд, ки чизе нодуруст навишта шудааст. Дар назари аввал, сарфи вақти навиштани санҷишҳои воҳидҳо ҳангоми таҳия ба як хароҷоти иловагӣ ба назар мерасад. Бо вуҷуди ин, ин дар оянда вақтро сарфа мекунад, ки бояд барои ислоҳи хатоҳо сарф карда шавад. Ин бояд як раванди зина ба зина бошад. Аз ин рӯ, пеш равед ва суруд хонед - барои ҳама усулҳо ва синфҳо тестҳо нависед :D

5. Истифодаи асбобҳо барои беҳтар кардани сифати code

10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 6Ягон таҳиягаре нест, ки ҳеҷ гоҳ хато накунад. Одатан, компилятор масъалаҳои синтаксис ва арифметикиро ҳал мекунад ва пайгирии стекро мебарорад. Аммо то ҳол шояд баъзе мушкилоте вуҷуд дошта бошад, ки компилятор онҳоро ҳал намекунад. Масалан, талаботҳои нодуруст татбиқшуда, алгоритмҳои нодуруст, сохтори нодурусти code ё баъзе мушкилоти эҳтимолӣ, ки аз таҷриба ба ҷомеа маълуманд. Ягона роҳи дарёфти чунин хатогиҳо ин аст, ки аз як таҳиягари калон хоҳиш кунед, ки codeи худро аз назар гузаронад. Ин равиш як панацея нест ва каме тағир меёбад. Бо ҳар як таҳиягари нав дар даста, шумо бояд як ҷуфт чашми иловагӣ дошта бошед, ки ба рамзи ӯ нигоҳ мекунанд. Аммо хушбахтона, асбобҳои зиёде мавҷуданд, ки метавонанд ба шумо дар назорат кардани сифати codeи худ кӯмак расонанд. Ман дар кори худ дар лоиҳаҳои гуногун Checkstyle, PMD, FindBugs, SonarQube истифода кардам. Дигарон низ ҳастанд. Ҳамаи онҳо одатан барои таҳлor сифат ва тавлиди баъзе гузоришҳои муфид истифода мешаванд. Аксар вақт ин гузоришҳо аз ҷониби serverҳои пайвастаи ҳамгироӣ ба монанди Ҷенкинс нашр мешаванд.

6. Рамзи содда ва равшан нависед

10 роҳи такмил додани codeи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 7Ҳамеша рамзи оддӣ, равшан ва мантиқӣ нависед. Одамон майл доранд, ки рамзи мураккабро барои исботи қобorяти худ дар ин кор нависед. Рамзи оддӣ, вале мантиқӣ ҳамеша хуб кор мекунад, боиси кам шудани мушкилот мегардад ва васеътар аст. Рамзи хуб маънои ҳуҷҷатгузории беҳтарро дорад. Агар шумо дар бораи илова кардани шарҳ фикр кунед, аз худ бипурсед: " Чӣ тавр ман метавонам codeро такмил диҳам, то ин шарҳ лозим нашавад? "~ Стив МакКоннелл.

7. Ҳуҷҷатҳоро хонед

10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 8Яке аз одатҳои муҳими барномасозони хуб хондани ҳуҷҷатҳои зиёд аст. Бигзор он мушаххасот, JSR, ҳуҷҷатҳои API, дастурҳои дарсӣ ва ғайра бошад. Хондани ҳуҷҷатҳо ба шумо кӯмак мекунад, ки заминаи мустаҳкамеро, ки дар он беҳтарин барномарезӣ мекунед, бунёд кунед. Дар охир, вале муҳимтар аз ҳама, худро бо дигарон муқоиса накунед, муқоисаи худро бо дигарон танҳо ба эҳсосоти манфӣ ва рақобати носолим оварда мерасонад. Ҳар кимнинг кучли ва заиф томонлари бор. Аз ин рӯ, донистани онҳо ва кор кардан бо онҳо муҳим аст. Худро таҳлил кунед, ҷиҳатҳои тавонои худро номбар кунед ва дар болои онҳо кор кунед. Барномасозӣ шавқовар аст: аз он лаззат баред.

"Тағйирёбандаи як мард тағйирёбандаи дигар аст."

Алан Ҷ. Перлис

8. Ба блогерҳои ҷолиб пайравӣ кунед

10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 9Дар саросари ҷаҳон ҳазорҳо дӯстдорони ҳамон технологияҳо кор мекунанд ва дар бораи он менависанд. Блогҳоро аксар вақт худи барномасозон менависанд ва аксари онҳо андешаҳо ва таҷрибаи шахсиро мубодила мекунанд. Шумо метавонед дурнамои гуногуни як технологияро дар блогҳо бубинед. Шумо метавонед дар блогҳо ҳам технологияи хуб ва ҳам бадро бубинед. Ҳадди ақал мақолаҳоро дар бораи Habré JavaRush :D хонед, аз ҷумла ман. Блогҳои хубро пайгирӣ кунед ва дар бораи паёмҳо шарҳ диҳед, андешаи худро мубодила кунед.

9. Китобҳои махсусро хонед

10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 10Ҳеҷ чиз ҷои китоби хубро гирифта наметавонад. Китоби хуб мафҳумҳои асосиро ба таври соддатар таълим медиҳад ва ба an objectҳои ҷаҳони воқеӣ татбиқ мешавад. Муаллифони онҳо худи барномасозони бузурганд. Бо мутолиаи китоб шумо метавонед аз таҷрибаи дигарон омӯзед. Ман тавсия медиҳам, ки “Java. Барномасозии самаранок аз ҷониби Ҷошуа Блок. Ин китоб ҳафтоду ҳашт қоидаҳои ивазнашавандаи барномасозро пешниҳод мекунад: кор, беҳтарин ҳалли мушкилоти барномасозӣ, ки шумо ҳар рӯз дучор мешавед. Он дастурҳои амалӣ ва бонуфузеро дар бар мегирад, ки шумо метавонед барои навиштани барномаҳои муассир ва хуб тарҳрезишуда истифода баред. Агар шумо нав бо Java оғоз карда бошед ва таҷрибаи барномасозӣ надошта бошед, шумо метавонед Sams Teach Yourself Java 2-ро дар давоми 24 соат хонед. Ва барои навиштани рамзи тоза, китоби аълои "Кодекси тоза аз ҷониби Роберт Мартин" мавҷуд аст. Пас аз он, нисбат ба рамз «ҳисси зебоӣ» пайдо мешавад.

10. Код! Код! Код!

Фақат бо аз ёд кардани китоб барномасози хуб шуда наметавонед. 10 роҳи такмил додани рамзи худ, ки аз таҷрибаи шахсӣ санҷида шудааст - 11Дар бораи мафхумхои назариявй сухан рондан осон аст. Аммо шумо метавонед танҳо ҳангоми навиштани code маҳдудиятҳои забонро омӯзед ё таҷрибаҳои беҳтаринро таҳия кунед. Аз ин рӯ, барои барномасози хуб шудан, шумо бояд codeи зиёде нависед. Агар шумо навкор бошед, аз навиштани барномаҳо барои мушкилоти оддӣ, ба мисли силсилаи Фибоначӣ, палиндром, секунҷаи Паскал ва ғайра оғоз кунед ва сипас ба мушкилоти калонтаре, ба мисли дарахти ҷустуҷӯи дуӣ ва ғайра гузаред. Агар шумо платформаи онлайнро барои амалӣ кардани барномаҳои Java ҷустуҷӯ кунед, ба Coding Ground назар андозед . Ғайр аз он, шумо метавонед курси CS50- ро омӯзед , ки тарҷумаи онро ба мо "шумо медонед, ки кӣ" додааст: D

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

Касе, ки ҳеҷ кор намекунад, хато намекунад. Аз ин рӯ, мо бояд пурсабр бошем ва мисли Ҷопони меҳнатдӯст, мо малакаҳои рамзгузории худро сайқал диҳем. Барои ин, фаромӯш накунед:
  • рамзи ягон каси дигарро хонед;
  • Таҷдиди Кодексро иҷро кунед ва дархост кунед;
  • навиштани санҷишҳои воҳиди;
  • барои такмил додани code асбобҳоро истифода баред;
  • рамзи содда ва фаҳмо нависед;
  • ҳуҷҷатҳои онҳоеро, ки тавонистанд, хонед;
  • ба барномасозони ҷолиб пайравӣ кунед;
  • хондани китобҳои махсус;
  • Код! Код! Код!
  • ба Roman дар GitHub обуна шавед .

истинодҳои муфид

Бештар аз мақолаҳои ман

Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION