SlideShare uma empresa Scribd logo
1 de 18
A Whirlwind Tour
of Software Development

      By Jackie Ta
Topics
• Common terminology
  • Front-end vs back-end
  • Languages vs frameworks
• Building blocks of a web application
• Common technology stacks and
  who uses them
• Already coding? Take it to the next
  level!
Common Terminology
               Front-end vs Back-end


             Front-End                          Back-End
Encompasses anything done on the   Encompasses anything done on
browser. This includes:            the server. Server-side code
                                   might do any of the following:
• HTML
• CSS                              •   Authentication / authorization
• Javascript                       •   Database updates or retrieval
                                   •   Send emails
                                   •   Web service calls
Common Terminology
          Languages vs Frameworks
A Framework is a collection of code libraries that
encapsulate common or useful functionality.

Common areas of functionality:
• Data access
• Sessioning
• Parsing HTTP objects
• Caching
• Templating
Common Languages and Frameworks


    Javascript          C#         PHP              Ruby
•   JQuery         • ASP.Net   • CakePHP        • Rails
•   CoffeeScript   • MVC       • WordPress
•   Node.js        • Web API   • Drupal
•   Backbone.js


      Java            Python    Javascript
• Spring           • Django    • CoffeeScript
• Grails                       • jQuery
                   • Pylons
                               • Node.js
Anatomy of a Web Application

• Content -> HTML
• Styling -> CSS
• Action -> Javascript
(There is some blurring of roles. Html can contain styling.
CSS can animate as well as style. Javascript is often used for
dynamic styling.)


They are all tied together by the DOM
(Document Object Model).
Anatomy of a Web Application
                  The DOM
The (D)ocument (O)bject (M)odel is a hierarchical mapping of
the web page by the browser.

Anything surrounded by HTML tags (elements) goes into the
DOM. Also, all elements denoted by « class » or « id » attributes
goes into the DOM. You cannot « act » on an element (via
Javascript) till it is put in the DOM.

The DOM is built from top to bottom. Learning how the DOM
loads is very helpful for performance-tuning your page.
Anatomy of a Web Application
               The DOM (cont’d)
Consider the following tag:
        <div id=« titleSection »>Funny Headline</div>
You can access this either by the id attribute or by tag name.
In CSS:
        #titleSection { color: red; }
        Or div { color: red; }
In Javascript:
        document.getElementById(« titleSection »).click();
        Or document.getElementsByTagName(« div »)
They all work by accessing the DOM.
Common Technology Stacks


Web Server               Data Storage         Web
                                              Framework




    Java            C#                  PHP       Ruby

• Apache       • IIS             • Apache     • Passenger
• Oracle       • SQL Server      • mySQL      • mySQL
• Spring       • ASP.Net/MVC     • CakePHP    • Rails
Evolution of Design Patterns

•   Trends
•   More capable browsers
•   Faster internet connections
•   Need to support multiple devices
•   One giant page
•   Separating style from content -> CSS
•   Add client dynamics -> Javascript (ecma script)
•   Adding server dynamics
•   Moving presentation logic back to client
What NOT to do
 (courtesy of xkcd)
Take it to the Next Level
                 Presentation Layer
• Better style
  • LESS or SASS for less repetitive code
  • Responsive design using Media Queries
• Faster and more dynamic pages
  •   Ajax
  •   Javascript frameworks (e.g., jQuery, node.js)
  •   Javascript templating
  •   Consolidate and minify style and script files
• Planning for search engine optimization (SEO)
Take it to the Next Level
                        Testing
• Client-side testing
    • Jasmine
    • JSUnit
•   Unit Testing
•   Mocking frameworks
•   Integration Testing
•   Load testing
•   Diagnostic logging and tracing
Take it to the Next Level
            Development Processes

•   Agile (Scrum, Kanban)
•   Test-driven development (TDD)
•   Behavior-driven development (BDD)
•   Continuous integration (CI)
•   Pair programming (XP)
Take it to the Next Level
               Design Patterns

• Planning with security in mind (PCMA
  compliance, etc)
• Dependency injection
• Separation of concerns
• Single responsibility principle
• Common patterns (singleton, factory,
  repository, etc)
Take it to the Next Level
              Planning for mobile

•   Mobile-enabled web site versus native apps
•   Android versus iPhone
•   Responsive design
•   Paradigm shift (rock versus boulder)
Take it to the Next Level
                    Scaling Up

•   Caching
•   Message queuing (fire and forget)
•   Working in parallel (async processing)
•   Moving more work to browser
•   Database tuning
•   Load balancing
•   Moving to the cloud
Wrap-up


• Questions?
• Next up: Individual presentations on technology
  stacks

Mais conteúdo relacionado

Mais procurados

