際際滷

際際滷Share a Scribd company logo
Introduction to Frameworks
Objective
I want to be a software engineer
My first application
 I dont know any language 
 Well lets choose a language for application
  programming and start learning.
 after 2 month
 I have learned programming .. I am good at it
  and I can build any thing .
My first application
 As I can build anything I want to build a
  chess I am a very good chess player.
 I know all the rules and I know how to
  program ... What else do I need
Week 1
Week 2
Week 3
My first application
 After three weeks 600 lines of code.
 Ok its easy.

 After a month its 3500 lines of code in one
  file. Certainly I find scroll bar is very useful.
My first application
 But when a bug occurs  lets debug it.

 Now it seems building application is not as fun
  as it ought to be.

 Now after learning a good lesson  well try
  something different.
My first application
 Writing in one file creating problems .. :-?




                                             3686
My first application
Ok I will write small codes in different files
My first application


OMG now I have 100 files and to change some
thing I have to change 10 files  it is worst
than I imagined.
My first application


I think I have found the problem .. This
application may be very big and I alone cant
complete it. Lets ask a friend.
My first application

 Arrrrghhhh.




 Well we code differently so many
  misunderstanding it complicates things more
My first application
 Lets stop trying and toiling

 Think, how people writes a code which has
  millions of lines and thousands of developers
 How ?????
My first application

 Lets see what can be done
 There is something wrong . What is the
  problem ?
Solutions
 Separability
 Independence
 Readablity
My first application
 Ok I successfully build a chess game
 Now I want to build checker or other board
  games.
My Next Applications
 I am so lazy, but I have to handle some things
  again that I have handled in chess game
  before. Like,
   Point Table
   Player Switching
   Board status
   Pieces
   Save, load, undo, redo etc.
DRY
 If I implement them again it will be wastage of
  time.
 Don't Repeat Yourself (DRY)
 Reduce repetition of code of all kinds
DRY
 I want to reuse code that I used before in
  chess game
DRY
 The functions need to customize as it was
  written in chess game i have to change it so
  that it also work for checker.
DRY
 Some times this changes are different because
  there are so many options and varieties of
  board games
DRY


 If I write those functionalities in a sort of
  generalized way such that it can be used in all
  board games.
 Then I can develop this games very fast
  without repeating myself.
DRY
 Now I can separate the similar codes that I can
  reuse for these board games.
 If I need to build checker then I need similar
  structure as chess game.
DRY
 If there is a structure that has similar features
  for these games then I do not need to start
  from the beginning.
 I can straight jump into game logic.




                  logic
Frameworks
 The structure that I built to use for all board
  games can be called framework.
 A reusable set of libraries or classes for a
  software system.
 Used to implement the standard structure of
  an application.
Few Frameworks
 For web application
     Symfony
     Zend
     CodeIgniter
     CakePHP
     .NET
     Django
 For desktop application
   Qt C++
   WxWidget
 Here is an idea. I am a human why should I
  repeat another humans work.
 I haven't coded yet but I need not to because
  some one has already coded it for others to
  reuse.
 There is no point to reinvent the wheel
MVC
Model
 "Represent knowledge"
 The data/business functionality
View
 Visual representation of the model
 The screens and widgets of app
 Gets data from model & updates model
Controller
 Link between user and system
 Responsible for intercepting user input
 Passes user input to view via messages
Questions?
Ad

Recommended

Font-End Hero
Font-End Hero
Alessandro Lima
11. Functions II
11. Functions II
Joseph Murphy
Jonathan Alfonso Project 1 Presentation
Jonathan Alfonso Project 1 Presentation
Jonathan Alfonso
Arunan Skanthan - Roll Your own Style Guide
Arunan Skanthan - Roll Your own Style Guide
Web Directions
Assignment b
Assignment b
Tetsuya Kobayashi
Internet?
Internet?
Pollyyyyyyyyyy
Seminiar hacking
Seminiar hacking
Agasa
Presentazione standard1
Presentazione standard1
Pollyyyyyyyyyy
Roger anna 1_
Roger anna 1_
annaroger
Internet?
Internet?
Pollyyyyyyyyyy
Child labour prersentation
Child labour prersentation
sharmin86
Blog natuurgidsencursussen
Blog natuurgidsencursussen
Arianne Jansen
Uk pulm arterhypert
Uk pulm arterhypert
Amel Mustafa
Internet?
Internet?
Pollyyyyyyyyyy
WordPress for Content Editors
WordPress for Content Editors
Milan van Bruggen
Reportaje
loffy
Management3
Management3
Marco Bicocchi Pichi
Urban Environment Monitor
Urban Environment Monitor
Beta2k
Internet
Internet
Pollyyyyyyyyyy
Gastcollege: Basis HTML, CSS en JavaScript
Gastcollege: Basis HTML, CSS en JavaScript
Milan van Bruggen
Moderne webshop
Moderne webshop
Milan van Bruggen
Equity Crowdfunding Presentazione (Italiano)
Equity Crowdfunding Presentazione (Italiano)
Marco Bicocchi Pichi
Writing Frameworks for Fun and Profit
Writing Frameworks for Fun and Profit
jhugman
Debugging
Debugging
Olivier Teytaud
Pong
Pong
Susan Gold
Choose a pattern for a problem
Choose a pattern for a problem
Anton Keks
Evolving Software Patterns
Evolving Software Patterns
Mark Rickerby
Clean code
Clean code
Jean Carlo Machado
Object Oriented Analysis and Design
Object Oriented Analysis and Design
Anirban Majumdar
Solid OOPS
Solid OOPS
Toshish Jawale

