Skip to content

Commit 153a363

Browse files
Ranga Rao KaranamRanga Rao Karanam
Ranga Rao Karanam
authored and
Ranga Rao Karanam
committed
Minor Changes
1 parent e6ff907 commit 153a363

File tree

1 file changed

+50
-45
lines changed

1 file changed

+50
-45
lines changed

README.md

+50-45
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ I've been Programming, Designing and Architecting Java applications for 15 years
4444
+ [What is ATDD?](#what-is-atdd)
4545
- [When should you have multiple CI builds?](#when-should-you-have-multiple-ci-builds)
4646
+ [Continuous Integration](#continuous-integration)
47-
- [Continuous Integration - Important Questions](#continuous-integration---important-questions)
47+
- [Continuous Integration - Important Questions](#continuous-integration --important-questions)
4848
+ [DevOps](#devops)
4949
* [Design](#design)
5050
+ [Agile and Design](#agile-and-design)
@@ -54,7 +54,7 @@ I've been Programming, Designing and Architecting Java applications for 15 years
5454
* [Architecture](#architecture)
5555
+ [General](#general)
5656
- [Why is it important to use Continuous Integration from Day 0 of the project?](#why-is-it-important-to-use-continuous-integration-from-day-0-of-the-project)
57-
- [What is a vertical slice? Why should you need it?](#what-is-a-vertical-slice--why-should-you-need-it)
57+
- [What is a vertical slice? Why should you need it?](#what-is-a-vertical-slice -why-should-you-need-it)
5858
- [Why should you create a reference component?](#why-should-you-create-a-reference-component)
5959
- [Agile and Architecture. Do they go together?](#agile-and-architecture-do-they-go-together)
6060
+ [Layers](#layers)
@@ -70,20 +70,20 @@ I've been Programming, Designing and Architecting Java applications for 15 years
7070
- [What are micro-services?](#what-are-micro-services)
7171
- [Why is it important to have an API Standard?](#why-is-it-important-to-have-an-api-standard)
7272
- [What is the importance of Logging and Centralized Monitoring?](#what-is-the-importance-of-logging-and-centralized-monitoring)
73-
- [Automate! Automate! Automate!](#automate--automate--automate)
73+
- [Automate! Automate! Automate!](#automate -automate -automate)
7474
+ [Component Based Architecture](#component-based-architecture)
7575
- [Why should you create small components?](#why-should-you-create-small-components)
7676
* [How to be a good architect?](#how-to-be-a-good-architect)
7777
+ [Architect Responsibilities](#architect-responsibilities)
7878
+ [Architect Qualities](#architect-qualities)
7979
* [Tools](#tools)
8080
+ [Maven](#maven)
81-
- [What happens behind Maven? What is a Repository?](#what-happens-behind-maven--what-is-a-repository)
81+
- [What happens behind Maven? What is a Repository?](#what-happens-behind-maven -what-is-a-repository)
8282
- [What is use of Maven Parent POM?](#what-is-use-of-maven-parent-pom)
8383
- [Maven Best Practices](#maven-best-practices)
8484
- [10 Tips For Maven](#10-tips-for-maven)
85-
+ [Why should you have api & impl in each layer maven projects?](#why-should-you-have-api---impl-in-each-layer-maven-projects)
86-
+ [IDE - Eclipse](#ide---eclipse)
85+
+ [Why should you have api & impl in each layer maven projects?](#why-should-you-have-api --impl-in-each-layer-maven-projects)
86+
+ [IDE - Eclipse](#ide --eclipse)
8787
- [10 Tips For Eclipse](#10-tips-for-eclipse)
8888
+ [Version Control](#version-control)
8989
- [Why should you migrate to GIT?](#why-should-you-migrate-to-git)
@@ -238,7 +238,7 @@ I've been Programming, Designing and Architecting Java applications for 15 years
238238
#### Continuous Integration - Important Questions
239239
- How often is code commited?
240240
- How early are problems/defects found/fixed?
241-
-- Code Quality, Code Review, ST Defects
241+
- Code Quality, Code Review, ST Defects
242242
- Broken Builds?
243243
- How often is code deployed to production?
244244
- How often is code deployed to test environment?
@@ -253,6 +253,12 @@ I've been Programming, Designing and Architecting Java applications for 15 years
253253
- How long does a Continuous Integration build run for? Is there a need for multiple builds?
254254

255255
### DevOps
256+
- Typically Enterprise Teams are made up of number of teams - Dev, QA, DBA,Administrators, Operations, Project and Release Management.
257+
- Each team works in silos. Some teams have contradicting goals. Dev team wants to push their features live as soon as possible where as Operations want stability. Operations are measured on availability.
258+
- Reliance on documentation and hand-offs.
259+
- Devops aims at making these teams work together focused on single goal - Delivering value to end customers safely.
260+
- Single Leadership.
261+
- Continuous Delivery.
256262

257263
## Design
258264

@@ -270,10 +276,10 @@ I've been Programming, Designing and Architecting Java applications for 15 years
270276
- Minimize Duplication
271277
- Maximize Clarity
272278
- Keep it Small
273-
-- Code - Method, Class, jar etc
274-
-- Component
275-
-- Cycle Time (Short cycles)
276-
-- Team Size
279+
- Code - Method, Class, jar etc
280+
- Component
281+
- Cycle Time (Short cycles)
282+
- Team Size
277283

278284
- Object Oriented Programming. Have good object, which have well-defined responsibilities. Following are the important concepts you need to have a good overview of. These are covered in various parts in the video https://www.youtube.com/watch?v=0xcgzUdTO5M. Also, look up the specific videos for each topic.
279285
- Coupling :
@@ -294,8 +300,30 @@ https://github.com/in28minutes/java-best-practices/blob/master/pdf/J2EE(Java%20E
294300
![Review](images/DesignReview.png)
295301

296302
## Architecture
303+
Details about the important parts of the systems and the constraints (boundaries, communication, standards, guidelines)
304+
## How to be a good architect?
305+
- PDF - How to be a good architect : https://github.com/in28minutes/java-best-practices/blob/master/pdf/How%20to%20be%20a%20good%20Software%20Architect.pdf
306+
307+
### Architect Responsibilities
308+
- Having good governance in place. Good review processes in place for Architecture, Design and Code.
309+
- Creating a clean architecture based on sound principles. Architecture covering all Non Functional Requirements.
310+
- Ensuring teams are as productive as they can be. Right tools.
311+
- Ensuring teams are following the best engineering practices.
312+
- Ensuring clear communication about architecture with business and technical teams.
313+
![Architect Responsibilities](images/ArchitectResponsibilities.png)
314+
315+
### Architect Qualities
316+
Most important qualities I look for in an Architect are
317+
- Impeccable Credibility : Somebody the team looks up to and aspires to be.
318+
- Super diagnostic skills : The ability to do a deep dive on a technology issue. When developers are struggling with a problem (having tried different things), Can he/she provide a fresh pair of eyes to look at the same problem?
319+
- Forward Thinker and Proactive : Never satisfied with where we are. Identifies opportunities to add value fast.
320+
- Great Communication : Communication in the widest sense. Communicating the technical aspects to the stakeholders, project management, software developers, testers, etc.
321+
![Architect Qualities](images/ArchitectQualities.png)
297322

298-
### General
323+
###Architecture Review
324+
![Architecture Review](images/ArchitectureReview.png)
325+
326+
### General
299327

300328
#### Why is it important to use Continuous Integration from Day 0 of the project?
301329

@@ -404,10 +432,10 @@ Richardson Maturity Model defines the maturity level of a Restful Web Service. F
404432
- While designing any API, the most important thing is to think about the api consumer i.e. the client who is going to use the service. What are his needs? Does the service uri make sense to him? Does the request, response format make sense to him?
405433
- URI’s should be hierarchical and as self descriptive as possible. Prefer plurals.
406434
- Always use HTTP Methods. Best practices with respect to each HTTP method is described below:
407-
-- GET : Should not update anything. Should be idempotent (same result in multiple calls). Possible Return Codes 200 (OK) + 404 (NOT FOUND) +400 (BAD REQUEST)
408-
-- POST : Should create new resource. Ideally return JSON with link to newly created resource. Same return codes as get possible. In addition : Return code 201 (CREATED) is possible.
409-
-- PUT : Update a known resource. ex: update client details. Possible Return Codes : 200(OK)
410-
-- DELETE : Used to delete a resource.
435+
- GET : Should not update anything. Should be idempotent (same result in multiple calls). Possible Return Codes 200 (OK) + 404 (NOT FOUND) +400 (BAD REQUEST)
436+
- POST : Should create new resource. Ideally return JSON with link to newly created resource. Same return codes as get possible. In addition : Return code 201 (CREATED) is possible.
437+
- PUT : Update a known resource. ex: update client details. Possible Return Codes : 200(OK)
438+
- DELETE : Used to delete a resource.
411439

412440
##### JAX-RS
413441
JAX-RS is the JEE Specification for Restful web services implemented by all JEE compliant web servers (and application servers).
@@ -431,13 +459,13 @@ http://eugenedvorkin.com/wp-content/uploads/2014/06/micro-service-architecture.p
431459
- Challenges with Monolith Applications - Longer Release Cycles because of Large Size, Large Teams and difficulty in adopting Automation testing and modern development practices
432460
- “Keep it Small”. Small deployable components.
433461
- Flights
434-
-- Points
435-
-- Offers
436-
-- Trips
462+
- Points
463+
- Offers
464+
- Trips
437465
- Customer
438-
-- Product
439-
-- Order
440-
-- Recommendations
466+
- Product
467+
- Order
468+
- Recommendations
441469
- Key question to ask : Can we make a change to a service and deploy it by itself without changing anything else?
442470

443471
#### Microservices Characteristics
@@ -465,7 +493,6 @@ http://eugenedvorkin.com/wp-content/uploads/2014/06/micro-service-architecture.p
465493
- Operations Team
466494
- Determining Boundaries
467495

468-
469496
#### What is the difference between Microservices and SOA?
470497
Microservices have similar goals from SOA : Create services around your business logic.
471498

@@ -511,28 +538,6 @@ Saving Account and Debit Card are different products managed by different produc
511538

512539
#### Why should you create small components?
513540

514-
## How to be a good architect?
515-
- PDF - How to be a good architect : https://github.com/in28minutes/java-best-practices/blob/master/pdf/How%20to%20be%20a%20good%20Software%20Architect.pdf
516-
517-
### Architect Responsibilities
518-
- Having good governance in place. Good review processes in place for Architecture, Design and Code.
519-
- Creating a clean architecture based on sound principles. Architecture covering all Non Functional Requirements.
520-
- Ensuring teams are as productive as they can be. Right tools.
521-
- Ensuring teams are following the best engineering practices.
522-
- Ensuring clear communication about architecture with business and technical teams.
523-
![Architect Responsibilities](images/ArchitectResponsibilities.png)
524-
525-
### Architect Qualities
526-
Most important qualities I look for in an Architect are
527-
- Impeccable Credibility : Somebody the team looks up to and aspires to be.
528-
- Super diagnostic skills : The ability to do a deep dive on a technology issue. When developers are struggling with a problem (having tried different things), Can he/she provide a fresh pair of eyes to look at the same problem?
529-
- Forward Thinker and Proactive : Never satisfied with where we are. Identifies opportunities to add value fast.
530-
- Great Communication : Communication in the widest sense. Communicating the technical aspects to the stakeholders, project management, software developers, testers, etc.
531-
![Architect Qualities](images/ArchitectQualities.png)
532-
533-
###Architecture Review
534-
![Architecture Review](images/ArchitectureReview.png)
535-
536541
## Tools
537542

538543
### Maven

0 commit comments

Comments
 (0)