Progressive Web Apps Nedir? JavaScript Service Workers Nedir?
Progressive Web Apps Nedir? JavaScript Service Workers Nedir?Progressive Web Apps Nedir? JavaScript Service Workers Nedir?
Progressive Web Apps Nedir? JavaScript Service Workers Nedir?Mehmet Seven
 
Building Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN StackBuilding Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN StackSuresh Patidar
 
Using NoSQL MongoDB with ColdFusion
Using NoSQL MongoDB with ColdFusionUsing NoSQL MongoDB with ColdFusion
Using NoSQL MongoDB with ColdFusionindiver
 
Meanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore ChandraMeanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore ChandraKishore Chandra
 
MongoDB - Getting Started
MongoDB  - Getting StartedMongoDB  - Getting Started
MongoDB - Getting StartedAhmed Helmy
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesKyle Banerjee
 
Javascript on Server-Side
Javascript on Server-SideJavascript on Server-Side
Javascript on Server-SideASIMYILDIZ
 
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)Ortus Solutions, Corp
 
Mongo db groundup-0-nosql-intro-syedawasekhirni
Mongo db groundup-0-nosql-intro-syedawasekhirniMongo db groundup-0-nosql-intro-syedawasekhirni
Mongo db groundup-0-nosql-intro-syedawasekhirniDr. Awase Khirni Syed
 
Become a Successful Web Developer in Web development Field in 2017
Become a Successful Web Developer in Web development Field in 2017Become a Successful Web Developer in Web development Field in 2017
Become a Successful Web Developer in Web development Field in 2017Imran Qasim
 
Mongo Seattle - The Business of MongoDB
Mongo Seattle - The Business of MongoDBMongo Seattle - The Business of MongoDB
Mongo Seattle - The Business of MongoDBJustin Smestad
 
Scaling the Web: Databases & NoSQL
Scaling the Web: Databases & NoSQLScaling the Web: Databases & NoSQL
Scaling the Web: Databases & NoSQLRichard Schneeman
 
Mongo db model relationships with documents
Mongo db model relationships with documentsMongo db model relationships with documents
Mongo db model relationships with documentsDr. Awase Khirni Syed
 

Mais procurados (20)

Progressive Web Apps Nedir? JavaScript Service Workers Nedir?
Progressive Web Apps Nedir? JavaScript Service Workers Nedir?Progressive Web Apps Nedir? JavaScript Service Workers Nedir?
Progressive Web Apps Nedir? JavaScript Service Workers Nedir?
 
Building Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN StackBuilding Modern Web Apps with MEAN Stack
Building Modern Web Apps with MEAN Stack
 
Miami2015
Miami2015Miami2015
Miami2015
 
Using NoSQL MongoDB with ColdFusion
Using NoSQL MongoDB with ColdFusionUsing NoSQL MongoDB with ColdFusion
Using NoSQL MongoDB with ColdFusion
 
Meanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore ChandraMeanstack Introduction by Kishore Chandra
Meanstack Introduction by Kishore Chandra
 
MongoDB - Getting Started
MongoDB  - Getting StartedMongoDB  - Getting Started
MongoDB - Getting Started
 
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL DatabasesDropping ACID: Wrapping Your Mind Around NoSQL Databases
Dropping ACID: Wrapping Your Mind Around NoSQL Databases
 
MongoDB
MongoDBMongoDB
MongoDB
 
Javascript on Server-Side
Javascript on Server-SideJavascript on Server-Side
Javascript on Server-Side
 
Javascript for Wep Apps
Javascript for Wep AppsJavascript for Wep Apps
Javascript for Wep Apps
 
Why ruby and rails
Why ruby and railsWhy ruby and rails
Why ruby and rails
 
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
ITB2016 - NoSQL with mongodb and ColdFusion (CFML)
 
Google web toolkit gwt training
Google web toolkit gwt trainingGoogle web toolkit gwt training
Google web toolkit gwt training
 
Net online training
Net online trainingNet online training
Net online training
 
Mongo db groundup-0-nosql-intro-syedawasekhirni
Mongo db groundup-0-nosql-intro-syedawasekhirniMongo db groundup-0-nosql-intro-syedawasekhirni
Mongo db groundup-0-nosql-intro-syedawasekhirni
 
Clojure - Why does it matter?
Clojure - Why does it matter?Clojure - Why does it matter?
Clojure - Why does it matter?
 
Become a Successful Web Developer in Web development Field in 2017
Become a Successful Web Developer in Web development Field in 2017Become a Successful Web Developer in Web development Field in 2017
Become a Successful Web Developer in Web development Field in 2017
 
Mongo Seattle - The Business of MongoDB
Mongo Seattle - The Business of MongoDBMongo Seattle - The Business of MongoDB
Mongo Seattle - The Business of MongoDB
 
