Syllabus - Axon Programmer
An overview of the relationship between Project Haystack and Axon. Understanding of the purpose and operation of Axon as a programming language.
- How to execute Axon using Shell
- Basic syntax
- Basic operations and processing phases
An introduction to using key Axon data types and operations for simple expressions.
- DataTypes; null, boolean, string, numbers and units.
- Operations; logic, arithmetic and strings.
Understanding how to call Axon functions and use arguments.
- Function syntax and operation.
- Function signatures and parameters.
- Using the dot operator.
- Using 'to()' and 'as()' for converting units.
- Default arguments and their benefits.
- Where to find Axon documentation for functions.
How to write functions, using arguments, variables, comments and 'if' statements.
- Basic elements of writing a function.
- Defining and passing arguments.
- Using debug to find the contents of passed arguments.
- Defining and using default arguments.
- Using variables within functions.
- How and WHY to use comments
- If statements and a number of other related operators.
Understanding and practicing how to use lists and dicts.
- How to declare lists and using basic syntax and indexing.
- How to retrieve and change information held in lists.
- How to declare dicts and understanding key name pairs.
- Using basic dict syntax and changing information held in dicts.
- The use of 'get', 'has' and 'missing', and the trap operator to retrieve information in dicts.
A look at different aspects of using the Folio database for retrieving dicts and grids.
- Read functions for Folio data.
- Markers and tags and how they are applied.
- Using Grids and some common functions to manipulate columns and meta.
- Understanding references and IDs, and de-referencing with other records.
- How to use filter expressions with read functions and the use of 'parseFilter'.
How Axon manages Date and Time literals and some useful functions around parsing this data.
- Basic Date and Time functions.
- Durations and how these are calculated in Axon.
- Time zones
- How to use date ranges and parse DateTime objects.
Reading and manipulating time series history data.
- Using 'hisRead' and 'hisClip'
- How to use 'hisRollup' and functions for different intervals
- Using 'hisWrite' and mandatory tags
- How to avoid "Out of order" errors.
- A look at the benefits of time series optimisation in Folio
Understanding lambdas and using common syntax and functions.
- A look at basic lambda functions and variables
- Trailing lambda, inlining and endless functions
- Common functions requiring lambdas
- Functions as arguments
Some final (and advanced) Axon topics to complete a robust knowledge of the language; components, error handling, writing history data and Axon IO.
- Writing to Folio using 'diff' and 'commit'
- Input/Output - read/write with external sources
- Error handling using 'throw', 'try', 'catch' with 'err' and 'dis' tags.
- Components and Rules, using cells and 'defcomp'
Course revision and preparation for the final assessment.