Баарына салам, JavaRush коомчулугу! Бүгүн биз codeдун сапаты жөнүндө сүйлөшөбүз. Ооба, ооба, кымбаттуу достор. Эч ким идеалдуу эмес. Ар бир адам качандыр бир убакта code жакшыраак болушу мүмкүн экенин түшүнөт ... Бирок бул кырдаалда эмне кылуу керек? Жок дегенде ушул маселени orктеп баштаңыз. Сиз бул жерде болгондуктан, бул тема сиз үчүн кызыктуу экенин билдирет, андыктан кетели. Бүгүн биз codeуңузду жакшыраак жана тазараак кылуунун жолдорун сүрөттөп беребиз. Келечекте азыркы codeуңуздан уялбай калбашы үчүн!..)) Бул ыкмалардын баары программистке жакшы программист болууга жардам берет.
Habré JavaRush :D боюнча, анын ичинде менин макалаларды окуңуз. Жакшы блогдорду ээрчип, постторго комментарий бериңиз, өз оюңуз менен бөлүшүңүз.
1. Эгер codeуңузду жакшырткыңыз келсе, башка бирөөнүн codeун окуп чыгыңыз
Эгерде сиз программалоо жөндөмүңүздү кескин өркүндөтүүнү кааласаңыз, анда сиз... башка программисттер жазган codeду окушуңуз керек. Буга ишенсе болот, ишене албайсың. Бирок тобокелге барсаң, убакытың үчүн сыйлык болот деп убада берем. Мисалы, Habréде HashMap, ArrayList, LinkedList жана башкалар кандайча иштээрин окубаңыз, бирок алардын codeун окуп, аны өзүңүз түшүнүңүз. Бул жерде окуу үчүн класстардын тизмеси:-
HashMap - интервьюларда эң көп берилүүчү суроо. Сиз бир таш менен бир нече канаттууларды өлтүрө аласыз: codeду түшүнүп, керектүү бorмди алыңыз.
-
ArrayList - бул HashMap менен бирдей. Ал жерде эч кандай татаал нерселер жок, бирок чындап эле окуп, түшүнүүгө арзырлык.
-
String сонун үлгү болуп саналат. Эмне үчүн өзгөрүлбөс экенин түшүнүңүз.
-
AtomicInteger - сонун класс: ал Integer an objectилери боюнча операцияларды атомдук түрдө аткаруу процессин сүрөттөйт.
-
Анан - жок дегенде бардык класстар катары менен...)
2. Code Conventions - code жазуу үчүн конвенцияларды аткарыңыз
Коддоо конвенциялары - бул компаниянын же белгилүү бир долбоордун ичинде жазылган codeдун ар бир аспектиси үчүн программалоо стor жана ыкмалары боюнча көрсөтмөлөрдү камтыган иштеп чыгуу топтору тарабынан иштелип чыккан көрсөтмөлөрдүн жыйындысы. Бул конвенциялар адатта ар бир программалоо тorне мүнөздүү жана файлды уюштурууну, чегинүүнү, комментарийлерди, декларацияларды, операторлорду, боштуктарды, атоо конвенцияларын, программалоо ыкмаларын жана принциптерин, программалоо эрежелерин, архитектуралык мыкты тажрыйбаларды ж.б. камтыйт. Айрым стандарттардын негизги артыкчылыгы мына code окшош көрүнөт жана ошол эле стилде жазылган. Бул аны окумдуураак кылат жана программисттерге башка программист жазган codeду түшүнүүгө жардам берет. Эгерде codeдоо стандарттары сакталса жана иштеп чыгуу процессинде ырааттуу колдонулса, келечекте codeду сактоо жана кеңейтүү, аны рефакторлоо жана интеграциялык конфликттерди чечүү оңой болот. Коддоо конвенциялары бир нече себептерден улам программисттер үчүн маанилүү:- Программалык камсыздоонун наркынын 40%-80% аны тейлөөгө жумшалат;
- дээрлик эч кандай программалык камсыздоо анын өмүр бою жазуучу тарабынан колдоого алынат;
- Код конвенциялары программанын окулушун жакшыртат, бул программисттерге жаңы codeду тезирээк түшүнүүгө мүмкүндүк берет.
3. Кодду карап чыгууну колдонуңуз - codeду башкалар тарабынан карап чыгуу
Кодду карап чыгуу - codeду жакшыртуу үчүн эң күчтүү куралдардын бири. Неге? Анткени codeду жазбаган адистер карайт. Жана жаңы көрүнүш абдан пайдалуу. Жана көбүнчө Code Review ачык эле коркунучтуу codeду жазууга жол бербөөгө жардам берет. Бул дайыма эле мүмкүн боло бербестигин билем, анткени сиз муну каалаган башка адамды табышыңыз керек. Бирок бул бул куралды колдонуунун кереги жок дегенди билдирбейт. Тескерисинче, бул codeдун сапатын жакшыртуу үчүн маанилүү болгон пикирлеш адамдарды табуу үчүн негиз болуп саналат. Айтмакчы, аларды JavaRushтан табууга ким тыюу салат? Ар бир адам программист болгусу келген жерде.4. Write Unit Tests – бирдик тесттерин жазыңыз
Кодду өркүндөтүүнүн эң жакшы көргөн ыкмасы бул бирдик тесттерин жазуу. Анын үстүнө, аларды канчалык көп жазсаңыз, ошончолук жакшы. Компьютердик программалоодо бирдикти тестирлөө бул программалык камсыздоону иштеп чыгуу процесси, мында бирдик деп аталган баштапкы codeдун эң кичинекей сыналуучу бөлүгү алардын күтүлгөндөй иштешин текшерүү үчүн жекече жана өз алдынча текшерилет. Бул codeду чыгаруудан мурун алгоритмдердеги жана/же логикадагы каталарды аныктоого жардам берет. Бирдикти тестирлөө сиздин codeуңуздун тиешелүү түзүмүн талап кылгандыктан, бул code кичинекей жана көбүрөөк багытталган функцияларга бөлүнүшү керек дегенди билдирет. Алардын ар бири бир катар ар кандай операцияларды аткарган чоң функцияларга караганда, маалымат жыйындысы боюнча бир операция үчүн жооп берет.(Алар айткандай, Бирдиктүү жоопкерчorк принцибинен салам ...) Жакшы текшерилген code жазуунун экинчи пайдасы сиз учурдагы codeду бузуу функционалына кичине өзгөртүүлөрдү киргизүүдө келечектеги каталарды алдын ала аласыз. Качан ката пайда болгондо, бирдик тесттери бир нерсе туура эмес жазылганын айтып берет. Бир караганда, иштеп чыгуу учурунда бирдик тесттерин жазууга убакыт коротуу кошумча чыгымдай сезилет. Бирок, бул келечекте убакытты үнөмдөйт, аны оңдоого сарптоого туура келет. Бул этап-этабы менен жүргүзүлүшү керек. Андыктан, ырдап бериңиз - бардык методдор жана класстар үчүн тесттерди жазыңыз :D5. Коддун сапатын жакшыртуу үчүн куралдарды колдонуңуз
Эч качан ката кетирбеген иштеп чыгуучу жок. Адатта компилятор синтаксис жана арифметикалык маселелерди кармап, стек изин чыгарат. Бирок компилятор кармай албаган кээ бир көйгөйлөр дагы деле болушу мүмкүн. Мисалы, туура эмес ишке ашырылган талаптар, туура эмес алгоритмдер, туура эмес code структурасы же коомчулукка тажрыйбадан белгилүү болгон потенциалдуу көйгөйлөр. Мындай каталарды кармоонун бирден-бир жолу - улук иштеп чыгуучудан codeуңузду карап чыгууну сурануу. Бул ыкма панацея эмес жана бир аз өзгөрөт. Командадагы ар бир жаңы иштеп чыгуучу менен анын codeун караган кошумча эки көзүңүз болушу керек. Бирок, бактыга жараша, codeуңуздун сапатын көзөмөлдөөгө жардам бере турган көптөгөн куралдар бар. Мен ар кандай долбоорлордо иштөөдө Checkstyle, PMD, FindBugs, SonarQube колдондум. Башкалар да бар. Алардын баары сапатты талдоо жана кээ бир пайдалуу отчетторду түзүү үчүн колдонулат. Көбүнчө бул отчеттор Дженкинс сыяктуу үзгүлтүксүз интеграция serverлери тарабынан чыгарылат.6. Жөнөкөй жана түшүнүктүү codeду жазыңыз
Ар дайым жөнөкөй, түшүнүктүү жана логикалык codeду жазыңыз. Адамдар муну жасоо жөндөмүн далилдөө үчүн татаал code жазууга умтулушат. Жөнөкөй, бирок логикалык code дайыма жакшы иштейт, азыраак көйгөйлөргө алып келет жана кеңейет. Жакшы code жакшыраак documentтерди билдирет. Эгерде сиз комментарий кошууну ойлонуп жатсаңыз, өзүңүздөн сураңыз: “ Бул комментарийдин кереги жок болушу үчүн codeду кантип жакшыртсам болот? " ~ Стив МакКоннелл.7. Документти окуп чыгыңыз
Жакшы программисттердин маанилүү адаттарынын бири - көп documentтерди окуу. Бул спецификациялар, JSR, API documentтери, окуу куралдары ж.б. болсун. Документтерди окуу сиз эң жакшы программалаган күчтүү пайдубалды түзүүгө жардам берет. Акырында айта кетчү нерсе, өзүңүздү башкалар менен салыштырбаңыз.Өзүңүздү башкалар менен салыштыруу терс сезимдерди жана ден соолукка зыяндуу атаандаштыкты гана алып келет. Ар бир адамдын өзүнүн күчтүү жана алсыз жактары бар. Ошондуктан, аларды билүү жана алар менен иштөө маанилүү. Өзүңүздү талдап, күчтүү жактарыңызды тизмектеп, алардын үстүндө иштеңиз. Программалоо чындап кызыктуу: андан ырахат алыңыз."Бир адамдын туруктуусу башка адамдын өзгөрмөлүүлүгү."
8. Кызыктуу блоггерлерди ээрчиңиз
Дүйнө жүзү боюнча миңдеген энтузиасттар ошол эле технологиялардын үстүндө иштеп жана алар жөнүндө жазып жатышат. Блогдорду көбүнчө программисттер өздөрү жазышат жана алардын көбү жеке пикири жана тажрыйбасы менен бөлүшөт. Блогдордон бир эле технологиянын ар кандай көз караштарын көрө аласыз. Блогдордон жакшы да, жаман да технологияны көрө аласыз. Жок дегенде,9. Атайын китептерди оку
Жакшы китепти эч нерсе алмаштыра алbyte. Жакшы китеп негизги түшүнүктөрдү бир топ жөнөкөй жол менен үйрөтөт жана реалдуу дүйнө an objectилерине колдонулат. Алардын авторлору улуу программисттер. Китеп окуу менен сиз башкалардын тажрыйбасынан үйрөнө аласыз. Мен “Java. Натыйжалуу программалоо Жошуа Блох тарабынан. Бул китеп программисттин алмаштырылгыс жетимиш сегиз эрежесин сунуштайт: сиз күн сайын туш болгон программалоо көйгөйлөрү үчүн иштөө, мыкты чечимдер. Ал натыйжалуу, жакшы иштелип чыккан программаларды жазуу үчүн колдоно турган эң практикалык, авторитеттүү көрсөтмөлөрдү камтыйт. Эгер сиз Java менен жаңыдан баштап жатсаңыз жана программалоо тажрыйбасы жок болсо, анда Sams Teach Yourself Java 2ди 24 сааттын ичинде окугуңуз келет. Ал эми таза codeду жазуу үчүн "Таза code Роберт Мартиндин" сонун китеби бар. Андан кийин codeго карата "сулуулук сезими" пайда болот.10. Code! Code! Code!
Китеп жаттоо менен эле жакшы программист боло албайсың. Теориялык түшүнүктөр жөнүндө айтуу оңой. Бирок сиз code жазганда тил чектөөлөрүн үйрөнө аласыз же мыкты тажрыйбаларды иштеп чыга аласыз. Ошондуктан, жакшы программист болуу үчүн көп code жазуу керек. Эгерде сиз башталгыч болсоңуз, Fibonacci сериясы, палиндром, Паскаль үч бурчтугу ж. Coding Ground караңыз . Мындан тышкары, сиз CS50 курсун ала аласыз , анын котормосу бизге "сен кимди билесиң" тарабынан берилген: DЖыйынтыктап көрөлү
Эч нерсе кылбаган адам ката кетирбейт. Ошондуктан, биз чыдамкай болушубуз керек жана эмгекчил жапондордой болуп, codeдоо жөндөмүбүздү өркүндөтүшүбүз керек. Бул үчүн, унутпа:- бирөөнүн codeун окуу;
- Кодду кайра кароону жүргүзүү жана талап кылуу;
- бирдик тесттерин жазуу;
- codeду жакшыртуу үчүн куралдарды колдонуу;
- жөнөкөй жана түшүнүктүү code жазуу;
- мүмкүн болгондордун documentтерин окуу;
- кызыктуу программисттерди ээрчүү;
- атайын китептерди окуу;
- Code! Code! Code!
- GitHub боюнча Римге жазылыңыз .
пайдалуу шилтемелер
- Программалоо жөндөмүңүздү өркүндөтүүнүн 10 жолу
- Программалоо жөндөмүңүздү өркүндөтүүнүн бир оңой жолу - башка адамдардын codeун окуу
- Java codeунун сапатын жакшыртуу үчүн 11 мыкты тажрыйба жана куралдар
- Java программалоо жөндөмүн кантип жакшыртуу керек
- Жакшыраак Java иштеп чыгуучусу болуу үчүн 10 кеңеш
Менин макалаларымдын көбүрөөк
- Intellij IDEAдагы мүчүлүштүктөрдү оңдоо: үйрөнчүктөр үчүн колдонмо
- Skyscanner API үчүн кардар түзүү жана аны jCenter жана Maven Centralда жарыялоо боюнча колдонмо [1-бөлүк]
- Авиа билеттерине баа мониторинг системасын түзүү: кадам-кадам колдонмо [1-бөлүк]
- Кароол: эмне, кантип, кайда жана эмне менен? Кантип интервью тести ачык булак китепканасына айланган
- Ийгorктин тарыхы. Жумасына 20 саат программалоо, магистр даражасы жана жеке жашоо
- Кантип жумуш тапса болот? Резюме жөнөтүү боюнча кеңештер
GO TO FULL VERSION