|
1 | 1 | # Java Best Practices
|
2 | 2 | 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.
|
3 | 3 |
|
| 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 | + |
4 | 107 | ## Journey of a Programmer
|
5 | 108 | ### How to become a good programmer?
|
6 | 109 | 
|
|
0 commit comments