Code Smell 142 - 생성자의 쿼리
4623 단어 javaoopdatabaseprogramming
TL;DR: Constructors should construct (and probably initialize) objects.
문제
솔루션
문맥
레거시 코드에서 데이터베이스는 비즈니스 개체와 올바르게 분리되지 않습니다.
생성자는 부작용이 없어야 합니다.
단일 책임 원칙에 따라 유효한 객체만 빌드해야 합니다.
샘플 코드
잘못된
public class Person {
int childrenCount;
public Person(int id) {
childrenCount = database.sqlCall("SELECT COUNT(CHILDREN) FROM PERSON WHERE ID = " . id);
}
}
오른쪽
public class Person {
int childrenCount;
// Create a class constructor for the Main class
public Person(int id, int childrenCount) {
childrenCount = childrenCount;
// We can assign the number in the constructor
// Accidental Database is decoupled
// We can test the object
}
}
발각
[X] 반자동
린턴은 생성자에서 SQL 패턴을 찾아 경고할 수 있습니다.
태그
잘못된
public class Person {
int childrenCount;
public Person(int id) {
childrenCount = database.sqlCall("SELECT COUNT(CHILDREN) FROM PERSON WHERE ID = " . id);
}
}
오른쪽
public class Person {
int childrenCount;
// Create a class constructor for the Main class
public Person(int id, int childrenCount) {
childrenCount = childrenCount;
// We can assign the number in the constructor
// Accidental Database is decoupled
// We can test the object
}
}
발각
[X] 반자동
린턴은 생성자에서 SQL 패턴을 찾아 경고할 수 있습니다.
태그
결론
우려 사항의 분리가 핵심이며 강력한 소프트웨어를 설계할 때 결합이 주요 적입니다.
더 많은 정보
학점
사진 제공: Callum Hill on Unsplash
My belief is still, if you get the data structures and their invariants right, most of the code will kind of write itself.
피터 도이치
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
이 기사는 CodeSmell 시리즈의 일부입니다.
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 7분 읽기
#codenewbie
#tutorial
#codequality
#beginners
Reference
이 문제에 관하여(Code Smell 142 - 생성자의 쿼리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mcsee/code-smell-142-queries-in-constructors-37f8
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
My belief is still, if you get the data structures and their invariants right, most of the code will kind of write itself.
소프트웨어 엔지니어링 좋은 인용구
Maxi Contieri ・ 12월 28일 '20 ・ 13분 읽기
#codenewbie
#programming
#quotes
#software
코드에서 냄새 나는 부분을 찾는 방법
Maxi Contieri ・ 2021년 5월 21일 ・ 7분 읽기
#codenewbie
#tutorial
#codequality
#beginners
Reference
이 문제에 관하여(Code Smell 142 - 생성자의 쿼리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcsee/code-smell-142-queries-in-constructors-37f8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)