상세 컨텐츠

본문 제목

[책리뷰] <심플 소프트웨어 : 코드의단순성, 가독성, 안정성, 유지보수> 리뷰

Review/책

by 우뇽킴 2020. 10. 28. 21:33

본문

2~3개월전에 이미 읽었던 책이었는데, 책리뷰를 작성하여보았다. 

 

해당 도서에서는 소프트웨어공학에서 다루는 내용들과 함께 프로그래머가 코드를 개발하면서 

 

준수해야할 개발 가이드를 다루고 있다.

 

책의 원저자인 맥스카넷 알렉산더 저자가 책의 타이틀에서 강조한

 

코드의 단순성, 가독성, 안정성, 유지보수 에 대하여

 

개발 프로젝트의 One Cycle정도의 범위와 프로젝트가 완료되어 인도 후, 지속적인 유지보수 활동에 대한

 

내용도 함께 다루어져있다.

 

책을 읽으면서 코드는 한 줄도 나오지 않으니, 비개발자도 읽어볼만한다.

 

개발을 하면서 책에서 공감가는 키워드는 다음과 같다.

 

1. 코드의 복잡성

 

코드는 단순해야한다. 공통적인 부분은 하나의 단위 함수로 만들고, 소스간의 의존성이 줄어들어야(즉, 독립성) 코드의 문제 발생확률이 낮아진다.

또한, 소스가 복잡해질수록 향후 그 소스를 다시 수정하게 될때 소스를 이해해서 다시 수정하게되는 로드타임(Load Time)과 수정작업 공수가 배로 든다.

'꼼수'를 써서 해당 소스가 겨우 어떻게 작동된다거나, 내가 작성한 개발 소스 부분을 다른 개발자들이 계속 물어본다거나, 그 코드를 수정할 생각이 두렵다면 코드는 복잡해지고 있는 것이다.  

 

 

2. 하위 호환성 지원 문제

웹 개발에서도 하위호환성에서 고려해야하겠지만 제일 고려해야할 부분의 매체 중 하나는 모바일이 아닐까싶다. 모바일에서도 책에서 언급한 하위 호환성 지원 시의 상충관계는 다음과 같다.

 

1) 하위 호환성을 깨졌을 대 얼마나 많은 사람이 고생하게되는지

 

2) 하위 호환성을 유지하기 위해 자신이 얼마나 고생해야 하는지

 

모바일 같은 경우는 1)번과 2)번에 대해서 개발자의 수고를 덜고자 Google이나 Apple에서 하위 OS의 API호환이 유지되도록 지속적인 통합 라이브러리를 제공하고 있다.

하지만, 하위 OS에서 사용중이던 API가 보안 취약적인 이슈로 Deprecated된 API도 존재한다. 

 

이렬 경우, 하위 호환성 지속적인 지원 이슈 문제는 

 

다음과 같을 때 포기하라고 강조하고 있다.

 

'유용하고 새 기능을 추가하고자 할 때 하위 호환성이 길을 막고자 한다면 그때만큼은 하위 호환성을 무시해도된다.'

 

3. 버그

 

내가 수정하지 않고 잘못 작성한 코드로 인해 (해당 소스가 문제없이 작동은 함) 현재는 문제가 없더라도, 향후 내 소스를 참고하여 개발한 다른 개발자나 내가 개발한 소스를 이용하는 다른 영역에서 문제가 발생할수 있다. 

 

 

 

관련글 더보기

댓글 영역