소프트웨어/C# & ASP.NET

[책소개] Effective C# - 강력한 C# 코드를 구현하는 개발지침 50가지

falconer 2007. 7. 12. 09:36
책을 읽어 보지 안았지만 목차만으로도 흥미 있는 이야기라는걸 알것 같네요.

1장. C# 언어 요소
ITEM #1: 데이터 멤버 대신에 항상 프로퍼티를 사용하라
ITEM #2: const보다는 readonly가 좋다
ITEM #3: cast보다는 is나 as가 좋다
ITEM #4: #if대신 Conditional Attribute를 사용하라
ITEM #5: 항상 ToString( )을 작성하라
ITEM #6: value 타입과 reference 타입을 구분하라
ITEM #7: immutable atomic value 타입이 더 좋다
ITEM #8: value 타입을 사용할 때 0이라는 값이 의미를 가질 수 있도록 하라
ITEM #9: ReferenceEquals( ), static Equals( ), instance Equals( ), operator==의 상호 연관성을 이해하라
ITEM #10: GetHashCode( )의 함정을 유의하라
ITEM #11: foreach 루프가 더 좋다

2장. 닷넷 리소스 관리
ITEM #12: 할당문보다는 변수 초기화를 사용하는 편이 더 좋다
ITEM #13: static 클래스 멤버는 static 생성자를 사용하여 초기화하라
ITEM #14: 연쇄적인 생성자 호출을 이용하라
ITEM #15: 자원해제를 위해서 using과 try/finally를 이용하라
ITEM #16: Garbage를 최소화하라
ITEM #17: boxing과 unboxing을 최소화하라
ITEM #18: 표준 Dispose 패턴을 구현하라

3장. C# 설계사항 구현
ITEM #19: 상속보다는 interface를 정의하고 구현하는 것이 좋다
ITEM #20: interface의 구현과 virtual 메서드의 overriding을 구분하라
ITEM #21: delegate를 이용하여 콜백을 표현하라
ITEM #22: 이벤트를 이용하여 외부로 노출할 인터페이스를 정의하라
ITEM #23: 클래스 내부 객체에 대한 reference를 반환하는 것을 피하라
ITEM #24: 명령적 프로그래밍보다 선언적 프로그래밍이 더 좋다
ITEM #25: serializable 타입이 더 좋다
ITEM #26: IComparable과 IComparer를 이용하여 순차 관계를 구현하라
ITEM #27: ICloneable의 구현을 피하라
ITEM #28: 형변환 연산자의 구현을 피하라
ITEM #29: 기반 클래스의 변경이 영향을 줄 경우에만 new 한정자를 사용하라

4장. 이진 컴포넌트 작성
ITEM #30: CLS를 준수하는 어셈블리가 더 좋다
ITEM #31: 작고 단순한 메서드가 더 좋다
ITEM #32: 작고 응집도가 높은 어셈블리가 더 좋다
ITEM #33: 타입의 가시성을 제한하라
ITEM #34: 웹 API는 큰 단위로 작성하라

5장. 프레임워크의 사용
ITEM #35: 이벤트 핸들러보다 override를 사용하는 편이 낫다
ITEM #36: 닷넷 런타임의 진단기능을 사용하라
ITEM #37: 표준 환경설정 메커니즘을 이용하라
ITEM #38: 데이터 바인딩을 사용하라
ITEM #39: 닷넷의 유효성 검증 기능을 사용하라
ITEM #40: 적절한 collection 개체를 이용하라
ITEM #41: 새로운 구조체보다는 DataSet이 좋다
ITEM #42: reflection을 단순화하기 위해서 attribute를 사용하라
ITEM #43: reflection을 과도하게 사용하지 말라
ITEM #44: 애플리케이션에 특화된 예외 클래스를 완벽하게 작성하라
  
6장. 기타
ITEM #45: 견고한 예외보증 기법이 더 좋다
ITEM #46: Interop를 최소화하라
ITEM #47: 안전한 코드가 더 좋다
ITEM #48: 활용할 수 있는 다양한 툴과 리소스에 대해서 알아두라
ITEM #49: C# 2.0의 주요특징
ITEM #50: ECMA 표준을 익혀라