SlideShare a Scribd company logo
THE CLOCKWORKS BEHIND A
 JAVASCRIPT FRAMEWORK
 that powers a billion charts a month
What everybody (secretly) wants to do?
 Create popular frameworks and apps
 Help a lot of people and organizations
 Make a lot of money out of it
Avoiding the vicious cycle
                                       Scrap    Develop




                             Let it
                              out                         Release
                             again!




                                        Re-
                                                 Scrap
                                      Develop
What do we lose in this process?
   Enthusiasm for innovation
   Delay in product shipment
   Possible reduction in quality
   Difficulty in migration
   Trust of your consumers
   MONEY
The story of our framework
• Transparent transition for existing users from
  Flash to SVG and VML.
• We had no way to anticipate the roadblocks
  that we would face while developing for this
  transition.
• Thus, we created a model flexible enough to
  support any design required to attend
  customers’ needs.
Developing the “play dough”
 Treated the core of our framework as a mini-
  framework that would allow us to develop our
  framework around it!
 Plugin-like architecture.
 Event driven.
 Standardized inheritance.
 Managed interfaces.
Add Module

Event Dispatcher                         Inject
                                        Module




                                      Command
   Interface                         Interpreters
   Facilitator
                    Policy Parsers
The code that does it!
FusionCharts([’private’, 'modules.api.sortdata',
        function () {

   var ns = this,
       core = ns.core,
       sortData = function () { /* define it */ };

   ns.extend(core.prototype, {
      keepDataSorted: function (yes) {
         this[yes ? 'addEventListener' :
             'removeEventListener']('BeforeDataUpdate',
                  sortData);
      }
   });

}]);
// Fiddle: http://jsfiddle.net/shamasis/RNe3h/
(new Tips()).cliché()
• Set coding style standards including in-line
  documentation standards. – allows easy
  maintenance on multi-developer environment
• Lint your codes from the very first day. It may be
  costly to do later.
• Follow inline documentation standards – maybe
  javaDocs, jsDocs, etc.
• Even better, if your minifier engine has its own
  rules (such as of Closure Compiler), use that.
Points to Design a Good API
http://www.shamasis.net/2009/07/how-to-design-a-good-api/

Why to Design a Good API
http://www.shamasis.net/2009/05/why-to-design-a-good-api/




FusionCharts Beginner’s Guide
http://www.fusioncharts.com/resources/fusioncharts-beginners-guide/

    shamasis@fusioncharts.com
    @shamasis

More Related Content

What's hot

Migrating MVVM Applications to HTML5
Migrating MVVM Applications to HTML5Migrating MVVM Applications to HTML5
Migrating MVVM Applications to HTML5
Chris Bannon
 
How to migrate a monolithic system to microservices, Radu Vunvulea DevTalks, ...
How to migrate a monolithic system to microservices, Radu Vunvulea DevTalks, ...How to migrate a monolithic system to microservices, Radu Vunvulea DevTalks, ...
How to migrate a monolithic system to microservices, Radu Vunvulea DevTalks, ...
Radu Vunvulea
 
XAML/C# to HTML5/JS
XAML/C#  to HTML5/JS XAML/C#  to HTML5/JS
XAML/C# to HTML5/JS
Michael Haberman
 
SaaS is hot
SaaS is hotSaaS is hot
Developing ASP.NET MVC Applications Quicker With Kendo UI
Developing ASP.NET MVC Applications Quicker With Kendo UIDeveloping ASP.NET MVC Applications Quicker With Kendo UI
Developing ASP.NET MVC Applications Quicker With Kendo UI
Lohith Goudagere Nagaraj
 
What Ifs - VMware Lightning Talk OpsCamp San Francisco
What Ifs - VMware Lightning Talk OpsCamp San FranciscoWhat Ifs - VMware Lightning Talk OpsCamp San Francisco
What Ifs - VMware Lightning Talk OpsCamp San Francisco
OpsCamp
 
