Here are some guidelines to consider when crafting methods:
calculateSum() is better than calc().인스턴스 메서드가 인스턴스 변수를 변경하는 것을 사이드이펙트라고 볼수 있을까?
OOP 에서는 인스턴스 메서드가 인스턴스 변수를 변경하는 것을 사이드이펙트로 보지 않는다고 한다.
단, 클래스가 잘 캡슐화 되어있다는 것을 전제한다
예를 들어 Array 클래스에서 append() 메서드는 인스턴스 변수를 수정하면서 메서드의 이름에 걸맞는 작업을 수행해낸다. 이것을 primary effect 라고 표현하기도 하는 것 같다.
위 가이드라인에서 가리키는 사이드이펙트는 코드 사용자에게 unpredictable 한 결과를 주는 코드를 말하는 것 같다.
the method is designed with the explicit purpose to change the variable and that's its expected primary effect.