• Post category:StudyBullet-15
  • Reading time:7 mins read


Modern Phoenix LiveView inspired development in GoLang, where JS is not needed (almost).

What you will learn

Real-time user experiences with server-rendered HTML

Phoenix(Elixir) LiveView-like programming in Go

Form-based UI using Live(View)

Pub/Sub based user communication using Live(View)

Periodic background jobs using Live(View)

Creating a single-page application in one file

Integration with Fabric framework

Handling application events in a declarative way

Using websocket communication between frontend and backend

Description

Welcome to the β€˜Mastering Live(View) programming in Go’ course. With this course, you will add value to your existing Go Lang knowledge by getting familiar with several web development techniques known as a ‘LiveView’ programming model introduced within the last several years.

We will focus on several topics popular when building web applications and we take a look at how to implement those features using Live(View) techniques where JS usage is not needed or minimized at least. We are going to see how the Live(View) programming approach makes web app development easier to do and more solution-oriented.

What is the LiveVew programming approach/model?

LiveView provides rich, real-time user experiences with server-rendered HTML. The LiveView programming model is mostly declarative: instead of saying “when event ABC happens, change XYZ on the page”, events in LiveView are managed by handlers bound to event id. Once the state changes, LiveView will re-render the relevant parts of its HTML template(calculate diff) and push it to the browser, which updates itself most efficiently. This means developers write LiveView templates as any other server-rendered HTML and LiveView does the hard work of tracking changes and sending the relevant diffs to the browser using websocket communication. Phoenix Framework widely popularized this approach and there are implementations for many significant languages or platforms.

Topics covered by this course:
During the course, we create a basic web application in Go Lang with a Live(View) approach. The main topics include:


Get Instant Notification of New Courses on our Telegram channel.


  • LiveView-inspired programming – technical info
  • Key Live(View) concepts explained
  • Thermostat – interactive application without JS
  • Implementation of Pub/Sub communication
  • Enhancing thermostat – implementation of chat, clock, JS hooks
  • Live(View) in popular frameworks
  • Integration of Live(View) application with NATS server

An important part of this course is to realize ‘what we don’t need to do’ when using the Live(View) approach. Simplification can be huge and the old saying that ‘the best code is the code you don’t have to write’ is proven here.

Summary:

The goal of this course is to make a guide in the Live(View) programming world. We use a pragmatic approach by building real applications and exploring the Live(View) programming model practically.

GitHub repository:

The source code is available through the link attached to the last lecture in this course. You can clone the repo and use the code snippets we are building in this course.

English
language

Content

Introduction

Introduction

LiveView inspired programming – technical info

Application communication flow
Websocket as a horse power

Key Live(View) concepts explained

Core minimum application structure
Handling Events
Using Params

Thermostat – interactive application without JS

Thermostat Feature Overview
GoLang App – minimal setup
Creating Live(View) application core
Starting with Thermostat UI
Mounting application to backend
Side note: Where backend state is stored?
Buttons and click events – part 1
Buttons and click events – part 2
What we are not doing?
Getting and displaying the username
Communicating the status to UI
Overview

Live with Pub/Sub – real-time communication

Technical introduction
Basic application setup updates
Using Pub/Sub for communication for status updates
Implementing status history updates
What we are not doing

Thermostat – adding a new features

Adding a temperature warning
Adding a clock
Adding a chat like communication
Working with custom JS using ‘hooks’
Managing temperature using a keyboard
What we are not doing

Live(View) with other popular frameworks

Live(View) with Fiber Framework – part 1
Live(View) with Fiber Framework – part 2
Using Django compatible template engine

Live(View) integration with NATS server (external Pub/Sub system or MQ)

What is NATS Server
Setting up an external NATS periodic message publisher
NATS Go client setup
Making a Live app receiving and displaying NATS data