SlideShare a Scribd company logo
Go Revel Gooo.. 
dovchar 2014
✦ 8 years in IT 
✦ 4 years in SoftServe 
✦ 1.6 years Application Architect 
✦ Main language: Javascript 
✦ Hobby language: Go 
✦ Pacemaker conference 
✦ Script’n’Code meet-up 
✦ Open source (typescript grails, clio 
go, sonar qunit, kojak, jspro) 
About me 
dovchar itweekend 2014
✦ I love my project :) 
✦ Technology stack / toolset 
✦ Cloud Infrastructure 
✦ Monitoring 
✦ Choose another lang/framework 
✦ GO lang 
✦ Performance/Memory/Concurrency 
✦ Revel 
✦ Questions 
Agenda 
dovchar itweekend 2014
✦ Medical Start-up 
✦ Connects Patients and Providers 
✦ 5 people 
✦ 9 months development (super part time :) 
✦ Budget: 235$ 
✦ SaaS 
✦ Public cloud 
✦ Single page application (SPA) 
About Project 
dovchar itweekend 2014
dovchar itweekend 2014 
Tech Stack
dovchar itweekend 2014 
Cloud
dovchar itweekend 2014 
Monitoring
dovchar itweekend 2014 
Node.js you were my favorite toy…
dovchar itweekend 2014 
Brainstorming
Go lang 
dovchar itweekend 2014 
«Go, also commonly referred to as golang, is a programming language initially 
developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. 
It is a statically-typed language with syntax loosely derived from that of C, adding 
garbage collection, type safety, some dynamic-typing capabilities, additional built-in 
types such as variable-length arrays and key-value maps, and a large standard 
library.» 
Wikipedia
Performance 
dovchar itweekend 2014 
You can find benchmarks comparing Go to a bunch 
of other languages at the Computer Language 
Benchmarks Game site
Memory 
dovchar itweekend 2014 
Go doesn't have a virtual machine 
or interpreter to load up, so it 
starts fast and small. Right now, 
our production servers are running 
at ~400 MB. A few months in, 
we've never had a memory leak or 
problems related to memory.
dovchar itweekend 2014 
Concurrency is a huge part of Go with some high 
level constructs that make it a breeze to use. Go has 
goroutines for concurrent operations and channels 
for communicating between them. 
Concurrency
dovchar itweekend 2014 
Reliability in a language is kind of hard to quantify. 
We had a problem only with go-socket.io package. 
Reliability
dovchar itweekend 2014 
Go compiles into a 
single, static binary 
file so deployment is 
simply putting the file 
on a server and 
starting it up. No 
dependencies 
required. No runtime 
required (you don't 
need to install Go on 
the server). And it's 
small. 
Deployment
dovchar itweekend 2014 
Tech Stack
Revel 
dovchar itweekend 2014 
Revel enables you to get going really quickly, it has nice 
defaults put in place that enable rapid development, and 
high productivity; as advertised on the project page. Is 
known for its flexibility in live environment, like code 
reloading and such. 
What is Revel?
Features 
dovchar itweekend 2014 
✦ Hot Code Reload: Edit, save, and refresh. Revel compiles 
your code and templates for you, so you don't miss a beat. 
✦ Comprehensive: Revel provides routing, parameter parsing, 
validation, session/flash, templating, caching, job running, a 
testing framework, and even internationalization. 
✦ High Performance: Revel builds on top of the Go HTTP 
server, which was recently benchmarked to serve three to ten 
times as many requests as Rails across a variety of loads. 
✦ Synchronous: The Go HTTP server runs each request in its 
own goroutine. Write simple callback-free code without guilt. 
✦ Stateless: Revel provides primitives that keep the web tier 
stateless for predictable scaling. For example, session data is 
stored in the user cookie, and the cache is backed by a 
memcached cluster. 
✦ Modular: Revel is built around composable middleware 
called filters, which implement nearly all request-processing 
functionality. Developers have the freedom to replace the 
default filters with custom implementations (e.g. a custom 
router).
Get Started 
dovchar itweekend 2014 
install go 
set up your GOPATH and GOROOT 
install git and hg 
get Revel 
Build the Revel command line tool
dovchar itweekend 2014 
Get Started
dovchar itweekend 2014 
Get Started
dovchar itweekend 2014 
Get Started
dovchar itweekend 2014 
Get Started
dovchar itweekend 2014 
New Started
dovchar itweekend 2014 
New Started
dovchar itweekend 2014 
Router
dovchar itweekend 2014 
Controller
dovchar itweekend 2014 
Service
dovchar itweekend 2014 
Model
dovchar itweekend 2014 
Init
dovchar itweekend 2014 
Socket.io
dovchar itweekend 2014 
Handler
Conclusion 
dovchar itweekend 2014
Links 
dovchar itweekend 2014 
✦ node.js 
✦ sonarqube 
✦ grunt, bower, yeoman, gulp 
✦ pacemaker, script’n’code 
✦ sails.js, revel 
✦ mongo, mgo 
✦ newrelic, digitalocean, aws 
Facebook Twitter Linkedin Gmail
Questions? 
dovchar itweekend 2014

