2018년 3월 28일 수요일

Tell, don’t Ask

요구하지 말고 설명해라. Tell don't ask.

요구하는 식으로 프로그래밍 하지말고 설명하는 방식으로
프로그래밍 하라.

참고 사이트
https://martinfowler.com/bliki/TellDontAsk.html
https://pragprog.com/articles/tell-dont-ask
https://robots.thoughtbot.com/tell-dont-ask

심플 예제 설명
http://www.tzavellas.com/techblog/2007/02/17/a-simple-example-of-tell-dont-ask/

데미테르의 법칙 (Law of demeter).
http://blog.aliencube.org/ko/2013/12/06/law-of-demeter-explained/

함수형 프로그래밍 관련 용어 공부 정리

다형성이란 (polymorphic) ?

다형성이란 상위클래스 타입의 변수에 여러개의 하위클래스의 객체를 참조할 수 있도록 하는것을 이야기 한다.  즉 같은 타입이지만 오른쪽에 실제 런타임중에 new되는 객체(하위클래스)의
메소드가 실행되어 동일한 메소드가 다양한 형태를 표출한다는 것 이다.

다음과 같은 장점이 있다.

1. 여러 타입의 객체를 하나의 타입으로 관리하니 유지보수가 좋다.
(변경 사항 발생시 다형성으로 구현하지 않았을 때의 절반이상 코딩양 준다.)

2. 메속드의 매개변수(인자)로 상위 클래스, 추상 클래스, 인터페이스등이 온다면
그 하위클래스, 인터페이스를 구현한 클래스등이 인자로 들어 갈 수 있어 좀 더
유연한 프로그래밍을 할 수 있다. (당연히 이부분도 프로그램의 유지보수 차원에서 좋다)

3. 확장성이 좋은 코드를 작성할 수 있고, 결합도가 강하지 않은 프로그래밍을 할 수 있다.

참조 사이트
http://whatisthenext.tistory.com/34
http://asfirstalways.tistory.com/168
https://brunch.co.kr/@kd4/4