Сынақ. 2017 жылдың тамыз айының басы
Мұның бәрі компанияның бірінде сұхбат алғанымнан басталды, онда бірінші қадам тест тапсырмасын жазу болды. Тапсырма көлемі бірдей екі суретті салыстырып, олардың арасындағы айырмашылықтарды тауып, оларды топтастыру және айналасына тіктөртбұрыш салу болатын code жазу болды. Бірінші сурет бар:-
Codacy - code сапасы. Бұл шынымен назар аударуға тұрарлық.
-
Travis CI – жобаны құрастыратын, сынақтарды жүргізетін және жобаның сәтті жасалғанын көрсететін CI (үздіксіз интеграция) құралы. Мысалы, егер сынақтардың бірі жаңа өзгерістер нәтижесінде өтпесе, онда ол жобаны құрастыру сәтсіз болды деп хабарлайды және оны қызыл түске бояйды.
-
Комбинезондар – codeтың қанша пайызы сынақтармен қамтылғанын көрсететін құрал.
-
BetterCode Hub - code сапасын талдауға арналған басқа құрал. Сізге ненің жаман екенін айтып қана қоймай, неге екенін сипаттайтын және ол туралы білім алуға болатын кітапқа сілтеме беретін өте пайдалы нәрсе.
Кітапхана жолы. 2018 жылдың шілдесі
Логотип
Бір кезде мен адамдар менің жобама жиі келетінін және бұл күн сайын болатынын білдім. Мені бұған таң қалдырды, одан да қатты таң қалдырды, бір жылдай уақыт өткен соң МӘСІЛ құрылды, онда белгілі бір графикалық дизайнер менің жобама логотип жасауды ұсынып жатқаны жазылған. Олар мұны Opensource өнімдері үшін жасағанды жақсы көретінін және мұны мүлдем тегін жасайтынын айтады. Бірлесе бастадық. Бірнеше нұсқалар ұсынылды, бірақ соңында біз бұған тоқтадық:Бірінші жақ ақауы
Мен Қытайдан келген белгілі бір әзірлеуші мен үшін мәселе жасағанын байқадым , онда ол кітапхана жұмысында ақау тапқанын, егер сіз үлкен кескіндерді пайдалансаңыз, StackOverflowError аласыз деп сипаттады . Ер адам өз пайдасына шешіп, қате тапты. Ал мен оны жай таппадым. және ол туралы жазды. Бұл кітапхананың дамуындағы жаңа қадам. Оның үстіне, менде нақты шешім болмады. Белгілі бір сәтте Ресейден келген сынақшылардың бірі шешімді ұсынды. Бірақ ол шикі болды және дұрыс жасалмады, мен оны қабылдамадым. Ал Maven Central кітапханасын шығару уақыты келгенде, бұл кемшілікті шешу керек болды, мен онымен бірге шығарғым келмеді. Сонымен қатар, мен ешқашан түзетпеген тағы бір ақау болды және ол көптеген қолайсыздықтар әкелді.Пәрмен жолын пайдалану. Күз 2018
Дамудың келесі кезеңі кітапхананы пәрмен жолы арқылы пайдаланғысы келетін шведпен (Ренато Атайдес) байланыс болды және бұл үшін кейбір өзгерістер мен толықтырулар енгізу қажет болды. Мен бұған тағы таң қалдым және таң қалдым. Графикалық дизайнер маған жазғаннан кейін, менің таңданысым біршама аз болды, бірақ бәрібір өте жоғары болды. Біреуге менің codeым шынымен керек деген ой мені керемет сезімге бөледі. Қажетті өзгерістерді енгізіп, codeексті дайындады. Мен codeты шолуды жүргіздім, яғни өзгерістерді қарадым, өзгертілген пікірлер болды және өзгерістер кітапханада болды. Мен бұл өзгерістерді v2.0 нұсқасы ретінде белгіледім.Келесі қадам кітапхананы Maven Central – орталық репозиторийге қосу болды, ол жерден кез келген жоба үшін жүктеп алып, оны тәуелділік ретінде пайдалануға болады. Ол кезде мен мұны қалай жасауға болатынын білмедім, тіпті қашықтан да, сондықтан мен бос емес екенімді айтып, жобаны орнатуға қажетті барлық қадамдарды орындауды сұрадым. Бірақ бұл жеткіліксіз болып шықты және ең қызығы Maven Central-мен байланыс орнату болды. Бұл мен бірінші рет жасай алмаған жабайы азап, мен тек 15 сәуірде жобаны Maven Central сайтында жариялай алдым. Бұл оңай болған жоқ, бірақ басқалар айтқандай, «өз Java codeын жариялағысы келетіндердің бәрі осыдан өтеді». Кітапхананы жарияламас бұрын мен ұзақ уақыт бойы орын алған ақаулармен не істеу керектігін және қалай істеу керектігін таптым және жаңа нұсқасын шығардым v2.0.2 , онда маған көмектескендердің барлығына алғысымды білдіріп, не және қалай істегенімді сипаттадым. .Maven Central сайтында жариялау. 2019 жылдың көктемі
Кітапхананы дұрыс басып шығару үшін нұсқаларды жасауды және нұсқаларды қалай дұрыс орнату керектігін жақсы түсіну керек. Мен осы схеманы ұстанамын:- XX.YY.BBBB , мұндағы XX алдыңғысымен үйлеспейтін өзгерістерді қажет ететін негізгі нұсқа жаңартуы (мысалы, әдістерде қайтарылатын нәтижені өзгерту);
- YY - кішігірім жаңарту - BBBB мәнін өзгертпейтін ішкі өзгерту немесе кеңейту - бұл түзетілген ақаулар.
- Мысалы, 2.0.2 нұсқасы негізгі нұсқаның 2 екенін, шағын жаңартулар болмағанын және ақаулар үшін екі жаңарту бар екенін білдіреді.
Шведтермен байланыс. 2019 жылдың мамыры
Мен кітапхананы жариялағаннан кейін тағы бір швед (Мика Китёлайнен) маған электрондық хат жіберіп, досынан кітапханама өзгертулер енгізуін өтінді. Осының өзі маған өте қажет екенін, тез арада орындасақ, қуанатынын айтады. Әрине, мен қажетті өзгерістерге қарсы болған жоқпын. Ол тіктөртбұрышты сызатын сызық қалыңдығы конфигурациясын қосуды ұсынды. Көру қабілеті нашар адамдар үшін бұл пайдалы өзгеріс болады. Кодты дайындады . Тағы бірнеше өзгертулер қосып, мен v2.2.0 нұсқасын шығардымНеміспен қарым-қатынас. 2019 жылдың мамыры
Осыдан кейін бір неміс оны тестілеу үшін пайдаланғысы келетінін, бірақ оның функционалдығы жетіспейтінін айтқан мәселе жасады. Ол өте қызықты көптеген ұсыныстар жасады, ол салыстыру нәтижесінде алынған нәтижемен ғана алынған суретті қайтарудың орнына деректер жинағын қайтаруды ұсынды: салыстырылған нәрсе, нәтиже (қажет болса) және оның күйі MATCH, MISMATCH, SIZE_MISMATCH болады. Тіпті өзгерістер енгізді. Бірақ олар бұрынғы codeты мүлде есепке алмаған және асығыс жасалған. Мен олардан бас тарттым және өз қалауымша орындауды ұсындым. Осыған қарамастан, ол көбірек жауап берді және мен мұны өзім жасап, жаңа нұсқаны шығарамын деп шештім. Сонымен қатар, Мика Китёлайнен тағы бір қызықты функцияны ұсынды - салыстыруға қосылмайтын аймақтарды қосу. Бұл нақты жағдай. Мұның бәрі v3.0.0 нұсқасында шығарылдыНақты жобада қолданыңыз
Мамыр айының соңында Киевтен автоматика тестері маған хат жазды, ол кітапханаға қызығушылық танытып, оны ақша әкелетін нақты жобада пайдаланғысы келеді. Бұл серпіліс болды! Оны пет-жобада бір жерде пайдалану бір нәрсе, бірақ оны нақты жобада пайдалану мүлдем басқа мәселе. Біз бұл не және қалай жұмыс істейтінін талқыладық. Қолданба өте қызықты: олардың қосымшасында басып шығарылған чектер бар және чектердің белгілі бір үлгі бойынша жасалғанын және ол өзгермейтінін тексеру қажет болды. Бірақ күн мен уақыт сияқты бөлімдер үнемі өзгеріп тұратын және оларды елемеу керек болатын мәселе болды. Біз кейбір аймақтарды елемеу үшін функционалдылықты әлдеқашан қосқан болатынбыз, бірақ ол әлі де нақты пайдалану үшін өте шикі болып шықты және біз әлі де бірнеше апта бойы бірге жемісті жұмыс істедік. Нәтиже v3.1.1 нұсқасының шығарылымы болдыТауашаны табу
Осыдан кейін мен кітапхананың нағыз тауашасы оны сынақтарда қолдану екенін түсіндім. Бұл үшін мен тестерлерге арналған қандай да бір форум тауып, кері байланыс алу және атақты арттыру үшін олар туралы жазуды шештім. Мен орыс тілді форумды тауып, сол жерде мақала жарияладым: Суреттерді тестілеуді ұйымдастыру - ұқсас екі суретті салыстыру . Онда мен code пен функционалдылық туралы нақты кері байланыс алдым, оны қолдандым және жаңа нұсқасын шығардым v3.2.0 , содан кейін v.3.3.0 .Қазір
Қазіргі уақытта кітапханада Github-та 60 жұлдыз және 33 шанышқы бар. Менің ойымша, бұл өте жақсы, өйткені мен оны автоматизаторларға арналған форумдағы мақаладан басқа ешқандай жолмен насихаттаған жоқпын. Соңына дейін оқығандарға рахмет. Бұл шын мәнінде мен күткеннен де ұзақ мақала болып шықты. Maven Central-ға кітапхананы қалай жариялау керектігі туралы мақала. Егер сізде қосатын нәрсе болса, жазыңыз! Кітапхананы жақсарту үшін ұсынатын бірдеңе болса, жазыңыз! Мен бәрін оқимын және оған уақыт бөлемін. Мақаланы ұнатқан және оны пайдалы деп тапқан кез келген адам оны бағалап, түсініктемелерде жазыңыз. Сондай-ақ, менің github тіркелгіме жазылыңыз romankh3 Басқа мақалаларымды да қараңыз:- Сұхбат кезіндегі техникалық сұрақтар
- Жұмысты қалай табуға болады? Түйіндемені жіберуге арналған кеңестер
- Кәсіби шаршау. Қалай қарсы тұру керек?
- Табыс тарихы. Аптасына 20 сағат бағдарламалау, магистратура және жеке өмір
- Әуе билеттерінің бағасын бақылау жүйесін құру: қадамдық нұсқаулық [1 бөлім]
- Skyscanner API үшін клиент құру және оны jCenter және Maven Central жүйесінде жариялау бойынша нұсқаулық [1-бөлім]
- Ағаш кесу: немен, қалай, қайда және немен?
- Intellij IDEA жүйесінде жөндеу: жаңадан бастаушыларға арналған нұсқаулық
GO TO FULL VERSION