왜 클린한 코드를 써야하는가?
- 잘 돌고있는 SW는 한번 작성하면 최소 10번이상 읽힌다고한다. 따라서 대충 돌아가게만 작성하면 안되고 읽기 편하도록 작성해야한다.
- 기계가 이해할 수 있는 코드는 아무나 작성할 수 있지만 인간이 이해할 수 있는 코드는 잘훈련된 SW 엔지니어만이 작성할 수 있다.
- 우리의 주 업무는 무엇이지? 매번 새로운 코드, 신규 프로젝트를 하는가? 그렇지 않다. 남이 작성한 코드를 읽고, 수정하고, 기능을 추가하는 일이 개발자들의 주된 업무이다.
왜 OOP인가?
절차지향
객체지향
- OOP에서는 응집도와 결합도 이야기가 나온다.
- 응집도는 관련된 데이터는 한 객체 내부에 다 모여있는것
- 결합도는 한 객체가 변화해도 다른 객체들이 영향을 받지 않는 것
→ 객체지향 마인드를 가지기는 쉽지 않다. 절차지향이 훨씬 쉬워. → 그래서 절차지향적으로 워킹하는 코드를 만들고 이를 객체지향적으로 리팩토링하는 것이 더 좋은 방법일지도 모른다.
객체지향이 왜좋지?
- 이벤트성으로 한번 치고 버릴건 사실 절차지향으로 해도돼.. 유지보수를 안할거니까
- 근데 복잡하거나 요구사항 변화가 발생할 시스템은 객체지향적으로 짜면 유리한 점이 많다.
- 데이터 변경이 해당 객체로만 제한되고 다른 객체에 영향을 미치지 않으므로
- 절차지향이 처음에는 쉬울지 모르지만 시간이 지나면 수정하기 어려운 구조가 된다.
절차지향은 왜 안좋지?