Skip to content

Commit 9021bf5

Browse files
Ranga Rao KaranamRanga Rao Karanam
Ranga Rao Karanam
authored and
Ranga Rao Karanam
committed
TOC
1 parent 2e34ada commit 9021bf5

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

README.md

+103
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,109 @@
11
# Java Best Practices
22
I've been Programming, Designing and Architecting Java applications for 15 years. I would like this page to serve as a good starting point for programmers to understand what it takes to build good applications. I would talk about Best practices and Frequently asked questions in Coding, Designing and Architecting Java Applications. If you have feedback, contact me on my website http://www.in28minutes.com.
33

4+
- [Java Best Practices](#java-best-practices)
5+
* [Journey of a Programmer](#journey-of-a-programmer)
6+
+ [How to become a good programmer?](#how-to-become-a-good-programmer-)
7+
+ [Ask Why?](#ask-why-)
8+
+ [Programming FAQ](#programming-faq)
9+
- [Should I be an expert at all Design Patterns?](#should-i-be-an-expert-at-all-design-patterns-)
10+
- [What are NFRs?](#what-are-nfrs-)
11+
* [Coding](#coding)
12+
+ [Java Tips](#java-tips)
13+
- [Why should you have minimum scope for variables?](#why-should-you-have-minimum-scope-for-variables-)
14+
- [Why should you understand performance of String Concatenation?](#why-should-you-understand-performance-of-string-concatenation-)
15+
- [What are the best practices with Exception Handling?](#what-are-the-best-practices-with-exception-handling-)
16+
- [When is it recommended to prefer Unchecked Exceptions?](#when-is-it-recommended-to-prefer-unchecked-exceptions-)
17+
- [When do you use a Marker Interface?](#when-do-you-use-a-marker-interface-)
18+
- [Why are ENUMS important for Readable Code?](#why-are-enums-important-for-readable-code-)
19+
- [Why should you minimize mutability?](#why-should-you-minimize-mutability-)
20+
- [What is functional programming?](#what-is-functional-programming-)
21+
- [Why should you prefer Builder Pattern to build complex objects?](#why-should-you-prefer-builder-pattern-to-build-complex-objects-)
22+
- [Why should you avoid floats for Calculations?](#why-should-you-avoid-floats-for-calculations-)
23+
- [Why should you build the riskiest high priority features first?](#why-should-you-build-the-riskiest-high-priority-features-first-)
24+
+ [Code Quality](#code-quality)
25+
- [Code Quality Overview](#code-quality-overview)
26+
- [Why should you not take code quality tools at face value?](#why-should-you-not-take-code-quality-tools-at-face-value-)
27+
- [Why should you have coding standards?](#why-should-you-have-coding-standards-)
28+
- [What are the most important coding standards?](#what-are-the-most-important-coding-standards-)
29+
- [What is Pair Programming?](#what-is-pair-programming-)
30+
- [Why is readable code important?](#why-is-readable-code-important-)
31+
- [Static Code Analysis](#static-code-analysis)
32+
- [SONAR](#sonar)
33+
- [Code Reviews](#code-reviews)
34+
* [Modern Development Practices](#modern-development-practices)
35+
+ [Unit Testing](#unit-testing)
36+
- [Unit Testing Best Practices](#unit-testing-best-practices)
37+
- [Why is unit testing important?](#why-is-unit-testing-important-)
38+
- [Why is performance of Unit Tests important?](#why-is-performance-of-unit-tests-important-)
39+
- [Do not be fooled by Code Coverage?](#do-not-be-fooled-by-code-coverage-)
40+
- [Why should a good programmer understand Mocking?](#why-should-a-good-programmer-understand-mocking-)
41+
+ [What is TDD?](#what-is-tdd-)
42+
- [Why should you write unit tests with/before code?](#why-should-you-write-unit-tests-with-before-code-)
43+
+ [What is BDD?](#what-is-bdd-)
44+
+ [What is ATDD?](#what-is-atdd-)
45+
- [When should you have multiple CI builds?](#when-should-you-have-multiple-ci-builds-)
46+
+ [Continuous Integration](#continuous-integration)
47+
- [Continuous Integration - Important Questions](#continuous-integration---important-questions)
48+
+ [DevOps](#devops)
49+
* [Design](#design)
50+
+ [Agile and Design](#agile-and-design)
51+
- [Evolutionary Design](#evolutionary-design)
52+
+ [What are the 4 Principles of Simple Design?](#what-are-the-4-principles-of-simple-design-)
53+
+ [Design Focus Areas](#design-focus-areas)
54+
* [Architecture](#architecture)
55+
+ [General](#general)
56+
- [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-)
58+
- [Why should you create a reference component?](#why-should-you-create-a-reference-component-)
59+
- [Agile and Architecture. Do they go together?](#agile-and-architecture-do-they-go-together-)
60+
+ [Layers](#layers)
61+
- [Business Layer](#business-layer)
62+
- [Data Layer](#data-layer)
63+
- [Web Layer](#web-layer)
64+
+ [Web Services](#web-services)
65+
+ [SOAP Web Services](#soap-web-services)
66+
+ [REST Web Services](#rest-web-services)
67+
- [How should you document your REST Web Services?](#how-should-you-document-your-rest-web-services-)
68+
+ [Microservices Architecture](#microservices-architecture)
69+
- [What are Cloud Native Applications?](#what-are-cloud-native-applications-)
70+
- [What are micro-services?](#what-are-micro-services-)
71+
- [Why is it important to have an API Standard?](#why-is-it-important-to-have-an-api-standard-)
72+
- [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-)
74+
+ [Component Based Architecture](#component-based-architecture)
75+
- [Why should you create small components?](#why-should-you-create-small-components-)
76+
* [How to be a good architect?](#how-to-be-a-good-architect-)
77+
+ [Architect Responsibilities](#architect-responsibilities)
78+
+ [Architect Qualities](#architect-qualities)
79+
* [Tools](#tools)
80+
+ [Maven](#maven)
81+
- [What happens behind Maven? What is a Repository?](#what-happens-behind-maven--what-is-a-repository-)
82+
- [What is use of Maven Parent POM?](#what-is-use-of-maven-parent-pom-)
83+
- [Maven Best Practices](#maven-best-practices)
84+
- [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)
87+
- [10 Tips For Eclipse](#10-tips-for-eclipse)
88+
+ [Version Control](#version-control)
89+
- [Why should you migrate to GIT?](#why-should-you-migrate-to-git-)
90+
- [Why should you commit your code often?](#why-should-you-commit-your-code-often-)
91+
- [What are version control best practices](#what-are-version-control-best-practices)
92+
* [Frameworks](#frameworks)
93+
* [Performance](#performance)
94+
+ [Good Practices](#good-practices)
95+
+ [Why do Stateless applications perform better?](#why-do-stateless-applications-perform-better-)
96+
+ [Why should you optimize judiciously?](#why-should-you-optimize-judiciously-)
97+
+ [How can you increase performance and reliability of applications using Queues?](#how-can-you-increase-performance-and-reliability-of-applications-using-queues-)
98+
+ [Distributed Cache](#distributed-cache)
99+
+ [Load and Performance Testing](#load-and-performance-testing)
100+
* [Security](#security)
101+
* [Indian IT](#indian-it)
102+
+ [How to create Good Programmers?](#how-to-create-good-programmers-)
103+
* [Campus Interview Guide](#campus-interview-guide)
104+
* [Compare and Contrast](#compare-and-contrast)
105+
106+
4107
## Journey of a Programmer
5108
### How to become a good programmer?
6109
![How to become a good programmer?](images/BecomingAGreatProgrammer.png)

0 commit comments

Comments
 (0)