Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This article describes:

  • the The tool set needed by the solution implementation individual for configuration of Pricefx application,.

  • what What the tool(s) are used for.

  • how How the tools cooperate.

Tools

The person implementing the solution uses variety of tools, each for different purposes.

  • Pricefx UI

  • IDE (Integrated Development Environment)

    • IntelliJ Idea

    • Pricefx Studio

    • JDK (Java Development Toolkit)

    • Groovy language

  • Version Control System (VCS)

    • Git

    • Git GUI (e.g. SourceTree, or IntelliJ)

  • DevOps platform / Source Collaboration

    • e.g. GitLab, Github or BitBucket

      • Note: Pricefx is using internally GitLab for its projects.

tools.drawio

Pricefx UI

Pricefx was originally developed so that all work on development can be done inside one UI. The Pricefx UI is capable of:

  • data Data tables configuration.

  • various Various features configuration.

  • logic Logic development.

  • system System configuration (various settings).

Implementation tasks within the UI is really quick, because everything is in one place.

There are, however, some requirements which mandate usage of other external tools, like:

  • The need to version the configuration and the logics.

  • The need for a more comfortable editor for the Groovy code.

Integrated Development Environment

The main motivation behind the IDE was more comfort/convenience when developing logics.

The editor in the IDE can provide many features, like:

  • code Code completion.

  • instant Instant syntax checking.

  • integrated Integrated help.

IntelliJ Idea

intellij logo

IntelliJ is a desktop application built on Java. It provides a cross-platform approach for building tools for any kind of language.

We use it, because:

  • it It has a great editor for the Groovy programming language.

  • the The Community edition is for free.

Note: it It also has a GUI for VCS (e.g. Git), so you can also use it for Git operations.

Pricefx Studio

fx logo

Pricefx Studio is a plugin for IntelliJ that:

  • provides Provides a graphical user interface for the:

    • creation Creation and editing of Logicslogics.

    • testing Testing of logics.

    • fetch Fetching and deploy deploying logics and other configuration metadata from/to Pricefx partitions.

    • display Displaying tables' metadata.

  • improves Improves the IntelliJ Groovy editor with:

    • code Code completion for Pricefx specific Groovy API.

    • integrated Integrated Groovy API help.

    • common Common Pricefx Groovy code templates.

JDK

java logo

Java Development Toolkit is used by the Groovy editor to validate any usage of Java methods from within the logic code.

During regular coding and testing of logics it’s used only for real-time validation of the code you write in the editor.

You can either use the same version, which is used by the Pricefx backend server, or a higher one. However, if you use a higher one, there’s a (quite small) chance you might get deprecation messages about some methods which, while ok in the current version, are deprecated in the latest JDK version.

Groovy language

groovy logo

The Groovy Development Kit (GDK), is used for real-time syntax check of the groovy code you’re writing in the IntelliJ editor.

During regular coding and testing of logics it’s used only for real-time validation of the code you write in the editor, not for compilation.

It will be used for compilation only in the event you use:

  • TDD4C ("Test Driven Development for Consultants") - framework used for Unit Testing of Logics and functions.

  • Logic Debugging (i.e., not "Testing", but actual real debugging. Note: the The debugging has limited usage).

You can either use the same version, which is used by Pricefx backend server, or a higher one. However, if you use a higher one, there’s:

  • a A (slight) risk, that you will use some latest Groovy language feature which is unavailable on the backend Groovy version.

  • a A (quite small) chance you might get deprecation messages about some methods which, while ok in the current version, are deprecated in the latest JDK version.

Version Control System

Git

git logo2

Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers.

The GIT SCM tool is essential for:

  • manipulation Manipulation of both local and remote repositories - i.e., for storing/retrieving versions of files to/from the repositories.

  • the The Git GUI tools which are using the GIT SCM as underlying engine. Both IntelliJ Git GUI and Sourcetree Git GUI are using the command line version underneath.

  • all All operations with GIT. The command line version can do all Git commands.

On In Pricefx solution implementation projects it is used to:

  • add Add new versions from the working project folder to the local Git repository.

  • push Push new versions to the remote Git repository.

  • pull Pull versions from other engineers to local Git repository.

  • checkout Check out selected versions of files from local repository to the working project folder.

Git GUI - SourceTree

sourcetree logo

Sourcetree is a Git desktop client for developers. It serves as graphical user interface for the Git command line tool. It is:

  • wellWell-arranged.

  • good Good for many common daily operations with Git.

  • easy Easy to use.

  • used Used by many people in Pricefx and also in the training environment.

  • freeFree.

Note: Sourcetree installer also includes GIT SCM package, so you can potentially use that one pre-packaged with Sourcetree.

DevOps platform / Source Collaboration

GitLab, Github or BitBucket

gitlab logo

GitLab is a version control repository hosting service with web-based UI, for source code and development projects which use Git revision control systems.

GitLab is a tool for:

  • collaboration Collaboration on source code.

  • continuous Continuous integration.

On Pricefx solution implementation projects GitLab is used to:

  • have Have one single source of truth - i.e., logics & configuration stored in Git are the "correct" versions.

  • keep Keep versions of the project configuration and logics.

  • collaboration Collaboration among the configuration engineers - everyone has their local versions, which they synchronize every day with the "remote" repository on GitLab.

...