본문 바로가기

책 정리/Effective C#

(51)
item 50, ECMA 표준을 익혀라 이 포스트를 만든 목적 책에서 키워드를 얻어 인터넷에서 찾아보기 위해 이 포스트의 준비물 Firefox 3.6.8 참조 링크 http://www.ecma-international.org/publications/standards/Ecma-334.htm http://www.ecma-international.org/publications/standards/Ecma-335.htm 내용 ECMA 표준문서란 무엇인가? C# 언어의 동작 방식을 기술한 공식 문서이다. 책에선 읽어야 하는 이유를 이렇게 설명하고 있다. 진정한 C# 프로그래머가 될 수 있기 때문에 적재적소에 적절한 언어요소를 사용할 수 있기 때문에 미래의 변화를 쉽게 수용할 수 있기 때문에 결론 더 좋은 프로그래머가 되기 위해선, ECMA-334, 33..
item 49, C# 2.0의 주요 특징 이 포스트를 만든 목적 책에서 키워드를 얻어 인터넷에서 정보를 찾아 보기 위해서 이 포스트의 준비물 Firefox 3.6.8 참고 서적 Effective C# 내용 책의 내용도 좋지만, 현재 4.0 까지 나왔기 때문에, 모두 다 정리할 순 없다. 그러므로 링크로 대체한다. 닷넷 프레임워크 1.1 ~ 4.0 까지의 변천사 구글링어 : http://tinyurl.com/36fsdvm 여담 .. : )
item 48, 활용할 수 있는 다양한 툴과 리소스에 대해서 알아두라. 이 포스트를 만든 목적 공부 하려고 참고 서적 Effective C# 내용 C++ 에서는 이런 말이 있다. boost를 모르는 너는 현재 시간 낭비중이다. ... 마찬가지로 C#에서도 개발에 도움을 주는 라이브러리, 툴, 리소스 등이 있다. 이런 것들은 개발자의 시간을 절약해 주므로, 알아 두는게 좋다. NUnit - .NET 언어를 위한 유닛 테스팅 프레임워크이며, JUnit과 거의 똑같다. - 책에선 소스를 보는것이 많은 도움이 되므로, 소스도 보라고 한다. 링크 : http://www.nunit.org/ 국내 : http://pureholic.net/625, http://moogi.tistory.com/5 FXCop - 어셈블리 분석 도구이며, managed code 어셈블리만 분석할 수 있다. -..
item 47, 안전한 코드가 더 좋다. 이 포스트를 만든 목적 책 보려고 이 포스트의 준비물 gVim 7.3 참고 서적 Effective C# 참고 링크 http://msdn.microsoft.com/en-us/library/930b76w0(28VS.90).aspx (영어) - 영어라 보기가 힘들다. 샘플코드가 많은것도 아니다. http://msdn.microsoft.com/en-us/library/52kd59t0%28v=VS.90%29.aspx (영어) - 영어라 보기가 힘들다. 샘플코드가 많은것도 아니다. http://www.devpia.co.kr/MAEUL/Contents/Detail.aspx?BoardID=18&MAEULNO=8&no=1066&page=28 (한글) http://dalbong2.net/entry/%EC%97%B0%EC%..
item 46, Interop를 최소화하라 이 포스트를 만든 목적 책 보려고 이 포스트의 준비물 gVim 7.3 참고 서적 소설같은 C# 3판 Effective C# 참조 링크 http://www.swig.org/ 내용 Interop은 무엇인가? 다른 언어로 개발된 어셈블리(DLL 등)를 특정 환경에서 사용할 수 있게 하는 기술을 뜻한다. C# Interop은 무엇인가? CLR을 사용하지 않는 어셈블리(DLL 등)을 CLR 에서 사용 될 수 있게 하는 기술을 뜻한다. 왜 Interop을 최소화 해야 하는가? 비용의 문제 때문에 예) managed 힙과 unmanaged 힙 사이를 오고가는 marshalling 비용 managed 와 unmanaged 를 오고가는 코드 작성 비용 때문에 그럼에도 불과하고, C# Interop을 사용해야 한다면, 다..
item 45, 견고한 예외 보증 기법이 더 좋다. 이 포스트를 만든 목적 그냥 이 포스트의 준비물 gVim 7.3 Microsoft Visual C# 2010 Express 참고 서적 Effective C# Exceptional C++ Style 내용 견고한 예외 보증(보장:guarantee)란 무엇인가? 예외 처리를 잘하라는 이야기이다. 다행히도 이미 선구자들이 C++ 에서 견고한 예외 보증기법을 정립시켜 두었다. 어떠한 견고한 예외 보증 기법이 존재하는가? 기본 보장 (basic guarantee) - 자원 누수가 일어나지 않는 정도 강한 보장 (strong guarantee) - 기본 + 예외가 발생하면, 이전 상태로 되돌리는 정도 (트랜젹션적인 성향 정도) 무실패 보장(nofail guarantee) - 예외가 아예 발생하지 않는 정도 C#만 특..
item 44, 애플리케이션에 특화된 예외 클래스를 완벽하게 작성하라. 이 포스트를 만든 목적 무슨 말인지 알고 싶어서 이 포스트의 준비물 gVim 7.3 Microsoft Visual C# 2010 Express 참조 서적 Effective C# 내용 왜 어플에 특화된 예외 클래스를 만들어야 하는가? 그것은 예외가 어디서 어떻게 발생되었는지 정확하게 알기 위해서이다. 어떻게 어플에 특화된 예외 클래스를 만들 수 있는가? ApplicationException 클래스를 상속받아 구현해 주면 된다. ApplicationException 클래스의 생성자중 InnerException을 받는 생성자를 사용해서 많이 쓰는것으로 보인다. 자세한 내용은 샘플 코드를 보고 감을 잡길 바란다. using System; using System.IO; using System.Runtime.Ser..
item 43, reflection을 과도하게 사용하지 말라 이 포스트를 만든 목적 왜 그런지 알고 싶어서 공부하려고 이 포스트의 준비물 gVim 7.3 (7.3을 쓰고 있긴 한데, 뭐가 더 좋아졌는지 모르겠다. :) ) 참고 서적 Effective C# 내용 왜 reflection을 과도하게 사용하면 안되는가? reflection으로 객체 생성할 때, 객체가 생성 디지 않을 수 있는 문제 때문에 맛보기 코드 - reflection 사용시 NULL 이 나올 수도 있다는 예제 public class TestType { public TestType(int a) { } public void Hello() { int a = 3; } } // case 1 static public void DangerCase1() { Type t = typeof(TestType); Test..