Building and deploying React applications

Astrails
AstrailsMentor at Astrails
Building and Deploying React
Applications
Boris Nadion
boris@astrails.com
@borisnadion
@borisnadion
boris@astrails.com
astrails
http://astrails.com
2005
awesome web and mobile apps
building & deploying
building & deploying
facebookincubator/create-react-app
Create React apps with no build configuration.
npm install -g create-react-app
create-react-app my-app
cd my-app/
npm start
customize
like adding css preprocessors
yarn eject / npm eject
yarn eject / npm eject
not trivial
start from scratch
setup internals
Building and deploying React applications
environments
✓ development
✓ production
x test
package.json
"babel": { 

"presets": [ 

[ 

"es2015", 

{ 

"modules": false 

} 

], 

"react", 

"stage-0" 

], 

"plugins": [ 

"transform-runtime", 

"babel-plugin-transform-class-properties", 

"transform-object-rest-spread" 

], 

"env": { 

"production": { 

"plugins": [ 

"transform-react-inline-elements", 

"transform-react-constant-elements", 

"transform-react-remove-prop-types" 

] 

} 

} 

}, 

babel-plugin-transform-class-properties
class Bork { 

//Property initializer syntax 

instanceProperty = "bork"; 

boundFunction = () => { 

return this.instanceProperty; 

} 



//Static class properties 

static staticProperty = "babelIsCool"; 

static staticFunction = function() { 

return Bork.staticProperty; 

} 

}


let n = { x, y, ...z }; 

transform-object-rest-spread
transform-react-inline-elements
babelHelpers.jsx(Baz, { foo: "bar" }, "1");
const Hr = () => { return <hr className="hr" />; }; 



const _ref = <hr className="hr" />; 

const Hr = () => { 

return _ref; 

}; 

