JavaRush /Блоги Java /Random-TG /Кофе-брейк №20. Рамзи меросӣ чист ва чӣ тавр бо он кор ка...

Кофе-брейк №20. Рамзи меросӣ чист ва чӣ тавр бо он кор кардан мумкин аст. Воситаҳое, ки навиштани ҳуҷҷатҳои техникиро осон мекунанд

Дар гурӯҳ нашр шудааст

Рамзи меросӣ чист ва чӣ тавр бо он кор кардан мумкин аст

Манбаъ: Dou Дер ва зуд, барномасоз эҳтимол бояд бо рамзи меросӣ дучор шавад. Барои сабук кардани оқибатҳои ин шиносоӣ, ман аз таҷрибаи худам чанд маслиҳат ва мисолҳои амалӣ интихоб кардам - ​​аз ҷумла, кор бо системаи кӯҳнаи Java. Кофе-брейк №20.  Рамзи меросӣ чист ва чӣ тавр бо он кор кардан мумкин аст.  Воситаҳое, ки навиштани ҳуҷҷатҳои техникиро осон мекунанд - 1

Хусусиятҳои меросӣ

Мерос рамзи ягон каси дигар аст, ки аксар вақт он қадар даҳшатнок аст, ки чӣ тавр бо он кор кардан маълум нест. Ва агар шумо бояд бо системаи кӯҳна кор кунед, ба ғайр аз рамзи кӯҳна, шумо инчунин бо инҳо дучор хоҳед шуд:
  • бо технологияи кӯҳна;
  • меъмории гетерогенӣ;
  • набудани ҳуҷҷатҳо ё ҳатто пурра набудани ҳуҷҷатҳо.
Дар асл, рамзи меросӣ он қадар даҳшатнок нест ва ин аст, ки чаро: агар система тамоми ин даҳ сол зиндагӣ карда бошад ва ҳоло ҳам кор кунад, пас аз он каме истифода мешавад. Шояд он пули хуб ба даст орад (бар хилофи оғози охирини шумо). Илова бар ин, ин рамз нисбатан боэътимод аст, агар он дар тӯли ин муддат дар истеҳсолот зинда монад. Аз ин рӯ, тағирот ба он бояд бо эҳтиёт ворид карда шавад. Пеш аз ҳама, шумо бояд ду чизро фаҳмед:
  1. Мо наметавонем ба системае беэҳтиромӣ кунем, ки миллионҳо одамонро ба даст меоранд ё дар як рӯз ҳазорон нафар ба он дастрасӣ доранд. Новобаста аз он ки он чӣ қадар бад навишта шудааст, ин рамзи нафратовар то истеҳсолот боқӣ монд ва 24/7 кор мекунад.

  2. Азбаски ин система пули ҳақиқӣ меорад, кор бо он масъулияти бузург дорад. Ин стартап нест, балки чизест, ки корбарон фардо бо он кор хоҳанд кард. Ин инчунин арзиши хеле баланди иштибоҳро дар назар дорад ва дар ин ҷо нукта на дар даъвоҳои муштарӣ, балки дар ҳолати воқеии корҳост.

Муҳандисии баръакс

Барои бомуваффақият кор кардан бо рамзи кӯҳна, шумо бояд усулҳои муҳандисии баръаксро истифода баред. Аввалан, шумо бояд codeро бодиққат хонед, то бифаҳмед, ки он чӣ гуна кор мекунад. Ин ҳатмист, зеро мо эҳтимолан ҳуҷҷат надорем. Агар мо қатори тафаккури муаллифро нафаҳмем, мо тағиротҳоро бо оқибатҳои пешгӯинашаванда ворид хоҳем кард. Барои муҳофизат кардани худ аз ин, шумо инчунин бояд рамзи ҳамсояро омӯзед. Ва дар айни замон на танҳо дар васеъ, балки дар амиқ ҳаракат кунед. Усул бо хатогӣ дар куҷо номида мешавад? Рамзе, ки онро даъват мекунад, аз куҷо меояд? Дар як лоиҳаи меросӣ, "иерархияи занг" ва " иерархияи навъи" бештар аз ҳама чизи дигар истифода мешаванд. Ба шумо лозим меояд, ки бо debugger вақти зиёд сарф кунед: аввал, барои ёфтани хатогиҳо ва дуюм, барои фаҳмидани он, ки ҳама чиз чӣ гуна кор мекунад. Дар мавриди ҳуҷҷатгузорӣ, ба археологияи саноатӣ муроҷиат кардан кори бад нест. Дар ҷое кофтани ҳуҷҷатҳои кӯҳна ва бо онҳое, ки чӣ тавр навишта шудани рамзи мероси шумо дар ёд доранд, хеле муфид буда метавонад. Бо истифода аз ин усулҳо, шумо дер ё зуд ба фаҳмидани code шурӯъ хоҳед кард. Аммо барои пешгирӣ кардани кӯшишҳои шумо барбод рафтани шумо, шумо бояд фавран натиҷаҳои тадқиқоти худро ҳуҷҷатгузорӣ кунед. Барои ин ман тавсия медиҳам, ки схемаҳои блок ё диаграммаҳои пайдарпайро кашанд. Албатта, шумо танбал мешавед, аммо шумо ҳатман ин корро кардан лозим аст, вагарна пас аз шаш моҳ бидуни ҳуҷҷат шумо ин codeро мисли бори аввал кофта хоҳед кард.

