JavaRush /Java блогу /Random-KY /Долбоорду пландаштыруу: эки жолу өлчөө - бир жолу кесүү -...
Roman Beekeeper
Деңгээл

Долбоорду пландаштыруу: эки жолу өлчөө - бир жолу кесүү - "Java долбоору Адан Яга чейин"

Группада жарыяланган
Саламатсыздарбы, кесиптештер. Бүгүн биз codeдоону баштоодон мурун кандай даярдык көрүү керектиги жөнүндө сүйлөшөбүз. Тагыраак айтканда, колдонмо архитектурасын пландаштыруу жана түзүү жөнүндө. Java долбоору Адан Яга чейин. Долбоорду пландаштыруу: жети жолу өлчөө - бир жолу кесүү - 1Бирок эмнеден баштоо керек? Бул архитектураны кантип куруу керек? Бардык нерсе сыяктуу эле, башынан баштоо керек. Тактап айтканда - IDEA менен. Биздин долбоордун идеясы негизги функциялары менен пайдалуу телеграмма ботун түзүү болгон. Келгиле, так кайталайлы: "Мен колдонуучу катары, мени кызыктырган JavaRush топторунда жаңы макалалар жарыяланганда эскертмелерди алгым келет." YAGNI принцибине ылайык, биз колдонмобузду курабыз. Бул биз керектүү нерсени гана алабыз дегенди билдирет. Функционалдыкты алдын ала жана резервде биз каалагандыктан эле түзбөйбүз жана качандыр бир күнү бул пайдалуу болушу мүмкүн. Ооба, биз окула турган жана кеңейтилүүчү тиркемени түзөбүз, бирок бул биз “өсүү үчүн” маалымат базасынын схемасын түзөбүз дегенди билдирбейт. Бул “өсүүнү” колдобоо үчүн мен андан таптакыр баш тартканым жакшы деп чечтим. Бул бизге иштеп чыгуу жана керексиз тестирлөө учурунда керексиз колдоодон качууга жардам берет. Кийинчерээк, биздин долбоор өндүрүшкө киргенде (кайра англисизм, prod - өндүрүш деген аббревиатурадан) биз дагы бир нерсе жасай алабыз. Идеяны чечкенден кийин, бир аз тентек болуп , тартуу керек. Эмне тартуу керек? Бизге ар кандай колдонуучулардын топторуна жазылуулар боюнча маалыматтарды сактоо мүмкүнчүлүгү керек болот. Мен сиз Telegram'да чат ID түрүндө колдонуучунун идентификаторун колдоно аларыңызды билем. Жана жаңы макалаларды издөө иш жүзүндө кандайча уланат деген түшүнүк бар: биз жаңы макалаларга жазылуу бар бардык топторду издеп, чаттарга жөнөтөбүз. Мунун негизинде биз биринчи жакындоо катары төмөнкүнү алабыз (бул жерде жасалгасыз иштеп чыгуу): Java долбоору Адан Яга чейин. Долбоорду пландаштыруу: жети жолу өлчөө - бир жолу кесүү - 2Менин кол жазмамды түшүнөсүз деп үмүттөнбөйм: өнүгүү кантип жана кайдан башталарын так көрсөткүм келет. Биринчи этап аяктады: биз кандайдыр бир жол менен эмне болорун чечтик. Маалыматтар базасындагы моделдер/tableлар жогоруда сүрөттөлгөн. Бирок бул долбоор: аны жылмалап, окула турган формага келтирсе болот жана керек. Мен жылмалап жатып, мен да боттун иши боюнча статистиканы алгым келгенин эстедим. Муну кошту. Бул чиймеде ал эмне жана кантип жайгаштырыла тургандыгы ачык-айкын көрүнүп турат. Башкача айтканда, аларда кандай tableлар жана талаалар болот, tableлар үчүн кандай an object аттары болот. Алардын бир нечеси болот деген чечим кабыл алынды:
  • Колдонуучу - биздин ботту колдоно турган телеграмма колдонуучусу жөнүндө маалымат. Көрүнүп тургандай, биз колдонуучунун активдүү же активдүү эместигине карабастан, чат ID жана желекти гана сактайбыз. Неге? Анткени биздин максат колдонуучулар тууралуу маалымат чогултуу эмес, аларга пайда келтирүү;
  • GroupSub - бул жерде сиз жазылган топ жана жазылуучуларга жөнөтүлгөн акыркы макала тууралуу маалымат болот;
  • Статистика - Мен анын схемасын түзгөн жокмун - муну кийинчерээк жасайбыз. Бул долбоордун MVP негизги максаты эмес.
