We are all familiar with these web technologies: Angular, NodeJS, Grunt, Karma, ... However, how to put them together to make a seamless, high productivity workflow for building prototypes quickly and delivering products frequently?
WebRTC is a new HTML5 technology that includes a communication protocol for real-time applications and APIs/libraries for web & native applications to communicate with each other.
1. Isomorphic JavaScript is the pattern of running JavaScript code on both server & client.
2. People are using it for production today. Ask Facebook, Yahoo, Asana, Airbnb, Rising Stack, …
3. This is not another talk about NodeJS!
node-webkit : Make a magic from your a desktop app to desktop app!욱진 양
I'm currently boring to write a description. sorry. I'll write some description at available time.
node-webkit: https://github.com/rogerwang/node-webkit
my node-webkit demo: https://github.com/composite/NodePlatform
Modern Web Application Development Workflow - EclipseCon France 2014Stéphane Bégaudeau
People often consider that creating a web application is done by creating a bunch of HTML, Javascript and CSS files in a text editor, putting them in a folder and uploading them on the web.
Well, things have changed and in this presentation, you will see how the workflow used to deliver web applications has evolved over the past few years and where the Eclipse Foundation's tools stand in this new world!
In this talk, we will start by having a look at all the new development tools that have appeared with the arrival of Node.js and how they are used by the web development community.
With tools like Bower used to manage the dependencies of a project, Grunt and Gulp used for the continuous integration and Yeoman used to kickstart web applications, web developers have dramatically increased their productivity.
After that, we will see what tools like the Eclipse IDE and Orion can offer to web developers in order to build and maintain their applications and finally how they could be improved to provide the features needed by web developers.
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Ido Green
In this talk from DevCon TLV I've covered the two sides of the coin:
1. Client side: what are the main steps when you are building your Web Applications:
○ Design
○ Code
○ Debug
○ Demo
2. On the server side, you wish to have a great API that you (and others) could use from any platform out there (Mobile, web). The answer on Google Cloud platform is Google Cloud Endpoints.
WebRTC is a new HTML5 technology that includes a communication protocol for real-time applications and APIs/libraries for web & native applications to communicate with each other.
1. Isomorphic JavaScript is the pattern of running JavaScript code on both server & client.
2. People are using it for production today. Ask Facebook, Yahoo, Asana, Airbnb, Rising Stack, …
3. This is not another talk about NodeJS!
node-webkit : Make a magic from your a desktop app to desktop app!욱진 양
I'm currently boring to write a description. sorry. I'll write some description at available time.
node-webkit: https://github.com/rogerwang/node-webkit
my node-webkit demo: https://github.com/composite/NodePlatform
Modern Web Application Development Workflow - EclipseCon France 2014Stéphane Bégaudeau
People often consider that creating a web application is done by creating a bunch of HTML, Javascript and CSS files in a text editor, putting them in a folder and uploading them on the web.
Well, things have changed and in this presentation, you will see how the workflow used to deliver web applications has evolved over the past few years and where the Eclipse Foundation's tools stand in this new world!
In this talk, we will start by having a look at all the new development tools that have appeared with the arrival of Node.js and how they are used by the web development community.
With tools like Bower used to manage the dependencies of a project, Grunt and Gulp used for the continuous integration and Yeoman used to kickstart web applications, web developers have dramatically increased their productivity.
After that, we will see what tools like the Eclipse IDE and Orion can offer to web developers in order to build and maintain their applications and finally how they could be improved to provide the features needed by web developers.
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Ido Green
In this talk from DevCon TLV I've covered the two sides of the coin:
1. Client side: what are the main steps when you are building your Web Applications:
○ Design
○ Code
○ Debug
○ Demo
2. On the server side, you wish to have a great API that you (and others) could use from any platform out there (Mobile, web). The answer on Google Cloud platform is Google Cloud Endpoints.
Migrating .NET Application to .NET CoreBaris Ceviz
"Migrate .NET Application to .NET Core with scenarios" presentation in Dotnetkonf. How to migrate .NET Desktop, ASP.NET MVC & Web API or WCF Service applications to .NET Core
Microsoft has traditionally been a laggard in the JavaScript space, making such developers question whether their war cries were being heard aloud. Fortunately, the situation is rapidly improving since the release of Visual Studio Code. Code is a free, lightweight, cross-platform code editor which is sure to change your perception of Microsoft.
This presentation will demonstrate how to utilize popular JavaScript tooling within the editor. The focus will be placed on the first-class support for debuggers, linters, transpilers, and task runners.
Bringing Javascript to the Desktop with ElectronNir Noy
After Node.js brought JavaScript to the server, it was only inevitable that someone would take it to the next level and bring it to our desktop. And indeed this day has come. With the help of GitHub's Electron, front-end developers can now create fully featured desktop applications using JavaScript, HTML and CSS. In this talk, we'll go over the basics of developing an Electron app, talk about how Electron works under the hood and show how to build it and package it
With .NET Core, Microsoft has started a new era for developing multi-platform software. ASP.NET Core web framework is written from scratch, works on all major platforms including Window, Linux, MacOS - and even on RaspberryPI, and brings all-around extraordinary performance. After the short introduction, we'll look into what's new in versions 2.x and through demos analyze the basic templates for web and API applications, connecting with client-side frameworks as well as using the console and IDEs.
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurzeFuture Processing
W dzisiejszych czasach praca z chmurą pozwala niesamowicie zmniejszyć koszta wejścia na rynek z rozwiązaniami typu PoC i MVP oraz w późniejszych etapach rozwoju produktów skalować oprogramowanie według potrzeb. Niestety nie jest to złoty środekt i rozwiązując stare problemy, tworzy nowe. Dlatego, oprócz zapoznania się z technologią serverless, czy Infrastructure as a Code, spróbujemy przede wszystkim stworzyć bezpieczne środowisko, pozwalające na Continuous Deployment.
This presentation is about the present and future of the .NET platform and the C # programming language. We will review the current state of the .NET platform, the new features of .NET 2.1, and the future of the C # language.
What is .NET Core?
Tool required for developing .NET Core application.
Understanding Command for using (CLI)
How to create you first Console application and Web Application using Command Line Interface (CLI)
Running ASP.NET Core MVC application using Command Line Interface (CLI)
How to create you first Console application and Web Application using Visual studio 2015
Understanding Project structure of ASP.NET Core MVC
When to use Serverless? When to use Kubernetes?Niklas Heidloff
Slides of a session that I have given/will give at various developer conferences in H1 2018.
Niklas Heidloff
http://twitter.com/nheidloff
http://heidloff.net
Summary Article
http://heidloff.net/article/when-to-use-serverless-kubernetes
OpenWhisk
https://openwhisk.apache.org
https://github.com/ibm-functions/composer
https://github.com/nheidloff/openwhisk-debug-nodejs
Kubernetes
https://kubernetes.io
https://istio.io
IBM Cloud
http://ibm.biz/nheidloff
Abstract
There is a lot of debate whether to use Serverless or Kubernetes to build cloud-native apps. Both have their advantages and unique capabilities which developers should take into consideration when planning new projects. We will throw some light on the topics ease of use, maturity, types of scenarios, developer productivity and debugging, supported languages, DevOps and monitoring, performance, community and pricing. Cloud-native architectures shift the complexity from within an application to orchestrations of Microservices. Both Kubernetes and Serverless have their strengths which we will discuss. Besides the core development topics, developers should also understand operational aspects how complicated it is to maintain your own systems versus using managed platforms.
Topics of this presentation:
- Basics and best practices of developing single-page applications (SPA) and Web API Services on Microsoft .NET -
- Core with Docker and Linux.
- PowerShell Core automated builds.
- Markdown/PDF documentation.
- Documentation of public interfaces with Swagger/OAS/YAML.
- Automated testing of SPA on Protractor and testing the Web API on Postman/Newman.
This presentation by Sergii Fradkov (Consultant, Engineering), Andrii Zarharov (Lead Software Engineer, Consultant), Igor Magdich (Lead Test Engineer, Consultant) was delivered at GlobalLogic Kharkiv .NET TechTalk #1 on May 24, 2019.
Migrating .NET Application to .NET CoreBaris Ceviz
"Migrate .NET Application to .NET Core with scenarios" presentation in Dotnetkonf. How to migrate .NET Desktop, ASP.NET MVC & Web API or WCF Service applications to .NET Core
Microsoft has traditionally been a laggard in the JavaScript space, making such developers question whether their war cries were being heard aloud. Fortunately, the situation is rapidly improving since the release of Visual Studio Code. Code is a free, lightweight, cross-platform code editor which is sure to change your perception of Microsoft.
This presentation will demonstrate how to utilize popular JavaScript tooling within the editor. The focus will be placed on the first-class support for debuggers, linters, transpilers, and task runners.
Bringing Javascript to the Desktop with ElectronNir Noy
After Node.js brought JavaScript to the server, it was only inevitable that someone would take it to the next level and bring it to our desktop. And indeed this day has come. With the help of GitHub's Electron, front-end developers can now create fully featured desktop applications using JavaScript, HTML and CSS. In this talk, we'll go over the basics of developing an Electron app, talk about how Electron works under the hood and show how to build it and package it
With .NET Core, Microsoft has started a new era for developing multi-platform software. ASP.NET Core web framework is written from scratch, works on all major platforms including Window, Linux, MacOS - and even on RaspberryPI, and brings all-around extraordinary performance. After the short introduction, we'll look into what's new in versions 2.x and through demos analyze the basic templates for web and API applications, connecting with client-side frameworks as well as using the console and IDEs.
[Quality Meetup #20] Michał Górski - Continuous Deployment w chmurzeFuture Processing
W dzisiejszych czasach praca z chmurą pozwala niesamowicie zmniejszyć koszta wejścia na rynek z rozwiązaniami typu PoC i MVP oraz w późniejszych etapach rozwoju produktów skalować oprogramowanie według potrzeb. Niestety nie jest to złoty środekt i rozwiązując stare problemy, tworzy nowe. Dlatego, oprócz zapoznania się z technologią serverless, czy Infrastructure as a Code, spróbujemy przede wszystkim stworzyć bezpieczne środowisko, pozwalające na Continuous Deployment.
This presentation is about the present and future of the .NET platform and the C # programming language. We will review the current state of the .NET platform, the new features of .NET 2.1, and the future of the C # language.
What is .NET Core?
Tool required for developing .NET Core application.
Understanding Command for using (CLI)
How to create you first Console application and Web Application using Command Line Interface (CLI)
Running ASP.NET Core MVC application using Command Line Interface (CLI)
How to create you first Console application and Web Application using Visual studio 2015
Understanding Project structure of ASP.NET Core MVC
When to use Serverless? When to use Kubernetes?Niklas Heidloff
Slides of a session that I have given/will give at various developer conferences in H1 2018.
Niklas Heidloff
http://twitter.com/nheidloff
http://heidloff.net
Summary Article
http://heidloff.net/article/when-to-use-serverless-kubernetes
OpenWhisk
https://openwhisk.apache.org
https://github.com/ibm-functions/composer
https://github.com/nheidloff/openwhisk-debug-nodejs
Kubernetes
https://kubernetes.io
https://istio.io
IBM Cloud
http://ibm.biz/nheidloff
Abstract
There is a lot of debate whether to use Serverless or Kubernetes to build cloud-native apps. Both have their advantages and unique capabilities which developers should take into consideration when planning new projects. We will throw some light on the topics ease of use, maturity, types of scenarios, developer productivity and debugging, supported languages, DevOps and monitoring, performance, community and pricing. Cloud-native architectures shift the complexity from within an application to orchestrations of Microservices. Both Kubernetes and Serverless have their strengths which we will discuss. Besides the core development topics, developers should also understand operational aspects how complicated it is to maintain your own systems versus using managed platforms.
Topics of this presentation:
- Basics and best practices of developing single-page applications (SPA) and Web API Services on Microsoft .NET -
- Core with Docker and Linux.
- PowerShell Core automated builds.
- Markdown/PDF documentation.
- Documentation of public interfaces with Swagger/OAS/YAML.
- Automated testing of SPA on Protractor and testing the Web API on Postman/Newman.
This presentation by Sergii Fradkov (Consultant, Engineering), Andrii Zarharov (Lead Software Engineer, Consultant), Igor Magdich (Lead Test Engineer, Consultant) was delivered at GlobalLogic Kharkiv .NET TechTalk #1 on May 24, 2019.
How often have you heard "it's gonna be hard or impossible to cover this part of our backend application"? I've heard a lot. Because our modern application always involve databases, message queues, 3rd party services. What if I tell you, that I can cover even logs with tests, values of custom application metrics, apps that involve Google Cloud Storage, Google Data Storage, Kafka, Redis, Lambdas, DynamoDB, Aerospike, S3. I work in highload project without manual QA's at all. And I'm confident in my everyday releases, so should be you.
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous integration and delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share the processes followed by Amazon engineers and discuss how you can bring them to your company by using a set of application lifecycle management tools from AWS: the newly announced AWS CodeBuild service, AWS CodePipeline, and AWS CodeDeploy.
The new buzz world in the world of Agile is "DevOps". So what exactly is devOps and Why do we need it? When development got married to deployment (sys-admin/operations) ; what is born is a new advanced species which is known to us today as "DevOps"
DevOps Workshop Part 1
Daniel Laufer on January 19, 2022
Learn all about DevOps, and get the chance to set up automated deployment and testing of your applications using GitHub Actions and Firebase!
From development environments to production deployments with Docker, Compose,...Jérôme Petazzoni
In this session, we will learn how to define and run multi-container applications with Docker Compose. Then, we will show how to deploy and scale them seamlessly to a cluster with Docker Swarm; and how Amazon EC2 Container Service (ECS) eliminates the need to install,operate, and scale your own cluster management infrastructure. We will also walk through some best practice patterns used by customers for running their microservices platforms or batch jobs. Sample code and Compose templates will be provided on GitHub afterwards.
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous integration and delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share the processes followed by Amazon engineers and discuss how you can bring them to your company by using a set of application lifecycle management tools from AWS: the newly announced AWS CodeBuild service, AWS CodePipeline, and AWS CodeDeploy.
Learning Objectives:
• Understand the concepts of DevOps, continuous integration, and continuous delivery
• Learn about Amazon’s DevOps practices
• Hear an overview of how to build a continuous integration and continuous delivery workflow using the combination of CodeBuild, CodePipeline, and CodeDeploy
Comment améliorer le quotidien des Développeurs PHP ?AFUP_Limoges
Conférence présentée lors du summer meetup de l'AFUP à Limoges le 19 juin 2018. Son objectif est de présenter plusieurs outils permettant de gagner rapidement en efficacité au quotidien.
This workshop will walk through the process of creating a video player application that will have a mobile device as a remote control and a pc somewhere as the server. The talk will show some of the easy to implement features and best practices.
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsAmazon Web Services
Software release cycles are now measured in days instead of months. Cutting edge companies are continuously delivering high-quality software at a fast pace. In this session, we will cover how you can begin your DevOps journey by sharing best practices and tools used by the "two pizza" engineering teams at Amazon. We will showcase how you can accelerate developer productivity by implementing continuous Integration and delivery workflows. We will also cover an introduction to AWS CodeStar, AWS CodeCommit, AWS CodeBuild, AWS CodePipeline and AWS CodeDeploy, the services inspired by Amazon's internal developer tools and DevOps practice.
Discussion on angular offering, approaches to integrate web worker in angular (5 and 6) application, their pros and cons. A sample example implementation using custom web worker approach and integrating the same with CLI(1 and 6) and the application.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
5. WHAT ARE OUR PROBLEMS ?
We are startup. We provide IT solutions for business.
We have to:
- Building many [similar] web applications in a few weeks.
- Make a prototype quickly.
- Deliver product frequently for both testing &
production environment.
- We want to focus on writting better code(
*)
NOT to waste time on setting up project, deployment &
repeated tasks. They are time-consuming.
(
*)
Better code: well documented, well tested, well structured,
easy to read & understand, easy to collaborate with others,
contain independent & resuable modules.
6. HOW DO WE ADDRESS THEM ?
(1) Get focus.
(2) Pre-config boilerplate code.
(3) Continuous integration.
(4) Write testcases side by side with code.
(5) Reusable components.
(6) Thin server. Thick client.
(7) Switch from NodeJS to Golang.
8. THE WORKFLOW
1. Setup new project
2. Continuous development
Write code
3a. Deploy to testing environment
3b. Deploy to production environment
Write testcases
Build & test
(1) Minimal setup commands
Ready to code in under 10 mins
(3) Simply push to the repository
See product live in under 5 mins
(2) Ctrl + S to auto build, reload, test
See your changes immediately
Just a couple of commands to compile
9. THE STACKS
Web stack (NodeJS)
Bootstrap, LESS
AngularJS
NodeJS
Express / SailJS
MongoDB
Web stack (Golang)
Bootstrap, LESS
AngularJS
Go
REST server
MongoDB
Development & Deployment
Grunt
Minify, Source map
Karma, Mocha
Buildbot
Nginx, forever.js, nohup, etc.
Gruntfile.js
- forked from ng-boilerplate
~ 1000 line of code
13. DEMO & CODE (NodeJS)
Development
git clone http://github.com/litiws/ng-express-boilerplate
npm install -g gruntcli karma bower mocha
npm install
bower install
grunt watch
Then open another terminal and
grunt watchtest
Handy commands
grunt clean
grunt build
grunt dist
grunt compile
grunt test
Debug
grunt inspector
grunt theseus
14. DEMO & CODE (Golang)
Development
git clone http://github.com/ng-vu/ng-go-boilerplate
npm install -g gruntcli karma bower
npm install
bower install
grunt watch
Then open another terminal and
grunt watchtest
Build & start server
export GOPATH=$PWD
go build server
./server -dir=build/public -port=80
15. DEMO & CODE: REFERENCES
Ctrl + S on:
app/**/*.tpl.html
Compile to templates-0.0.1.js
Reload browser
less/**/*.less
Compile to main-0.0.1.css
Reload browser
less/vendor.less
Compile to vendor-0.0.1.css
Reload browser
appviews/*.html
Compile to view
Reload browser
app/**/*.js
server/**/*.js
Reload browser (client)
Restart server (server)
app/**/*.coffee
server/**/*.coffee
Compile Coffee to JS
Reload browser or server
app/**/*.spec.js
app/**/*.spec.coffee Run Karma test
server/**/*.spec.js
server/**/*.spec.coffee Run Mocha test
16. DEMO & CODE: HOW TO
Clean project grunt clean
Build project grunt build
Distribution
(without compiling)
grunt build
grunt dist
Compile project
grunt build
grunt compile
Work with node-inspector
(without restarting server)
grunt inspector
Work with node-theseus
(with some configuration)
grunt theseus
Continuous test
grunt build
grunt test
Continuous development
grunt watch
grunt watchtest (on other terminal)
19. BEST PRACTICE
(1) Get focus
- DO NOT leave your workspace.
+ Do everything on editor and command line.
+ Try to NOT Alt-Tab everytime. Use watch & livereload.
+ A second monitor for previewing website.
+ Only worry about writing code & testcases.
Let the system handle everything else.
- Learning will slow you down.
+ During code, try to finish thing on your own with minimal
searching & reading. Only read reference & question/answer.
+ You can always read documents & articles later.
20. BEST PRACTICE (2)
(2) Pre-config boilerplate code
- Grab pre-config code to create new project:
+ Quickly setup dependencies.
+ All the automation are included.
+ Ready to code in under 10 mins.
- Powerful toys in your hands:
+ Return to work with grunt watch & grunt watchtest.
+ Compile whole project with grunt compile.
+ Automation test with grunt test.
+ Debug with node-inspector & node-theseus.
+ Live edit in browser with Source map.
21. BEST PRACTICE (3)
(3) Continuous Integration
- Automation testing and deploying:
+ Use automation scripts (already in boilerplate code).
+ When you are ready to deploy to testing & production
environment, simply push changes to the repository.
- Buildbot will handle all the rest:
+ Watch repository for changes.
+ Pull source code.
+ Run scripts for building, testing & deploying.
+ Report on web interface.
22. BEST PRACTICE (4)
(4) Write testcases side by side with code
- Every file needs test:
+ Put test files right under tested files.
.spec.js, .spec.coffee, _test.go
+ Code in left-side and testcases in right-side.
+ Ctrl+S to run test files.
- What to test?
+ Unit-test for client: Karma + Mocha.
+ Unit-test for server: Grunt + Mocha.
+ End-to-end test for client: Karma + Angular Protractor.
+ Continuous testing: Buildbot + Grunt + Karma + PhantomJS.
23. BEST PRACTICE (5)
(5) Reusable components
- Write code for future use:
+ Quickly assemble new webapp from pre-built components.
+ Independent, well-tested components. Less bugs.
+ Use third-party code when posible.
+ Write code as if you plan to open source them.
(Even that you do not)
+ Separate application-specific code.
- Long-term:
+ Improve framework, libraries, performance... as we grow.
+ Open-source some of your works.
24. BEST PRACTICE (6)
(6) Thin server. Thick client.
- Improve your workflow:
+ Server is for dumping data, user authenticating
& important logic.
+ Put almost all logic on client side.
+ Use RESTful API. It works nice with others.
+ Angular Resource.
- Result:
+ Server: less testcases to worry about.
+ Just a few lines of code for both server & client.
+ Can finish a website in a few days.
25. BEST PRACTICE (7)
(7) Switch from NodeJS to Golang
npm install go get
Have to test almost everything.
Lots of code just for type checking.
Only write needed testcases.
Easy to write buggy code.
Compiler will complain about everything.
Even unused vars or assign int64 to int32.
Asynchronize API. Callback hell.
Synchronize API with beautiful code.
Goroutine.
Hundreds of dependency files under
node_modules.
They are in standard libraries.
Just include what you need.
Do not need web framework.
Go itself is a framework.
Server may crash anytime.
We need forever.js
Simply catch unexpected things.
27. INTRODUCTION
What is Buildbot?
1. Automated Build, Test, and Release
2. Written in Python.
3. Easy to setup & get start.
Grow with your workflow.
4. Once setup, forget it.
32. KEY THINGS TO REMEMBER
(1) Get focus.
(2) Pre-config boilerplate code.
(3) Continuous integration.
(4) Write testcases side by side with code.
(5) Reusable components.
(6) Thin server. Thick client.
(7) Switch from NodeJS to Golang.