transform-react-inline-elements
Baz.propTypes = {…}
transform-react-remove-prop-types
“start":
"env NODE_ENV=development webpack-dev-server --progress --colors",
“build":
"rimraf dist &&
env NODE_ENV=production webpack --colors &&
cp ./dist/* ../public/assets/",
Building and deploying React applications
webpack config
webpack config
http://imgur.com/gallery/EnAmi
Building and deploying React applications
const ENV = process.env.NODE_ENV; 

const VALID_ENVIRONMENTS = ['development', 'production']; 



if (!VALID_ENVIRONMENTS.includes(ENV)) { 

throw new Error(`${ ENV } is not valid environment!`); 

} 

const DEVELOPMENT_CONFIG = require('./config/webpack.dev'); 

const PRODUCTION_CONFIG = require('./config/webpack.prod'); 



const config = { 

development: DEVELOPMENT_CONFIG, 

production: PRODUCTION_CONFIG 

}[ENV]; 





const COMMON_CONFIG = { … };

module.exports = webpackMerge.smart(COMMON_CONFIG, config); 

let’s look at the code
webpack.config.js + dev + prod
3 bundles
bundle.js
+ css
client.js
+ css
async.js
+ css
yarn start v0.24.4
$ env NODE_ENV=development webpack-dev-server --progress --colors
10% building modules 2/2 modules 0 active
Project is running at http://0.0.0.0:9001/
webpack output is served from http://localhost:9001/assets/
404s will fallback to /index.html
Hash: 9a91c0c826ebb4c40f2a
Version: webpack 2.6.1
Time: 6507ms
Asset Size Chunks Chunk Names
0.js 806 bytes 0 [emitted]
client.js 313 kB 1 [emitted] [big] client
vendor.js 1.45 MB 2 [emitted] [big] vendor
0.js.map 572 bytes 0 [emitted]
client.js.map 360 kB 1 [emitted] client
index.html 421 bytes [emitted]
webpack: Compiled successfully.
dev mode demo
hot reload, async load, eslint errors
//…
import { AppContainer } from 'react-hot-loader'; 



//…

const hotRender = () => { 

render( 

<AppContainer> 

<Application store={ store } /> 

</AppContainer>, 

document.getElementById('root') 

); 

}; 



hotRender(); 



module.hot.accept('components/Application', hotRender); 



hot reload
import asyncComponent from 'components/AsyncComponent'; 



const AsyncDashboard = asyncComponent(() => 

import('./Dashboard').then(module => module.default) 

); 



export default AsyncDashboard; 



async load
import React from 'react'; 



const asyncComponent = (getComponent) => 

class AsyncComponent extends React.Component { 

state = { Component: null }; 



componentWillMount() { 

if (!this.state.Component) { 

getComponent().then(Component => { 

this.setState({ Component }); 

}); 

} 

} 

render() { 

const { Component } = this.state; 

if (Component) { 

return <Component { ...this.props } />; 

} 

return null; 

} 

}; 



export default asyncComponent; 

async load
prod build
yarn build
yarn build v0.24.4
$ rimraf dist && env NODE_ENV=production webpack --colors && cp ./dist/* ../public/assets/
Hash: f5404348a5a4eadca2c5
Version: webpack 2.6.1
Time: 9894ms
Asset Size Chunks Chunk
Names
client-149e7f81934ccd4797d6.bundle.js.map 183 kB 1 [emitted] client
0-b065752a37e19efffbe1.bundle.js 318 bytes 0 [emitted]
webpack-chunk-manifest.json 79 bytes [emitted]
vendor-411f8db22ac4a264ff0d.bundle.js 265 kB 2 [emitted] [big] vendor
client-e9da9d78d42878a4c3a5a7ab1330ea79.css 2.7 kB 1 [emitted] client
0-b065752a37e19efffbe1.bundle.js.map 2.11 kB 0 [emitted]
client-149e7f81934ccd4797d6.bundle.js 24 kB 1 [emitted] client
client-e9da9d78d42878a4c3a5a7ab1330ea79.css.map 120 bytes 1 [emitted] client
client-149e7f81934ccd4797d6.bundle.js.gz 8.35 kB [emitted]
vendor-411f8db22ac4a264ff0d.bundle.js.gz 77.9 kB [emitted]
index.html 493 bytes [emitted]
webpack-asset-manifest.json 468 bytes [emitted]
new webpack.HashedModuleIdsPlugin(),
new ManifestPlugin({ 

fileName: 'webpack-asset-manifest.json' 

}), 



new ChunkManifestPlugin({ 

filename: 'webpack-chunk-manifest.json', 

manifestVariable: 'webpackManifest' 

}), 

// webpack-chunk-manifest.json
{"0":"0-b065752a37e19efffbe1.bundle.js"} 

// webpack-asset-manifest.json

{ 

"0-b065752a37e19efffbe1.bundle.js": "0-b065752a37e19efffbe1.bundle.js", 

"0-b065752a37e19efffbe1.bundle.js.map": "0-b065752a37e19efffbe1.bundle.js.map", 

"client.css": "client-e9da9d78d42878a4c3a5a7ab1330ea79.css", 

"client.css.map": "client-e9da9d78d42878a4c3a5a7ab1330ea79.css.map", 

"client.js": "client-149e7f81934ccd4797d6.bundle.js", 

"client.js.map": "client-149e7f81934ccd4797d6.bundle.js.map", 

"vendor.js": "vendor-411f8db22ac4a264ff0d.bundle.js" 

} 

4 bundles
vendor.js client.js 0.js client.css
html from server
/* … */
<script type=“text/javascript”>
window.apiEndPoint = "http://stage.example.com"
</script>
<link href="//xxx/client.css" rel="stylesheet" />
<script src="//xxx/vendor.js”></script>
<script src="//xxx/client.js"></script>
/* … */
} xxx=?
<div id="root"></div>
<%= api_endpoint_from_environment %>
<%= client_application_stylesheet_tag 'client.css' %>

<%= client_application_javascript_tag 'vendor.js' %> 

<%= client_application_javascript_tag 'client.js' %> 

server template
module ClientApplicationHelper
# client_application_javascript_tag 'client.js'

def client_application_javascript_tag(bundle) 

src = 

if client_application[:use_manifest]
# "client.js": "client-149e7f81934ccd4797d6.bundle.js", 

manifest = client_application[:asset_manifest][bundle]


# static asset

"/assets/#{bundle}" 

else
# dev mode

"http://localhost:9001/assets/#{bundle}" 

end 



javascript_include_tag(src)

end 



def client_application_stylesheet_tag(bundle)
# …
# almost the same but no need to render in dev mode