Scaling the Web: Databases & NoSQL
Scaling the Web: Databases & NoSQLScaling the Web: Databases & NoSQL
Scaling the Web: Databases & NoSQL
 
Mongo db model relationships with documents
Mongo db model relationships with documentsMongo db model relationships with documents
Mongo db model relationships with documents
 

Destaque

The london riots
The london riotsThe london riots
The london riotsNaomiiHubby
 
англ.мова на сайт
англ.мова на сайтангл.мова на сайт
англ.мова на сайтsergeykarpec
 
Presentació
PresentacióPresentació
Presentacióamirand9
 
презентация1
презентация1презентация1
презентация1sergeykarpec
 
El partenó
El partenóEl partenó
El partenóamirand9
 
якість навчально – виховного середовища як основної умови
якість навчально – виховного середовища як основної умовиякість навчально – виховного середовища як основної умови
якість навчально – виховного середовища як основної умовиsergeykarpec
 
Gerund & infinitive
Gerund & infinitiveGerund & infinitive
Gerund & infinitivetallmushroom
 

Destaque (17)

Waylon
WaylonWaylon
Waylon
 
5 клас
5 клас5 клас
5 клас
 
Vicu
VicuVicu
Vicu
 
The london riots
The london riotsThe london riots
The london riots
 
англ.мова на сайт
англ.мова на сайтангл.мова на сайт
англ.мова на сайт
 
Kearns
KearnsKearns
Kearns
 
Presentació
PresentacióPresentació
Presentació
 
Vicuska
VicuskaVicuska
Vicuska
 
Powerpint
PowerpintPowerpint
Powerpint
 
Greek mythology
Greek mythologyGreek mythology
Greek mythology
 
el cinema
el cinemael cinema
el cinema
 
презентация1
презентация1презентация1
презентация1
 
Partenó
PartenóPartenó
Partenó
 
El partenó
El partenóEl partenó
El partenó
 
якість навчально – виховного середовища як основної умови
якість навчально – виховного середовища як основної умовиякість навчально – виховного середовища як основної умови
якість навчально – виховного середовища як основної умови
 
PHONICS A-E
PHONICS A-EPHONICS A-E
PHONICS A-E
 
Gerund & infinitive
Gerund & infinitiveGerund & infinitive
Gerund & infinitive
 

Semelhante a A Whirlwind Tour of Software Development Trends

6 weeks 6 months live project summer industrial training in cmc limited 2012
6 weeks  6 months live project summer industrial training in cmc limited  20126 weeks  6 months live project summer industrial training in cmc limited  2012
6 weeks 6 months live project summer industrial training in cmc limited 2012CMC Limited
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?Balajihope
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Reviewnetc2012
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleIT Arena
 
End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012Alexandre Morgaut
 
The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesThe Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesWesley Hales
 
Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)johnnybiz
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Webphilogb
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANJeff Fox
 
Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Ryan Cuprak
 
pranayJ
pranayJpranayJ
pranayJPray B
 
An introduction to Node.js
An introduction to Node.jsAn introduction to Node.js
An introduction to Node.jsKasey McCurdy
 
Sugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a timeSugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a timeEinar Ingebrigtsen
 
"Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful..."Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful...softwaretrainer2elys
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDBFoundationDB
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScriptkoppenolski
 

Semelhante a A Whirlwind Tour of Software Development Trends (20)

6 weeks 6 months live project summer industrial training in cmc limited 2012
6 weeks  6 months live project summer industrial training in cmc limited  20126 weeks  6 months live project summer industrial training in cmc limited  2012
6 weeks 6 months live project summer industrial training in cmc limited 2012
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?
 
20120802 timisoara
20120802 timisoara20120802 timisoara
20120802 timisoara
 
Frameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic ReviewFrameworks Galore: A Pragmatic Review
Frameworks Galore: A Pragmatic Review
 
Meetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech PeopleMeetup. Technologies Intro for Non-Tech People
Meetup. Technologies Intro for Non-Tech People
 
20120306 dublin js
20120306 dublin js20120306 dublin js
20120306 dublin js
 
Mean stack
Mean stackMean stack
Mean stack
 
End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012End-to-end W3C APIs - tpac 2012
End-to-end W3C APIs - tpac 2012
 
The Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devicesThe Mobile Web - HTML5 on mobile devices
The Mobile Web - HTML5 on mobile devices
 
Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)Talk Paris Infovis 091207132953 Phpapp01(2)
Talk Paris Infovis 091207132953 Phpapp01(2)
 
Using Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Web
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEAN
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]Java script nirvana in netbeans [con5679]
Java script nirvana in netbeans [con5679]
 
pranayJ
pranayJpranayJ
pranayJ
 
