My 100 Tips for Better .NET Code
- 컬렉션 반환 시
Array.Empty<T>()
또는 Enumerable.Empty<T>()
를 사용하여 불필요한 메모리 할당 방지 🗑️.
- 예외를 다시 던질 때
throw;
를 사용하여 스택 트레이스를 유지 StackTrace 🕵️♀️.
lock
대신 SemaphoreSlim
을 사용하여 비동기 코드에서 잠금 구현 🚦.
- LINQ 사용 시 다중 열거를 피하기 위해
.ToList()
또는 .ToArray()
로 즉시 구체화 🧱.
- C# 코드를 빠르게 테스트하기 위해 Crebel CLI 도구 사용 💻.
CollectionsMarshal.AsSpan()
을 사용하여 List<T>의 내부 배열에 접근하여 Span<T> 활용 (주의 필요) ⚠️.
- 로깅 시 문자열 보간 대신 메시지 템플릿을 사용하여 성능 향상 및 필터링 용이 📝.
- C# 12의 빈 형식(Empty Types) 기능으로 간결한 코드 작성 가능 ✂️.
- 컬렉션의 변경 가능성에 따라
ToList()
또는 ToArray()
선택 🔄.
- 어셈블리 마커 인터페이스를 사용하여 DI 등록 코드 가독성 향상 🧩.
- C# 12의 컬렉션 이니셜라이저를 사용하여 컬렉션 초기화 간소화 💐.
- ASP.NET Core API에서 요청별 취소 토큰을 사용 🚫.