end 

end 



serve from
• webpack dev server (for dev mode)
• same server, static assets
• static assets through CDN
• CDN direct
• whatever
awesome
almost awesome
<%= client_application_stylesheet_tag 'client.css' %>
<%= client_application_javascript_tag 'vendor.js' %> 

<%= client_application_javascript_tag 'client.js' %> 

in a context of a request
current_user
req.current_user, request.user[. is_authenticated], …
module ClientApplicationHelper


def client_application_javascript_tag(bundle) 

src = 

if client_application[:use_manifest]
# "client.js": "client-149e7f81934ccd4797d6.bundle.js", 

manifest = assets_manifest_for(current_user)[bundle]

# …

end 



javascript_include_tag(src)

end 

end 



storing manifests per user
S3, database, redis, memcache, etc
+ default manifest for the rest of the users
assets_manifest_for(current_user)[bundle]
• A/B testing
• features testing in production env
• UI experiments
• gradually rolling out new features
assets_manifest_for(current_user)[bundle]
bundles v1.12
default
bundles v1.13
debugging an issue
bundles v2.0
testing new release
user with a bug in v1.12
marketing user
all users
separate server and client
deployments
client lifecycle
• build: get new bundles + manifest
• deploy: upload bundles to remote
storage (S3) + warm up CDN
• release: update user’s or default
manifest
awesome
almost awesome
http://www.enjoyart.com/single_posters/animals_art_photo/NoahsArkTakinoAnimalsArtPrintPoster.htm
zoo
bundles v2.0bundles v2.1bundles v2.2bundles v2.3bundles v2.4
server
compatibility
API
compatibility
develop deploy test release
new frontend version
new backend version
local staging production
release = update default manifest
for all the users
server first
server is always backward compatible
easier to maintain compatibility on server with API versioning
zoo = not an engineering issue
but administrative one
awesome
really awesome
https://github.com/astrails/rails_react_webpack
thanks to mike@astrails.com aka @mihap
http://astrails.com/blog
slides will be available
thanks!
Boris Nadion
http://astrails.com
boris@astrails.com
@borisnadion
1 of 67

Recommended

Enjoy the vue.js by
Enjoy the vue.jsEnjoy the vue.js
Enjoy the vue.jsTechExeter
1.4K views88 slides
Building a js widget by
Building a js widgetBuilding a js widget
Building a js widgetTudor Barbu
990 views44 slides
Chrome enchanted 2015 by
Chrome enchanted 2015Chrome enchanted 2015
Chrome enchanted 2015Chang W. Doh
2.1K views90 slides
AngularJS Project Setup step-by- step guide - RapidValue Solutions by
AngularJS Project Setup step-by- step guide - RapidValue SolutionsAngularJS Project Setup step-by- step guide - RapidValue Solutions
AngularJS Project Setup step-by- step guide - RapidValue SolutionsRapidValue
13.1K views15 slides
Rapid prototyping and easy testing with ember cli mirage by
Rapid prototyping and easy testing with ember cli mirageRapid prototyping and easy testing with ember cli mirage
Rapid prototyping and easy testing with ember cli mirageKrzysztof Bialek
607 views35 slides
Vue business first by
Vue business firstVue business first
Vue business firstVitalii Ratyshnyi
585 views61 slides

More Related Content

What's hot

Laravel 8 export data as excel file with example by
Laravel 8 export data as excel file with exampleLaravel 8 export data as excel file with example
Laravel 8 export data as excel file with exampleKaty Slemon
193 views42 slides
Instant and offline apps with Service Worker by
Instant and offline apps with Service WorkerInstant and offline apps with Service Worker
Instant and offline apps with Service WorkerChang W. Doh
856 views82 slides
An introduction to Vue.js by
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.jsJavier Lafora Rey
1.9K views149 slides
A gently introduction to AngularJS by
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJSGregor Woiwode
1.2K views33 slides
20130528 solution linux_frousseau_nopain_webdev by
20130528 solution linux_frousseau_nopain_webdev20130528 solution linux_frousseau_nopain_webdev
20130528 solution linux_frousseau_nopain_webdevFrank Rousseau
1.3K views78 slides
webcomponents (Jfokus 2015) by
webcomponents (Jfokus 2015)webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)Hendrik Ebbers
2.9K views111 slides