Java долбоору Адан Яга чейин. Долбоорду пландаштыруу: жети жолу өлчөө - бир жолу кесүү - 3Ошондон кийин мен жаңы макалаларды издөөнүн жолун кененирээк көрсөткүм келди. Бул үчүн, мен BPMN диаграммасын колдондум, аны сүрөткө айлантып, муну алдым: Java долбоору Адан Яга чейин. Долбоорду пландаштыруу: жети жолу өлчөө - бир жолу кесүү - 4Бул жерде бардыгы окула турган жана түшүнүктүү. Издөөдө ушул схема боюнча иштейбиз. Менеджерлерге бул схема абдан жагат, анткени бул бир гана программисттер үчүн эмес, түшүнүктүү :D Жалпысынан алганда, башталгыч жасалды.

Жумуш үчүн репозиторий түзүү

Акыр-аягы, сиз телеграмма бот менен иштөө үчүн репозиторий түзө аласыз.Java-проект от А до Я. Планирование проекта: семь раз отмерь — один раз отрежь - 5
  1. Бизге мурунтан эле тааныш болгон нерселерди - репозиторийдин аталышын, анын кыскача сүрөттөмөсүн толтурабыз.
  2. Лицензия кошуңуз - Apache 2.0 (сиз өз каалооңуз боюнча лицензияны тандай аласыз).
  3. Биздин долбоор азыр жеткorктүү - бул жерде ага шилтеме: JavaRush Telegrambot .

Репозиторийде долбоор түзүңүз

Долбоор менен иштөө үчүн GitHub инструменттерин колдонуу жакшы болмок, мисалы, долбоор. Бул эмне? Бул жерде сиз тапшырмаларды түзүп, алардын аткарылышына көз салып, тапшырма статусун сактай аласыз. Аларды жана башкаларды ким аткарарын аныктаңыз. Бул үчүн, түзүлгөн долбоордо биз табабыз Долбоорлор баскычы , ал жерде биз жаңысын түзөбүз: Java-проект от А до Я. Планирование проекта: семь раз отмерь — один раз отрежь - 6Көрүнүп тургандай, бул жерде мен долбоордун атын көрсөтүп, аны сүрөттөп бердим жана биз иштей турган шаблонду тандадым - Автоматташтырылган Канбан. Биз үчүн азыр бул эмнени билдирери анча маанилүү эмес. Эң негизгиси, бизде колонкаларга бөлүнгөн тапшырмалар бар такта болот, анда ар бир тилке тапшырманын статусу болот:
  1. Жасоо - аткарылышы пландаштырылган бардык тапшырмалар;
  2. Аткарылууда - учурда иштеп жаткан милдеттер;
  3. Аткарылган - бул долбоордун алкагында аткарылган тапшырмалар.
Ошентип, биз өзүбүздүн милдеттерибиздин абалы жөнүндө билебиз. Кайсысы жүрүп жатат, кайсынысы аткарылды. Анын үстүнө, бул команда болгон учурларда гана эмес, өз алдынча иштегенде да маанилүү жана ыңгайлуу. Тактада бир нерсе пайда болушу үчүн, сиз Маселелерди түзүшүңүз керек.

