Unit Part2
Unit Part2
What is a Framework?
Writing the code from scratch is a tedious task full of possible risks and errors. You
need to make the code clean, well-tested, bugs and errors free. It will be difficult for
other developers to understand the code and work on it. So, it is better to work with
the frameworks that meet your requirements. They make the development process
easy with fewer errors. It is a general template that can be used and modified as
per the requirement. It will be easy for others to understand your code as they are
also familiar with frameworks.
Frameworks provide many advantages such as:
Easy to test your code and debug it.
Clean code is much easy to understand and work with.
Reduces redundancy of code in the project.
Reduces the time and cost of the project with the enhanced application.
Features and functionalities provided by the framework can be modified
and extended.
Types of Frameworks:
A. Front-End Frameworks
Frontend web development frameworks are used to create the user interface of
the website that is seen and used by the users. They develop the client side of the
application. Some of the popular front-end web development frameworks are
Angular and Vue.js.
1. Angular
Angular is an open-source TypeScript-based framework. It is created and
maintained by Google. Angular provides many features and services that can help
in developing websites and Progressive Web Apps (PWAs). Angular makes use
of TypeScript code on websites and gives proper responses to the user’s input in
less time without writing any extra lines of code. It allows the integration of third-
party tools. There are many top companies that make use of Angular framework
such as Google, PayPal, Nike, Upwork, etc.
2. VueJS
Vue.js is an open-source JavaScript-based frontend web development framework.
It is built using HTML, CSS, and JavaScript and supports Model-View-View
Model (MVVM) architecture. It is easy to learn and understand and has large
community support. Many top companies use the Vue.js framework such
as Behance, Trustpilot, etc.
3. Bootstrap
Bootstrap is an open-source CSS-based framework. It is developed with the help of
HTML, CSS, and JavaScript. It helps in creating websites that are easy and fast to
develop, highly responsive, and platform-independent. Nowadays, all websites are
suitable for all kinds of devices (desktops, smartphones, tablets) thanks to
Bootstrap. Many top companies use the Bootstrap framework such as Airbnb,
Netflix, Uber, etc.
B. Back-End Frameworks
Backend web development frameworks are used on the server side of the
application. They provide backend functionalities responsible for handling
requests, databases, communicating with APIs, etc. Some of the popular backend
web development frameworks are Ruby on Rails, Django, PHP, etc.
1. Ruby on Rails
Ruby on Rails is an open-source Ruby-based framework. Ruby is responsible for
providing secure and scalable software. It is based on Model View
Controller (MVC) architecture and third-party libraries can also be integrated. There
are many top companies that make use of the Ruby on Rails framework such as
CafePress, Airbnb, etc.
2. Django
Django is an open-source Python-based web framework. It provides a speedy
development of web applications and ensures that they are scalable and flexible.
Django is based on Model Template View (MTV) architecture and is compatible
with any frontend framework. There are many top companies that make use of
Django such as YouTube, Instagram, Spotify, etc.
3. Spring Boot
Spring Boot is an open-source Java-based web framework. It enables developers
to develop production-ready and standalone applications. Spring Boot provides
high flexibility and scalability to websites. Many top companies use Spring Boot
such as Netflix, Uber, Intuit, LinkedIn, etc.
Agile
SCRUM
Design Thinking
Lean Startup
Six Sigma
Kanban
Importance of Frameworks:
Frameworks serve several important purposes across various domains:
1. Code Editor: A primary component of any IDE, the code editor provides a
platform for writing, editing, and formatting code. It often includes features
such as syntax highlighting, code completion, and code folding to enhance
productivity.
2. Compiler/Interpreter Integration: IDEs often integrate compilers or
interpreters for various programming languages, allowing developers to
compile or run their code directly within the IDE environment.
3. Debugger: Debugging tools enable developers to identify and fix errors in
their code. IDEs typically provide features such as breakpoints, variable
inspection, and step-through debugging to aid in the debugging process.
4. Version Control Integration: Many IDEs integrate with version control
systems such as Git, enabling developers to manage code repositories, track
changes, and collaborate with team members more effectively.
5. Project Management: IDEs often include project management tools to help
organize and manage software projects. This may include features such as
project templates, file organization, and build configuration.
6. Code Refactoring: IDEs offer tools for code refactoring, allowing developers
to restructure and optimize their codebase without changing its external
behavior. Common refactoring actions include renaming variables, extracting
methods, and optimizing imports.
7. Code Navigation: IDEs facilitate code navigation by providing features such
as code navigation shortcuts, symbol lookup, and context-aware search
functionality. This helps developers quickly navigate large codebases and
locate specific code elements.
8. Code Analysis: IDEs often include static code analysis tools that help identify
potential errors, inefficiencies, or code smells in the codebase. This can help
improve code quality and maintainability.
9. Integration with External Tools: IDEs typically support integration with
external development tools and utilities, such as build automation tools,
dependency management systems, and testing frameworks.
10. Customization and Extensibility: Many IDEs allow users to customize the
environment to suit their preferences and workflow. This may include
customizing keyboard shortcuts, installing plugins or extensions, and
configuring code formatting options.
11. Documentation and Help Resources: IDEs often provide built-in
documentation and help resources, including language reference
documentation, API documentation, and tutorials to assist developers in
learning and using the IDE effectively.
1. Desktop IDEs
This type includes the IDEs that can be configured locally. They do not need an
active internet connection to build/run programs. Desktop IDEs are highly
customizable to suit developer-specific needs and provide performance irrespective
of the internet speed. Examples: include Microsoft Visual Studio, Eclipse,
Netbeans, etc.
2. Cloud IDEs
Cloud IDEs eliminate the overhead of configuring the software locally. They run on
remote servers and can be accessed through desktop browsers. Cloud IDEs
provide better accessibility and platform independence making them accessible
through the Internet Irrespective of the Client Operating System. Cloud IDEs can
be used freely or can have pricing models with respect to the
provider. Examples: Include Gitpod, AWS Cloud 9, Replit, etc.
These IDEs are specially designed for creating mobile applications. They include
features like Emulator support and integration for developing and testing mobile
applications. Mobile Development IDEs can be in the form of Desktop IDE or Cloud
IDE. Examples: Include Android Studio, Flutlab.io, etc.
4. Database-Specific IDEs
These IDEs are specially designed for working with databases. They include
features like query builders and n for developing and testing mobile applications.
Like mobile-development IDEs, Database IDEs can also be in the form of Desktop
IDE or Cloud IDEs. Examples: Include MySQL Workbench, Oracle SQL
Developer, etc.
1. Project Management: IDEs make viewing the project directory structure much
simpler which breaks down the tedious tasks of working with multiple files. Typically
IDEs also include a number of tools, such as syntax highlighting, code completion,
and code folding, which makes it easier to manage the overall project.
2. Saving plenty of time and Effort: IDEs often include a variety of tools that can
not only assist you in organizing your code but also quickly highlight the error in
your code. They also include a flexible combination of tools for compiling, building,
testing, and deploying your code, through which you can automate these tasks
eliminating the need to manually run each task.
3. Productivity: IDEs can increase your productivity by providing a centralized
location for all of your development needs, from writing and editing code to
debugging and deploying. Some of the functionality provided by IDEs can also be
accomplished with a text editor and command-line tools, but IDEs usually make the
process more convenient and user-friendly.
1. Not beginner Friendly: IDEs are complex tools and generally provide quite an
intimidating UI, which can be a little tough to comprehend for a beginner.
Maximizing their benefit generally needs a dedicated effort.
2. Frequent Updates: It’s difficult to keep up with constant updates, such as new
samples, templates, and features.
3. Only Assist in writing code: As a tool, IDEs are limited to being an assistant.
They can’t write code or automatically fix errors, one still needs the knowledge to
write clean code.
4. Cost: Some IDE is Expensive or needs additional costs to unlock some add-ons,
which can be a barrier for small-scale companies or learning Individuals.
1. Visual Studio
2. IntelliJ IDEA
3. PyCharm
4. Eclipse
5. WebStorm
6. PhpStorm, etc.