Рамзро аз нав нанависед

Чизи аз ҳама муҳим дар раванди таҳия ин аст, ки худро сари вақт латукӯб кунед ва кӯшиш накунед, ки тамоми codeро аз сифр дубора нависед. Тахмин кунед, ки ин чанд соли одамро талаб мекунад. Аз эҳтимол дур нест, ки муштарӣ барои аз нав сохтани чизе, ки аллакай кор мекунад, ин қадар маблағ сарф кардан мехоҳад. Ин на танхо ба тамоми система, балки ба ягон кисми он низ дахл дорад. Албатта, онҳо метавонанд ба шумо як ҳафта барои фаҳмидани ҳама чиз ва як ҳафтаи дигар барои ислоҳ кардани чизе вақт диҳед. Аммо онҳо гумон аст, ки ба шумо ду моҳ вақт диҳед, то як қисми системаро дубора нависед. Ба ҷои ин, функсияи навро бо ҳамон услуби боқимондаи code татбиқ кунед. Ба ибораи дигар, агар code кӯҳна бошад, шумо набояд ба васвасаи истифодаи технологияҳои нави зебо дучор шавед: он гоҳ хондани ин code хеле душвор хоҳад буд. Масалан, шумо метавонед бо чунин вазъият дучор шавед, ки мо доштем: як қисми система дар Spring MVC навишта шудааст ва қисми он дар сервлетҳои холӣ навишта шудааст. Ва агар дар қисме, ки дар сервлетҳо навишта шуда бошад, чизи дигареро илова кардан лозим аст, пас мо онро ба ҳамин тариқ - дар сервлетҳо илова мекунем.

Манфиатҳои тиҷоратро эҳтиром кунед

Дар хотир бояд дошт, ки ҳама гуна вазифаҳо, пеш аз ҳама, аз рӯи арзиши тиҷорат муайян карда мешаванд. Агар шумо ба муштарӣ зарурати тағироти муайянро аз нуқтаи назари тиҷорат исбот накунед, ин тағиротҳо рӯй намедиҳанд. Ва барои итминон додани муштарӣ, шумо бояд кӯшиш кунед, ки дар ҷои ӯ истода, манфиатҳои ӯро дарк кунед. Аз ҷумла, агар шумо хоҳед, ки танҳо аз сабаби он ки хондани code душвор аст, рефактор кунед, ба шумо иҷозат намедиҳад, ки ин корро кунед ва шумо бояд бо он зиндагӣ кунед. Агар шумо дар ҳақиқат ба он тоб наоваред, шумо метавонед codeро оромона ва оҳиста-оҳиста аз нав ташкил кунед ва корро дар чиптаҳои тиҷорӣ паҳн кунед. Ё мизоҷро бовар кунонед, ки ин, масалан, вақти заруриро барои ёфтани хатогиҳо кам мекунад ва аз ин рӯ, дар ниҳоят хароҷотро кам мекунад.

Санҷиш