What's hot(20)

Laravel 8 export data as excel file with example by Katy Slemon
Laravel 8 export data as excel file with exampleLaravel 8 export data as excel file with example
Laravel 8 export data as excel file with example
Katy Slemon193 views
Instant and offline apps with Service Worker by Chang W. Doh
Instant and offline apps with Service WorkerInstant and offline apps with Service Worker
Instant and offline apps with Service Worker
Chang W. Doh856 views
A gently introduction to AngularJS by Gregor Woiwode
A gently introduction to AngularJSA gently introduction to AngularJS
A gently introduction to AngularJS
Gregor Woiwode1.2K views
20130528 solution linux_frousseau_nopain_webdev by Frank Rousseau
20130528 solution linux_frousseau_nopain_webdev20130528 solution linux_frousseau_nopain_webdev
20130528 solution linux_frousseau_nopain_webdev
Frank Rousseau1.3K views
webcomponents (Jfokus 2015) by Hendrik Ebbers
webcomponents (Jfokus 2015)webcomponents (Jfokus 2015)
webcomponents (Jfokus 2015)
Hendrik Ebbers2.9K views
EWD 3 Training Course Part 41: Building a React.js application with QEWD, Part 5 by Rob Tweed
EWD 3 Training Course Part 41: Building a React.js application with QEWD, Part 5EWD 3 Training Course Part 41: Building a React.js application with QEWD, Part 5
EWD 3 Training Course Part 41: Building a React.js application with QEWD, Part 5
Rob Tweed621 views
Introducing Rendr: Run your Backbone.js apps on the client and server by Spike Brehm
Introducing Rendr: Run your Backbone.js apps on the client and serverIntroducing Rendr: Run your Backbone.js apps on the client and server
Introducing Rendr: Run your Backbone.js apps on the client and server
Spike Brehm39.7K views
The Complementarity of React and Web Components by Andrew Rota
The Complementarity of React and Web ComponentsThe Complementarity of React and Web Components
The Complementarity of React and Web Components
Andrew Rota32.3K views
Building a Startup Stack with AngularJS by FITC
Building a Startup Stack with AngularJSBuilding a Startup Stack with AngularJS
Building a Startup Stack with AngularJS
FITC32K views
Javascript MVVM with Vue.JS by Eueung Mulyana
Javascript MVVM with Vue.JSJavascript MVVM with Vue.JS
Javascript MVVM with Vue.JS
Eueung Mulyana2.9K views
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ... by IT Event
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
Oleh Zasadnyy "Progressive Web Apps: line between web and native apps become ...
IT Event205 views
Building Universal Web Apps with React ForwardJS 2017 by Elyse Kolker Gordon
Building Universal Web Apps with React ForwardJS 2017Building Universal Web Apps with React ForwardJS 2017
Building Universal Web Apps with React ForwardJS 2017
The Point of Vue - Intro to Vue.js by Holly Schinsky
The Point of Vue - Intro to Vue.jsThe Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.js
Holly Schinsky1.6K views
Hastening React SSR - Web Performance San Diego by Maxime Najim
Hastening React SSR - Web Performance San DiegoHastening React SSR - Web Performance San Diego
Hastening React SSR - Web Performance San Diego
Maxime Najim1.2K views
Node JS Express : Steps to Create Restful Web App by Edureka!
Node JS Express : Steps to Create Restful Web AppNode JS Express : Steps to Create Restful Web App
Node JS Express : Steps to Create Restful Web App
Edureka!3.2K views

Similar to Building and deploying React applications

How to Webpack your Django! by
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!David Gibbons
2.9K views50 slides
Vue js and Dyploma by
Vue js and DyplomaVue js and Dyploma
Vue js and DyplomaYoram Kornatzky
627 views42 slides
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ... by
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...Luciano Mammino
330 views60 slides
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti... by
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...Codemotion
1.1K views60 slides
Running Vue Storefront in production (PWA Magento webshop) by
Running Vue Storefront in production (PWA Magento webshop)Running Vue Storefront in production (PWA Magento webshop)
Running Vue Storefront in production (PWA Magento webshop)Vendic Magento, PWA & Marketing
9.3K views48 slides
Heroku pop-behind-the-sense by
Heroku pop-behind-the-senseHeroku pop-behind-the-sense
Heroku pop-behind-the-senseBen Lin
778 views30 slides