Долбоор үчүн маселелерди (маселелерди) жазуу

Кандай тапшырмаларды жазуу керектигин түшүнүү үчүн, биз долбоордо эмне болорун чечели. Бизге оңой жана тез ишке кирүүчү тиркеме керек, андыктан биз маалымат базасына кире алабыз, биз маалымат базасынын схемасын башкара жана өзгөртө алабыз, ошондой эле макалалар боюнча маалыматтарды алуу үчүн JavaRush ичинде REST сурамдарын жасай алабыз. Мунун негизинде сиз төмөнкү технологияларды тандай аласыз:
  • SpringBoot - биздин колдонмо үчүн негиз катары,
  • Жазгы маалыматтар - маалымат базасы менен иштөө үчүн,
  • Flyway - маалыматтар базасынын миграциясы менен иштөө үчүн,
  • MySQL - долбоор үчүн маалымат базасы катары,
  • Telegrambot StringBoot стартер - телеграмма боту менен иштөө үчүн китепкана,
  • Unirest бул REST сурамдары менен иштөө үчүн китепкана.
Жогоруда айтылгандардын баарынан, келгиле, тапшырмаларды түзө баштайлы.

Тапшырма түзүү шаблону

Төмөнкү шаблон аркылуу тапшырмаларды түзөбүз:
  1. Тапшырма аты төмөнкүдөй болот: JRTB-{IssueNumber}:{IssueDescription} , мында:
    • {IssueNumber} - чыгарылыштын сериялык номери. Аны акыркы маселеден дагы бир жолу алалы;
    • {IssueDescription} - маселенин кыскача баяндамасы.
  2. Тапшырманын негизги бөлүгүндө биз анын кеңири сыпаттамасын жасайбыз (кээде ал тапшырманын аталышындагы сүрөттөмө менен дал келиши мүмкүн).
  3. Кабыл алуу критерийлери – бул талаптардын тизмеси, андан кийин тапшырма аткарылды деп эсептелинет. Мындайча айтканда, тапшырманы кабыл алуу критерийлери. Аларды колдонуу менен рецензент (англисчеден рецензент – рецензент – тапшырманын кандай аткарылгандыгын караган адам) тапшырманын толук аткарылганын же аткарылбаганын түшүнө алат.
