• The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
Menu
  • The Four Hundred
  • Subscribe
  • Media Kit
  • Contributors
  • About Us
  • Contact
  • How To Have The Wisdom Of Experts Woven Into Your Code

    October 14, 2024 Nicholas DeLessio

    No matter how far you are down the road with your DevOps automation journey, or even if you’re not yet starting that journey, it’s probably a good idea to have a code checker; not everyone can have a Linus Torvalds review their work (as famously happens with the open source Linux kernel), but there are automation tools available for various languages and platforms that do static code analysis and they are the next best thing.

    These tools, sometimes called “code linters” (because they remove the fuzzy bits out of application logic like actual linters remove imperfections stuck to our clothing), snap into integrated development environments and are commonly used with Windows Server, Linux, and other platforms and are becoming more common with the IBM i platform. Linters encapsulate the best practices for application development in any particular language, and help your programmers adhere to those guidelines and therefore create better code.

    IBM has released a linter for the VS Code IDE that works with SQL and ILE RPG, but that code checker is (oddly enough) not compatible with IBM’s own Rational Developer for i IDE, and it doesn’t work for older versions of the RPG programming language. SonarSource has a code checker called SonarQube that plugs into various IDEs, and it has support for C++, Java, and a few other languages, but if you want support for RPG, you have to buy the enterprise version of its tool. But more importantly, if you use SonarQube for RPG, it is far more limited in its rule set; it only has a very preset, predetermined number of rules that you must follow, and those rules are all hard-stop errors. And importantly, none of the code checkers that are available in the broader market can handle the fixed form RPG, which is still the most common in the IBM i customer base. The code checker that IBM has created for VS Code requires applications to be fully free form, for instance.

    Six years ago, ARCAD Software introduced CodeChecker, its version of a linter for RPG applications, and there are several things that are interesting about it. First of all, it is focused on the IBM i platform and all manner of RPG applications as well as SQL and CL applications. And to be specific, all strains of RPG, way back to RPG-III and RPG-IV, are covered by CodeChecker. Moreover, CodeChecker can snap into RDi or VS Code and integrates with version control systems and standard Git repositories such as GitHub, GitLab and BitBucket. And finally – and importantly for IBM i shops – who are only dipping their toes into DevOps, it is a free-standing tool that is not dependent on anything else in the ARCAD application development toolchain.

    So what does CodeChecker actually do? Well, it is like having Barbara Morris or Jim Buck looking over your shoulder as you code. (The tool was developed using code from ARCAD customers as well as with input from Jim Buck, so it is a bit like having him with you in the same room.) It looks at your new and existing code and it finds things that that are bad, such as, code doesn’t have comments or the code is too nested, making it too deep and too complicated. Or, CodeChecker finds security exposures, such as where data passes in SQL statements, which can be a security risk. Or you have code that uses old style calls, which can be hacked. Maybe you are not checking the parameters on the calls so that can be exposed as a vulnerability. CodeChecker can reject code if it doesn’t meet those criteria, and if you try to commit bad code, it will reject it and make you go back and fix it. It therefore enforces good coding, right through the development cycle.

    CodeChecker comes with a lot of rules embedded inside of it, but it also allows for custom rules to be added. For example, your company might need a specific comment or a copyright notice inside the program. But perhaps more importantly for customers who have an old application estate with a mix of vintages of RPG, CodeChecker has what is called “delta mode” that allows CodeChecker to ignore rules that old code breaks; a useful feature for companies who are modernizing that code step by step. ARCAD realizes you cannot fix everything all at once. Having monolithic code for applications is still pretty common in the IBM i base, even after decades of the microservices approach being in the market.

    The IBM i platform has been around in some form for more than five decades, and code linters have been around for over four decades and are commonly used – almost universally used – with other languages on other platforms. This is just one of the places where IBM i hasn’t so far attained this same capability. But with new programmers coming into the IBM i fold and in-house expertise retiring, perhaps now is a good time for you to think about automating the quality of the code that encapsulates your business and drives it.

    And if you already have SonarQube, by the way, CodeChecker can output reports to it so your application development team can have one global view of the entire codebase – the perfect opportunity to enforce consistent, modern, code quality rules so that RPG applications meet the same level of code quality as other languages in your portfolio.

    Nicholas DeLessio is a DevOps consultant for ARCAD Software.

    This content is sponsored by ARCAD Software.

    RELATED STORIES

    Untangling Legacy Spaghetti Code To Cook Up Microservices

    DevOps Means Using The Tools You Already Have Better

    Hybrid Release Management Means Creating An Application Schema

    Take A Progressive Approach To DevOps

    The First Step In DevOps Is Not Tools, But Culture Change

    VS Code Is The Full Stack IDE For IBM i

    Realizing The Promise Of Cross Platform Development With VS Code

    If You Aren’t Automating Testing, You Aren’t Doing DevSecOps

    The Lucky Seven Tips Of IBM i DevSecOps

    Git Is A Whole Lot More Than A Code Repository

    Learning To Drive Fast On The DevOps Roadmap

    Expanding Fields Is A Bigger Pain In The Neck Than You Think

    Value Stream Management: Bringing Lean Manufacturing Techniques To IBM i Development

    Unit Testing Automation Hits Shift Left Instead of Ctrl-Alt-Delete Cash

    It’s Time For An Application Healthcheck

    The New Economy Presents New Opportunities For IBM i

    Creating Web Services APIs Can Be Easy On IBM i

    Jenkins Gets Closer IBM i Hooks, Courtesy Of ARCAD

    DevOps Transformation: Engage Your IBM i Team

    The All-Knowing, Benevolent Dictator Of Code

    Software Change Management Has To Change With The DevOps Times

    Attention Synon Users: You Can Automate Your Move To RPG Free Form And DevOps

    Git Started With GitHub And ARCAD On IBM i

    One Repository To Rule The Source – And Object – Code

    Data Needs To Be Anonymized For Dev And Test

    Getting Progressive About Regression Testing

    Transforming The Art Of Code And The Face Of IBM i

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Tags: Tags: ARCAD Software, BitBucket, C, CodeChecker, DevOps, Git, GitHub, GitLab, IBM i, ILE RPG, Java, Linux, RDi, RPG, RPG III, RPG IV, SQL, VS Code, VS Code IDE

    Sponsored by
    ARCAD Software

    Datasheet: ARCAD Transformer Microservices

    ARCAD Transformer Microservices is a tool for modernizing RPG code. It modularizes code automatically by refactoring RPG and creating web services.

    Open your IBM i to the future of digital:

    • Modular transformation: Convert monolithic or redundant code within your IBM i applications into a modular set of functions for easy use as web services.
    • Secure access: Use existing DB2 database logic via web and mobile applications.
    • Enhanced connectivity: Connect existing web applications to proven IBM i application functionality.

    The Business Issue

    IBM i applications often contain valuable business rules crucial to organizational competitiveness. Transforming these applications to an n-tier architecture, which combines existing business logic with modern web or mobile interfaces, requires a robust web services layer. However, the monolithic and complex nature of RPG code necessitates careful refactoring to prevent reliability issues and maintenance challenges.

    The Solution

    ARCAD Transformer Microservices automates the extraction of business rules from legacy IBM i applications, transforming them into RESTful web services. Key capabilities include:

    • Selection of RPG Code Blocks: Helps developers choose the most important candidates for web services.
    • Verification of Code Coupling: Identifies and ensures the consistency of entangled code.
    • Transformation of Variables into Parameters: Converts variables used outside the code into parameters.
    • Code Audit: Notifies developers of anomalies and assists in adding necessary code.
    • Module Extraction: Generates new procedures from selected lines of code.
    • Code Replacement: Replaces old code blocks with calls to new procedures.
    • Upcoming Feature: Identifies and refactors similar code to avoid duplication.

    Once refactored, business rules can be exposed as web services using RDi, making them ready for web or mobile application use.

    Strengths

    • Unique tool for transforming complex code into reusable modules and web services.
    • Compatible with all RPG variants.
    • No specific application knowledge required.
    • User-friendly interface for developers.
    • Can be integrated with other ARCAD tools and RDi (soon VS Code).

    Benefits

    • Opens IBM i technology to modern web/mobile technologies.
    • Connects web applications to IBM i functionality.
    • Maintains security, reliability, and performance of IBM i back-end.
    • Improves code robustness.
    • Eliminates migration/reengineering risks.
    • Reduces technical debt through automated refactoring.
    • Cuts project costs with significant productivity gains (70% compared to manual efforts).

    Get the Datasheet

    Share this:

    • Reddit
    • Facebook
    • LinkedIn
    • Twitter
    • Email

    Big Blue Bolsters Navigator For i With New Stuff Sundry Hardware Announcements Accompany IBM i TR Updates

    Leave a Reply Cancel reply

