Баарыңарга салам, келечектеги улук программалык камсыздоо инженерлери ! Акыркы бир нече айдын ичинде мен өнүгүүнүн маанилүү бөлүктөрүн сүрөттөгөн жөнөкөй макалаларды жазып жатам. Бүгүн мен сизге өз идеям жөнүндө айтып берем! Мен сага биринчи жумушуңа жардам бергим келет. Бул үчүн эмне керек? Бул үчүн тажрыйба топтоо керек. Бул долбоорлордун өзү эмнеден турганын, инженерлер иштегенин жана маалыматтык технологиялар дүйнөсүн алдыга жылдырганын түшүнүңүз.
Муну кандай жасаш керек? Мен бир нерсе жазуум керек. Ошондуктан, бул материалдардын бир бөлүгү катары, биз өз телеграмма ботубузду этап-этабы менен жазабыз (толук маалымат төмөндө). Жана ошол эле учурда, биз жада калса жаңы Java иштеп чыгуучусуна керек болгон технологиялык стекти түшүнөбүз.
Максат
Маалымат базалары менен иштөө, бизге керектүү бизнес логикасын түзүү жана долбоорду жайылтуу жана аны сынап көрүү үчүн жумушту орноткон долбоорду жазыңыз. Эмне жазабыз? Эгерде сиз жаза турган болсоңуз, анда сиз чындап эле пайдалуу нерсени жазышыңыз керек, ошондо ишке кызыгуу пайда болуп, натыйжадан кимдир бирөө өз кызыкчылыгына пайдалана алат. Бул маалыматтардын негизинде JavaRush веб-сайты менен иштей турган телеграмма боту жазылат. Бул пайдалуу болобу? Шексиз! Улам телеграмма ботторду жазуу кыйын эмес экенин, сиз тез эле пайдалуу боло турган жумушчу долбоорду ала аласыз.Өнүгүү убактысы
Макалалар жумасына бир жолу жарыяланат, андыктан бир нерсе түшүнүксүз болсо, суроолорду өздөштүрүү / кайталоо / жазуу үчүн жетиштүү убакыт болот. Биринчи макалалар биз долбоордо колдоно турган теориялык негиз болот. Анан бул жөн гана практика.MVP (минималдуу жашоого жөндөмдүү продукт)
MVP деген эмне? Бул термин, адаттагыдай эле, биздики эмес, бирок сиз викиден акылга сыярлык түшүндүрмө таба аласыз . Биз цитата келтиребиз: MVP минималдуу функциялары бар, бирок биринчи муктаждыктарды канааттандыруу үчүн жетиштүү продукт. Негизги милдет - продуктуну андан ары өнүктүрүү үчүн гипотеза түзүү үчүн пикир алуу. Биз үчүн бул сүрөттөмө толугу менен дал келет. Бардык функциялардын кыскача сүрөттөлүшү: Telegram колдонуучусу катары мен топтордогу жаңы макалаларга жазылууну жана жаңылары жарыяланганда эскертмелерди алууну каалайм. Мен "Ийгorктин тарыхы" тобун окуганды жакшы көрөм , бул мени окууну улантууга жана жаңы нерсени үйрөнүүгө түрткү берет. Мен жалкоомун жана кирип барган сайын баракты жаңырткым келбейт . Ошондуктан, мен программист катары жашоомду жеңилдетип, Telegramда жаңы макала чыккандыгы тууралуу билдирүү жөнөтө турган программа жазгым келет. Андан ары: бул мен көзөмөлдөгөн жалгыз топ эмес. Мен Харьковдон болом, ошондуктан ал жерде жарыяланган макалаларды окууга кызыгам. Бул продуктуну иштеп чыгуучу катары, мени кимдир бирөө менин жумушумду колдонуп жатабы же жокпу, абдан кызыктырам, андыктан администраторлорго телеграмма ботунун статистикасын көрө алышы үчүн функцияларды кошобуз. Муну жасоого болобу? Албетте! Кантип? Муну мен бир катар макалаларда көрсөтөм.Codename
Ар бир сонун долбоордун code аты болушу керек. Биздикилер өзгөчө болбойт, андыктан азырынча мындай болот: JRTB (JavaRush Telegram Bot). Мындан ары мындай деп аталат.Биз кандай темалар болот камтыйт?
Маалымат базасы
Колдонмодо абалды (маалыматтарды жана маалыматты) сактай албасыңызды дароо түшүнүшүңүз керек. Маалыматтар базада сакталышы керек. Тренингде бул боюнча эч кандай маалымат жок болгондуктан (эсимде :D), мен бизге керектүү бorмдин боштуктарын толтурууга аракет кылам. Мен эч кандай башаламандык болбошу үчүн маалымат базасынын схемасын мүмкүн болушунча жөнөкөй кылууга аракет кылам. Бул бөлүгү төмөнкүлөрдү камтыйт:- MySQL негизинде SQL менен иштөө теориясы.
- MySQL менен иштөө куралы MySQL Workbench болуп саналат.
- Маалымат базасын versionлоо. Учуу жолу жана суюк база.
- Берorштер базасынын схемасын түзүү.
- Берorштер базасынын схемасын түзүү.
Git
Бул тема боюнча буга чейин макалалар бар. Албетте, versionны башкаруу системасы жок эч нерсе иштебейт. JRTBде иштөө үчүн, сиз гитти түшүнүшүңүз керек. Сиз муну өзүңүз жасай аласыз, же бул тема боюнча менин макалаларымды окуй аласыз: Кааласаңыз, сиз бутактандыруу стратегиялары жөнүндө окуй аласыз, бирок бул жерде бул маанилүү эмес жана өткөрүп жиберүүгө болот.Maven
Бул жерде монтаж системасы, ал эмне үчүн, аны кантип колдонобуз, эмнеге көңүл буруш керек, адеп-ахлак эрежелери тууралуу сөз кылабыз. Биз бул жерде versionлоо жөнүндө да сүйлөшөбүз жана аны кантип так аткарабыз.Докер
Жашообузду жөнөкөйлөштүрүү жана жайылтуу процессин мүмкүн болушунча жөнөкөй кылуу үчүн биз Dockerди колдонобуз. Бул үчүн, келгиле, Докер деген эмне жана кандай пайдалуу буйруктар бар экендиги жөнүндө сүйлөшөлү. Мен дароо айткым келет, мен Dockerди колдонуучу деңгээлинде колдоном жана бир нерсе билбейм же кыла албай калышым мүмкүн)) Демек, кимдир бирөө Docker менен иштөөнү кантип жакшыраак/жеңилдетүүнү сунуштаса, мен буга кубанам. Бул бөлүгү төмөнкүлөрдү камтыйт:- Докердин теориясы жана практикасы.
- Докер аркылуу маалыматтардын камдык көчүрмөсүн сактоо/калыбына келтирүү.
- Докерде иштей тургандай кылып биздин долбоорду орнотуу.
Баш скрипттери
Ишти автоматташтыруу үчүн кээде бир же эки сценарий жазуу пайдалуу. Bash скрипттери - бул бардык иштеп чыгуучулар тигил же бул даражада түшүнгөн скрипттер, анткени алар Linux'та жөн гана өзүнчө файлда сакталган буйрук сабынын иши.Колдонмо түзүү
Бардык диск ушул жерде болот. Мурунку бorмдердин негизинде биз телеграмма бот an objectисин камтыган Spring Boot тиркемесин курабыз. Бул жерде эмне кылабыз?- Ал жерде болушу керек болгон функциянын толук сыпаттамасын түзүү.
- Телеграмма бот деген эмненин кыскача сүрөттөлүшү.
- Spring Boot тиркемесин түзүү.
- Ломбок менен иштөөнүн сүрөттөлүшү.
- UniRest менен иштөөнүн сүрөттөлүшү.
- Буйрук үлгүсүн ишке ашыруу + администратор буйруктары үчүн өз annotationңызды түзүү менен иштөө.
- UniRest аркылуу JavaRush сурамдары менен иштөө үчүн кардарды түзүү (мисалы, топтордун тизмеси, топтогу макалалардын тизмеси).
- Сыноо. Келгиле, биздин функцияларды жабуу үчүн бардык мүмкүн болгон тесттерди жазалы.
- Коддун сапатын текшерүү тутумун орнотуу жана GitHubда автоматтык түрдө куруу.
- Маалымат базасын versionлоо менен бирге маалымат базасын туташтыруу.
GO TO FULL VERSION