{"id":6914,"date":"2022-08-15T09:45:37","date_gmt":"2022-08-15T07:45:37","guid":{"rendered":"http:\/\/blog.bart.sk\/en\/?p=6914"},"modified":"2022-09-07T09:53:28","modified_gmt":"2022-09-07T07:53:28","slug":"one-good-hackathon-compiling-project-no-longer-takes-us-tens-minutes-seconds","status":"publish","type":"post","link":"https:\/\/blog.bart.sk\/en\/one-good-hackathon-compiling-project-no-longer-takes-us-tens-minutes-seconds\/","title":{"rendered":"One Good Hackathon And Compiling a Project No Longer Takes Us Tens of Minutes, But Only Seconds"},"content":{"rendered":"<p><b>In bart, we&#8217;re developing dozens of projects \u2013 sometimes we work on them in the office, sometimes from home. If we want to code or test something, we always have to run the project locally. In our case, this process has so far included the build (minification and compiling code, adding components from libraries, etc.) of all its components (services). The more services the project uses (API, databases\u2026), the longer it takes to &#8220;get started&#8221; so that a person can realistically look at it or work on it.<\/b><\/p>\n<p><span style=\"font-weight: 400;\">In practice, in some cases you can start the project and go have a cup of coffee for 10 minutes, until all the builds pass and you can actually intervene in the code. This is especially ineffective if you just need to insert one or two commands or test something. In addition, if there&#8217;s two of you working on a project, each on their own computer, the launch process takes place at both. At least you can go and have a cup of coffee together.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Prolonged launching takes away your (and the customer&#8217;s) most important commodity \u2013 time. And since we value our and our clients&#8217; time, we sat down one Wednesday after work and set up the task to come up with a faster way of compiling the Crossuite project. Recently, we have expanded it quite a lot and so the whole system needed proper optimization.<\/span><\/p>\n<figure id=\"attachment_9732\" aria-describedby=\"caption-attachment-9732\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9732\" src=\"https:\/\/blog.bart.sk\/wp-content\/uploads\/2022\/08\/298187557_612315630252352_6349440068203712060_n-4.jpg\" alt=\"Hackathon bart.sk\" width=\"500\" height=\"500\" \/><figcaption id=\"caption-attachment-9732\" class=\"wp-caption-text\"><i><span style=\"font-weight: 400;\">Initial analysis and ideas on the board, where Luk\u00e1\u0161 willingly posed.<\/span><\/i><\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">There were six of us in the beginning. During the first hour, we explained the structure of the current functioning and the reasons why the triggering system needs to be redone. The next two hours were spent on analysis and pizza. We brainstormed a lot, designed a concept and divided tasks. And the last five hours were spent coding. I arrived home at 1:30 in the morning, but with a good feeling of achieving something.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">And what did we achieve?<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">The new launch system that we designed and partially tested is constructed so that build is performed automatically, for example after pushing the code of a given service into the repository. At the same time, the so-called service image is created \u2013 a version that is ready for use but cannot be interfered with.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When someone subsequently starts the app, this part doesn&#8217;t need to be built \u2013 the solution simply loads the prepared images. If a programmer wants to change something in the code, they only build the service they need to edit. Everything else is ready for use. The total launching time is thus reduced from tens of minutes to seconds.<\/span><\/p>\n<figure id=\"attachment_9733\" aria-describedby=\"caption-attachment-9733\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9733\" src=\"https:\/\/blog.bart.sk\/wp-content\/uploads\/2022\/08\/298187557_612315630252352_6349440068203712060_n-3.jpg\" alt=\"Hackathon bart.sk\" width=\"500\" height=\"500\" \/><figcaption id=\"caption-attachment-9733\" class=\"wp-caption-text\"><i><span style=\"font-weight: 400;\">Hunger was faster than the photographer.<\/span><\/i><\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">Colleagues from the QA team were most delighted by this new feature, as they often launch the project without the need to intervene in it, just to verify whether something works as it should. Since they don&#8217;t need to change any part of the code, just look at the result, images are enough for them and the entire build process is omitted.<\/span><\/p>\n<figure id=\"attachment_9734\" aria-describedby=\"caption-attachment-9734\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-9734\" src=\"https:\/\/blog.bart.sk\/wp-content\/uploads\/2022\/08\/298187557_612315630252352_6349440068203712060_n-2.jpg\" alt=\"Hackathon bart.sk\" width=\"500\" height=\"500\" \/><figcaption id=\"caption-attachment-9734\" class=\"wp-caption-text\"><i><span style=\"font-weight: 400;\">The new reinforcements of bart didn&#8217;t miss the hackathon, for example colleague \u0160tevo.<\/span><\/i><\/figcaption><\/figure>\n<p><span style=\"font-weight: 400;\">We were able to solve the automatic build for the 6 most critical services of our project. In order to deploy the solution into production, we need to provide it for the other ones, write down the documentation, complete the initiation of the database&#8230; However, we have laid a solid foundation at the hackathon and verified in practice something, until now, theoretical. Plus, we had a great meal and a great laugh. Such Wednesdays could be more frequent, without question.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"In bart, we&#8217;re developing dozens of projects \u2013 sometimes we work on them in the office, sometimes from&hellip;","protected":false},"author":27,"featured_media":6916,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","csco_display_header_overlay":false,"csco_singular_sidebar":"","csco_page_header_type":""},"categories":[210],"tags":[299,297,298,296],"_links":{"self":[{"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/posts\/6914"}],"collection":[{"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/comments?post=6914"}],"version-history":[{"count":1,"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/posts\/6914\/revisions"}],"predecessor-version":[{"id":6917,"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/posts\/6914\/revisions\/6917"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/media\/6916"}],"wp:attachment":[{"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/media?parent=6914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/categories?post=6914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.bart.sk\/en\/wp-json\/wp\/v2\/tags?post=6914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}