More Related Content

Viewers also liked (14)

Roger anna 1_
Roger anna 1_
annaroger
Internet?
Internet?
Pollyyyyyyyyyy
Child labour prersentation
Child labour prersentation
sharmin86
Blog natuurgidsencursussen
Blog natuurgidsencursussen
Arianne Jansen
Uk pulm arterhypert
Uk pulm arterhypert
Amel Mustafa
Internet?
Internet?
Pollyyyyyyyyyy
WordPress for Content Editors
WordPress for Content Editors
Milan van Bruggen
Reportaje
loffy
Management3
Management3
Marco Bicocchi Pichi
Urban Environment Monitor
Urban Environment Monitor
Beta2k
Internet
Internet
Pollyyyyyyyyyy
Gastcollege: Basis HTML, CSS en JavaScript
Gastcollege: Basis HTML, CSS en JavaScript
Milan van Bruggen
Moderne webshop
Moderne webshop
Milan van Bruggen
Equity Crowdfunding Presentazione (Italiano)
Equity Crowdfunding Presentazione (Italiano)
Marco Bicocchi Pichi
Roger anna 1_
Roger anna 1_
annaroger
Child labour prersentation
Child labour prersentation
sharmin86
Blog natuurgidsencursussen
Blog natuurgidsencursussen
Arianne Jansen
Uk pulm arterhypert
Uk pulm arterhypert
Amel Mustafa
WordPress for Content Editors
WordPress for Content Editors
Milan van Bruggen
Reportaje
loffy
Urban Environment Monitor
Urban Environment Monitor
Beta2k
Gastcollege: Basis HTML, CSS en JavaScript
Gastcollege: Basis HTML, CSS en JavaScript
Milan van Bruggen
Equity Crowdfunding Presentazione (Italiano)
Equity Crowdfunding Presentazione (Italiano)
Marco Bicocchi Pichi

Similar to 04. introduction to frameworks (20)

Writing Frameworks for Fun and Profit
Writing Frameworks for Fun and Profit
jhugman
Debugging
Debugging
Olivier Teytaud
Pong
Pong
Susan Gold
Choose a pattern for a problem
Choose a pattern for a problem
Anton Keks
Evolving Software Patterns
Evolving Software Patterns
Mark Rickerby
Clean code
Clean code
Jean Carlo Machado
Object Oriented Analysis and Design
Object Oriented Analysis and Design
Anirban Majumdar
Solid OOPS
Solid OOPS
Toshish Jawale
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
InfinIT - Innovationsnetv脱rket for it
Preventing Complexity in Game Programming
Preventing Complexity in Game Programming
Yaser Zhian
Chapter 4 software project planning
Chapter 4 software project planning
Piyush Gogia
Sugar Presentation - YULHackers March 2009
Sugar Presentation - YULHackers March 2009
spierre
ABSE and AtomWeaver : A Quantum Leap in Software Development
ABSE and AtomWeaver : A Quantum Leap in Software Development
Rui Curado
04 designing architectures
04 designing architectures
Majong DevJfu
Programming Paradigms
Programming Paradigms
Janeve George
OOP, API Design and MVP
OOP, API Design and MVP
Harshith Keni
Rapid software evolution
Rapid software evolution
borislav
The Architect's Two Hats
The Architect's Two Hats
Ben Stopford
Engaging young minds in cs
Engaging young minds in cs
moldovaictsummit
Orthogonality: A Strategy for Reusable Code
Orthogonality: A Strategy for Reusable Code
rsebbe
Writing Frameworks for Fun and Profit
Writing Frameworks for Fun and Profit
jhugman
Choose a pattern for a problem
Choose a pattern for a problem
Anton Keks
Evolving Software Patterns
Evolving Software Patterns
Mark Rickerby
Object Oriented Analysis and Design
Object Oriented Analysis and Design
Anirban Majumdar
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
Trends in Programming Technology you might want to keep an eye on af Bent Tho...
InfinIT - Innovationsnetv脱rket for it
Preventing Complexity in Game Programming
Preventing Complexity in Game Programming
Yaser Zhian
Chapter 4 software project planning
Chapter 4 software project planning
Piyush Gogia
Sugar Presentation - YULHackers March 2009
Sugar Presentation - YULHackers March 2009
spierre
ABSE and AtomWeaver : A Quantum Leap in Software Development
ABSE and AtomWeaver : A Quantum Leap in Software Development
Rui Curado
04 designing architectures
04 designing architectures
Majong DevJfu
Programming Paradigms
Programming Paradigms
Janeve George
OOP, API Design and MVP
OOP, API Design and MVP
Harshith Keni
Rapid software evolution
Rapid software evolution
borislav
The Architect's Two Hats
The Architect's Two Hats
Ben Stopford
Engaging young minds in cs
Engaging young minds in cs
moldovaictsummit
Orthogonality: A Strategy for Reusable Code
Orthogonality: A Strategy for Reusable Code
rsebbe
Ad