Similar to Building and deploying React applications(20)

How to Webpack your Django! by David Gibbons
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!
David Gibbons2.9K views
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ... by Luciano Mammino
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...
Luciano Mammino330 views
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti... by Codemotion
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...
Universal JavaScript Web Applications with React - Luciano Mammino - Codemoti...
Codemotion1.1K views
Heroku pop-behind-the-sense by Ben Lin
Heroku pop-behind-the-senseHeroku pop-behind-the-sense
Heroku pop-behind-the-sense
Ben Lin778 views
Maciej Treder ''Angular Universal - a medicine for the Angular + SEO/CDN issu... by OdessaJS Conf
Maciej Treder ''Angular Universal - a medicine for the Angular + SEO/CDN issu...Maciej Treder ''Angular Universal - a medicine for the Angular + SEO/CDN issu...
Maciej Treder ''Angular Universal - a medicine for the Angular + SEO/CDN issu...
OdessaJS Conf710 views
Deploying configurable frontend web application containers by José Moreira
Deploying configurable frontend web application containersDeploying configurable frontend web application containers
Deploying configurable frontend web application containers
José Moreira88 views
Rest web service_with_spring_hateoas by Zeid Hassan
Rest web service_with_spring_hateoasRest web service_with_spring_hateoas
Rest web service_with_spring_hateoas
Zeid Hassan295 views
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents by Andrey Karpov
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agentsPVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
PVS-Studio: analyzing pull requests in Azure DevOps using self-hosted agents
Andrey Karpov84 views
Django + Vue, JavaScript de 3ª generación para modernizar Django by Javier Abadía
Django + Vue, JavaScript de 3ª generación para modernizar DjangoDjango + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar Django
Javier Abadía4.6K views
Keeping the frontend under control with Symfony and Webpack by Ignacio Martín
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and Webpack
Ignacio Martín6.4K views
125 고성능 web view-deview 2013 발표 자료_공유용 by NAVER D2
125 고성능 web view-deview 2013 발표 자료_공유용125 고성능 web view-deview 2013 발표 자료_공유용
125 고성능 web view-deview 2013 발표 자료_공유용
NAVER D230.4K views
Front End Development for Back End Java Developers - Jfokus 2020 by Matt Raible
Front End Development for Back End Java Developers - Jfokus 2020Front End Development for Back End Java Developers - Jfokus 2020
Front End Development for Back End Java Developers - Jfokus 2020
Matt Raible181 views
Angular server side rendering - Strategies & Technics by Eliran Eliassy
Angular server side rendering - Strategies & Technics Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics
Eliran Eliassy1.1K views

More from Astrails

Accounting For Hackers by
Accounting For HackersAccounting For Hackers
Accounting For HackersAstrails
167 views79 slides
Machine Learning: Make Your Ruby Code Smarter by
Machine Learning: Make Your Ruby Code SmarterMachine Learning: Make Your Ruby Code Smarter
Machine Learning: Make Your Ruby Code SmarterAstrails
203 views94 slides
Migrating from Flux to Redux. Why and how. by
Migrating from Flux to Redux. Why and how.Migrating from Flux to Redux. Why and how.
Migrating from Flux to Redux. Why and how.Astrails
1.1K views80 slides
Engineering esthetics by
Engineering estheticsEngineering esthetics
Engineering estheticsAstrails
654 views99 slides
Lean Software Development by
Lean Software DevelopmentLean Software Development
Lean Software DevelopmentAstrails
1.6K views57 slides
RubyMotion: Put your Dreams in Motion with Ruby by
RubyMotion: Put your Dreams in Motion with RubyRubyMotion: Put your Dreams in Motion with Ruby
RubyMotion: Put your Dreams in Motion with RubyAstrails
8.4K views65 slides

More from Astrails(12)