More Related Content

What's hot

wp-cli and plugin development with future and past compatibility (Word Camp P...
wp-cli and plugin development with future and past compatibility (Word Camp P...wp-cli and plugin development with future and past compatibility (Word Camp P...
wp-cli and plugin development with future and past compatibility (Word Camp P...
Andreas - Creten
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
Tatsuhiko Miyagawa
 
Gradle : An introduction
Gradle : An introduction Gradle : An introduction
Gradle : An introduction
Nibodha Technologies
 
Ratpack 101 - GR8Conf 2015
Ratpack 101 - GR8Conf 2015Ratpack 101 - GR8Conf 2015
Ratpack 101 - GR8Conf 2015
Alvaro Sanchez-Mariscal
 
Grunt & Front-end Workflow
Grunt & Front-end WorkflowGrunt & Front-end Workflow
Grunt & Front-end Workflow
Pagepro
 
QA Fest 2018. Денис Жевнер. 56k Denial of Service
QA Fest 2018. Денис Жевнер. 56k Denial of ServiceQA Fest 2018. Денис Жевнер. 56k Denial of Service
QA Fest 2018. Денис Жевнер. 56k Denial of Service
QAFest
 
SKS in git ops mode
SKS in git ops modeSKS in git ops mode
SKS in git ops mode
Raphaël PINSON
 
Git-deliver Ignite slides for DevOps Days Paris 2015
Git-deliver Ignite slides for DevOps Days Paris 2015Git-deliver Ignite slides for DevOps Days Paris 2015
Git-deliver Ignite slides for DevOps Days Paris 2015
Arnaud_Betremieux
 
The Hare and the Tortoise: Open Source, Standards & Technological Debt
The Hare and the Tortoise: Open Source, Standards & Technological DebtThe Hare and the Tortoise: Open Source, Standards & Technological Debt
The Hare and the Tortoise: Open Source, Standards & Technological Debt
Raphaël PINSON
 
Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web AppsRatpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web Apps
James Williams
 
Gradle presentation
Gradle presentationGradle presentation
Gradle presentation
Oriol Jiménez
 
Fandogh Cloud workshop slides
Fandogh Cloud workshop slides Fandogh Cloud workshop slides
Fandogh Cloud workshop slides
ssarabadani
 
Gradle build automation tool
Gradle   build automation toolGradle   build automation tool
Gradle build automation tool
Ioan Eugen Stan
 
The Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPH
Laszlo Fogas
 
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
Mu Chun Wang
 
PHP Application Performance
PHP Application PerformancePHP Application Performance
PHP Application Performance
Harald Zeitlhofer
 
Plack at OSCON 2010
Plack at OSCON 2010Plack at OSCON 2010
Plack at OSCON 2010
Tatsuhiko Miyagawa
 
Pipeline all the Dashboards as Code
Pipeline all the Dashboards as CodePipeline all the Dashboards as Code
Pipeline all the Dashboards as Code
Kris Buytaert
 
Understanding Non Blocking I/O with Python
Understanding Non Blocking I/O with PythonUnderstanding Non Blocking I/O with Python
Understanding Non Blocking I/O with Python
Vaidik Kapoor
 
Docker 101 - From production to development
Docker 101 - From production to developmentDocker 101 - From production to development
Docker 101 - From production to development
Raül Pérez
 

What's hot (20)

wp-cli and plugin development with future and past compatibility (Word Camp P...
wp-cli and plugin development with future and past compatibility (Word Camp P...wp-cli and plugin development with future and past compatibility (Word Camp P...
wp-cli and plugin development with future and past compatibility (Word Camp P...
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
 
Gradle : An introduction
Gradle : An introduction Gradle : An introduction
Gradle : An introduction
 
Ratpack 101 - GR8Conf 2015
Ratpack 101 - GR8Conf 2015Ratpack 101 - GR8Conf 2015
Ratpack 101 - GR8Conf 2015
 
Grunt & Front-end Workflow
Grunt & Front-end WorkflowGrunt & Front-end Workflow
Grunt & Front-end Workflow
 
QA Fest 2018. Денис Жевнер. 56k Denial of Service
QA Fest 2018. Денис Жевнер. 56k Denial of ServiceQA Fest 2018. Денис Жевнер. 56k Denial of Service
QA Fest 2018. Денис Жевнер. 56k Denial of Service
 
SKS in git ops mode
SKS in git ops modeSKS in git ops mode
SKS in git ops mode
 
Git-deliver Ignite slides for DevOps Days Paris 2015
Git-deliver Ignite slides for DevOps Days Paris 2015Git-deliver Ignite slides for DevOps Days Paris 2015
Git-deliver Ignite slides for DevOps Days Paris 2015
 
The Hare and the Tortoise: Open Source, Standards & Technological Debt
The Hare and the Tortoise: Open Source, Standards & Technological DebtThe Hare and the Tortoise: Open Source, Standards & Technological Debt
The Hare and the Tortoise: Open Source, Standards & Technological Debt
 
Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web AppsRatpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web Apps
 
Gradle presentation
Gradle presentationGradle presentation
Gradle presentation
 
Fandogh Cloud workshop slides
Fandogh Cloud workshop slides Fandogh Cloud workshop slides
Fandogh Cloud workshop slides
 
Gradle build automation tool
Gradle   build automation toolGradle   build automation tool
Gradle build automation tool
 
The Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPH
 
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
pppr - 解決 JavaScript 無法被搜尋引擎正確索引的問題
 
PHP Application Performance
PHP Application PerformancePHP Application Performance
PHP Application Performance
 
Plack at OSCON 2010
Plack at OSCON 2010Plack at OSCON 2010
Plack at OSCON 2010
 
Pipeline all the Dashboards as Code
Pipeline all the Dashboards as CodePipeline all the Dashboards as Code
Pipeline all the Dashboards as Code
 
Understanding Non Blocking I/O with Python
Understanding Non Blocking I/O with PythonUnderstanding Non Blocking I/O with Python
Understanding Non Blocking I/O with Python
 
Docker 101 - From production to development
Docker 101 - From production to developmentDocker 101 - From production to development
Docker 101 - From production to development
 

Viewers also liked

Introducing Revel
Introducing RevelIntroducing Revel
Introducing Revel
Zhebr
 
Memoire Viktoriya Dronova MCI-IAI(1)
Memoire Viktoriya Dronova MCI-IAI(1)Memoire Viktoriya Dronova MCI-IAI(1)
Memoire Viktoriya Dronova MCI-IAI(1)
Victoria Isambert
 
Technology slideshow
Technology slideshowTechnology slideshow
Technology slideshow
m1crutcher
 
The overview of latest technology
The overview of latest technologyThe overview of latest technology
The overview of latest technology
Thanushan Kanagarajah
 
New Technology Presentation
New Technology PresentationNew Technology Presentation
New Technology Presentation
kmn3973
 
Holographic Projection Technology COMPLETE DETAILS NEW PPT
Holographic Projection Technology COMPLETE DETAILS NEW PPTHolographic Projection Technology COMPLETE DETAILS NEW PPT
Holographic Projection Technology COMPLETE DETAILS NEW PPT
 Abin Baby
 
Information technology ppt
Information technology ppt Information technology ppt
Information technology ppt
Babasab Patil
 
NEW holography TECHNOLOGY ALL PPT
NEW holography TECHNOLOGY ALL PPTNEW holography TECHNOLOGY ALL PPT
NEW holography TECHNOLOGY ALL PPT
Connecting Point
 
Introduction to information technology lecture 1
Introduction to information technology   lecture 1Introduction to information technology   lecture 1
Introduction to information technology lecture 1
CBAKhan
 
Forgotten women in tech history.
Forgotten women in tech history.Forgotten women in tech history.
Forgotten women in tech history.
Domo
 
Technology Presentation
Technology PresentationTechnology Presentation
Technology Presentation
plandeen
 
Technology powerpoint presentations
Technology powerpoint presentationsTechnology powerpoint presentations
Technology powerpoint presentations
ismailraesha
 

Viewers also liked (12)

Introducing Revel
Introducing RevelIntroducing Revel
Introducing Revel
 
Memoire Viktoriya Dronova MCI-IAI(1)
Memoire Viktoriya Dronova MCI-IAI(1)Memoire Viktoriya Dronova MCI-IAI(1)
Memoire Viktoriya Dronova MCI-IAI(1)
 
Technology slideshow
Technology slideshowTechnology slideshow
Technology slideshow
 
The overview of latest technology
The overview of latest technologyThe overview of latest technology
The overview of latest technology
 
New Technology Presentation
New Technology PresentationNew Technology Presentation
New Technology Presentation
 
Holographic Projection Technology COMPLETE DETAILS NEW PPT
Holographic Projection Technology COMPLETE DETAILS NEW PPTHolographic Projection Technology COMPLETE DETAILS NEW PPT
Holographic Projection Technology COMPLETE DETAILS NEW PPT
 
Information technology ppt
Information technology ppt Information technology ppt
Information technology ppt
 
NEW holography TECHNOLOGY ALL PPT
NEW holography TECHNOLOGY ALL PPTNEW holography TECHNOLOGY ALL PPT
NEW holography TECHNOLOGY ALL PPT
 
Introduction to information technology lecture 1
Introduction to information technology   lecture 1Introduction to information technology   lecture 1
Introduction to information technology lecture 1
 
Forgotten women in tech history.
Forgotten women in tech history.Forgotten women in tech history.
Forgotten women in tech history.
 
Technology Presentation
Technology PresentationTechnology Presentation
Technology Presentation
 
Technology powerpoint presentations
Technology powerpoint presentationsTechnology powerpoint presentations
Technology powerpoint presentations
 

Similar to Go Revel Gooo...

Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkit
Wittawas Wisarnkanchana
 
NodeWay in my project & sails.js
NodeWay in my project & sails.jsNodeWay in my project & sails.js
NodeWay in my project & sails.js
Dmytro Ovcharenko
 
Beyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in ProductionBeyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in Production
C4Media
 
Creating an all-purpose REST API for Cloud services using OSGi and Sling - C ...
Creating an all-purpose REST API for Cloud services using OSGi and Sling - C ...Creating an all-purpose REST API for Cloud services using OSGi and Sling - C ...
Creating an all-purpose REST API for Cloud services using OSGi and Sling - C ...
mfrancis
 
NodeJS and what is actually does
NodeJS and what is actually doesNodeJS and what is actually does
NodeJS and what is actually does
Victor Reyes Heitmann
 
Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015
Travis Reeder
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
ZNetLive
 
State of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache BigtopState of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache Bigtop
Ganesh Raju
 
Develop & Deploy your Laravel Application on Google Cloud Platforms
Develop & Deploy your Laravel Application on Google Cloud PlatformsDevelop & Deploy your Laravel Application on Google Cloud Platforms
Develop & Deploy your Laravel Application on Google Cloud Platforms
Olanrewaju Abidogun
 
Rapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesRapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web Architectures
Keith Fitzgerald
 
What is headless drupal?
What is headless drupal?What is headless drupal?
What is headless drupal?
ValueCoders
 
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
Edureka!
 
Dokku your own heroku 21
Dokku   your own heroku 21Dokku   your own heroku 21
Dokku your own heroku 21
Amoniac OÜ
 
Dokku - your own heroku
Dokku  - your own herokuDokku  - your own heroku
Dokku - your own heroku
Aleksandr Simonov
 
Multi-stage Docker builds to make building easy!
Multi-stage Docker builds to make building easy!Multi-stage Docker builds to make building easy!
Multi-stage Docker builds to make building easy!
Milindu Sanoj Kumarage
 
[Szjug] Docker. Does it matter for java developer?
[Szjug] Docker. Does it matter for java developer?[Szjug] Docker. Does it matter for java developer?
[Szjug] Docker. Does it matter for java developer?
Izzet Mustafaiev
 
Enterprise software needs a PaaS
Enterprise software needs a PaaSEnterprise software needs a PaaS
Enterprise software needs a PaaS
hmalphettes
 
Intalio create and cloudfoudry - short
Intalio create and cloudfoudry - shortIntalio create and cloudfoudry - short
Intalio create and cloudfoudry - short
hmalphettes
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
Amal Mohan N
 

Similar to Go Revel Gooo... (20)

Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkit
 
NodeWay in my project & sails.js
NodeWay in my project & sails.jsNodeWay in my project & sails.js
NodeWay in my project & sails.js
 
Beyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in ProductionBeyond the Hype: 4 Years of Go in Production
Beyond the Hype: 4 Years of Go in Production
 
Creating an all-purpose REST API for Cloud services using OSGi and Sling - C ...
Creating an all-purpose REST API for Cloud services using OSGi and Sling - C ...Creating an all-purpose REST API for Cloud services using OSGi and Sling - C ...
Creating an all-purpose REST API for Cloud services using OSGi and Sling - C ...
 
NodeJS and what is actually does
NodeJS and what is actually doesNodeJS and what is actually does
NodeJS and what is actually does
 
Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015Go After 4 Years in Production - QCon 2015
Go After 4 Years in Production - QCon 2015
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
 
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
 
State of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache BigtopState of Big Data on ARM64 / AArch64 - Apache Bigtop
State of Big Data on ARM64 / AArch64 - Apache Bigtop
 
Develop & Deploy your Laravel Application on Google Cloud Platforms
Develop & Deploy your Laravel Application on Google Cloud PlatformsDevelop & Deploy your Laravel Application on Google Cloud Platforms
Develop & Deploy your Laravel Application on Google Cloud Platforms
 
Rapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web ArchitecturesRapidly Building and Deploying Scalable Web Architectures
Rapidly Building and Deploying Scalable Web Architectures
 
What is headless drupal?
What is headless drupal?What is headless drupal?
What is headless drupal?
 
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
Dockerizing An Angular Application Using Git, Jenkins & Docker! | DevOps Tuto...
 
Dokku your own heroku 21
Dokku   your own heroku 21Dokku   your own heroku 21
Dokku your own heroku 21
 
Dokku - your own heroku
Dokku  - your own herokuDokku  - your own heroku
Dokku - your own heroku
 
Multi-stage Docker builds to make building easy!
Multi-stage Docker builds to make building easy!Multi-stage Docker builds to make building easy!
Multi-stage Docker builds to make building easy!
 
[Szjug] Docker. Does it matter for java developer?
[Szjug] Docker. Does it matter for java developer?[Szjug] Docker. Does it matter for java developer?
[Szjug] Docker. Does it matter for java developer?
 
Enterprise software needs a PaaS
Enterprise software needs a PaaSEnterprise software needs a PaaS
Enterprise software needs a PaaS
 
Intalio create and cloudfoudry - short
Intalio create and cloudfoudry - shortIntalio create and cloudfoudry - short
Intalio create and cloudfoudry - short
 
Introduction to go lang
Introduction to go langIntroduction to go lang
Introduction to go lang
 

Recently uploaded

原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
lorraineandreiamcidl
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 

Recently uploaded (20)

原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptxLORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
LORRAINE ANDREI_LEQUIGAN_HOW TO USE WHATSAPP.pptx
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 

Go Revel Gooo...

  • 1. Go Revel Gooo.. dovchar 2014
  • 2. ✦ 8 years in IT ✦ 4 years in SoftServe ✦ 1.6 years Application Architect ✦ Main language: Javascript ✦ Hobby language: Go ✦ Pacemaker conference ✦ Script’n’Code meet-up ✦ Open source (typescript grails, clio go, sonar qunit, kojak, jspro) About me dovchar itweekend 2014
  • 3. ✦ I love my project :) ✦ Technology stack / toolset ✦ Cloud Infrastructure ✦ Monitoring ✦ Choose another lang/framework ✦ GO lang ✦ Performance/Memory/Concurrency ✦ Revel ✦ Questions Agenda dovchar itweekend 2014
  • 4. ✦ Medical Start-up ✦ Connects Patients and Providers ✦ 5 people ✦ 9 months development (super part time :) ✦ Budget: 235$ ✦ SaaS ✦ Public cloud ✦ Single page application (SPA) About Project dovchar itweekend 2014
  • 8. dovchar itweekend 2014 Node.js you were my favorite toy…
  • 9. dovchar itweekend 2014 Brainstorming
  • 10. Go lang dovchar itweekend 2014 «Go, also commonly referred to as golang, is a programming language initially developed at Google in 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. It is a statically-typed language with syntax loosely derived from that of C, adding garbage collection, type safety, some dynamic-typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library.» Wikipedia
  • 11. Performance dovchar itweekend 2014 You can find benchmarks comparing Go to a bunch of other languages at the Computer Language Benchmarks Game site
  • 12. Memory dovchar itweekend 2014 Go doesn't have a virtual machine or interpreter to load up, so it starts fast and small. Right now, our production servers are running at ~400 MB. A few months in, we've never had a memory leak or problems related to memory.
  • 13. dovchar itweekend 2014 Concurrency is a huge part of Go with some high level constructs that make it a breeze to use. Go has goroutines for concurrent operations and channels for communicating between them. Concurrency
  • 14. dovchar itweekend 2014 Reliability in a language is kind of hard to quantify. We had a problem only with go-socket.io package. Reliability
  • 15. dovchar itweekend 2014 Go compiles into a single, static binary file so deployment is simply putting the file on a server and starting it up. No dependencies required. No runtime required (you don't need to install Go on the server). And it's small. Deployment
  • 17. Revel dovchar itweekend 2014 Revel enables you to get going really quickly, it has nice defaults put in place that enable rapid development, and high productivity; as advertised on the project page. Is known for its flexibility in live environment, like code reloading and such. What is Revel?
  • 18. Features dovchar itweekend 2014 ✦ Hot Code Reload: Edit, save, and refresh. Revel compiles your code and templates for you, so you don't miss a beat. ✦ Comprehensive: Revel provides routing, parameter parsing, validation, session/flash, templating, caching, job running, a testing framework, and even internationalization. ✦ High Performance: Revel builds on top of the Go HTTP server, which was recently benchmarked to serve three to ten times as many requests as Rails across a variety of loads. ✦ Synchronous: The Go HTTP server runs each request in its own goroutine. Write simple callback-free code without guilt. ✦ Stateless: Revel provides primitives that keep the web tier stateless for predictable scaling. For example, session data is stored in the user cookie, and the cache is backed by a memcached cluster. ✦ Modular: Revel is built around composable middleware called filters, which implement nearly all request-processing functionality. Developers have the freedom to replace the default filters with custom implementations (e.g. a custom router).
  • 19. Get Started dovchar itweekend 2014 install go set up your GOPATH and GOROOT install git and hg get Revel Build the Revel command line tool
  • 20. dovchar itweekend 2014 Get Started
  • 21. dovchar itweekend 2014 Get Started
  • 22. dovchar itweekend 2014 Get Started
  • 23. dovchar itweekend 2014 Get Started
  • 24. dovchar itweekend 2014 New Started
  • 25. dovchar itweekend 2014 New Started
  • 34. Links dovchar itweekend 2014 ✦ node.js ✦ sonarqube ✦ grunt, bower, yeoman, gulp ✦ pacemaker, script’n’code ✦ sails.js, revel ✦ mongo, mgo ✦ newrelic, digitalocean, aws Facebook Twitter Linkedin Gmail