Web Frameworks and Libraries Flashcards
What do frameworks do?
Templating MVC - model view controller Caching Tools for database access etc
What is a framework?
Frameworks call your code, libraries are called by your code
Frameworks are a special case of software libraries in that they are reusable abstractions of code wrapped in a well-defined Application programming interface (API)
What is an API?
Application Programming Interface
HTML Templating
Mail mergers - template idea
Some data and some template (HTML) are combined by scripting engine
What is an MVC?
Model View Controller. This is an architectural design pattern
Controller manipulates model which updates view which understands smiley which called controller
What is ORM?
Object relational map. Abstraction layer between incompatible types in OO programming. We generally define or generate a database schema.
What is the disadvantage to ORM?
If not engaging in database design or hidden database too much, things go well.
What is a motivation of ORM?
Object Relational Impedance Mismatch:
problems of handling persistence of OO data in relational database management systems (RDBMS)
What issues come up with Object-Relational Impedance Mismatch?
Inheritance: relational DB doesn’t support inheritance
Encapsulation: RDBMS have never heard of this, OO hide data behind interface
References: RDBMS never attribute by reference or pointers
Data types: many differences for each data type
Data structures: RDBMS - flat data, relatively static models, whereas OO - heavily nested data structure full of objects with unspecified length
Constraints: OO doesn’t contain
Transactions: not in OO
Conceptual Differences: database is fixed whereas OO is dynamic
How can we solve Object Relational Impedance Mismatching?
1) Don’t do OO programming
2) OO Database Management System
3) Object relation databases (poor performance, bridges gap from database side)
4) ORM (bridge gap from software side)
Give some examples of frameworks
Ruby on Rails Zend Framework Django MEAN (MongoDB, Express, Angular.js, Node.js) Flash Joomla
What is a developer itch?
A problem that annoys programmers so much that they give out their solution for free - open source that shit.
have base idea of frameworks and philos
see bonus lec