Accounting For Hackers by Astrails
Accounting For HackersAccounting For Hackers
Accounting For Hackers
Astrails167 views
Machine Learning: Make Your Ruby Code Smarter by Astrails
Machine Learning: Make Your Ruby Code SmarterMachine Learning: Make Your Ruby Code Smarter
Machine Learning: Make Your Ruby Code Smarter
Astrails203 views
Migrating from Flux to Redux. Why and how. by Astrails
Migrating from Flux to Redux. Why and how.Migrating from Flux to Redux. Why and how.
Migrating from Flux to Redux. Why and how.
Astrails1.1K views
Engineering esthetics by Astrails
Engineering estheticsEngineering esthetics
Engineering esthetics
Astrails654 views
Lean Software Development by Astrails
Lean Software DevelopmentLean Software Development
Lean Software Development
Astrails1.6K views
RubyMotion: Put your Dreams in Motion with Ruby by Astrails
RubyMotion: Put your Dreams in Motion with RubyRubyMotion: Put your Dreams in Motion with Ruby
RubyMotion: Put your Dreams in Motion with Ruby
Astrails8.4K views
WTF is NoSQL by Astrails
WTF is NoSQLWTF is NoSQL
WTF is NoSQL
Astrails890 views
Cassandra intro by Astrails
Cassandra introCassandra intro
Cassandra intro
Astrails526 views
Ruby is an Acceptable Lisp by Astrails
Ruby is an Acceptable LispRuby is an Acceptable Lisp
Ruby is an Acceptable Lisp
Astrails2.4K views
Ruby is Awesome by Astrails
Ruby is AwesomeRuby is Awesome
Ruby is Awesome
Astrails2.4K views
Rails missing features by Astrails
Rails missing featuresRails missing features
Rails missing features
Astrails2.2K views
Performance - When, What and How by Astrails
Performance - When, What and HowPerformance - When, What and How
Performance - When, What and How
Astrails1.2K views

Recently uploaded

Electronic AWB - Electronic Air Waybill by
Electronic AWB - Electronic Air Waybill Electronic AWB - Electronic Air Waybill
Electronic AWB - Electronic Air Waybill Freightoscope
5 views1 slide
Introduction to Git Source Control by
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source ControlJohn Valentino
7 views18 slides
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionMárton Kodok
16 views55 slides
Agile 101 by
Agile 101Agile 101
Agile 101John Valentino
10 views20 slides
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation by
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationHCLSoftware
6 views8 slides
Generic or specific? Making sensible software design decisions by
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsBert Jan Schrijver
7 views60 slides

Recently uploaded(20)

Electronic AWB - Electronic Air Waybill by Freightoscope
Electronic AWB - Electronic Air Waybill Electronic AWB - Electronic Air Waybill
Electronic AWB - Electronic Air Waybill
Freightoscope 5 views
Introduction to Git Source Control by John Valentino
Introduction to Git Source ControlIntroduction to Git Source Control
Introduction to Git Source Control
John Valentino7 views
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action by Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok16 views
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation by HCLSoftware
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
HCLSoftware6 views
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Bootstrapping vs Venture Capital.pptx by Zeljko Svedic
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptx
Zeljko Svedic15 views
FIMA 2023 Neo4j & FS - Entity Resolution.pptx by Neo4j
FIMA 2023 Neo4j & FS - Entity Resolution.pptxFIMA 2023 Neo4j & FS - Entity Resolution.pptx
FIMA 2023 Neo4j & FS - Entity Resolution.pptx
Neo4j17 views
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi216 views
JioEngage_Presentation.pptx by admin125455
JioEngage_Presentation.pptxJioEngage_Presentation.pptx
JioEngage_Presentation.pptx
admin1254558 views
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... by Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke35 views
Sprint 226 by ManageIQ
Sprint 226Sprint 226
Sprint 226
ManageIQ11 views
FOSSLight Community Day 2023-11-30 by Shane Coughlan
FOSSLight Community Day 2023-11-30FOSSLight Community Day 2023-11-30
FOSSLight Community Day 2023-11-30
Shane Coughlan6 views
predicting-m3-devopsconMunich-2023.pptx by Tier1 app
predicting-m3-devopsconMunich-2023.pptxpredicting-m3-devopsconMunich-2023.pptx
predicting-m3-devopsconMunich-2023.pptx
Tier1 app8 views

Building and deploying React applications