Nodesummit
NodesummitNodesummit
Nodesummit
Scott Rahner
 

What's hot (7)

Migrating MVVM Applications to HTML5
Migrating MVVM Applications to HTML5Migrating MVVM Applications to HTML5
Migrating MVVM Applications to HTML5
 
How to migrate a monolithic system to microservices, Radu Vunvulea DevTalks, ...
How to migrate a monolithic system to microservices, Radu Vunvulea DevTalks, ...How to migrate a monolithic system to microservices, Radu Vunvulea DevTalks, ...
How to migrate a monolithic system to microservices, Radu Vunvulea DevTalks, ...
 
XAML/C# to HTML5/JS
XAML/C#  to HTML5/JS XAML/C#  to HTML5/JS
XAML/C# to HTML5/JS
 
SaaS is hot
SaaS is hotSaaS is hot
SaaS is hot
 
Developing ASP.NET MVC Applications Quicker With Kendo UI
Developing ASP.NET MVC Applications Quicker With Kendo UIDeveloping ASP.NET MVC Applications Quicker With Kendo UI
Developing ASP.NET MVC Applications Quicker With Kendo UI
 
What Ifs - VMware Lightning Talk OpsCamp San Francisco
What Ifs - VMware Lightning Talk OpsCamp San FranciscoWhat Ifs - VMware Lightning Talk OpsCamp San Francisco
What Ifs - VMware Lightning Talk OpsCamp San Francisco
 
Nodesummit
NodesummitNodesummit
Nodesummit
 

Viewers also liked

Lo2 pitch
Lo2 pitchLo2 pitch
Lo2 pitch
Rachel Hepworth
 
google aps
google apsgoogle aps
google aps
tvillegas01
 
Gafas de Realidade Virtual
Gafas de Realidade VirtualGafas de Realidade Virtual
Gafas de Realidade Virtual
prieto4
 
Living on the future with google glass 2015
Living on the future with google glass   2015Living on the future with google glass   2015
Living on the future with google glass 2015
Juan José Rodriguez MsC.
 
USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
Steven McGee
 
De hemorroides tratamiento
De hemorroides tratamientoDe hemorroides tratamiento
De hemorroides tratamientoeshacersea
 
Tutorial Google books
 Tutorial Google books Tutorial Google books
Tutorial Google books
1975alex
 
The second mile principle
The second mile principleThe second mile principle
The second mile principleVan Nagac
 
Primera clase configuración del EVA
Primera clase configuración del EVAPrimera clase configuración del EVA
Primera clase configuración del EVA
Marisol Aman
 
Tic´s google +
Tic´s google +Tic´s google +
Tic´s google +
Diana Arrazate
 
An Approach to Digital Marketing
An Approach to Digital MarketingAn Approach to Digital Marketing
An Approach to Digital Marketing
Suresh Parmachand
 
Learning Outcome Task One
Learning Outcome Task OneLearning Outcome Task One
Learning Outcome Task Onephele1994
 
Geoprocessamento: "Coisa" do século passado
Geoprocessamento: "Coisa" do século passadoGeoprocessamento: "Coisa" do século passado
Geoprocessamento: "Coisa" do século passado
Helton Uchoa
 
Las nuevas funcionalidades de Google Apps
Las nuevas funcionalidades de Google AppsLas nuevas funcionalidades de Google Apps
Las nuevas funcionalidades de Google Apps
Juan José Rodriguez MsC.
 
GDG DevFest Lighting Talks México
GDG DevFest Lighting Talks MéxicoGDG DevFest Lighting Talks México
GDG DevFest Lighting Talks México
Juan José Rodriguez MsC.
 
Direito penal iii crimes contra a inviolabilidade de correspondência
Direito penal iii   crimes contra a inviolabilidade de correspondênciaDireito penal iii   crimes contra a inviolabilidade de correspondência
Direito penal iii crimes contra a inviolabilidade de correspondência
Urbano Felix Pugliese
 
