{"id":92,"date":"2016-12-31T16:36:59","date_gmt":"2016-12-31T15:36:59","guid":{"rendered":""},"modified":"2018-09-17T21:51:43","modified_gmt":"2018-09-17T19:51:43","slug":"zaciname-s-vyvojom-pre-jiru","status":"publish","type":"post","link":"https:\/\/spireng.sk\/en\/zaciname-s-vyvojom-pre-jiru\/","title":{"rendered":"Za\u010d\u00edname s v\u00fdvojom pre Jiru"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"imgp_img\" style=\"float: left; margin: 2px 5px;\" src=\"\/sites\/default\/files\/imagepicker\/1\/45d6fsd6.jpg\" alt=\"Obr\u00e1zok\" width=\"200\" height=\"200\" \/>Existuje firma, ktor\u00e1 sa vol\u00e1 Atlassian a existuje produkt tejto firmy, ktor\u00fd sa vol\u00e1 Jira. Je to Jira issue tracking system (teda syst\u00e9m na zaznamen\u00e1vanie a spravovanie r\u00f4znych po\u017eiadaviek), ktor\u00fd je v na\u0161ich zemepisn\u00fdch \u0161\u00edrkach pomerne roz\u0161\u00edren\u00fd. <span style=\"background: transparent;\">Ale nie<\/span><span style=\"background: transparent;\">len u n\u00e1s sa hojne pou\u017e\u00edva a<\/span> to (ako aj v mnoh\u00fdch in\u00fdch pr\u00edpadoch) viedlo k tomu, \u017ee to nie je len softv\u00e9r so zop\u00e1r nastaveniami, ale je to tie\u017e platforma, ktor\u00e1 m\u00e1 mno\u017estvo bodov, kde je mo\u017en\u00e9 ju roz\u0161irova\u0165. V tomto \u010dl\u00e1nku sa pozrieme na z\u00e1klady v\u00fdvoja pre Jiru.<!--more--><!--break--><\/p>\n<p>Jira je webovsk\u00fd informa\u010dn\u00fd syst\u00e9m vytvoren\u00fd pomocou Javy. Javisti to preto bud\u00fa ma\u0165 o \u010dosi jednoduch\u0161ie. Na to. aby ste si mohli za\u010da\u0165 s jej programovan\u00edm, potrebujete tieto tri veci:<\/p>\n<p>1. ma\u0165 aspo\u0148 hrub\u00fa predstavu o jej architekt\u00fare<\/p>\n<p>2. pozna\u0165 Jira SDK<\/p>\n<p>3. vedie\u0165 o mo\u017enostiach roz\u0161\u00edrenia Jiry<\/p>\n<p>Jira je tu u\u017e s nami nejak\u00fdch 14 rokov a za t\u00fa dobu pre\u0161la pomerne zna\u010dn\u00fdm v\u00fdvojom. V dne\u0161nej dobe vlastne \u201eJira\u201c znamen\u00e1 Jira platformu (ktor\u00e1 poskytuje z\u00e1kladn\u00e9 slu\u017eby pre aplik\u00e1cie na nej postaven\u00e9 ako je pr\u00e1ca s issue, workflow, search alebo email) a tri aplik\u00e1cie, ktor\u00e9 s\u00fa na platforme postaven\u00e9:<\/p>\n<ul>\n<li>Jira core \u2013 klasick\u00fd issue tracker pre softv\u00e9rov\u00e9 t\u00edmy<\/li>\n<li>Jira service desk \u2013 obsluha po\u017eiadaviek na podporu pre z\u00e1kazn\u00edka<\/li>\n<li>Jira software \u2013 ku core \u010dasti priba\u013euje aj pl\u00e1novanie (napr. aj agiln\u00e9)<\/li>\n<\/ul>\n<p>Jira je v podstate JavaEE webov\u00e1 aplik\u00e1cia, \u010do znamen\u00e1, \u017ee vo v\u00fdsledku je to war-ko, ktor\u00e9 je mo\u017en\u00e9 nasadi\u0165 do JavaEE kontajnera. Na web rozhranie pou\u017e\u00edva <a href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_Velocity\">Apache Velocity<\/a> \u0161abl\u00f3nov\u00fd syst\u00e9m. Okrem samotn\u00e9ho v\u00fdstupn\u00e9ho HTML je samozrejme nutn\u00e9 rie\u0161i\u0165 aj mno\u017estvo in\u00fdch oblast\u00ed, ktor\u00e9 maj\u00fa v Jire na starosti r\u00f4zne komponenty:<\/p>\n<ul>\n<li><em>Seraph<\/em> \u2013 security framework<\/li>\n<li><em>Webworks<\/em> \u2013 web framework (Jira pou\u017e\u00edva webwork 1 nie 2)<\/li>\n<li><em>Lucene<\/em> \u2013 pre vyh\u013ead\u00e1vanie<\/li>\n<li><em>Embedded crowd<\/em> \u2013 spr\u00e1va ident\u00edt a Single Sign-On n\u00e1stroj<\/li>\n<li><em>Property Set<\/em> \u2013 modul na uchov\u00e1vanie d\u00e1t vo forme k\u013e\u00fa\u010d-hodnota<\/li>\n<li><em>Of<\/em><em>Biz Entity Engine<\/em> \u2013 n\u00e1stroj na modelovanie dom\u00e9nov\u00fdch inform\u00e1ci\u00ed<\/li>\n<li><em>Active Objects<\/em> \u2013 object-relation mapping n\u00e1stroj na pr\u00e1cu s datab\u00e1zou (ur\u010den\u00fd pre pluginy)<\/li>\n<li><em>OSWorkflow<\/em> \u2013 framework na vytv\u00e1ranie a sp\u00fa\u0161\u0165anie procesov (workflowov)<\/li>\n<li><em>Quartz<\/em> \u2013 pl\u00e1novacia slu\u017eba (v nastavenom \u010dase, alebo v pravideln\u00fdch intervaloch vie sp\u00fa\u0161\u0165a\u0165 definovan\u00e9 \u00falohy<\/li>\n<li><em>Pico Container<\/em> \u2013 DI framework<\/li>\n<\/ul>\n<p>A samozrejme okrem toho Jira obsahuje mno\u017estvo svojho k\u00f3du, ktor\u00fd toto v\u0161etko pou\u017e\u00edva a v podstate d\u00e1va dokopy.<\/p>\n<p>Preh\u013ead o z\u00e1kladn\u00fdch komponentoch by sme mali. Ako druh\u00e1 vec v zozname je Jira SDK. Je to bal\u00edk n\u00e1strojov, ktor\u00fd v\u00e1m m\u00e1 u\u013eah\u010di\u0165 v\u00fdvoj. Po nain\u0161talovan\u00ed je n\u00edm mo\u017en\u00e9 napr\u00edklad:<\/p>\n<p>1. vytvori\u0165 pr\u00e1zdny projekt pluginu<\/p>\n<p>2. do existuj\u00faceho pluginu prid\u00e1va\u0165 moduly<\/p>\n<p>3. spusti\u0165 plugin v Jira kontajneri<\/p>\n<p>4. generova\u0165 s\u00fabory pre p\u00edsanie automatick\u00fdch testov (jednotkov\u00fdch\/integra\u010dn\u00fdch)<\/p>\n<p>Hlavne bod \u010d\u00edslo 3, teda spusti\u0165 plugin v Jira kontajneri, je pomerne zauj\u00edmav\u00fd. Jira SDK za v\u00e1s v podstate priprav\u00ed cel\u00fa Jiru vr\u00e1tane downloadu a spustenia Tomcatu a nasadenia spustenia Jiry. Je to naozaj one-click (one command solution).<\/p>\n<p>A ako posledn\u00fa z\u00e1kladn\u00fa vec je potrebn\u00e9 vedie\u0165 zoznam toho, \u010do v\u00e1m vlastne Jira dovol\u00ed v nej zmeni\u0165. V tomto zozname sa bav\u00edme hlavne o program\u00e1torsk\u00fdch mo\u017enostiach pluginu, teda nie o <span style=\"background: transparent;\">konfigur\u00e1cii v Jiry<\/span>, kde si viete napr\u00edklad konfigurova\u0165 workflowy alebo prid\u00e1va\u0165 nov\u00e9 polia do issue. Naproti tomu, toto s\u00fa veci, na ktor\u00e9 budete potrebova\u0165 vyvin\u00fa\u0165 plugin:<\/p>\n<ul>\n<li>vlastn\u00fd \u2013 nov\u00fd \u2013 typ po\u013ea pre issue (a k tomu naviazan\u00e9 \u010fal\u0161ie \u00fadaje ako valid\u00e1cia, changelog hodnota, pomocn\u00e1 hodnota at\u010f.)<\/li>\n<li>nov\u00e1 podmienka\/valid\u00e1cia\/post funkcia do workflowu<\/li>\n<li>programovo posun\u00fa\u0165 issue vo workflove<\/li>\n<li>nastavova\u0165 pr\u00e1va na issue na z\u00e1klade statusu<\/li>\n<li>vytvori\u0165 nov\u00fd typ reportu a jeho export do Excelu<\/li>\n<li>vytvorenie gadgetu na dashboard<\/li>\n<li>vytvorenie JQL funkcie<\/li>\n<li>indexova\u0165 a de-indexova\u0165 issue<\/li>\n<li>programovo spravova\u0165 filtre<\/li>\n<li>programovo vytvori\u0165\/aktualizova\u0165\/zmaza\u0165 issue alebo subtask<\/li>\n<li>programovo pracova\u0165 s changelogom alebo worklogom<\/li>\n<li>dynamick\u00e9 vytv\u00e1ranie nov\u00fdch oper\u00e1ci\u00ed s issue<\/li>\n<li>link renderer pre nov\u00fd druh extern\u00fdch liniek<\/li>\n<li>nov\u00fd tab na issue obrazovke<\/li>\n<\/ul>\n<p>Toto je len hrub\u00fd zoznam mo\u017enost\u00ed. Atlassian urobil ve\u013ea pre to, aby sa Jira dala pod\u013ea mo\u017enosti \u010do najviac roz\u0161irova\u0165 a z\u00e1rove\u0148, aby to roz\u0161irovanie bolo \u010do najviac bezbolestn\u00e9. Preto je vytvoren\u00e9 \u0161ikovn\u00e9 SDK, ktor\u00e9 zjednodu\u0161\u00ed cel\u00fd proces, a preto m\u00e1 Jira mno\u017estvo bodov roz\u0161\u00edrenia, na ktor\u00e9 viete napoji\u0165 svoj k\u00f3d a robi\u0165 \u010do treba. Jira sa tak st\u00e1va pomerne plastick\u00fd n\u00e1stroj, ktor\u00fd je schopn\u00fd modelova\u0165 r\u00f4zne scen\u00e1re, ktor\u00e9 maj\u00fa z\u00e1klad v issue trackingu.<\/p>","protected":false},"excerpt":{"rendered":"<p>Existuje firma, ktor\u00e1 sa vol\u00e1 Atlassian a existuje produkt tejto firmy, ktor\u00fd sa vol\u00e1 Jira. Je to Jira issue tracking system (teda syst\u00e9m na zaznamen\u00e1vanie a spravovanie r\u00f4znych po\u017eiadaviek), ktor\u00fd je v na\u0161ich zemepisn\u00fdch \u0161\u00edrkach pomerne roz\u0161\u00edren\u00fd. Ale nielen u n\u00e1s sa hojne pou\u017e\u00edva a to (ako aj v mnoh\u00fdch in\u00fdch pr\u00edpadoch) viedlo k tomu, [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-92","post","type-post","status-publish","format-standard","hentry","category-vyvoj-softveru"],"_links":{"self":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/comments?post=92"}],"version-history":[{"count":2,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/92\/revisions"}],"predecessor-version":[{"id":138,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/posts\/92\/revisions\/138"}],"wp:attachment":[{"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/media?parent=92"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/categories?post=92"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/spireng.sk\/en\/wp-json\/wp\/v2\/tags?post=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}