Бул шаблонду колдонуу менен биз өзүбүздүн биринчи тапшырмабызды түзөбүз: Java-проект от А до Я. Планирование проекта: семь раз отмерь — один раз отрежь - 7Аны түзүүдө мен дароо эле бул тапшырма кайсы долбоорго ылайыктуу экенин, аны ким аткара турганын (ыйгаруучуга) жана бул тапшырма кайсы этикеткага (белгиге) таандык экенин аныктаганымды белгилей кетүү керек. Андан кийин, мен жөн гана кичинекей сыпаттамасы жана аларга шилтемелер менен милдеттердин аттарын көрсөтөм. Алардын баары бул жерде . Биз тапшырмаларды болжол менен бул жерде көрсөтүлгөндөй тартипте аткарабыз:
  1. [FEATURE] JRTB-0: Skeleton Spring жүктөө долбоорун түзүү - бул жерде баары түшүнүктүү: биз мурунку макалада кылган ишибиздин биринчи бөлүгүн кылышыңыз керек.
  2. [FECTURE] JRTB-2: телеграмма ботун долбоорго кошуңуз - жөн гана жооп берип, анын тирүү жана жакшы экенин айта турган бош бот кошуңуз.
  3. [ФУНКЦИЯ] JRTB-3: Telegrambot үчүн буйрук үлгүсүн ишке ашыруу - келгиле, телеграмма ботундагы буйруктар менен иштөөгө туура мамилени орнотобуз. Буга чейин бир нече командалар үчүн.
  4. [FEATURE] JRTB-1: Репозиторий катмарын кошуу - бул эң чоң милдеттердин бири - ал маалымат базасы менен иштөө үчүн жасалышы керек болгон нерселердин баарын бириктирет.
  5. [FEATURE] JRTB-5: Колдонуучу катары, мен топту жазылууга кошкум келет - бул Agile түшүнүгүндөгү биринчи Колдонуучунун окуясы. Бул биздин колдонуучулар үчүн чыныгы пайда болот: ботко топтук жазылууларды кошууга болот.
  6. [FETURE] JRTB-12: Жаңы макалалар жөнүндө билдирүүнү жөнөтүү графигин ишке ашыруу - бул жерде жаңы макалаларды издөө ишке ашат, эгерде алар ар бир топтор үчүн жарыяланып, топторго жазылган бардык колдонуучуларга жөнөтүлсө.
  7. [FEATURE] JRTB-6: Колдонуучу катары, мен өзүмдүн группалык жазылууларымдын тизмесин көргүм келет - бул жерде бардыгы жөнөкөй: биз колдонуучу жазылган бардык топтордун тизмесин көрсөткөн буйрукту кошобуз.
  8. [FEATURE] JRTB-7: Колдонуучу катары мен жазылууларымдан топко жазылууну алып салгым келет - бул жерде сиз колдонуучунун топтогу жаңыртууларга жазылуусун алып салышыңыз керек.
  9. [ФЕФАЦИЯ] JRTB-8: Колдонуучу катары мен ботту колдонуу менен жигерсиз абалга келтиргим келет - ботту токтотууну ишке ашыруу. Башкача айтканда, иш токтошу үчүн биздин системада эмне кылуу керек. иштетүү үчүн / токтотуу буйругун кошуу.
  10. [ФЕФАЦИЯ] JRTB-9: Колдонуучу катары мен бот менен иштей баштагым келет ЖЕ аны мурда колдонгон болсом, активдүү орноткум келет - /start буйругун иштетүүнү кошуңуз. Дал биз каалагандай.
  11. [ФУНКЦИЯ] JRTB-10: Администратор катары мен боттун статистикасын көргүм келет – бот статистикасынын жыйнагын түзүүдө. Администратордун мүмкүнчүлүктөрүн кошуу.
  12. [FECTURE] JRTB-11: Колдонуучу катары мен бул телеграмма ботунун documentтерин көргүм келет - жазуу documentтери. Ооба, ооба, достор, силер ансыз жашай албайсыңар жана муну канчалык тез үйрөнсөңөр, силер үчүн ошончолук жакшы болот))
Бул долбоордун башталышы окшойт. Мындайча айтканда, биз долбоордун архитектору жана бизнес-аналитик болуп иштедик.

Репозиторийди толтуруу