Servicios de google
Servicios de googleServicios de google
Servicios de google
adrianabgonzalez
 
Programas y Herramientas de Google para emprendedores
Programas y Herramientas de Google para emprendedoresProgramas y Herramientas de Google para emprendedores
Programas y Herramientas de Google para emprendedores
Juan José Rodriguez MsC.
 
List view y UI en Android
List view y UI en AndroidList view y UI en Android
List view y UI en AndroidByron Andres
 

Viewers also liked (20)

Lo2 pitch
Lo2 pitchLo2 pitch
Lo2 pitch
 
google aps
google apsgoogle aps
google aps
 
Gafas de Realidade Virtual
Gafas de Realidade VirtualGafas de Realidade Virtual
Gafas de Realidade Virtual
 
Living on the future with google glass 2015
Living on the future with google glass   2015Living on the future with google glass   2015
Living on the future with google glass 2015
 
USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
USPTO patent application 13,573,002 The Heart Beacon Cycle Time Space Meter, ...
 
De hemorroides tratamiento
De hemorroides tratamientoDe hemorroides tratamiento
De hemorroides tratamiento
 
Tutorial Google books
 Tutorial Google books Tutorial Google books
Tutorial Google books
 
The second mile principle
The second mile principleThe second mile principle
The second mile principle
 
Primera clase configuración del EVA
Primera clase configuración del EVAPrimera clase configuración del EVA
Primera clase configuración del EVA
 
Tic´s google +
Tic´s google +Tic´s google +
Tic´s google +
 
An Approach to Digital Marketing
An Approach to Digital MarketingAn Approach to Digital Marketing
An Approach to Digital Marketing
 
Learning Outcome Task One
Learning Outcome Task OneLearning Outcome Task One
Learning Outcome Task One
 
Geoprocessamento: "Coisa" do século passado
Geoprocessamento: "Coisa" do século passadoGeoprocessamento: "Coisa" do século passado
Geoprocessamento: "Coisa" do século passado
 
Las nuevas funcionalidades de Google Apps
Las nuevas funcionalidades de Google AppsLas nuevas funcionalidades de Google Apps
Las nuevas funcionalidades de Google Apps
 
GDG DevFest Lighting Talks México
GDG DevFest Lighting Talks MéxicoGDG DevFest Lighting Talks México
GDG DevFest Lighting Talks México
 
Direito penal iii crimes contra a inviolabilidade de correspondência
Direito penal iii   crimes contra a inviolabilidade de correspondênciaDireito penal iii   crimes contra a inviolabilidade de correspondência
Direito penal iii crimes contra a inviolabilidade de correspondência
 
Fenómeno de Google
Fenómeno de GoogleFenómeno de Google
Fenómeno de Google
 
Servicios de google
Servicios de googleServicios de google
Servicios de google
 
Programas y Herramientas de Google para emprendedores
Programas y Herramientas de Google para emprendedoresProgramas y Herramientas de Google para emprendedores
Programas y Herramientas de Google para emprendedores
 
List view y UI en Android
List view y UI en AndroidList view y UI en Android
List view y UI en Android
 

Similar to FusionCharts Clockworks

Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development Lifecycle
Suhas Kelkar
 
PHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on BluemixPHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on Bluemix
IBM
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developers
Daniel Krook
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
cornelia davis
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
VMware Tanzu
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
Filippo Zanella
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
Dun & Bradstreet Cloud Innovation Center
 
Application Development with HTML5 (Microsoft TechDays 2011 - DEV302)
Application Development with HTML5 (Microsoft TechDays 2011 - DEV302)Application Development with HTML5 (Microsoft TechDays 2011 - DEV302)
Application Development with HTML5 (Microsoft TechDays 2011 - DEV302)
Nathaniel Bagnell
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and Kubernetes
Rick Hightower
 
Java Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudJava Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the Cloud
MongoDB
 
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Henning Jacobs
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
Brian Benz
 
