Full Stack - Unit 1
Full Stack - Unit 1
Full Stack - Unit 1
Disadvantages of FSD
Not suitable for large or complex projects.
Broad range of skills and knowledge.
Difficult to debug and maintain.
Time-consuming and complex.
Scalability
Web Servers
2. View:
Responsibility: Presents data to the user & handles user interface
interactions.
Function: Displays information, receives user input, sends commands to
the controller.
Example: HTML, CSS, UI components.
3. Controller:
Separation of Concerns:
Divides the application into distinct which enhances
maintainability, scalability, and code organization.
Modularity:
Encourages the development of modular, reusable components for
each aspect of the application (Model, View, Controller).
Facilitates code reuse, ease of maintenance, and collaboration
among developers.
Loose Coupling:
Components (Model, View, Controller) are independent and
communicate through defined interfaces, minimizing
dependencies.
Allows changes in one component without affecting others,
promoting flexibility.
Reusability:
Components (Model, View, Controller) can be reused in different
parts of the application or in other projects
Reduces development time, promotes consistency across the
application.
Testability:
Each component (Model, View, Controller) can be tested
independently, facilitating unit testing and ensuring code
reliability.
: Enables more effective testing, leading to higher code quality and
easier debugging.
Scalability:
Separation of concerns and modularity make it easier to scale the
application by adding or modifying components as needed.
Example:
Consider a web application for a bookstore:
Advantages:
Modular Development
Parallel Development
Easier Maintenance
Enhanced Testability
Scalability:
Limitations:
2. MERN Stack:
- Components: MongoDB (database), Express.js (backend framework),
React (frontend library), Node.js (runtime environment).
- Key Features: Similar to MEAN but uses React for the frontend,
offering a flexible and efficient user interface development.
3. LAMP Stack:
- Components: Linux (operating system), Apache (web server),
MySQL (database), PHP (scripting language).
- Key Features: A classic stack for building dynamic websites and web
applications, widely used for its open-source nature and ease of use.
4. Django Stack:
- Components: Django (backend framework, Python-based), Django
ORM (Object-Relational Mapping), SQLite or other databases, JavaScript
(for frontend, optional).
- Key Features: Known for its simplicity and efficiency, particularly
suitable for rapid development and follows the "Don't Repeat Yourself"
(DRY) principle.
5. Ruby on Rails (RoR) Stack:
- Components: Ruby (programming language), Ruby on Rails
(backend framework),
- Key Features: Emphasizes convention over configuration, known for
its developer-friendly syntax, and follows the Model-View-Controller
(MVC) architectural pattern.
------------