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

Mongo Seattle - The Business of MongoDB
Mongo Seattle - The Business of MongoDBMongo Seattle - The Business of MongoDB
Mongo Seattle - The Business of MongoDB
Justin Smestad
 

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 (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 Women Who Code, Ground Floor

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
CMC Limited
 
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
 
pranayJ
pranayJpranayJ
pranayJ
Pray B
 
"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
 

Semelhante a Women Who Code, Ground Floor (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

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
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
Enterprise Knowledge
 

Último (20)

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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
[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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 

Women Who Code, Ground Floor

  • 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