TFH Volume: 34 Issue: 50

This Issue Sponsored By

  • Maxava
  • ARCAD Software
  • DRV Tech
  • WorksRight Software
  • Raz-Lee Security

Table of Contents

  • Sundry Hardware Announcements Accompany IBM i TR Updates
  • How To Have The Wisdom Of Experts Woven Into Your Code
  • Big Blue Bolsters Navigator For i With New Stuff
  • Power Systems Management Stack Updated Alongside TR Updates
  • IBM i PTF Guide, Volume 26, Number 40

Content archive

  • The Four Hundred
  • Four Hundred Stuff
  • Four Hundred Guru

Recent Posts

  • FAX/400 And CICS For i Are Dead. What Will IBM Kill Next?
  • Fresche Overhauls X-Analysis With Web UI, AI Smarts
  • Is It Time To Add The Rust Programming Language To IBM i?
  • Is IBM Going To Raise Prices On Power10 Expert Care?
  • IBM i PTF Guide, Volume 27, Number 20
  • POWERUp 2025 –Your Source For IBM i 7.6 Information
  • Maxava Consulting Services Does More Than HA/DR Project Management – A Lot More
  • Guru: Creating An SQL Stored Procedure That Returns A Result Set
  • As I See It: At Any Cost
  • IBM i PTF Guide, Volume 27, Number 19

Subscribe

To get news from IT Jungle sent to your inbox every week, subscribe to our newsletter.

Pages

  • About Us
  • Contact
  • Contributors
  • Four Hundred Monitor
  • IBM i PTF Guide
  • Media Kit
  • Subscribe

Search

Copyright © 2025 IT Jungle