Java Interview: Difference between revisions
Jump to navigation
Jump to search
(→SDLC) |
|||
Line 102: | Line 102: | ||
| valign="top" | | | valign="top" | | ||
* [https://medium.com/globalluxsoft/5-popular-software-development-models-with-their-pros-and-cons-12a486b569dc 5 Popular Software Development Models] | |||
* [https://www.javatpoint.com/devops#:~:text=DevOps%20Advantages%20and%20Disadvantages DevOps Advantages & Disadvantages] | * [https://www.javatpoint.com/devops#:~:text=DevOps%20Advantages%20and%20Disadvantages DevOps Advantages & Disadvantages] | ||
* [https://restfulapi.net/soap-vs-rest-apis/ Comparing SOAP vs REST APIs] | * [https://restfulapi.net/soap-vs-rest-apis/ Comparing SOAP vs REST APIs] |
Revision as of 22:30, 24 October 2020
|
|
|
Terminology
- Composition vs Aggregation
- Both are Association
- Composition: A "owns" B
- Aggregation: A "uses" B
- Physical Layer: Ethernet, 802.11
- Data Link Layer: MAC, ARP, PPP
- Network Layer: IPv4, IPv6
- Transport Layer
- Session Layer
- Presentation Layer
- Application Layer: DNS
- Statefulness
- RESTful Web services are completely stateless. Managing the state of conversation is the complete responsibility of the client itself. The server does not help you with this. Normally, a SOAP Web services are stateless – but you can easily make SOAP API stateful by changing the code on the server.
SDLC
- Most popular software development models
- Waterfall
- Scrum
- Lean
- Kanban
- Feature driven development
- Agile
- Agile is a structured and iterative approach to project management and product development. It recognizes the volatility of product development, and provides a methodology for self-organizing teams to respond to change without going off the rails. Today, agile is hardly a competitive advantage. No one has the luxury to develop a product for years or even months in a black box. This means it’s more important than ever to get it right.
- Kanban
- Kanban is all about visualizing your work, limiting work in progress, and maximizing efficiency(or flow). Kanban teams focus on reducing the time it takes to take a project(or user story) from start to finish. They do this by using a kanban board and continuously improving their flow of work.
- Scrum
- Scrum teams commit to ship working software through set intervals called sprints. Their goal is to create learning loops to quickly gather and integrate customer feedback. Scrum teams adopt specific roles, create special artifacts, and hold regular ceremonies to keep things moving forward.
DevOps
- DevOps
- The DevOps is a combination of two words, one is software Development, and second is Operations. This allows a single team to handle the entire application lifecycle, from development to testing, deployment, and operations. DevOps helps us to reduce the gap between software developers, quality assurance (QA) engineers, and system administrators.
- DevOps tools such as Git, Docker, Jenkins, Chef, Puppet, Ansible, SaltStack, Nagios and Kubernetes.
- Automation
- Collaboration
- Integration
- Configuration
- Puppet
- Puppet is the most powerful configuration management tool in the solar system. It’s the engine that drives your compliance, baseline, drift remediation, and deployment needs. It has always been and always will be open source, with freely downloadable operating system-specific agent packages, a massively scalable server, and data warehousing capabilities via PuppetDB.
- Ansible
- Ansible is an open-source software provisioning, configuration management, and application-deployment tool enabling infrastructure as code. It runs on many Unix-like systems, and can configure both Unix-like systems as well as Microsoft Windows. It includes its own declarative language to describe system configuration. Ansible was written by Michael DeHaan and acquired by Red Hat in 2015. Ansible is agentless, temporarily connecting remotely via SSH or Windows Remote Management (allowing remote PowerShell execution) to do its tasks.