Recently uploaded (20)

You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
Safe Software
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
CapCut Pro Crack For PC Latest Version {Fully Unlocked} 2025
pcprocore
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Improving Data Integrity: Synchronization between EAM and ArcGIS Utility Netw...
Safe Software
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Seminar: Authentication for a Billion Consumers - Amazon.pptx
FIDO Alliance
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
Safe Software
9-1-1 Addressing: End-to-End Automation Using FME
9-1-1 Addressing: End-to-End Automation Using FME
Safe Software
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Seminar: Targeting Trust: The Future of Identity in the Workforce.pptx
FIDO Alliance
cnc-processing-centers-centateq-p-110-en.pdf
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
Security Tips for Enterprise Azure Solutions
Security Tips for Enterprise Azure Solutions
Michele Leroux Bustamante
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
GenAI Opportunities and Challenges - Where 370 Enterprises Are Focusing Now.pdf
Priyanka Aash
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
Information Security Response Team Nepal_npCERT_Vice_President_Sudan_Jha.pdf
ICT Frame Magazine Pvt. Ltd.
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
Ad

04. introduction to frameworks

  • 2. Objective I want to be a software engineer
  • 3. My first application I dont know any language Well lets choose a language for application programming and start learning.
  • 4. after 2 month I have learned programming .. I am good at it and I can build any thing .
  • 5. My first application As I can build anything I want to build a chess I am a very good chess player. I know all the rules and I know how to program ... What else do I need
  • 9. My first application After three weeks 600 lines of code. Ok its easy. After a month its 3500 lines of code in one file. Certainly I find scroll bar is very useful.
  • 10. My first application But when a bug occurs lets debug it. Now it seems building application is not as fun as it ought to be. Now after learning a good lesson well try something different.
  • 11. My first application Writing in one file creating problems .. :-? 3686
  • 12. My first application Ok I will write small codes in different files
  • 13. My first application OMG now I have 100 files and to change some thing I have to change 10 files it is worst than I imagined.
  • 14. My first application I think I have found the problem .. This application may be very big and I alone cant complete it. Lets ask a friend.
  • 15. My first application Arrrrghhhh. Well we code differently so many misunderstanding it complicates things more
  • 16. My first application Lets stop trying and toiling Think, how people writes a code which has millions of lines and thousands of developers How ?????
  • 17. My first application Lets see what can be done There is something wrong . What is the problem ?
  • 19. My first application Ok I successfully build a chess game Now I want to build checker or other board games.
  • 20. My Next Applications I am so lazy, but I have to handle some things again that I have handled in chess game before. Like, Point Table Player Switching Board status Pieces Save, load, undo, redo etc.
  • 21. DRY If I implement them again it will be wastage of time. Don't Repeat Yourself (DRY) Reduce repetition of code of all kinds
  • 22. DRY I want to reuse code that I used before in chess game
  • 23. DRY The functions need to customize as it was written in chess game i have to change it so that it also work for checker.
  • 24. DRY Some times this changes are different because there are so many options and varieties of board games
  • 25. DRY If I write those functionalities in a sort of generalized way such that it can be used in all board games. Then I can develop this games very fast without repeating myself.
  • 26. DRY Now I can separate the similar codes that I can reuse for these board games. If I need to build checker then I need similar structure as chess game.
  • 27. DRY If there is a structure that has similar features for these games then I do not need to start from the beginning. I can straight jump into game logic. logic
  • 28. Frameworks The structure that I built to use for all board games can be called framework. A reusable set of libraries or classes for a software system. Used to implement the standard structure of an application.
  • 29. Few Frameworks For web application Symfony Zend CodeIgniter CakePHP .NET Django For desktop application Qt C++ WxWidget
  • 30. Here is an idea. I am a human why should I repeat another humans work. I haven't coded yet but I need not to because some one has already coded it for others to reuse. There is no point to reinvent the wheel
  • 31. MVC
  • 32. Model "Represent knowledge" The data/business functionality
  • 33. View Visual representation of the model The screens and widgets of app Gets data from model & updates model
  • 34. Controller Link between user and system Responsible for intercepting user input Passes user input to view via messages