future of web development
DESCRIPTION
Liferay Spain SymposiumTRANSCRIPT
t
! " # $ % ! & ' ( ) *
" # $ & ! " * $ % $ %
! " # $ % ! & ' ( ) *
" # $ & ! " * $ % $ %
Liferay Spain Symposium
The Future of Web Development
@zenorocha#LFRESP2014
t
! " # $ % ! & ' ( ) *
" # $ & ! " * $ % $ %
! " # $ % ! & ' ( ) *
" # $ & ! " * $ % $ %
Liferay Spain Symposium
The Future of Web Development
HOW NOT TO BECOME A ZOMBIE
Liferay Spain Symposium
USE JQUERY
jquery.com
USE YUI
yuilibrary.com
USE BACKBONE
backbonejs.org
USE REACT
facebook.github.io/react
USE ANGULAR
angularjs.org
ARE WE REALLY
EVOLVING?
HTML
+
haml.info
jade-lang.com
html5-pro.com/wormz
CSS
,
lesscss.org
sass-lang.com
learnboost.github.io/stylus
html5-pro.com/old-radio
JavaScript
-
goo.gl/prgXr4
goo.gl/QDhkD7
dartlang.org
typescriptlang.org
coffeescript.org
nodejs.org
wiki.ecmascript.org
code.google.com/p/v8
trackingjs.com
? ??
?
?? ?
?
??
??
??
?
?
AlloyUI?
goo.gl/n3kVzT
goo.gl/2Q9mvf
Web Components?
goo.gl/vzUzJ9
x-tags.org
polymer-project.org
customelements.io
12%
26%15%
+ 600 elements
North America
South America
Western Europe
Eastern/Northern
Europe
10%
+ 200,000 pageviews
git.io/BPTcZQ
polymer-project.org/resources/faq.html
webcomponents.org
Single page apps?
Showcase video
HOW LONG DOES
IT TAKE TO PUT A
LIFERAY PORTAL
IN PRODUCTION?
@rotty3000 @eduardolundgren
/
#
0
RESTFUL APIS
ROUTING SYSTEM
DYNAMIC STORAGE
DEVELOPER WORKFLOW
Launchpad
1MULTI
DEVICE
REAL TIME
3 CLOUD
Dynamic storage
service.xml
<service-builder package-path="com.liferay.calendar" auto-namespace-tables="false"><author>Eduardo Lundgren</author><namespace>Calendar</namespace><entity name="Calendar" uuid="true" local-service="true" remote-service="true">
<column name="calendarId" type="long" primary="true" /><column name="groupId" type="long" /><column name="companyId" type="long" /><column name="userId" type="long" /><column name="userName" type="String" /><column name="createDate" type="Date" /><column name="modifiedDate" type="Date" />
{"name": "string","description": "string","calendarResourceId": "string","color": "string","companyId": "string","defaultCalendar": "boolean","enableComments": "boolean","enableRatings": "boolean","groupId": "string"
}
calendar.json
Real time
Restful APIs
#
yourliferay.com/api/jsonws
categories/:tag/posts/:id
Routing system
/
liferay.com/group/control_panel/manage?p_p_id=25&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&doAsGroupId=10182&refererPlid=10185&controlPanelCategory=current_site.content&_25_struts_action=%2Fpolls%2Fview_question&_25_questionId=11778
GET /home actions.HomeAction#get
GET /about actions.AboutAction#get
GET /contact /content.html
routes.txt
Multi device
1
Developer workflow
0
"Geeks love to fight"
- Rasmus Lerdorf
the success of an app does not depend
on a tool…
…but how this tool is applied.
/
#
0
RESTFUL APIS
ROUTING SYSTEM
DYNAMIC STORAGE
DEVELOPER WORKFLOW
Launchpad
1MULTI
DEVICE
REAL TIME
3 CLOUD
Our goal is to empower developers to be able to build Liferay projects “in a weekend”
ATTRACT NEW DEVELOPERS
Small biz
Startups
Agencies
ATTRACT NEW INDUSTRIES