Archive for the ‘Must know’ Category

REPL

Read
Eval
Print
Loop
Read the rest of this entry »

Java Anti-Patterns

Pokaźna lista antywzorców w Javie: Java Anti-Patterns.

Testowanie wyjątków w Javie

Rafał Roppel, architekt oprogramowania w Wirtualnej Polsce, opisuje techniki testowania wyjątków w Javie.

Code without tests is bad code

Code without tests is bad code. It doesn’t matter how well written it is; it doesn’t matter how pretty or object-oriented or well-encapsulated it is. With tests, we can change the behavior of our code quickly and verifiably. Without them, we really don’t know if our code is getting better or worse.

Michael Feathers,
Working Effectively With Legacy Code

Argumenty a parametry metody

Czy istnieje różnica pomiędzy argumentami a parametrami metody?

  • Parametry metody to nazwy zmiennych w jej deklaracji/definicji
  • Argumenty metody to nazwy zmiennych przekazywane do niej w momencie wywołania
public class Calculator {

	// a i b są parametrami
	public int add(final int a, final int b) {
		return a + b;
	}
}

public class CalculatorTester {

	public static void main(String[] args) {
		Calculator c = new Calculator();
		// 1 i 5 są argumentami
		final int sum = c.add(1, 5);
		System.out.println("sum = " + sum);
	}
}

Prawo Demeter

Prawo Demeter (ang. Law of Demeter [LoD]) znane także jako Zasada minimalnej wiedzy (ang. Principle of Least Knowledge) zostało sformułowane przez Iana Hollanda w 1987 roku na Northeastern University. Zastosowane do programowania obiektowego brzmi następująco:
Read the rest of this entry »

Polimorfizm, przesłanianie, przeciążanie – MUST KNOW!

  • Polimorfizm dotyczy przesłaniania, nie przeciążania.
  • Typ referencji (zmiennej) określa jakie metody mogą być wywoływane.
  • Typ obiektu określa, która przesłonięta metoda zostanie użyta w czasie wywołania.
  • Typ referencji określa, która przeciążona metoda zostanie użyta w czasie kompilacji.