Slide 1

Slide 1 text

How we use Go to do web development Jinzhu @ The Plant github.com/jinzhu

Slide 2

Slide 2 text

About Me

Slide 3

Slide 3 text

Design Pattern

Slide 4

Slide 4 text

MVC - Controller • Full Featured Framework ? • Minimalistic Framework ?

Slide 5

Slide 5 text

MVC - Controller • Full Featured Framework • Minimalistic Framework -> Gin github.com/gin-gonic/gin

Slide 6

Slide 6 text

MVC - Controller middleware route controller

Slide 7

Slide 7 text

MVC - Model • Hand Written SQL ? • ORM ?

Slide 8

Slide 8 text

MVC - Model • Hand Written SQL • ORM -> Gorm github.com/jinzhu/gorm

Slide 9

Slide 9 text

MVC - Model

Slide 10

Slide 10 text

MVC - View • Browser Side Views ? • Server Side Views ?

Slide 11

Slide 11 text

MVC - View • Browser Side Views -> React • Server Side Views -> Go Template

Slide 12

Slide 12 text

API • RESTful API • GraphQL

Slide 13

Slide 13 text

Front End Stuff WebPack • css/sass • javascript • image sprites

Slide 14

Slide 14 text

Deployment • Single Binary File -> Bindata github.com/jteeuwen/go-bindata • Deploy binary file to server -> Harp github.com/bom-d-van/harp

Slide 15

Slide 15 text

Zero Downtime • Endless -> port github.com/fvbock/endless • Grace -> port / socket github.com/facebookgo/grace

Slide 16

Slide 16 text

Data Administration QOR Demo: demo.getqor.com/admin Github Repoғgithub.com/qor/qor

Slide 17

Slide 17 text

QOR

Slide 18

Slide 18 text

QOR Initialize Add Resource Authorization

Slide 19

Slide 19 text

Not Only About Administration But everything about Web Development

Slide 20

Slide 20 text

Publish

Slide 21

Slide 21 text

Publish Just one line code

Slide 22

Slide 22 text

Localization

Slide 23

Slide 23 text

Localization Also one line code

Slide 24

Slide 24 text

Localization

Slide 25

Slide 25 text

Sorting

Slide 26

Slide 26 text

Sorting

Slide 27

Slide 27 text

Media Library

Slide 28

Slide 28 text

Media Library upload to filesystem upload to s3

Slide 29

Slide 29 text

How it works? No Magic

Slide 30

Slide 30 text

How it works? GORM Callbacks & Duck Programming

Slide 31

Slide 31 text

GORM CRUD Callbacks Plugin System github.com/jinzhu/gorm/blob/master/doc/development.md

Slide 32

Slide 32 text

Create Callbacks As Example

Slide 33

Slide 33 text

Create Callbacks As Example

Slide 34

Slide 34 text

Create Callbacks As Example do things that the plugin want to do

Slide 35

Slide 35 text

Lets create more things!

Slide 36

Slide 36 text

Thank You ‣ Jinzhu @ The Plant ‣ github.com/jinzhu ‣ [email protected] We are hiring!