An Enterprise according to Javascript

11/2014 - Buenos Aires, Argentina

Pablo González - @pdg_tw

My early days with javascript

  • AS400 vs WebApp
  • MS Internet Explorer 6
  • XML DOM
  • Databinding
  • XMLHttpRequest
  • "The framework" getById()
  • Modal windows
<html>
<head>
    <title>XML Data Island Example</title>
</head>
<body>
<XML ID="ACCOUNT">
    <?xml version="1.0"?>
    <BankAccount>
        <Number>1234</Number>
        <Name>Darshan Singh</Name>
        <Type>Checking</Type>
        <OpenDate>11/04/1974</OpenDate>
        <Balance>25382.20</Balance>
    </BankAccount>
</XML>
<table border="1" datasrc="#ACCOUNT">
    <th>
        <td>Account Number </td>
        <td>Name </td>
        <td>Type of Account </td>
        <td>Balance </td>
    </th>
    <tr>
        <td><div datafld="Number"></div></td>
        <td><div datafld="Name"></div></td>
        <td><div datafld="Type"></div></td>
        <td><div datafld="Balance"></div></td>
    </tr>
</table>
</body>
</html>

and afterwards

  • Jquery
  • Motools
  • Prototype

+

  • JSON
  • CSS

I did hardly anything, but the world ...

On world wide web

a bit of everything

HTML DOM + JAVASCRIPT + CSS3

_____________________________________

​HTML5

the screen

  • 800 X 600 (4:3)
  • 1024 X 768-- (4:3)
  • early mobile design
  • liquid design (% + absolute)
  • mobile devices
  • responsive design
  • responsive + inifite scroll

http://powerofpossible.com/

Intranets

  • maybe you need IE 8 Compatibility
  • my custom JQuery UI
  • Or something worse (like GWT)
  • fucking widgets for portals
  • Security issues

¿How to upgrade it?

And the World Goes On

for cheap and easy beauty

  • Modernizr.js
  • Polyfills
  • Bootstrap
  • SASS
  • LESS
  • HTML5 support on designer tools
  • JQueryUI
  • JQueryMobile

for developers health

  • knockout.js
  • backbone.js
  • underscore.js
  • ember.js
  • angular.js
  • JQuery
  • JQuery.BBQ

And Goes On

  • node.js
    • npm
    • jade
    • ejs
    • express.js
    • sails.js
    • grunt.js
    • gulp.js
    • bower.js
    • nvm
  • socket.io
  • sockjs
  • mongoDB
  • couchDB
  • meteor.js
  • silk.js
  • yeoman
  • JWT

I went on too

First HTML5, I started with the website of my own business:

ODRA Soluciones Informáticas

Second Social Media APIs and Oauth

MI IDEAL AGENCY

Third knockout.js

EGOS BATTLE

I went on, again

Fourth a game for babies:

BUNGE

Fifth angular.js, node.js, socket.io

GRAZIE FRANCESCO

Sixth return of JQuery

SUDACUP

JS gave me the experience that my son was my tester 

The enterprise

  • Startups were early adopters of new JS philosophy.
  • The MEAN stack was an useful replace for  LAMP Stack, specially with the intrusion of LEAN methodology.
  • The intranets were freeze in the time (including browser support)
  • The renewed websites only were successful with external design agencies.

INNOVATION & TECHNOLOGY

 LATEST IT DEPLOYMENT

JAVASCRIPT

 

LATAM biggest Healthcare Insurance.​

+4.600.000 Beneficiaries.

16.000 Staff.

20.000 Healthcare providers.

+ 16.000 Pharmacies

+ 700 Offices.

+2.000.000 Transactions per day.

170.000 Digital prescriptions.

About PAMI

¿How to Start?

People

  • Are there a team?
  • Expirience?
  • Studies?
  • Skills?
  • From which technology comes?

business requirements

Applicability

  • Website?
  • Intranet?
  • core business?
  • side business?
  • mobile devices

¿How to Start?

technology requirements

apps with short life

  • short TTM
  • campaigns
  • POCs

high performance apps

  • we love node.js
  • mongoDB (WARN!)
  • Other NOSQL
  • event processing

scalable apps

  • campaigns
  • high availability

¿How not to Start?

Core Business Apps

Frequently Accessed Apps

Real Time Apps

Making friendly JS

GWT or something else

deal with dynamic typing

build better development tools

IDEs

You always can use notepad or vi

nodeinspector && node --debug --debug-bkp

Chrome Developer Tools

TESTS

  • Test is good for functionality but it is also for dynamic typing
  • Developers make mistakes 
  • typos, assignment, undefined are issues

Talking with Gavin

About developers skills and types on ceylon

performance approach

better with the tool certified by the company

¿You get better performance with lowest cost?

performance include: tx/min, concurrency, availability, disk, memory, cpu, energy.

make something quick, easy and cheap

  • And Improve it.
  • And Improve your team.
  • And Improve your experiencie.
  • Make something maintainable.
  • Learn how to automate

do not make promises you can not keep

Do what you can now, leave what you wish for later

Promises on JS are excellent but hard to learn for non JS developers

Skills & Tips

life is a callback (don' t hit it)

please know prototyping

javascript is about functions and objects

node.js is not magic! use google and read

order your files 

proactivity

More and more JS

community is really the support, you aren't it

share, share, share, improve, improve, improve

try, if you do not like do not use

Conclusions

JS is the best thing for Enterprise and business

Say "the best" is not good, say "good" is best

The cost for development is low, the cost for maintenance is the issue

Always try something new, every time there are new things that can save your day

Conect with ITPAMI

Shares the most innovative IT initiatives that PAMI has developed recently, to be empowered by the community. it.pami.org.ar

JSCONF 26/11/2014 “An Enterprise according to Javascript"

By Pablo Daniel Gonzalez

JSCONF 26/11/2014 “An Enterprise according to Javascript"

We'll learn about how different our approach should be when developing enterprise applications using Javascript (browser and server) compared to smaller projects. Pablo will cover advantages and disadvantages, tips and unanswered questions he came up with when working on PAMI's platform. He'll also talk about the skillsets and tools that worked best for him to deal with this kind of development. This workshop would be ideal for architects, project leaders and developers willing to use JavaScript on their companies.

  • 1,703