Коддоштурууну баштоодон мурун дагы эмне кылышыбыз керек? - Author, ушул абзацтардын канчасын кошо аласың, туңгуюктан сууруп жатасыңбы?? — Жок, иштин сапаты майда-чүйдөсүнө чейин көрүнүп турат. Жана алар акылга сыярлык адамдар. Андыктан дагы бир деталдарды кошолу. Долбоор популярдуу жана башка иштеп чыгуучулар үчүн түшүнүктүү болушу үчүн, аны толтуруу керек. Мен эмне кошуу керек? Мен макалада эмне кылса болорун толук тизмеси сүрөттөлгөн GitHub боюнча долбоорлоруңуз менен иштөөнү оптималдаштыруу: Github Template Repository менен таанышуу . Мен аны окууну сунуштайм. Биз үчүн так version, биз эмне кылып жатканыбызды так түшүнүү маанилүү. Ошондуктан, мен RELEASE_NOTES файлды коштум, анда биздин долбоорго өзгөртүүлөр жазылат. Мисал катары, сиз менин долбоорумдон RELEASE_NOTES карап көрсөңүз болот (ооба, эмне үчүн мен энергиямды жана чыгармачылыгымды эмнеге жумшаганымды көрсөтпөйсүз). Ар бир жаңы version үчүн өзгөртүүлөр ошол жерде сүрөттөлөт. Мен ошондой эле жаңы тапшырмаларды түзүү үчүн шаблондорду коштум, аларда 4 вариант бар:
  • Мүчүлүштүктөр жөнүндө отчет - бул өз ишинде мүчүлүштүктөрдү тапкан колдонуучулар/сыноочулар тарабынан түзүлгөн тапшырма. Бул абдан маанилүү нерсе: мүчүлүштүктөрдү оңдоону башкарууга жардам берет;
  • Функция сурамы - бул жаңы функцияларды кошуу тапшырмасы. Долбоордогу бардык биринчи тапшырмалар өзгөчөлүк суроо тапшырмалары;
  • Өркүндөтүү өтүнүчү - тиркеменин иштешин жакшыртуу тапшырмасы. Мисалы, бот менен иштөөдө тесттин жоопторун өзгөртүү. Мен техникалык жазуучу эмесмин жана толук туура эмес жоопторду таба алам. Андыктан каалооңуз жана жөндөмүңүз болсо, сунуштаңыз :)
  • Суроо - бул тиркеменин иштеши жөнүндө иштеп чыгуучуларга суроо. Абдан пайдалуу нерсе. Иште эч кандай түшүнүк жок же кандайдыр бир суроо боюнча шектенүүлөр бар дейли - сиз ушундай жол менен суроо берип, өзүңүз жооп ала аласыз.
Эгер сиз GitHubды карасаңыз, ал так ушундай болот: Java-проект от А до Я. Планирование проекта: семь раз отмерь — один раз отрежь - 8Бизде учурда топтор менен иштөө үчүн JavaRush API менен иштөө боюнча document бар.

Кийинкиси эмне?

Ооба, биз бул кадамдардын баарын бүтүрөбүз жана эмне, долбоор жабылат? Жок, такыр жок. Бул долбоор мындан ары да жашай берет. Аны мен жана катышууну каалаган бардык JavaRush студенттери/бүтүрүүчүлөрү иштеп чыгат. Келечекке кандай пландарыңыз бар? Алар көп. Эң биринчи план JavaRush API үчүн Java кардарын түзүү. Иштеп чыгуучулар Swaggerге ачык кирүү мүмкүнчүлүгүн берүүгө убада беришти. Биз ошондой эле шылуун деген эмне экенин карап чыгабыз. Салкын жана абдан пайдалуу нерсе. Андан кийин JavaRush сайтын телеграмма боту менен бириктиребиз. Жазылууну синхрондоштуруу үчүн колдонуучуну ботко туташтыралы. Курсту бүтүрүү статистикасын түзөлү. Жана JavaRush Коомчулугу катары сиз каалагандын бардыгы.

корутундулар

Бүгүн биз долбоорду түзүүнүн алдындагы көшөгө артындагы иштер тууралуу сүйлөштүк. Тагыраак айтканда, иш планын кантип түзүү керектиги жөнүндө, ансыз көп энергияны текке кетирүүгө болот. Мен дагы бир жолу айтам, долбоордун башталышы буга чейин бул жерде жалпыга жеткorктүү болгон . Адаттагыдай эле, мен сизге Githubдагы аккаунтума жазылууну сунуштайм. Ушундай жол менен сиз макала жарыяланганга чейин долбоорго өзгөртүүлөрдү ала аласыз. Мен буга чейин бардык кызыкдар тараптар Github катталган деп ойлойм. Ооба, долбоор биз каалагандай тез жылып жаткан жок. Бирок, иштеги реалдуу долбоорлор сыяктуу. Кийинки макалада мен биринчи тапшырмаларды кошууну сүрөттөп берем. Окуу үчүн баарына рахмат жана жакында көрүшкөнчө!

Сериядагы бардык материалдардын тизмеси ушул макаланын башында.

Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION