{"id":36874,"date":"2020-02-28T10:46:38","date_gmt":"2020-02-28T08:46:38","guid":{"rendered":"http:\/\/arcadsoftware.com\/?p=36874"},"modified":"2024-11-18T12:40:17","modified_gmt":"2024-11-18T10:40:17","slug":"code-review-go-automatic","status":"publish","type":"post","link":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/","title":{"rendered":"Code review: go automatic!"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_2_3 2_3 fusion-flex-column\" style=\"--awb-bg-blend:overlay;--awb-bg-size:cover;--awb-width-large:66.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:2.88%;--awb-width-medium:66.666666666667%;--awb-spacing-right-medium:2.88%;--awb-spacing-left-medium:2.88%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><h3 style=\"text-align: center; margin-top: 10px; margin-bottom: 20px; font-size: 15px;\">By S\u00e9bastien Julliand<\/h3>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_2_3 2_3 fusion-flex-column\" style=\"--awb-bg-blend:overlay;--awb-bg-size:cover;--awb-width-large:66.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:2.88%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-2 summary\"><h2 style=\"text-align: center;\">Summary<\/h2>\n<ol>\n<li><a class=\"fusion-one-page-text-link\" href=\"\/arcad\/news-events\/blog\/code-review-go-automatic\/#Captain-take-the-ship-hard-to-port\">Captain, take the ship \u201chard to port\u201d!<\/a><\/li>\n<li><a class=\"fusion-one-page-text-link\" href=\"\/arcad\/news-events\/blog\/code-review-go-automatic\/#Developer-brain-time-available\">Developer brain time available<\/a><\/li>\n<li><a class=\"fusion-one-page-text-link\" href=\"\/arcad\/news-events\/blog\/code-review-go-automatic\/#Nothing-is-lost-everything-is-shared\">Nothing is lost, everything is shared<\/a><\/li>\n<li><a class=\"fusion-one-page-text-link\" href=\"\/arcad\/news-events\/blog\/code-review-go-automatic\/#Meanwhile-on-the-ibm-i\">Meanwhile, on the IBM i<\/a><\/li>\n<li><a class=\"fusion-one-page-text-link\" href=\"\/arcad\/news-events\/blog\/code-review-go-automatic\/#What-about-security\">What about security? <\/a><\/li>\n<li><a class=\"fusion-one-page-text-link\" href=\"\/arcad\/news-events\/blog\/code-review-go-automatic\/#The-final-word\">The final word <\/a><\/li>\n<\/ol>\n<\/div><div class=\"fusion-separator fusion-full-width-sep\" style=\"align-self: center;margin-left: auto;margin-right: auto;margin-bottom:20px;width:100%;\"><\/div><div class=\"fusion-text fusion-text-3\"><p>It won\u2019t come as any surprise to you if I say that code review <em>matters<\/em>.\u00a0 Anyone in our industry knows that peer review goes a long way to ensuring quality, for many diverse reasons (not least the very human reaction of not wanting to disappoint your peers!). Good quality code is easy to maintain, so there is a considerable financial impact too.\u00a0 Looking out for the complexity and the readability of source code right at the point it is written is an investment that pays off on the long term.\u00a0 Continuous code review keeps your &#8220;technical debt&#8221; burden in check\u2026<\/p>\n<p>So why is something as elementary as code review so effective? As any developer will tell you, code has a &#8220;<em>smell<\/em>&#8220;.\u00a0 This notion of &#8220;code smell&#8221; is very common in standard definitions of code review.\u00a0 Within minutes of perusing a block of source code an experienced developer can instinctively distinguish code that &#8220;smells good&#8221; from one that is suspicious or risky.<\/p>\n<p>It is the heuristics of this instinctive process that, where possible, are built into automated code review tools in the form of predefined quality rules and rulesets.\u00a0 These rules can catch the most frequent quality defects.\u00a0 Thus keeping code clean becomes much easier (or more &#8220;pleasant&#8221;, as some enthusiasts would say) and avoids code falling into the most common traps such as <em>spaghetti code<\/em> or <em>god objects<\/em>\u2026<\/p>\n<div class=\"fusion-menu-anchor\" id=\"Captain-take-the-ship-hard-to-port\"><\/div>\n<h2><strong>1. Captain, take the ship &#8220;hard to port&#8221;!<\/strong><\/h2>\n<p>The whole point of a code review is to detect problems as early as possible in the development cycle. This is the principle of &#8220;shift left&#8221; testing: <em>test early<\/em>. The earlier a bug is detected, the less expensive it will be to fix it. But this principle only partially answers Larry Page&#8217;s maxim: &#8220;Test early and often&#8221;. Automating code review makes this frequent checking possible by applying quality rules directly in the development environment or, at least at regular intervals in batch.<\/p>\n<div class=\"fusion-menu-anchor\" id=\"Developer-brain-time-available\"><\/div>\n<h2><strong>2. Developer brain time available<\/strong><\/h2>\n<p>Code review takes time, and especially valuable developers\u2019 time. By automating everything that can be automated in a code review, we can avoid teams losing time on the more daunting aspects of the task.\u00a0 We also avoid the opportunity cost of draining key resources that could instead be allocated to building \u201crevenue driving\u201d functionality.<\/p>\n<p>The creation of rules and then rapid enforcement of compliance with coding standards (e.g. indentation, naming of objects, fields, methods, &#8230;) is performed much better and more reliably by automated tools.\u00a0 \u00a0The same is true for quality rules that highlight inefficient or even &#8220;<em>dead<\/em>&#8221; code.\u00a0 This level of automation leaves developers with more time to focus on the more complex problems that only a manual code review can decipher.<\/p>\n<p>Automation thus increases (or at least does not decrease) developer availability and prevents harmful bottlenecks from emerging the development cycle.<\/p>\n<p>Nevertheless, it goes without saying that a tool, however powerful it may be, will never completely replace the sharp eye and coaching skills of an experienced developer in the most challenging of cases&#8230;<\/p>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_2_3 2_3 fusion-flex-column\" style=\"--awb-padding-top:40px;--awb-padding-right:40px;--awb-padding-bottom:25px;--awb-padding-left:40px;--awb-bg-color:rgba(232,232,232,0.38);--awb-bg-color-hover:rgba(232,232,232,0.38);--awb-bg-size:cover;--awb-border-color:#ea5050;--awb-border-left:7px;--awb-border-style:solid;--awb-width-large:66.666666666667%;--awb-margin-top-large:45px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:2.88%;--awb-width-medium:66.666666666667%;--awb-order-medium:0;--awb-spacing-right-medium:2.88%;--awb-spacing-left-medium:2.88%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-4 fusion-text-no-margin\" style=\"--awb-margin-bottom:5px;\"><p><strong>Continuous Quality checking for your RPG code : Eliminate the &#8220;technical debt&#8221; in your IBM i application. Watch Now!<\/strong><\/p>\n<\/div><div style=\"text-align:right;\"><a class=\"fusion-button button-flat button-xlarge button-custom fusion-button-default button-1 fusion-button-span-no fusion-button-default-type\" style=\"--button_accent_color:#ea5050;--button_border_color:#ea5050;--button_accent_hover_color:#437cb4;--button_border_hover_color:#437cb4;--button_border_width-top:0px;--button_border_width-right:0px;--button_border_width-bottom:0px;--button_border_width-left:0px;--button-border-radius-top-left:0px;--button-border-radius-top-right:0px;--button-border-radius-bottom-right:0px;--button-border-radius-bottom-left:0px;--button_gradient_top_color:rgba(255,255,255,0);--button_gradient_bottom_color:rgba(255,255,255,0);--button_gradient_top_color_hover:rgba(255,255,255,0);--button_gradient_bottom_color_hover:rgba(255,255,255,0);\" target=\"_blank\" rel=\"noopener noreferrer\" href=\"\/arcad\/news-events\/on-demand-webinars\/continuous-quality-checking-for-your-rpg-code\/\"><span class=\"fusion-button-text awb-button__text awb-button__text--default\">Watch the webinar<\/span><i class=\"fa-arrow-right fas awb-button__icon awb-button__icon--default button-icon-right\" aria-hidden=\"true\"><\/i><\/a><\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_2_3 2_3 fusion-flex-column\" style=\"--awb-bg-blend:overlay;--awb-bg-size:cover;--awb-width-large:66.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:2.88%;--awb-width-medium:100%;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-5\"><div class=\"fusion-menu-anchor\" id=\"Nothing-is-lost-everything-is-shared\"><\/div>\n<h2 class=\"fusion-responsive-typography-calculated\" style=\"--fontsize: 40; line-height: 1.2;\" data-fontsize=\"40\" data-lineheight=\"48px\"><strong>3. Nothing is lost, everything is shared<\/strong><\/h2>\n<p>Knowledge sharing is a crucial and often problematic issue within development teams. At best, good technical practices and coding standards will be recorded in a document management tool and at worst they will be&#8230; in the collective unconscious! It would be unfair to blame a newcomer for not respecting the standards, if they are only used and understood by the most experienced team members.<\/p>\n<p>Here again, the benefits of automation are measurable. A good source quality checking tool will naturally become the de facto documentary reference as to standards and best practices. As it is applied, the tool will gain in value as it is continually enriched with more and more rules,<\/p>\n<p>This makes code quality checkers an efficient and reliable way of sharing knowledge within a project and ensuring that standards are applied. The most efficient technique \u2013 and the one that fits best in a DevOps approach \u2013 is to integrate the code quality checker right into the development environment, making the checking and enforcement of quality rules <em>continuous<\/em>. It also saves the developer the tedious task of flipping back and forth between his editor and some external knowledge source.<\/p>\n<div class=\"fusion-menu-anchor\" id=\"Meanwhile-on-the-ibm-i\"><\/div>\n<h2 class=\"fusion-responsive-typography-calculated\" style=\"--fontsize: 40; line-height: 1.2;\" data-fontsize=\"40\" data-lineheight=\"48px\"><strong>4. Meanwhile, on the IBM i<\/strong><\/h2>\n<p>&#8220;<em>Old pots make the best soup<\/em>,&#8221; comes to mind when talking about the IBM i platform. Initially sidelined by the DevOps scene, IBM&#8217;s historic OS is pushing back strongly, thanks to the mobilization of major tool vendors and the Open Source world. Development on the IBM i platform is dominated by the RPG language, on which IBM has invested heavily over the last twenty years, giving it a new lease of life thanks to its RPG Free and especially RPG Fully Free form variants, which bring it right the fore of modern languages. Taking care of the specifics of RPG in an automatic code review requires specialized tools, and this is precisely what <a href=\"https:\/\/www.arcadsoftware.com\/arcad\/products\/arcad-code-checker-source-quality\/\">ARCAD CodeChecker<\/a>, (the source code quality checker from the ARCAD for DevOps range from ARCAD Software) is designed to do. All forms and evolutions of the language are supported by the product, from RPG III to RPG-FullyFree, and even cases of mixed Columnar\/Free. As experienced RPG developers are becoming increasingly rare, CodeChecker capitalizes on more than 28 years of experience in this field by providing a hundred or so quality rules applicable not only to RPG, but also to the CL language and very soon to COBOL.<\/p>\n<div class=\"fusion-menu-anchor\" id=\"What-about-security\"><\/div>\n<h2 class=\"fusion-responsive-typography-calculated\" style=\"--fontsize: 40; line-height: 1.2;\" data-fontsize=\"40\" data-lineheight=\"48px\"><strong>5. What about security?<\/strong><\/h2>\n<p>If there is one subject of utmost importance, especially since the advent of the DevOps movement, it is undoubtedly <em>security within the source code<\/em>. We are talking here about <em>DevSecOps<\/em>. In principle, DevSecOps requires that security of an application be a design consideration right from the very beginning &#8211; security by design. To take an example, by applying quality control rules based on the OWASP community recommendations, serious security flaws can be avoided, such as SQL injection risks, buffer overflow risks, etc.<\/p>\n<p>Legacy systems are not entirely without their own security issues either. For example, in the case of the IBM i platform where application modernization techniques are common, traditional legacy programs are now routinely exposed as Web services. This creates a new risk that was hitherto unheard of in IBM i applications. It is therefore critical to detect security flaws in RPG code as early as possible. This security area is thoroughly covered by ARCAD CodeChecker, which as part of its DevSecOps ruleset, will detect and report on risks of SQL injection in RPG.<\/p>\n<div class=\"fusion-menu-anchor\" id=\"The-final-word\"><\/div>\n<h2 class=\"fusion-responsive-typography-calculated\" style=\"--fontsize: 40; line-height: 1.2;\" data-fontsize=\"40\" data-lineheight=\"48px\"><strong>6. The final word<\/strong><\/h2>\n<p>In conclusion, the legacy or &#8220;heritage&#8221; systems such as IBM i have an equal, or arguably even greater need for code review than their distributed counterparts. The growing scarcity of coding skills in languages like RPG has only increased the importance of automated code checking, as new generations of developers step up to maintain these core mission critical applications with little prior knowledge of the rather specific languages that comprise them.<\/p>\n<p>Their specific technology has meant that legacy systems have in the past been left somewhat aside in the enterprise CI\/CD chain, deploying at a different frequency and using a very different set of tools. However the situation is changing fast, thanks to a number of modern tools that have been integrated into the platform by default. Key examples include Git, which has already taken a firm foothold on IBM i and z\/OS, and Ansible, just starting to make headway in the legacy world.<\/p>\n<p>The automated code quality checkers are also gaining ground. Take for example SonarQube, which offers partial support for the RPG language. As mentioned above, if it is full support of all RPG variants that you need, then <a href=\"https:\/\/www.arcadsoftware.com\/arcad\/products\/arcad-code-checker-source-quality\/\">ARCAD CodeChecker<\/a> alone delivers the exhaustive IBM i coverage required to future-proof your application, whatever the mix of languages it may contain.<\/p>\n<p>Source code quality checking is now a mainstream function that fits naturally within the continuous integration (CI) phase of the DevOps cycle. With the ARCAD for DevOps range of solutions, and ARCAD CodeChecker in particular, you can automate a continuous quality process on IBM i to &#8220;shift defects left&#8221; and eliminate any risk of security vulnerabilities as you modernize.<\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-padding-top:30px;--awb-margin-top:45px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-justify-content-center fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-4 fusion_builder_column_1_6 1_6 fusion-flex-column fusion-flex-align-self-flex-start\" style=\"--awb-bg-blend:overlay;--awb-bg-size:cover;--awb-width-large:16.666666666667%;--awb-margin-top-large:0px;--awb-spacing-right-large:2.88%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:11.52%;--awb-width-medium:16.666666666667%;--awb-spacing-right-medium:2.88%;--awb-spacing-left-medium:11.52%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-6\"><p><img decoding=\"async\" class=\"alignnone wp-image-70422 size-medium\" src=\"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/SJU-Teams-Linkedin-PPT-300x300.png\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/SJU-Teams-Linkedin-PPT-66x66.png 66w, https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/SJU-Teams-Linkedin-PPT-150x150.png 150w, https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/SJU-Teams-Linkedin-PPT-200x200.png 200w, https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/SJU-Teams-Linkedin-PPT-300x300.png 300w, https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/SJU-Teams-Linkedin-PPT-400x400.png 400w, https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/SJU-Teams-Linkedin-PPT.png 500w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/p>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-5 fusion_builder_column_3_5 3_5 fusion-flex-column\" style=\"--awb-bg-blend:overlay;--awb-bg-size:cover;--awb-width-large:60%;--awb-margin-top-large:0px;--awb-spacing-right-large:3.2%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:0.8%;--awb-width-medium:80%;--awb-spacing-right-medium:2.4%;--awb-spacing-left-medium:0.6%;--awb-width-small:100%;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-7\"><h3 style=\"margin-bottom: 0px; margin-top: 0px;\"><span lang=\"EN-US\">S\u00e9bastien Julliand<\/span><\/h3>\n<h4 style=\"margin-bottom: 0px; margin-top: 0px;\">Product Line Manager<\/h4>\n<p>S\u00e9bastien Julliand is a product manager at ARCAD Software and has been working on bringing the IBM i and open systems worlds together for more than ten years. Driven by his enthusiasm for technical challenges and a strong development expertise in many languages, from RPGLE to Java, Julliand joined ARCAD&#8217;s research and development as a functional and technical advisor, becoming a specialist on a wide range of products. Julliand is also involved in the development of several ARCAD products, particularly those focused on DevOps, and is specifically the product manager for ARCAD CodeChecker, a source code quality checker for IBM i for which Julliand brings his experience as a day-to-day developer.<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SonarQube is the de-facto standard code review tool for many modern languages today.  But do you need to automate the same continuous quality checking for your RPG code and CL?<\/p>\n","protected":false},"author":3,"featured_media":70420,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[219],"tags":[563,371],"class_list":["post-36874","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-blog-article","tag-ibm-i-devops"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Code review: go automatic! - ARCAD<\/title>\n<meta name=\"description\" content=\"Code review is a critical stage of development. It is essential for a developer to guarantee its quality and therefore maintainability.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Code review: go automatic! - ARCAD\" \/>\n<meta property=\"og:description\" content=\"Code review is a critical stage of development. It is essential for a developer to guarantee its quality and therefore maintainability.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/\" \/>\n<meta property=\"og:site_name\" content=\"ARCAD\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/pages\/Arcad-Software\/116086138469235\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-28T08:46:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-18T10:40:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/Banniere-article-blog-Code-review-go-automatic.png\" \/>\n\t<meta property=\"og:image:width\" content=\"940\" \/>\n\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"administrator\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"administrator\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/\"},\"author\":{\"name\":\"administrator\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#\\\/schema\\\/person\\\/ac3c33678907c9c414148df7a202dfbf\"},\"headline\":\"Code review: go automatic!\",\"datePublished\":\"2020-02-28T08:46:38+00:00\",\"dateModified\":\"2024-11-18T10:40:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/\"},\"wordCount\":2730,\"publisher\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/Banniere-article-blog-Code-review-go-automatic.png\",\"keywords\":[\"Blog Article\",\"DevOps for IBM i\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/\",\"name\":\"Code review: go automatic! - ARCAD\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/Banniere-article-blog-Code-review-go-automatic.png\",\"datePublished\":\"2020-02-28T08:46:38+00:00\",\"dateModified\":\"2024-11-18T10:40:17+00:00\",\"description\":\"Code review is a critical stage of development. It is essential for a developer to guarantee its quality and therefore maintainability.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/Banniere-article-blog-Code-review-go-automatic.png\",\"contentUrl\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2020\\\/02\\\/Banniere-article-blog-Code-review-go-automatic.png\",\"width\":940,\"height\":350},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/news-events\\\/blog\\\/code-review-go-automatic\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"ARCAD\",\"item\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Code review: go automatic!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#website\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/\",\"name\":\"ARCAD\",\"description\":\"Experts DevOps &amp; Modernisation sur IBM i (alias AS\\\/400 ou AS400)\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#organization\",\"name\":\"ARCAD Software\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/arcad-group-logo-text-144.png\",\"contentUrl\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/wp-content\\\/uploads\\\/2017\\\/09\\\/arcad-group-logo-text-144.png\",\"width\":144,\"height\":200,\"caption\":\"ARCAD Software\"},\"image\":{\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/pages\\\/Arcad-Software\\\/116086138469235\",\"https:\\\/\\\/x.com\\\/arcad_software\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/arcad-software\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/ARCADSoftwareInc\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/#\\\/schema\\\/person\\\/ac3c33678907c9c414148df7a202dfbf\",\"name\":\"administrator\",\"url\":\"https:\\\/\\\/www.arcadsoftware.com\\\/arcad\\\/author\\\/administrator\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Code review: go automatic! - ARCAD","description":"Code review is a critical stage of development. It is essential for a developer to guarantee its quality and therefore maintainability.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/","og_locale":"en_US","og_type":"article","og_title":"Code review: go automatic! - ARCAD","og_description":"Code review is a critical stage of development. It is essential for a developer to guarantee its quality and therefore maintainability.","og_url":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/","og_site_name":"ARCAD","article_publisher":"https:\/\/www.facebook.com\/pages\/Arcad-Software\/116086138469235","article_published_time":"2020-02-28T08:46:38+00:00","article_modified_time":"2024-11-18T10:40:17+00:00","og_image":[{"width":940,"height":350,"url":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/Banniere-article-blog-Code-review-go-automatic.png","type":"image\/png"}],"author":"administrator","twitter_misc":{"Written by":"administrator","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/#article","isPartOf":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/"},"author":{"name":"administrator","@id":"https:\/\/www.arcadsoftware.com\/arcad\/#\/schema\/person\/ac3c33678907c9c414148df7a202dfbf"},"headline":"Code review: go automatic!","datePublished":"2020-02-28T08:46:38+00:00","dateModified":"2024-11-18T10:40:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/"},"wordCount":2730,"publisher":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/#organization"},"image":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/#primaryimage"},"thumbnailUrl":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/Banniere-article-blog-Code-review-go-automatic.png","keywords":["Blog Article","DevOps for IBM i"],"articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/","url":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/","name":"Code review: go automatic! - ARCAD","isPartOf":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/#primaryimage"},"image":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/#primaryimage"},"thumbnailUrl":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/Banniere-article-blog-Code-review-go-automatic.png","datePublished":"2020-02-28T08:46:38+00:00","dateModified":"2024-11-18T10:40:17+00:00","description":"Code review is a critical stage of development. It is essential for a developer to guarantee its quality and therefore maintainability.","breadcrumb":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/#primaryimage","url":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/Banniere-article-blog-Code-review-go-automatic.png","contentUrl":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2020\/02\/Banniere-article-blog-Code-review-go-automatic.png","width":940,"height":350},{"@type":"BreadcrumbList","@id":"https:\/\/www.arcadsoftware.com\/arcad\/news-events\/blog\/code-review-go-automatic\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"ARCAD","item":"https:\/\/www.arcadsoftware.com\/arcad\/"},{"@type":"ListItem","position":2,"name":"Code review: go automatic!"}]},{"@type":"WebSite","@id":"https:\/\/www.arcadsoftware.com\/arcad\/#website","url":"https:\/\/www.arcadsoftware.com\/arcad\/","name":"ARCAD","description":"Experts DevOps &amp; Modernisation sur IBM i (alias AS\/400 ou AS400)","publisher":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.arcadsoftware.com\/arcad\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.arcadsoftware.com\/arcad\/#organization","name":"ARCAD Software","url":"https:\/\/www.arcadsoftware.com\/arcad\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.arcadsoftware.com\/arcad\/#\/schema\/logo\/image\/","url":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2017\/09\/arcad-group-logo-text-144.png","contentUrl":"https:\/\/www.arcadsoftware.com\/arcad\/wp-content\/uploads\/2017\/09\/arcad-group-logo-text-144.png","width":144,"height":200,"caption":"ARCAD Software"},"image":{"@id":"https:\/\/www.arcadsoftware.com\/arcad\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/pages\/Arcad-Software\/116086138469235","https:\/\/x.com\/arcad_software","https:\/\/www.linkedin.com\/company\/arcad-software","https:\/\/www.youtube.com\/user\/ARCADSoftwareInc"]},{"@type":"Person","@id":"https:\/\/www.arcadsoftware.com\/arcad\/#\/schema\/person\/ac3c33678907c9c414148df7a202dfbf","name":"administrator","url":"https:\/\/www.arcadsoftware.com\/arcad\/author\/administrator\/"}]}},"_links":{"self":[{"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/posts\/36874","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/comments?post=36874"}],"version-history":[{"count":7,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/posts\/36874\/revisions"}],"predecessor-version":[{"id":70423,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/posts\/36874\/revisions\/70423"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/media\/70420"}],"wp:attachment":[{"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/media?parent=36874"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/categories?post=36874"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.arcadsoftware.com\/arcad\/wp-json\/wp\/v2\/tags?post=36874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}