Баарына салам, JavaRush коомчулугу! Өзүм жөнүндө бир аз: Мен 2016-жылдын жазынан бери Java программалык камсыздоо инженери болуп иштеп келем. Мен бул жакка келип, окуу учурунда чечпеген маселелерди чечкенди жакшы көрөм. Бүгүн мен сизге китепкана жөнүндө айтып берем - Сүрөттөрдү салыштыруу . Бул GitHubда жалпыга жеткorктүү болгон ачык булак китепканасы . Бул макаланын максаты ачык булак продуктуну түзүү жөн гана убакытты текке кетирүү эмес экенин билдирүү болуп саналат, жок! Бул ар кайсы тараптан алынган бай тажрыйба, сиз бүтүндөй өнүгүү процессин көзөмөлдөп, ар бир майда-чүйдөсүнө чейин изилдешиңиз керек болгондо. Open Source - бул сизди курчап турган дүйнө. Тамашалап жатканым жок, бул китепкана иштеп турганда мен АКШ, Индия, Кытай, Египет, Россия, Германия, Украина, Швеция, Жаңы Зеландия, Норвегия сыяктуу ар кайсы өлкөлөрдөн келген адамдар менен баарлаштым. Башкача айтканда, бул биргелешип иштеп чыгуу, компромисстерди табуу, codeду текшерүү жана башкалар боюнча реалдуу тажрыйба. Бул киришүү болчу, эми ирети менен баштайлы:
Экинчи сүрөт бар:
Төмөндө көрсөтүлгөндөй айырмачылыктарды таап, аларды тегеректөө керек болчу:
Көрүнүп тургандай, Колдонуучунун аты талаасында айырма бар , ал кызыл үч бурчтук менен курчалган. Милдеттин кеңири сүрөттөлүшү . Мен муну функционалдык көз караштан эле туура эмес, уятка калтырбоо үчүн кооз кылгым келет деп чечтим. Бул үчүн, мен муну GitHub боюнча долбоор катары жарыялоону чечтим . Мен көптөн бери GitHub изилдеп, аны менен иштөө тажрыйбасын алгым келет. Тез карап чыккандан кийин, мен codeдун сапатын талдоо, тесттер менен codeдун камтылышын түзүү үчүн үчүнчү тараптын кызматтарын кошуу жакшы болорун таптым. Төмөнкү куралдар кошулду:
Мен ал кезде жаш болчумун жана ачык булак коомчулугу менен тааныш эмес болчумун жана мындай сунуштун өзү мен үчүн жапайы болуп, мен сурадым, ал эмне үчүн мындай кылып жатат? Ал мындай деп жооп берди: "Lolz oh, жөн гана мен ачык булак долбоорлоруна салым кошууну жакшы көрөм. Жашоо максаттарынын түрү..." ( маселе бул жерде ). Мен биринчи жолу ар кандай адамдар ачык булак долбоорлору аркылуу сизди таап, ушундай кызыктуу нерселерди сунуш кылганы кандай сонун экенин сездим!
Сыноо. 2017-жылдын август айынын башы
Мунун баары мен компаниялардын бирине интервью алганымдан башталды, анда биринчи кадам тесттик тапшырма жазуу болду. Тапшырма бирдей өлчөмдөгү эки сүрөттү салыштырып, алардын ортосундагы айырмачылыктарды таап, аларды топтоп, айланасына тик бурчтук тартуучу code жазуу болчу. Биринчи сүрөт бар:-
Codacy - codeдун сапаты. Бул чындап көңүл бурууга арзырлык.
-
Travis CI - бул CI (үзгүлтүксүз интеграция) куралы, ал долбоорду курат, тесттерди өткөрөт жана долбоордун ийгorктүү курулганын айтып берет. Мисалы, жаңы өзгөрүүлөрдүн натыйжасында сыноолордун бири өтпөй калса, анда ал долбоордун түзүлүшү ийгorксиз болгонун айтып, аны кызыл түскө боёйт.
-
Комбинезон - бул сиздин codeуңуздун канча пайызы тесттер менен камтылганын көрсөтүүчү курал.
-
BetterCode Hub - codeдун сапатын талдоо үчүн дагы бир курал. Бул абдан пайдалуу нерсе, ал сизге эмне жаман экенин айтып гана койбостон, эмне үчүн сүрөттөлөт жана ал жөнүндө бorм ала турган китепке шилтеме берет.
Китепкана жолу. 2018-жылдын июль айы
Логотип
Бир убакта адамдар менин долбоорго көп барарын байкадым жана бул күн сайын болуп турат. Мени буга таң калдым, андан бетер таң калдым, бир жылдай убакыт өткөндөн кийин ЧЫГАРЫЛЫШЫ пайда болуп, анда кандайдыр бир графикалык дизайнер менин долбоорум үчүн логотип жасоону сунуштап жаткандыгы жазылган. Алар муну Opensource өнүмдөрү үчүн жасаганды жакшы көрөт жана муну таптакыр бекер кылат дешет. Биз кызматташа баштадык. Бир нече варианттар сунушталды, бирок акыры биз муну чечтик:Биринчи тараптын кемчorги
Кытайдан келген бир иштеп чыгуучу мен үчүн маселени жаратканын байкадым , анда ал китепкананын ишинде кемчorк тапканын, эгер чоң сүрөттөрдү колдонсоңуз, StackOverflowError аласыз . Эркек пайдаланууну чечти жана ката тапты. А мен аны жөн эле тапкан жокмун. жана ал жөнүндө да жазган. Бул китепкананы өнүктүрүүдөгү жаңы кадам. Анын үстүнө, мен чындап эле чечим болгон эмес. Белгилүү бир учурда Россиядан келген тестиерлердин бири чечимди сунуштады. Бирок ал чийки болчу, туура эмес жасалгандыктан мен кабыл алган жокмун. Ал эми Maven Central китепканасын чыгарууга убакыт келгенде, бул кемчorк менен бир нерсени чечүү керек болчу; мен аны менен бирге чыгаргым келген жок. Мындан тышкары, мен эч качан оңдобогон дагы бир кемчorк бар жана ал дагы бир топ ыңгайсыздыктарды алып келди.Буйрук сабын колдонуу. Күз 2018
Өнүктүрүүнүн кийинки этабы китепкананы буйрук сабы аркылуу колдонууну каалаган швед (Ренато Атайдес) менен баарлашуу болду жана бул үчүн кандайдыр бир өзгөртүүлөрдү жана толуктоолорду киргизүү зарыл болгон. Буга мен дагы таң калдым жана таң калдым. Графикалык дизайнер мага жазгандан кийин, менин таң калуум бир аз азыраак болду, бирок дагы эле абдан жогору болду. Кимдир бирөө чындап эле менин codeум керек деген ой мени укмуштуудай сезимдерге толтурду. Керектүү өзгөртүүлөрдү киргизип, codeексти даярдады. Мен codeду карап чыктым, башкача айтканда, мен өзгөртүүлөрдү карадым, өзгөртүлгөн комментарийлер бар жана өзгөртүүлөр китепканада болгон. Мен бул өзгөртүүлөрдү v2.0 versionсы деп атадым.Кийинки кадам китепкананы Maven Centralга кошуу болду - борбордук репозиторий, ал жерден сиз аны каалаган долбоор үчүн жүктөп алып, аны көз карандылык катары колдоно аласыз. Ал убакта мен муну кантип жасоону, атүгүл алыстан да түшүнгөн жокмун, ошондуктан мен бош эмес экенимди айтып, долбоорду түзүү үчүн зарыл болгон бардык кадамдарды жасоону сурандым. Бирок бул жетишсиз болуп чыкты жана эң кызыктуусу Maven Central менен байланыш түзүү болду. Бул жапайы оору, мен биринчи жолу кыла алган жокмун жана 15-апрелде мен долбоорду Maven Centralга жарыялай алдым. Бул оңой болгон жок, бирок башкалар айткандай, "өзүнүн Java codeун жарыялоону каалагандардын баары бул аркылуу өтөт". Китепкананы чыгарардан мурун, мен акыры көптөн бери болуп келе жаткан кемчorктерди эмне жана кантип кылууну таптым жана v2.0.2 жаңы versionсын чыгардым , анда мага жардам бергендердин баарына ыраазычылык билдирип, эмне жана кантип кылганымды сүрөттөп бердим. .Maven Centralга жарыялоо. Жаз 2019
Китепкананы туура басып чыгаруу үчүн сиз versionларды жана versionларды кантип туура орнотууну жакшы түшүнүшүңүз керек. Мен бул схемага карманамын:- XX.YY.BBBB , мында XX - мурункуга туура келбеген өзгөртүүлөрдү талап кылган негизги version жаңыртуу (мисалы, методдордо кайтарылган натыйжаны өзгөртүү);
- YY кичине жаңыртуу - BBBB деген нерсени өзгөртпөй турган ички өзгөртүү же кеңейтүү - бул оңдолгон кемчorктер.
- Мисалы, 2.0.2 versionсы негизги version 2 экенин, майда жаңыртуулар болгон эмес жана кемчorктер үчүн эки жаңыртуу бар экенин билдирет.
Шведдер менен байланыш. Май 2019
Мен китепкананы басып чыгаргандан кийин дагы бир швед (Мика Кытёлайнен) мага электрондук кат жазып, досунан китепканама өзгөртүү киргизүүнү суранды. Бул чындап эле керек экенин айтып, тезинен жасап, жасап берсек абдан сүйүнөт дейт. Албетте, мен зарыл болгон өзгөрүүлөргө каршы болгон жокмун. Ал тик бурчтук тарткан сызык калыңдыгынын конфигурациясын кошууну сунуштады. Көрүүсү начар адамдар үчүн бул пайдалуу өзгөрүү болот. Код даярдалды . Дагы бир нече өзгөртүүлөрдү кошуп, мен v2.2.0 versionсын чыгардымНемис менен баарлашуу. Май 2019
Ушундан кийин, бир немис аны тестирлөө үчүн колдонгусу келгенин, бирок функционалдуулугу жок экенин айткан маселени жаратты. Ал абдан кызыктуу болгон көптөгөн сунуштарды киргизди, ал салыштыруунун натыйжасында натыйжасы менен гана алынган сүрөттү кайтаруунун ордуна, маалыматтардын топтомун кайтарууну сунуштады: салыштырылган нерсе, натыйжа (зарыл болсо) жана анын абалы MATCH, MISMATCH, SIZE_MISMATCH болот. Ал тургай өзгөртүүлөрдү киргизген. Бирок алар мурунку codeексти такыр эске албай, шашылыш түрдө жасашкан. Мен аларды четке кагып, өзүм каалагандай аткарууну сунуштадым. Ошого карабастан, ал көбүрөөк жооп берди жана мен муну өзүм жасап, жаңы versionсын чыгарам деп чечтим. Ошол эле учурда Мика Кытёлайнен дагы бир кызыктуу функцияны сунуштады - салыштырууга кирбей турган аймактарды кошуу. Бул реалдуу окуя. Мунун баары v3.0.0 чыгарылдыЧыныгы долбоордо колдонуңуз
Май айынын аягында мага Киевден автоматташтырылган тестирлөөчү кат жазды, ал китепканага кызыгып, аны акча алып келе турган реалдуу долбоордо колдонууну каалайт. Бул ачылыш болду! Аны пет-долбоордун бир жеринде колдонуу бир нерсе, ал эми аны чыныгы долбоордо колдонуу таптакыр башка маселе. Биз бул эмне жана кандай иштээрин талкууладык. Тиркеме абдан кызыктуу: алардын арызында алар басылган чектер бар жана чектер белгилүү бир калыпка ылайык түзүлгөнүн жана ал өзгөрбөй турганын текшерүү керек болчу. Бирок дата жана убакыт сыяктуу бөлүмдөр дайыма өзгөрүп, көңүл бурулбай турган маселе бар болчу. Биз буга чейин кээ бир аймактарды этибарга албай коюу үчүн функцияларды кошконбуз, бирок ал дагы деле чыныгы колдонуу үчүн абдан чийки болуп чыкты жана биз дагы эле бул боюнча бир нече жума бою бирге жемиштүү иштедик. Натыйжада v3.1.1 versionсы чыктыНиш табуу
Ошондон кийин мен китепканамдын чыныгы орду аны тесттерде колдонуп жатканын түшүндүм. Бул үчүн мен тестирлөөчүлөр үчүн кандайдыр бир форум таап, кандайдыр бир пикир алуу жана атак-даңкты жогорулатуу максатында аларга бул жөнүндө жазууну чечтим. Мен орус тилдүү форумду таап, ал жерде макала жарыяладым: Сыноо сүрөттөрүн уюштуруу - эки окшошту салыштыруу . Анда мен code жана функция боюнча реалдуу пикир алдым, аны мен колдонуп, жаңы versionсын чыгардым v3.2.0 , анан v.3.3.0 .Азыр
Учурда китепканада Githubда 60 жылдыз жана 33 айры бар. Автоматчылар үчүн форумдагы макаланы кошпогондо, мен аны эч кандай жарнамалабаганымды эске алганда, бул абдан сонун деп ойлойм. Аягына чейин окугандарга рахмат. Чынында бул мен күткөндөн алда канча узун макала болуп чыкты. Maven Centralга китепкананы кантип чыгаруу керектиги жөнүндө макала. Кошула турган нерсеңиз болсо жазыңыз! Китепкананы жакшыртуу боюнча сунуштарыңыз болсо, жазыңыз! Мен баарын окуп, ага убакыт бөлөм. Макаланы жактырган жана аны пайдалуу деп тапкан ар бир адам - аны баалаңыз жана комментарийге жазыңыз. Ошондой эле, менин github аккаунтума жазылыңыз romankh3 Башка макалаларымды да караңыз:- Интервью учурундагы техникалык суроолор
- Кантип жумуш тапса болот? Резюме жөнөтүү боюнча кеңештер
- Профессионалдык чарчоо. Кантип каршы туруу керек?
- Ийгorктин тарыхы. Жумасына 20 саат программалоо, магистр даражасы жана жеке жашоо
- Авиа билеттерине баа мониторинг системасын түзүү: кадам-кадам колдонмо [1-бөлүк]
- Skyscanner API үчүн кардар түзүү жана аны jCenter жана Maven Centralда жарыялоо боюнча колдонмо [1-бөлүк]
- Кароол: эмне, кантип, кайда жана эмне менен?
- Intellij IDEAдагы мүчүлүштүктөрдү оңдоо: үйрөнчүктөр үчүн колдонмо
GO TO FULL VERSION