An introduction to Node.js
An introduction to Node.jsAn introduction to Node.js
An introduction to Node.js
 
Sugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a timeSugarcoating your frontend one ViewModel at a time
Sugarcoating your frontend one ViewModel at a time
 
"Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful..."Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful...
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDB
 
Intro JavaScript
Intro JavaScriptIntro JavaScript
Intro JavaScript
 

Último

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

A Whirlwind Tour of Software Development Trends

  • 1. A Whirlwind Tour of Software Development By Jackie Ta
  • 2. Topics • Common terminology • Front-end vs back-end • Languages vs frameworks • Building blocks of a web application • Common technology stacks and who uses them • Already coding? Take it to the next level!
  • 3. Common Terminology Front-end vs Back-end Front-End Back-End Encompasses anything done on the Encompasses anything done on browser. This includes: the server. Server-side code might do any of the following: • HTML • CSS • Authentication / authorization • Javascript • Database updates or retrieval • Send emails • Web service calls
  • 4. Common Terminology Languages vs Frameworks A Framework is a collection of code libraries that encapsulate common or useful functionality. Common areas of functionality: • Data access • Sessioning • Parsing HTTP objects • Caching • Templating
  • 5. Common Languages and Frameworks Javascript C# PHP Ruby • JQuery • ASP.Net • CakePHP • Rails • CoffeeScript • MVC • WordPress • Node.js • Web API • Drupal • Backbone.js Java Python Javascript • Spring • Django • CoffeeScript • Grails • jQuery • Pylons • Node.js
  • 6. Anatomy of a Web Application • Content -> HTML • Styling -> CSS • Action -> Javascript (There is some blurring of roles. Html can contain styling. CSS can animate as well as style. Javascript is often used for dynamic styling.) They are all tied together by the DOM (Document Object Model).
  • 7. Anatomy of a Web Application The DOM The (D)ocument (O)bject (M)odel is a hierarchical mapping of the web page by the browser. Anything surrounded by HTML tags (elements) goes into the DOM. Also, all elements denoted by « class » or « id » attributes goes into the DOM. You cannot « act » on an element (via Javascript) till it is put in the DOM. The DOM is built from top to bottom. Learning how the DOM loads is very helpful for performance-tuning your page.
  • 8. Anatomy of a Web Application The DOM (cont’d) Consider the following tag: <div id=« titleSection »>Funny Headline</div> You can access this either by the id attribute or by tag name. In CSS: #titleSection { color: red; } Or div { color: red; } In Javascript: document.getElementById(« titleSection »).click(); Or document.getElementsByTagName(« div ») They all work by accessing the DOM.
  • 9. Common Technology Stacks Web Server Data Storage Web Framework Java C# PHP Ruby • Apache • IIS • Apache • Passenger • Oracle • SQL Server • mySQL • mySQL • Spring • ASP.Net/MVC • CakePHP • Rails
  • 10. Evolution of Design Patterns • Trends • More capable browsers • Faster internet connections • Need to support multiple devices • One giant page • Separating style from content -> CSS • Add client dynamics -> Javascript (ecma script) • Adding server dynamics • Moving presentation logic back to client
  • 11. What NOT to do (courtesy of xkcd)
  • 12. Take it to the Next Level Presentation Layer • Better style • LESS or SASS for less repetitive code • Responsive design using Media Queries • Faster and more dynamic pages • Ajax • Javascript frameworks (e.g., jQuery, node.js) • Javascript templating • Consolidate and minify style and script files • Planning for search engine optimization (SEO)
  • 13. Take it to the Next Level Testing • Client-side testing • Jasmine • JSUnit • Unit Testing • Mocking frameworks • Integration Testing • Load testing • Diagnostic logging and tracing
  • 14. Take it to the Next Level Development Processes • Agile (Scrum, Kanban) • Test-driven development (TDD) • Behavior-driven development (BDD) • Continuous integration (CI) • Pair programming (XP)
  • 15. Take it to the Next Level Design Patterns • Planning with security in mind (PCMA compliance, etc) • Dependency injection • Separation of concerns • Single responsibility principle • Common patterns (singleton, factory, repository, etc)
  • 16. Take it to the Next Level Planning for mobile • Mobile-enabled web site versus native apps • Android versus iPhone • Responsive design • Paradigm shift (rock versus boulder)
  • 17. Take it to the Next Level Scaling Up • Caching • Message queuing (fire and forget) • Working in parallel (async processing) • Moving more work to browser • Database tuning • Load balancing • Moving to the cloud
  • 18. Wrap-up • Questions? • Next up: Individual presentations on technology stacks

Notas do Editor

  1. Check experience level of attendees. Talk about goals for the evening.
  2. Review goals again – lay foundation, give people ideas on areas to work on