Arquitetando soluções de computação em nuvem com Java
Arquitetando soluções de computação em nuvem com JavaArquitetando soluções de computação em nuvem com Java
Arquitetando soluções de computação em nuvem com Java
Otávio Santana
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
Brad Williams
 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale Architecture
RightScale
 
Is Quarkus a worthy alternative to Java Spring
Is Quarkus a worthy alternative to Java SpringIs Quarkus a worthy alternative to Java Spring
Is Quarkus a worthy alternative to Java Spring
Mindfire LLC
 
Oracle Cloud Native
Oracle Cloud NativeOracle Cloud Native
Oracle Cloud Native
Neagu Alexandru Cristian
 
Introducing AWS OpsWorks, a DevOps application management platform
Introducing AWS OpsWorks, a DevOps application management platformIntroducing AWS OpsWorks, a DevOps application management platform
Introducing AWS OpsWorks, a DevOps application management platform
Amazon Web Services
 
Get Started with JavaScript Frameworks
Get Started with JavaScript FrameworksGet Started with JavaScript Frameworks
Get Started with JavaScript Frameworks
Christian Gaetano
 

Similar to FusionCharts Clockworks (20)

Cloud Application Development Lifecycle
Cloud Application Development LifecycleCloud Application Development Lifecycle
Cloud Application Development Lifecycle
 
PHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on BluemixPHP Buildpacks in the Cloud on Bluemix
PHP Buildpacks in the Cloud on Bluemix
 
Cloud Foundry for PHP developers
Cloud Foundry for PHP developersCloud Foundry for PHP developers
Cloud Foundry for PHP developers
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-nativeKubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
Kubo (Cloud Foundry Container Platform): Your Gateway Drug to Cloud-native
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
 
The Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian CockcroftThe Future of Cloud Innovation, featuring Adrian Cockcroft
The Future of Cloud Innovation, featuring Adrian Cockcroft
 
Application Development with HTML5 (Microsoft TechDays 2011 - DEV302)
Application Development with HTML5 (Microsoft TechDays 2011 - DEV302)Application Development with HTML5 (Microsoft TechDays 2011 - DEV302)
Application Development with HTML5 (Microsoft TechDays 2011 - DEV302)
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and Kubernetes
 
Java Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the CloudJava Agile ALM: OTAP and DevOps in the Cloud
Java Agile ALM: OTAP and DevOps in the Cloud
 
Why Startups Are Still On AWS
Why Startups Are Still On AWSWhy Startups Are Still On AWS
Why Startups Are Still On AWS
 
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
Why we don’t use the Term DevOps: the Journey to a Product Mindset - DevOpsCo...
 
Experiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure teamExperiences using CouchDB inside Microsoft's Azure team
Experiences using CouchDB inside Microsoft's Azure team
 
Arquitetando soluções de computação em nuvem com Java
Arquitetando soluções de computação em nuvem com JavaArquitetando soluções de computação em nuvem com Java
Arquitetando soluções de computação em nuvem com Java
 
ThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.jsThatConference 2016 - Highly Available Node.js
ThatConference 2016 - Highly Available Node.js
 
Internet Scale Architecture
Internet Scale ArchitectureInternet Scale Architecture
Internet Scale Architecture
 
Is Quarkus a worthy alternative to Java Spring
Is Quarkus a worthy alternative to Java SpringIs Quarkus a worthy alternative to Java Spring
Is Quarkus a worthy alternative to Java Spring
 
Oracle Cloud Native
Oracle Cloud NativeOracle Cloud Native
Oracle Cloud Native
 
Introducing AWS OpsWorks, a DevOps application management platform
Introducing AWS OpsWorks, a DevOps application management platformIntroducing AWS OpsWorks, a DevOps application management platform
Introducing AWS OpsWorks, a DevOps application management platform
 
Get Started with JavaScript Frameworks
Get Started with JavaScript FrameworksGet Started with JavaScript Frameworks
Get Started with JavaScript Frameworks
 

Recently uploaded

Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 

Recently uploaded (20)

Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 

FusionCharts Clockworks

  • 1. THE CLOCKWORKS BEHIND A JAVASCRIPT FRAMEWORK that powers a billion charts a month
  • 2. What everybody (secretly) wants to do?  Create popular frameworks and apps  Help a lot of people and organizations  Make a lot of money out of it
  • 3. Avoiding the vicious cycle Scrap Develop Let it out Release again! Re- Scrap Develop
  • 4. What do we lose in this process?  Enthusiasm for innovation  Delay in product shipment  Possible reduction in quality  Difficulty in migration  Trust of your consumers  MONEY
  • 5. The story of our framework • Transparent transition for existing users from Flash to SVG and VML. • We had no way to anticipate the roadblocks that we would face while developing for this transition. • Thus, we created a model flexible enough to support any design required to attend customers’ needs.
  • 6. Developing the “play dough”  Treated the core of our framework as a mini- framework that would allow us to develop our framework around it!  Plugin-like architecture.  Event driven.  Standardized inheritance.  Managed interfaces.
  • 7. Add Module Event Dispatcher Inject Module Command Interface Interpreters Facilitator Policy Parsers
  • 8. The code that does it! FusionCharts([’private’, 'modules.api.sortdata', function () { var ns = this, core = ns.core, sortData = function () { /* define it */ }; ns.extend(core.prototype, { keepDataSorted: function (yes) { this[yes ? 'addEventListener' : 'removeEventListener']('BeforeDataUpdate', sortData); } }); }]); // Fiddle: http://jsfiddle.net/shamasis/RNe3h/
  • 9. (new Tips()).cliché() • Set coding style standards including in-line documentation standards. – allows easy maintenance on multi-developer environment • Lint your codes from the very first day. It may be costly to do later. • Follow inline documentation standards – maybe javaDocs, jsDocs, etc. • Even better, if your minifier engine has its own rules (such as of Closure Compiler), use that.
  • 10. Points to Design a Good API http://www.shamasis.net/2009/07/how-to-design-a-good-api/ Why to Design a Good API http://www.shamasis.net/2009/05/why-to-design-a-good-api/ FusionCharts Beginner’s Guide http://www.fusioncharts.com/resources/fusioncharts-beginners-guide/ shamasis@fusioncharts.com @shamasis

Editor's Notes

  1. 1. Frameworks that are used by millions of users.2. Such frameworks needs to be modeled for long product life cycles.Easy upgradeability from the framework developers’ internal consumption perspective.This was one framework that we knew that would be consumed by a large user base and as such requires to meet enterprise standards from day one of its development.
  2. 1. Frameworks that are used by millions of users.2. Such frameworks needs to be modeled for long product life cycles.Easy upgradeability from the framework developers’ internal consumption perspective.This was one framework that we knew that would be consumed by a large user base and as such requires to meet enterprise standards from day one of its development.
  3. With growth and popularity gains, comes the need for distributed development, faster turn around times and scalability.We jumped into an already popular user-base of 20000 customers.We were walking on a path where we knew we would face unheard of challenges in order to unify user experience of an already stable Flash platform.
  4. To meet the needs of popularity we did stuff… some right, some wrong and some wrongs that we made right.There are certain mistakes that are too costly to turn back from.Extensible in all possible ways. – allows you to not limit yourselvesDoes not require total design definition in order to start development. – reduces TATAllows a modular structure for controlled development. – promotes multi-developer environment
  5. What did we achieve through this?Allowed people to work confidently and modularly on separate closed scripts that share a common namespace variable. Thus, they are easy to maintain and easier for multi-developer environment to work on it.Increased velocity of development by letting people be able develop
  6. Need to add / show fiddle link
  7. http://en.wikipedia.org/wiki/JSDochttps://developers.google.com/closure/compiler/docs/js-for-compiler
  8. I write only when there is anything worthwhile.