클린 코드 팁: 클래스에서 너무 많은 가져오기를 사용하지 마십시오.

4343 단어 cleancode
사실 이 글은 깔끔한 코드를 작성하기 위한 팁이 아니라, 코드 냄새를 지적하는 것을 목표로 하는 글입니다.

물론 코드에서 이 코드 냄새를 발견하면 이를 제거하기 위해 조치를 취할 수 있으며 결과적으로 더 깨끗한 코드가 생성됩니다.

코드 냄새는 쉽게 식별할 수 있습니다. 클래스를 열고 가져오기 목록을 살펴보십시오(C#에서는 파일 맨 위에 있는 using).

너무 많은 가져오기의 실제 예



다음은 실제 예입니다(물론 이름은 검열했습니다).

using MyCompany.CMS.Data;
using MyCompany.CMS.Modules;
using MyCompany.CMS.Rendering;
using MyCompany.Witch.Distribution;
using MyCompany.Witch.Distribution.Elements;
using MyCompany.Witch.Distribution.Entities;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using MyProject.Controllers.VideoPlayer.v1.DataSource;
using MyProject.Controllers.VideoPlayer.v1.Vod;
using MyProject.Core;
using MyProject.Helpers.Common;
using MyProject.Helpers.DataExplorer;
using MyProject.Helpers.Entities;
using MyProject.Helpers.Extensions;
using MyProject.Helpers.Metadata;
using MyProject.Helpers.Roofline;
using MyProject.ModelsEntities;
using MyProject.Models.ViewEntities.Tags;
using MyProject.Modules.EditorialDetail.Core;
using MyProject.Modules.VideoPlayer.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;

namespace MyProject.Modules.Video


익숙한 것 같나요?

일부 C# 기능을 사용하는 데 필요한 가져오기를 제외하면

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;


우리는 외부 모듈에 대한 많은 의존성을 가지고 있습니다.

즉, 해당 네임스페이스의 일부인 클래스 중 하나에서 무언가 변경되면 업데이트하기 어려운 코드가 될 수 있습니다.



또한 모든 수입품과 함께 제공되는 것이 무엇인지 아십니까? 매개 변수가 너무 많은 생성자(실제로 이 클래스에는 생성자에 11개의 종속성이 주입됨)와 코드가 너무 길고 이해하기 어렵습니다(실제로 이 클래스에는 500개 이상의 줄이 있음).

솔루션? 이러한 종속성 분산을 최소화하기 위해 프로젝트를 리팩터링합니다.

마무리



모든 가져오기(C#에서는 using 키워드 사용)가 있으면 코드가 너무 많은 일을 한다는 좋은 지표입니다. 부정 행위(예: 전역 가져오기 사용) 없이 이러한 가져오기를 최소화하는 데 집중해야 합니다.

즐거운 코딩하세요!

🐧

좋은 웹페이지 즐겨찾기