Маълум аст, ки санҷиш дар ҳама гуна лоиҳа зарур аст. Аммо ҳангоми кор бо системаҳои кӯҳна, бояд ба озмоиш диққати махсус дода шавад, зеро таъсири тағироти воридшуда на ҳамеша пешгӯишаванда аст. Ба шумо ҳадди аққал ба мисли таҳиягарон ба озмоишгарон ниёз доред, вагарна шумо бояд дар автоматизатсия бениҳоят хуб бошед. Дар лоиҳаи мо, санҷиш аз марҳилаҳои зерин иборат буд:
  1. Санҷиш, вақте ки функсияи амалӣшудаи хусусият дар фorали алоҳида тафтиш карда мешавад.
  2. Муътадилсозӣ, вақте ки шохаи релиз тафтиш карда мешавад, ки дар он ҳама хусусиятҳо якҷоя карда мешаванд.
  3. Сертификатсия, вақте ки ҳамон як чиз дар ҳолатҳои озмоишии каме фарқкунанда дар муҳити сертификатсия, ки аз ҷиҳати хусусиятҳои сахтафзор ва конфигуратсия то ҳадди имкон ба истеҳсолот наздик аст, иҷро карда мешавад.
Ва танҳо пас аз гузаштани ҳамаи ин се марҳила мо метавонем озод кунем. Эҳтимол касе фикр мекунад, ки сертификатсия як марҳилаи иловагӣ аст, зеро ҳама чиз дар марҳилаи эътидол равшан карда шудааст, аммо таҷрибаи мо нишон медиҳад, ки ин тавр нест: баъзан ҳангоми санҷиши регрессионӣ, ки барои даври дуюм дар мошини дигар гузаронида мешавад, чизе бо кадом роҳе. мебарояд.

Ба расмият даровардани DevOps ва озод кунед

Тартиби озодкунӣ метавонад, масалан, чунин бошад. Вақте ки таҳия ба анҷом мерасад ва ду ё се марҳилаи санҷиш анҷом ёфт, мо ба дастаи DevOps 36 соат пеш аз вақти интизории барориши он паёми электронӣ менависем. Пас аз ин, мо ба дастаи devops занг мезанем ва ҳама тағиротҳоро дар муҳитҳо муҳокима мекунем (мо ба онҳо дар бораи ҳама тағирот дар пойгоҳи додаҳо ва конфигуратсия хабар медиҳем). Барои ҳар як тағирот мо ҳуҷҷат дорем (чипта дар Jira). Сипас, ҳангоми баровардан, ҳама дар ин кор иштирок мекунанд ва ҳама мегӯянд, ки ҳоло чӣ кор карда истодаанд: "Мо базаи маълумотро бор кардем", "Мо фалон serverҳоро аз нав оғоз кардем", "Мо барои гузаронидани санҷишҳои регрессионӣ дар муҳити истеҳсолӣ рафтем. » Агар чизе хато кунад, тартиби баргардонидани релиз оғоз карда мешавад, ки дар ҳуҷҷати аслии интишор тавсиф шудааст - бидуни чунин ҳуҷҷат мо ҳатман чизеро фаромӯш мекунем ё ошуфта мешавем.

Сифати codeро назорат кунед

Ва ниҳоят, баррасии code амалияест, ки бо ягон сабаб дар ҳама лоиҳаҳо истифода намешавад. Ин хеле хуб аст, агар ҳар як порчаи code аз ҷониби зиёда аз як шахс баррасӣ карда шавад. Ҳатто дар як дастаи хеле қавӣ, баъзе хатогиҳо ҳамеша ҳангоми баррасии code ошкор карда мешаванд ва агар якчанд нафар ба он нигоҳ кунанд, шумораи хатогиҳои муайяншуда зиёд мешавад. Гузашта аз ин, баъзан аз назари сеюм ё чорум чизи бадтаринро пайдо мекунад.

Воситаҳое, ки навиштани ҳуҷҷатҳои техникиро осон мекунанд

Сарчашма: Dzone Аксари барномасозон навиштани ҳуҷҷатҳои техникиро дӯст намедоранд. Коршиноси психологӣ Ҷералд Вайнберг ҳатто ҳуҷҷатҳоро "равғани кастори барномасозӣ" номид: таҳиягарон хондани онро дӯст медоранд, аммо аз навиштани он худашон нафрат доранд. Кофе-брейк №20.  Рамзи меросӣ чист ва чӣ тавр бо он кор кардан мумкин аст.  Воситаҳое, ки навиштани ҳуҷҷатҳои техникиро осон мекунанд - 2Набудани роҳнамо ё харитаи роҳ ба нарасидани маълумот дар бораи чӣ гуна кор кардани қисмҳои гуногуни нармафзор оварда мерасонад. Ин дар ниҳоят таҷрибаи корбарони ниҳоии codeро бадтар мекунад, зеро дар сурати мавҷуд набудани ҳуҷҷатҳо, онҳо наметавонанд ба дақиқӣ ва муфидии маҳсулот такя кунанд. Барои осонтар кардани одати навиштани ҳуҷҷатҳо барои барномасозон, ман тавсия медиҳам, ки ба чаҳор абзори аъло, ки ҳоло қариб барои ҳама дастрасанд, диққат диҳам.

