본문 바로가기
반응형

개발/리뷰7

[실용주의 프로그래머 리뷰] 1. 깨진 창문을 내버려 두지 말라. 도심에서 어떤 건물은 아름답고 깨끗한 반면, 어떤 건물은 썩어 가는 유령선 같다. 왜일까? 깨끗하고 온전하며 사람들이 거주하던 건물이 부서지고 황폐한 을씨년스러운 곳으로 금세 바뀌어 버리는 이유는 뭘까? 도시 부패를 연구하는 사람들이 아주 흥미로운 유인 메커니즘을 발견했다. 깨진 창문. 오랜 기간 수리하지 않고 방치된 창문 하나 때문에 거주자들에게 버려진듯한 느낌이 스며든다. 당국자들이 그 건물에 별 관심이 없다는 느낌 말이다. 그래서 다른 창문이 하나 더 깨진다. 사람들이 쓰레기를 함부로 버리기 시작한다. 벽에 낙서가 등장한다. 심각한 구조적 손상이 시작된다. 깨진 창문을 내버려 두지 말라. 나쁜 설계, 잘못된 결정, 혹은 형편없는 코드 등이 모두 깨진 창문이다. 발견하자마자 바로 고쳐라. 적절히 고칠.. 2023. 1. 11.
[클린코드 리뷰] 5. TDD, 테스트 코드를 깨끗하게 유지하자. 작은 회사는 TDD(Test Driven Development / 테스트 주도 개발)를 못한다. 그 회사들 중 절반은 TDD가 뭔지도 모를 것이고, 나머지 절반은 알아도 여력이 없어서 못한다고 말하리라. 하지만 여력이 없다는 핑계로 테스트케이스를 만들지 않은 대가는 결국 부메랑처럼 돌아온다. 그 시스템의 수정은 항상 불안하며 버그를 발생하게 한다. 나 역시 그랬다. 예를들어 기존의 입력폼에 간단한 항목 하나를 추가한다고 해보자. 뷰페이지와 데이터베이스에 추가하는 건 간단하다. 그리고 생각한다. '사용자 정보가 노출되는 페이지, 마이페이지, 관리자 페이지의 목록들과 팝업창, 그리고 어떤 함수에 들어가서 계산이 되는 곳, 혹은 통계페이지, 혹은 리포트, 그리고 엑셀, 워드 등등.. 오케이 다 추가했다!!' .. 2022. 12. 31.
낡은 자바스크립트 작성 습관, 이젠 바뀌어야겠지 이 글은 프론트엔드 엔지니어인 Freddy Manrique라는 분이 작성한 글을 -> 요즘IT와 Mr.P라는 번역가가 해석 및 정리한 컨텐츠를-> 제가 다시 정리하며 곱씹어 보는 글 입니다. '내가, 나에게' 말하는 느낌이니 편하게 작성하겠습니다. 원본(Freddy Manrique) : https://medium.com/gogrow/say-bye-bye-to-bad-javascript-practices-5971688ba80a 요즘 IT : https://yozm.wishket.com/magazine/detail/1836 1) var는 이제 버리자. let, const로 더욱 명확하게. // 나쁜코드 With var var name = 'GoGrow' if( name === 'GoGrow' ) { var .. 2022. 12. 25.
[클린코드 리뷰] 4. 절차적인 코드와 객체지향 코드 1. 절차적인 도형 public class Square { public Point topLeft; public double side; } public class Rectangle { public Point topLeft; public double height; public double width; } public class Circle { public Point center; public double radius; } public class Geometry { public final double PI = 3.141592653589793; public double area(Object shape) throws NoSuchShapeException { if (shape instanceof Square) { .. 2022. 11. 26.
[클린코드 리뷰] 3. 나쁜 코드에 주석을 달지 마라. 새로 짜라. 1. 주석은 나쁜 코드를 보완하지 못한다. 주석은 '순수하게 선하지' 못하다. 사실상 주석은 기껏해야 필요악이다. 우리는 코드로 의도를 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. 여기서 내가 실패라는 단어를 썼다는 사실에 주목한다. 진심이다. 주석은 언제나 실패를 의미한다. 때때로 주석 없이는 자신을 표현할 방법을 찾지 못해 할 수 없이 주석을 사용한다. 그러므로 주석이 필요한 상황에 처하면 곰곰이 생각하기 바란다. 상황을 역전해 코드로 의도를 표현할 방법은 없을까? 코드로 의도를 표현할 때마다 스스로 칭찬해준다. 주석을 달 때마다 자신에게 표현력이 없다는 사실을 푸념해야 마땅하다. 내가 이렇듯 주석을 무시하는 이유가 무엇이냐고? 거짓말을 하니까. 항상도 아니고 고의도 아니지만 너무.. 2022. 11. 17.
[클린코드 리뷰] 2. 의미 있는 이름을 사용해야 한다. 1. 의도를 분명히 밝혀라 나쁜 코드 : int d; // 경과시간 (단위:날짜) 이름 d는 아무 의미도 드러나지 않는다. 경과시간 날짜 라는 느낌이 안든다. 좋은 코드: int elapsedTimeInDays; int daysSinceCreation; int daysSinceModification; int fileAgeIndays; 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. 지뢰찾기 게임을 만든다고 가정하자. 나쁜코드 : public List getThem() { List list1 = new ArrayList(); for (int[] x : theList) if (x[0] == 4 ) list1.add(x); return list1; } 코드가 하는 일을 짐작하기 어렵다. 왜일까?.. 2022. 11. 6.