Tagged

Martin Fowler

A collection of 9 posts

Martin Fowler

테스트 암 Test Cancer

TestCancer design 2007년 12월 6일 Reactions 전업을 저자로 전환함에 따라, 시간이 갈수록 소프트웨어 개발 현장과 멀어져 가는 내 자신이 걱정된다. 다른 유명한 거장들이 현실과 동떨어진 모습을 본 적이 있는데, 내가 그와 동일한 불안감을 느끼고 있다. 이런 불안감과 싸우는데 가장 큰 도움이 되는 것은 바로 ThougtWorks다. 그곳에서 평상시처럼 현실감을 느낄 수

리팩터링

선언된 순서를 변경하는 것은 리팩터링인가?

원문 : IsDeclarationOrderingRefactoring     refactoring     1 September 2004 RefactoringBoundary. 자바 프로그램 내부에 있는 메소드와 필드가 선언된 순서를 변경하는 것은 리팩터링인가요? 근래의 프로그래밍 언어들은 내부에 선언되어 있는 요소들의 순서가 프로그램에 전혀 영향을 주지 않는다. 만약 텍스트 파일 내부에 있는 두 개의 메소드 위치를 서로 바꾸더라도, 프로그램은 아무런

리팩터링

리팩터링 정의

원문 : DefinitionOfRefactoring     refactoring      나(Martin Fowler)의 리팩터링 책에서, 리팩터링에 대한 몇몇 정의를 내렸다. 리팩터링 (명사): 소프트웨어의 내부 구조를 보다 이해하기 쉽고 수정하는 비용을 최소화 하도록 하는 변경. 이 때 “주목할 만한” 행동의 변경이 있으면 안 된다. 리팩터링 (동사): “주목할 만한” 행동의 변경 없이,

리팩터링

발견하지 못한 버그를 수정하는 것은 리팩터링인가?

원문 : IsFixingAnUnknownBugRefactoring     refactoring     3 September 2004 RefactoringBoundary. Przemyslaw Pokrywka가 매우 난해한 질문을 했다. 책에서 소개한 리팩터링 중에 하나로 Introduce Null Object라는 것이 있는데, (이것은 매우 유용한 리팩터링으로 Josh의 새 책에서도 다루고 있다) Przemyslaw의 요지는 이 리팩터링이 행동을 바꿀 수 있다는 것이었다. 만약 여러분이 null을

Active Record

Active Record

원문 : http://www.martinfowler.com/eaaCatalog/activeRecord.html 번역 액티브 레코드 테이터베이스의 테이블 또는 뷰의 레코드를 랩핑한 것에 해당 데이터를 사용할 도메인 로직을 추가한 객체이다. 자세한 설명은 P of EAA 페이지 160을 참조. 데이터와 행위를 가지고 있는 객체이다. 여기 있는 데이터의 대부분은 영속성을 가지며 데이터베이스에 저장된다.  액티브 레코드는 데이터에

자체 테스트 코드

Self Testing Code design

원문 : http://www.martinfowler.com/bliki/SelfTestingCode.html ‘자체 테스트 코드’는 리팩토링에서 기능적인 소프트웨어와 결합되어 전체적으로 자동화된 테스트를 언급하기 위해 사용했던 단어다. 이 단어를 이야기 할 때는 제일 먼저 XUnit 군의 테스트 프레임워크들이 생각난다. 테스트 주도 개발(TDD)은 자체 테스트 코드를 작성할 때 선호하는 방법이지만 이 방법밖에 없는

Martin Fowler

TestDrivenDevelopment design

TestDrivenDevelopment design 원문 : http://www.martinfowler.com/bliki/TestDrivenDevelopment.html 테스트 주고 개발(TDD)는 테스트를 통해서 개발을 이끌어 내는 설계 기술이다. 본질적으로 다음 세 개의 단순한 단계를 반복하는 것이다. •    다음으로 추가하고 싶은 기능을 위한 테스트를 작성한다. •    테스트가 통과 하도록 기능 코드를 작성하라. •    전체적으로

리팩토링

3장 코드 속의 나쁜 냄새 - 중복된 코드

1장과 2장을 통해서 리팩토링이 어떻게 돌아가는지 알게 됐습니다. 하지만 리팩토링을 어떻게 하는지 안다고 해서 할 수 있는 것은 아닙니다. 언제 해야 하는지를 알아야 하는데… 그게 어려운 것 같네요. 3장을 Kent Beck이랑 Martin Fowler가 썼는데도 명확한 시점이라기 어떤 “냄새”가 날 때 라는 모호한 시점을 제기했네요. 경험적으로 인간의

리팩토링

1장 리팩토링, 첫 번째 예제

먼저 리팩토링이란? 외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법으로, 소프트웨어 시스템을 변경하는 프로세스이다. 이것은 버그가 끼어 들 가능성을 최소화하면서 코드를 정리하는 정형화된 방법이다. “코드가 작성된 후에 디자인을 개선한다.” 물론 그 코드는 디자인을 거쳐 작성이 되었겠지만 코드가 디자인을 잘 따르지 않았거나 디자인이 잘 못 됐을 수도 있기 때문에