Саҳифаҳои GitHub

Эҳтимол имрӯз ягон таҳиягаре набошад, ки таҷрибаи кор дар GitHub надошта бошад. Он инчунин ҷои хубест барои барномасозоне, ки барои нигоҳ доштани ҳуҷҷатҳо ба ҷое ниёз доранд. Бисёр одамон Readme-и стандартиро дар пойгоҳи codeи худ истифода мебаранд, то ба корбар дастури оддии тарзи корҳоро пешниҳод кунанд, аммо ин ягона роҳи эҷоди ҳуҷҷатҳо дар GitHub нест. Бо Саҳифаҳои GitHub , шумо на танҳо хостинги саҳифаҳои лоиҳаи худ, аз ҷумла ҳуҷҷатҳо ва дастурҳои дарсӣ бештар ба даст меоред. Шумо имкони муоширати мустақим бо ҳама анбори GitHub пайдо мекунед, ки ба таҳиягарон имкон медиҳад, ки ҳуҷҷатҳоро ҳамон тавре ки рамзи худро навсозӣ кунанд, навсозӣ кунанд. Ғайр аз он, шумо метавонед Jekyll-ро дар ин ҷо истифода баред - он ба шумо кӯмак мекунад, ки аломати худро ба матни оддӣ ё ба веб-саҳифаҳои мукаммал табдил диҳед.

Ҳуҷҷатҳоро хонед

Тавре ки аз ном бармеояд, Read the Docs ба таҳиягарон платформаи нигоҳдорӣ ва хондани ҳуҷҷатҳоро пешкаш мекунад. Хидмат ба монанди Саҳифаҳои GitHub кор мекунад: барномасозон метавонанд ба ҳуҷҷатҳо аз системаҳои идоракунии versionи дӯстдоштаи худ, аз ҷумла Git, Bazaar, Mercurial ва дигарон тағйирот ворид кунанд. Версияи худкор ва эҷоди саҳифа низ дастгирӣ карда мешавад. Беҳтарин қисми Read Docs чандирии он аст. Он вебхукҳоро дастгирӣ мекунад, то шумо метавонед қисми зиёди раванди эҷоди ҳуҷҷатҳоро автоматӣ кунед. Ин як сарфаи вақти бузург дар иҷрои вазифаест, ки аксари барномасозон намехоҳанд бо он коре кунанд. Илова бар ин, ҳама чизест, ки дар платформа ҷойгир аст, дар форматҳои гуногун, аз ҷумла PDF, HTML-саҳифа ва ҳатто формати китоби электронӣ дастрас аст. Хизматрасонӣ қисми муҳими кори муқаррариро барои навсозӣ кардани ҳуҷҷатҳо ба ӯҳда мегирад.

Теттра

Tettra на танҳо як платформаи нигоҳдории ҳуҷҷатҳои нармафзор, балки як пойгоҳи пурраи дониш аст. Он хусусан вақте хуб кор мекунад, ки лоиҳа як гурӯҳи калони codeерҳоро дар қисмҳои гуногуни нармафзор кор мекунад. Tettra метавонад барои ҳуҷҷатгузории ҷавобҳо ба саволҳои умумӣ истифода шавад.

Аравхона

Он чизе, ки Apiary-ро барои таҳиягарон ин қадар муфид мегардонад , он аст, ки он барои кӯмак дар ҳуҷҷатҳои API кори хубе мекунад. Платформа ба корбарон имкон медиҳад, ки ҳуҷҷатҳои худро дар Markdown нависед , аз ҷумла зангҳои тақаллубии API. Apiary инчунин ба шумо имкон медиҳад, ки унсурҳои API-ро санҷед ва прототип кунед. Ба ибораи дигар, он як воситаи ҳуҷҷатгузорӣ ва платформаи санҷишӣ дар як ҷо мебошад.
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION