Java долбоорун түзүү жөнүндө бир катар макала (башка материалдарга шилтемелер аягында). Анын максаты негизги технологияларды талдоо, натыйжасы телеграмма бот жазуу болуп саналат. Саламатсыздарбы, урматтуу окурмандар. Мурунку бөлүмдө айтылгандай , биз план боюнча барабыз. Биз буга чейин долбоор түздүк жана аны code менен толтурууга убакыт келди. Эми бардык маселелер өзүнчө комиссия катары кошулат. Мен бул жерде зарыл болгон нерселердин баарын сүрөттөп берем. Эгерде мен бир нерсени сагынсам же аны так сүрөттөп бербесем, комментарийлерде сураңыз, мен жооп бергенге аракет кылам.
Биз JRTB-0M жазабыз
Бул тапшырмада биз келечектеги иш үчүн бош SpringBoot алкагын кошушубуз керек. Биз муну SpringBoot + Flyway жөнүндөгү макаладагыдай кылабыз . Долбоорду жүктөп алып , аны IDEAда ачып, JRTB-0 деп аталган жаңы фorалды түзүңүз . Мен бул жерде бир идея аркылуу муну кантип сүрөттөп бердим . Бул бизге келечекте жумушту көзөмөлдөөнү жеңилдетет. Сиз буга чейин эле мастер фorалы жок экенин билесизби ? Азыр ал нейтралдуу - негизги деп аталат . Ошентип биз көнүп калабыз. Чынын айтсам, биз аны ар дайым кожоюн деп атай алабыз. Биз Spring Initializrге барып , биздин бот үчүн SpringBoot алкагын түзөбүз. Учурда сунушталган жүктөөчү спринттин эң жаш versionсы 2.3.7, аны алалы. Мен төмөнкү орнотууларды өзүнчө сүрөттөп берем:- Долбоор: Maven долбоору - биз Mavenди бул жерде жана бул жерде талкуулаганбыз . Ошондуктан, мен мурунку макалаларда ачыкка чыгарбаган нерселерди гана сүрөттөйм. Мындай "ак тактар" бар болсо, албетте)
- Тor: Java - бул жерде баары түшүнүктүү. Эгерде каалоо болсо, биз бул маселени Котлинге кайра жаза алабыз. Мен өзүмө Котлин in Action китебин сатып алдым, Котлинди чогуу үйрөнөбүз))
- Жазгы жүктөө: 2.3.7 - биз бардык көйгөйлөрдү жоюу үчүн сунушталган эң кичинекей versionны алабыз. Бул жүктөөнүн толугу менен заманбап versionсы.
- Топ: com.github.javarushcommunity - бул жерде биз репозиторийлер тобубуз жайгашкан доменди тандайбыз.
- Артефакт: javarush-telegrambot - долбоордун максималдуу сүрөттөлүшү.
- Аты-жөнү: Javarush TelegramBot - бул жерде толук жазабыз.
- Description: Javarush үчүн Telegram боту коомчулуктан коомчулукка - бул жерде долбоордун кеңири сүрөттөлүшү.
- Пакеттин аталышы: com.github.javarushcommunity.jrtb - бул жерде сиз долбоордун аталышынын аббревиатурасын колдоно аласыз. Эми долбоор ушул пакеттен башталат. Эмне үчүн мынча көп? Класс жолуна башка долбоорлорду кошкондо, алар ар кандай пакеттерде болот. Ар бири өзүнүн өзгөчө жолу менен. Бул OOP принциптерин сактоо үчүн маанилүү.
- Таңгак: банка биздин стандарт болуп саналат)
- Java: 11 - биз бир кадам алдыда болобуз. Мен сегизинчи Javaдан кийин инновацияларды колдоном деп ойлобойм, бирок болсун. Ал тамак сураbyte)... бул чечим бизге келечекте кичинекей Пасха жумурткасын берет)
CI процессин орнотуу
Биз түзүлгөн тартуу сурамына барабыз: төмөндө бизде Конфигурацияланган Үзгүлтүксүз Интеграция (мындан ары - CI) жок экенин көрөбүз . Ооба, ал конфигурацияланган эмес, анда эмне болот? Эмне үчүн бизге CI керек? CI деген эмне? Бул болжол менен азыркы учурда бизди тынчсыздандырган суроолордун тизмеси. Жалпысынан алганда, CI codeду жалпы codeдук базага бириктирүүнүн жана ага чейин долбоордун курулушун жүргүзүүнүн үзгүлтүксүз процесси. Build деп аталган (англисче куруудан). Долбоорду курган сайын, биз долбоордун компиляцияланганын, анын бардык сыноолорунун ийгorктүү өткөндүгүн текшеребиз, ошондой эле долбоорду кургандан кийин, сиз тестерлерден CIге ушул конкреттүү түзүлүштө иштетилген автотесттерди кошо аласыз. Ошентип, биз жаңы өзгөртүүлөр биз күткөндөй иштеп, мурунку функцияларды бузбай турганына көбүрөөк ишенебиз. CI да жакшы, анткени ал code базасын жаңырткандан кийин автоматтык түрдө башталат. Башкача айтканда, биз өзгөртүүлөрүбүздү фorалга киргиздик жана процесс башталды - монтаж, тесттер, автотесттер жана башка кадамдар. Бул кадамдардын бири ишке ашпай калса, куруу бузулган деп эсептелет жана аны негизги бутакка бириктирүү мүмкүн эмес. Азыр биз дал ушундай кылабыз: биз GitHub Actions кошобуз, ал биздин codeду түрткөндөн кийин иштетет. GitHub Аракеттери биздин GitHub агымыбызга эң сонун дал келет, ошондуктан биз аны ишибизди автоматташтыруу үчүн колдонобуз. Бул курал абдан күчтүү жана чоң, бирок азыр биз аны курууну иштетүү үчүн гана колдонобуз жана керек болсо чогултулганын текшеребиз. Аны иштетүү үчүн, репозиторий барагынан Аракеттер баскычын таап , аны аткарыңыз: Бизге керек болгон Үзгүлтүксүз интеграциянын иш процессин табыңыз: Бул иш агымын орнотууну басыңыз. Андан кийин, бизге алардын үлгүсүн колдонуу сунушталат: биз толугу менен макулбуз, бардыгын бир аз тактап алалы:# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Build with Maven
run: mvn -B package --file pom.xml
Бул GitHub аракети эки учурда чакырылганын көрсөтүп турат:
- Негизги бутакка түртүү жасалганда.
- Негизги бутакта тартуу өтүнүчү түзүлгөндө.
GO TO FULL VERSION