내 연락처 정보
우편메소피아@프로톤메일.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
목차
목차
구체적인 내용은 다음과 같습니다.
(1) 엔터티 계층: 엔터티 계층은 데이터베이스의 객체에 해당하는 특정 객체 엔터티를 저장합니다.
(2) DAO 레이어: (두 개의 레이어(dao의 인터페이스 레이어와 dao의 구현 레이어)로 나눌 수 있음)는 일부 데이터베이스 추가, 삭제, 수정 및 쿼리 작업을 포함하여 데이터베이스와 상호 작용하는 레이어입니다.
(3) 서비스 계층(두 개의 계층(서비스 인터페이스 계층 및 서비스 구현 계층)으로 나눌 수 있음): 주로 비즈니스 모듈의 논리적 애플리케이션 설계를 담당합니다.
(4) 컨트롤러 계층: 컨트롤러 계층은 특정 비즈니스 모듈 프로세스의 제어를 담당합니다. 컨트롤러 계층은 프런트엔드 및 백엔드 상호 작용, 프런트엔드 요청 수락, 서비스 계층 호출, 반환된 데이터 수신을 담당합니다. 서비스 계층을 거쳐 최종적으로 특정 페이지와 데이터를 클라이언트에 반환합니다.
(5) Util 계층: 도구 계층은 일반적으로 사용되는 도구 클래스를 배치합니다. 예를 들어 몇 가지 일반적인 메서드를 util 함수로 작성하면 전체 코드가 단순화될 수 있습니다.
(6) 예외 레이어: 통합된 반환 예외 레이어를 작성할 수 있습니다.
(7) 필터 레이어: 신원 인증을 균일하게 필터링하는 필터 레이어입니다. 필터가 통과하지 못하면 게스트 모드로만 사용됩니다.
DTO는 프런트엔드 요청에 의해 전송된 데이터 구조입니다.
VO는 프런트엔드에서 보낸 요청에 대한 응답으로 백엔드에서 반환하는 응답입니다.
PO는 객체 엔터티와 데이터베이스 객체 테이블 간의 실제 대응입니다.
BO는 비즈니스 처리 프로세스의 객체 엔터티입니다.
중국어 병음이 아닌 영어로 이름을 지어주세요.
화려하지 않고 이해하기 쉽습니다.
일반적인 이름 대신 혹 이름을 사용하세요.
간격을 두고 줄 바꿈을 사용하고 긴 문단으로 작성하지 마십시오.
개인주의적이지 말고 주석을 달아주세요.
자바 자체에서 특별한 의미를 갖는 키워드, 예약어 등을 사용하지 마세요! ! !
(1) 테이블 이름은 고유하며, 여러 테이블 이름이 동일한 이름을 사용할 수 없습니다.
(2) 테이블 이름은 소문자와 밑줄을 조합해야 합니다. 대문자나 특수 문자는 사용하지 마십시오. "user_info"나 "tbl_user" 또는 "tbl_user_info"를 사용하십시오.
(3) 키워드와 충돌하지 않으며,like, desc, range, match, Delay 등 예약어를 비활성화하려면 MySQL 공식 예약어를 참조하세요.
(4) 데이터베이스 필드 이름: "user_id", "user_name", "user_password", "user_register_time", "user_login_time"과 같이 영문 26자(대소문자 구분)와 밑줄 '_'로 구성됩니다.
(5) 기본 및 외래 키 사양:
기본 키: pk_+테이블 이름
예를 들어:pk_main
외래 키: fk_+슬레이브 테이블 이름+_+기본 테이블 이름
예를 들어:fk_sub_main
(1) 클래스 주석:
클래스 주석(클래스)은 주로 클래스의 용도와 작성자, 생성 날짜 버전, 패키지 이름 등과 같은 일부 정보를 선언하는 데 사용됩니다.
/**
* @버전: V1.0
* @author: 펜도
* @className: 사용자
* @packageName: 사용자
* @description: 사용자 클래스입니다.
* @데이터: 2024-07-01 12:20
**/
(2) 메소드 주석(생성자):
/**
* @author: 펜도
* @methodsName: 사용자 추가
* @description: 사용자 추가
* @param: xxxx
* @return: 문자열
* @던짐:
*/
(3) 코드 블록 주석: 코드의 특정 부분의 목적을 설명합니다.
/**
* 사용자 인스턴스화
* xxxxxxxx
*/
사용자 user=new User();
(4) 단일 문장 주석: 개별 코드에 주석을 달기
User user=new User(); //사용자 인스턴스화
다른 사람이 이해할 수 있도록 이름을 지정하고, 카멜 표기법으로 이름을 지정하고 대소문자를 구분합니다.
예: UserController, FileController, BookService
예: getUserName(), userLogin(), getMessage();
예: MAX_STOCK_COUNT / CACHE_EXPIRED_TIME
1) 단일 객체를 얻는 방법 앞에는 get이 붙습니다.2) 여러 객체를 얻는 방법은 다음과 같이 목록 접두사가 붙고 복수형으로 끝납니다.3) 통계값을 구하는 방법 앞에는 count가 붙는다.4) 삽입 방법 앞에는 저장/삽입이 붙습니다.5) 삭제 방법 앞에는 제거/삭제가 붙습니다.6) 수정된 메소드 앞에는 update가 붙습니다.
1) 데이터 객체: xxxDO, xxx는 데이터 테이블의 이름입니다.2) 데이터 전송 객체 : xxxDTO, xxx는 해당 사업 분야에 관련된 이름입니다.3) 표시 개체: xxxVO, xxx는 일반적으로 웹 페이지의 이름입니다.
이는 기존 객체를 사용할 때 큰 함정이 됩니다. 판단에는 같음 방법을 사용하는 것이 좋습니다.
긍정적인 예:(1) 오류 범위를 지정합니다. 두 부동 소수점 숫자의 차이가 이 범위 내에 있으면 동일한 것으로 간주됩니다.뜨다 ㅏ = 1.0F - 0.9층 ;뜨다 비 = 0.9층 - 0.8층 ;뜨다 차이 = 1e-6F ;만약에 ( 수학 . 복근 ( ㅏ - 비 ) < 차이 ) {체계 . 밖으로 . 인쇄하다 ( "진실" );}(2) BigDecimal을 사용하여 값을 정의한 후 부동 소수점 연산을 수행합니다.BigDecimal a = 새로운 큰 소수점 ( "1.0" );BigDecimal b = 새로운 큰 소수점 ( "0.9" );BigDecimal c = 새로운 큰 소수점 ( "0.8" );큰 소수점 x = ㅏ . 덜다 ( 비 );BigDecimal y = 비 . 덜다 ( 씨 );만약에 ( 엑스 . 비교하다 ( 와이 ) == 0) {체계 . 밖으로 . 인쇄하다 ( "진실" );}
식별자 유형 | 명명 규칙 | 예 |
패키지 | 고유한 패키지 이름의 접두사는 항상 소문자 ASCII 문자이며 일반적으로 com, edu, gov, mil, net, org 또는 1981년에 지정된 국가를 식별하는 영어 2문자 코드와 같은 최상위 도메인 이름입니다. ISO 3166 표준. 패키지 이름의 후속 부분은 여러 조직의 내부 명명 규칙에 따라 다릅니다. 이러한 명명 규칙에서는 특정 디렉터리 이름의 구성을 사용하여 부서, 프로젝트, 컴퓨터 또는 로그인 이름을 구분할 수 있습니다. | com.sun.eng com.apple.quicktime.v2 edu.cmu.cs.보빅.치즈 |
클래스 | 명명 규칙: 클래스 이름은 대소문자를 혼합하여 사용하는 명사이며 각 단어의 첫 글자는 대문자입니다. 클래스 이름을 간결하고 설명 가능하게 유지하세요. 전체 단어를 사용하고 약어를 사용하지 마세요(URL, HTML과 같이 약어가 더 널리 사용되지 않는 한). | 클래스 Raster; 클래스 ImageSprite; |
인터페이스 | 명명 규칙: 사례 규칙은 클래스 이름과 유사합니다. | 인터페이스 RasterDelegate; 인터페이스 저장; |
행동 양식 | 메소드 이름은 대소문자 혼합의 경우 첫 번째 단어의 첫 글자는 소문자이고 다음 단어의 첫 글자는 대문자인 동사입니다.낙타 케이스 명명 | 달리다(); 빨리 뛰어(); getBackground(); |
변수 | 변수 이름을 제외하고 클래스와 클래스 상수를 포함한 모든 인스턴스는 대소문자가 혼합되어 있으며 첫 번째 단어의 첫 글자는 소문자이고 다음 단어의 첫 글자는 대문자입니다. 변수 이름은 밑줄이나 달러 기호로 시작할 수 없지만 구문상으로는 허용됩니다. 변수 이름은 짧고 설명적이어야 합니다. 변수 이름은 기억하기 쉽도록, 즉 목적을 나타내도록 선택해야 합니다. | 목록<User> 사용자 목록; 문자열 사용자 이름; |
상수 | 클래스 상수 및 ANSI 상수 선언은 모두 대문자로 이루어져야 하며 단어는 밑줄로 구분되어야 합니다. (오류가 쉽게 발생할 수 있는 ANSI 상수는 피하십시오.) | 정적 최종 int MIN_WIDTH = 4; 정적 최종 int MAX_WIDTH = 999; 정적 최종 int GET_THE_CPU = 1; |
a) GET: 서버에서 리소스를 가져옵니다. (선택 작업으로 볼 수 있음)b) POST: 서버에 새 리소스를 생성합니다. (삽입 작업으로 간주될 수 있음)c) PUT: 서버의 리소스를 업데이트합니다. (업데이트 작업으로 볼 수 있음)d) DELETE: 서버에서 리소스를 삭제합니다. (삭제 작업으로 간주될 수 있음)
code
:http 상태 코드 message
: 해당 텍스트 설명 정보 data
list
dict
- {
- "code": 200,
- "message": "new user has created",
- "data": {
- "id": "user-4d51faba-97ff-4adf-b256-40d7c9c68103",
- "firstName": "crifan",
- "lastName": "Li",
- "password": "654321",
- "phone": "13511112222",
- "createdAt": "2016-10-24T20:39:46",
- "updatedAt": "2016-10-24T20:39:46"
- ......
- }
- }
(3) 응답 상태 코드
오류:
2XX 성공
200 ok(요청 성공)
204 콘텐츠 없음(요청이 성공했지만 결과가 반환되지 않음)
206 부분 콘텐츠(클라이언트가 리소스의 일부를 요청하면 서버가 성공적으로 응답하고 다양한 리소스를 반환함)
3XX 리디렉션
301 영구적으로 이동(영구 리디렉션)
302 찾음(임시 리디렉션)
303 see other(요청에 해당하는 리소스에 대한 다른 URI가 있으므로 GET을 사용해야 함을 나타냄)
요청된 자원을 얻기 위한 방법)
304 수정되지 않음(클라이언트가 리소스에 대한 조건부 액세스를 사용할 때 서버가 리소스를 찾았지만 요청 조건이 조건을 충족하지 않음을 나타냅니다. 리디렉션과 관련이 없습니다)
307 임시 리디렉션(302와 동일한 의미)
4XX 클라이언트 오류
400 잘못된 요청(요청 메시지에 구문 오류가 있음)
401 무단(인증 필요(첫 번째 반환) 또는 인증 실패(두 번째 반환))
403 금지됨(서버에서 요청을 거부했습니다)
404 찾을 수 없음(요청한 리소스를 서버에서 찾을 수 없음)
5XX 서버 오류
500 내부 서버 오류(서버에서 요청을 실행할 때 오류가 발생함)
503 서비스 이용 불가(서버가 과부하 상태이거나 유지보수로 인해 다운되어 요청을 처리할 수 없음)
설명하다: nginx의 기본 제한은 1MB이고 tomcat의 기본 제한은 2MB입니다. 비즈니스상 더 큰 콘텐츠를 전송해야 하는 경우 서버 측 제한을 늘릴 수 있습니다.
설명하다: try 블록의 return 문이 성공적으로 실행된 후 즉시 return하지 않고 finally 블록의 문을 계속 실행합니다. 여기에 return 문이 있으면 가차 없이 여기로 return하고, 가차 없이 return 블록을 삭제합니다. 차단해 보세요.
링크: 링크를 클릭하면 apifox를 직접 다운로드할 수 있습니다(최신 버전만 다운로드하면 됩니다). Apifox - API 문서화, 디버깅, 모의 및 테스트를 위한 통합 협업 플랫폼입니다. 인터페이스 문서 관리, 인터페이스 디버깅, Mock, 자동화 테스트 등의 기능을 갖추고 있으며, 인터페이스 개발, 테스트, 공동 디버깅의 효율성이 10배 향상됩니다. 최고의 인터페이스 문서 관리 도구이자 인터페이스 자동화 테스트 도구입니다.https://apifox.com/에 오신 것을 환영합니다.
1. 팀을 만들고 새 프로젝트를 만듭니다.
팀원을 초대하세요
2. 새 인터페이스와 새 데이터 모델을 만듭니다.
(1) 요청이 무엇인지 결정합니다(POST, GET, PUT, DELETE).
(2) 테스트 환경은 통합되어야 하며, 다른 환경의 URL은 다릅니다.
(3) 요청 매개변수는 다음과 같이 구성됩니다.
어떤 매개변수가 구성되어 있나요? 매개변수 예시, 중국어 이름, 매개변수 설명을 제공하세요.
(4) 응답은 다음과 같이 구성되어야 합니다.
예를 들어 상태에 따라 어떤 정보가 반환되는지 명시해야 하고, 성공 사례와 예외 사례도 있어야 한다(프론트 엔드의 편의를 위해).
- {
- "code": 200,
- "message": "登入成功",
- "data": {
- "user_id": 27,
- "user_name": "孟霞",
- "user_password": "123456",
- "user_age": "15",
- "user_photo": "http://dummyimage.com/400x400",
- "user_last_time": "1996-12-11 09:03:49",
- "user_indentity": "messager",
- "user_birthday": "2024-02-23"
- }
- }
(5) 데이터 모델을 생성할 수 있습니다:
여러 가지 데이터 모델을 만들 수 있는데, 이는 응답 필드를 반환하는 데 매우 편리하고 프런트 엔드에서 데이터 필드를 보는 데도 편리합니다.
apifox의 작성 사양 및 구체적인 세부 사항입니다.
Apifox 빠른 시작 | Apifox 도움말 문서https://apifox.com/help/ 도움말
(1) API 인터페이스 문서의 시작 부분에 소개가 있어야 합니다. 이 섹션에는 다음이 포함될 수 있습니다.
이 부분의 목적은 독자들이 API 인터페이스의 기본 상황과 배경 정보를 이해할 수 있도록 하는 것입니다.
(2) 인터페이스 목록
다음으로 API 인터페이스 문서에서 모든 인터페이스를 나열해야 합니다. 각 인터페이스에는 다음 정보가 포함되어야 합니다.
이 절의 목적은 독자가 각 인터페이스의 기본 정보를 빠르게 이해하고 문서에 포함된 예제를 기반으로 인터페이스를 올바르게 사용할 수 있도록 하는 것입니다.
(3) 요청 매개변수와 응답 매개변수에 대한 설명
인터페이스 목록 다음에는 각 인터페이스에 대한 요청 매개변수와 응답 매개변수를 자세히 설명해야 합니다. 이 섹션에는 다음 정보가 포함되어야 합니다.
매개변수 유형 및 형식의 경우 표준 데이터 유형 및 형식을 사용하거나 특정 상황에 따라 고유한 데이터 유형 및 형식을 정의할 수 있습니다. 필수 여부와 기본값은 실제 상황에 따라 결정해야 합니다.
(4) 오류 코드 설명
API 인터페이스를 사용하다 보면 오류가 발생하는 경우가 있는데, 이 경우 오류의 종류와 원인을 설명하기 위해 오류 코드를 반환해야 합니다. 따라서 API 인터페이스 문서에서는 가능한 모든 오류 코드를 지정해야 합니다. 이 섹션에는 다음 정보가 포함되어야 합니다.
이 섹션의 목적은 독자가 가능한 모든 오류 유형과 원인을 이해하고 설명서의 예제를 기반으로 오류를 올바르게 처리할 수 있도록 하는 것입니다.
(1) 특정 작업:
테스트 클래스 정의
제안:
테스트 클래스 이름: 테스트된 클래스 이름 Test CalculatorTest
패키지 이름: xx.xx.xx.test cn.itcast.test
테스트 방법 정의: 독립적으로 실행 가능
제안:
메소드 이름: 테스트 메소드 이름 testAdd()
반환 값: 무효
매개변수 목록: 빈 매개변수
메소드에 @Test 추가
Junit 종속성 환경 가져오기
판정 결과:
빨간색: 실패
녹색: 성공
우리는 일반적으로 예상 결과와 출력 결과를 처리하기 위해 Assert 클래스 아래의 정적 메서드인 AssertEquals(expected, Actual)를 사용합니다.
Assert.assertEquals(3, result);
두 매개변수는 다음과 같습니다. 예상 값 프로그램 결과 값
테스트 결과를 처리하기 위해 Assert.assertEquals(예상, 실제)를 사용하는 이유는 무엇입니까?
빨간색은 실패를 나타내고 녹색은 정확성을 나타낸다고 규정했기 때문입니다. 컴퓨터의 덧셈 방법을 테스트하기 위해 테스트 방법을 사용할 때, 우리는 이 결과만 출력합니다(예외가 발생하지 않는다는 가정 하에). 1과 3을 입력하면 4라는 결과를 얻을 것으로 기대하는데, 우리가 출력하는 것은 2이고, 우리가 얻을 것으로 기대하는 것은 4이다. 이때 얻은 결과는 기대에 미치지 못하지만, 실행 결과는 여전히 녹색이다. (올바른 것을 나타냄), 맞지 않는 것 아닌가요? 이때 마지막에 Assert의 AssertEquals 메소드를 사용하여 예상값과 프로그램에서 출력한 결과값을 비교할 수 있으며, 같으면 녹색이 됩니다. 동일하지 않으면 빨간색이 됩니다. 이번에는 녹색과 빨간색에 대한 우리의 정의를 충족합니까?
- package cn.itcast.test;
-
- import cn.itcast.junit.Calculator;
- import org.junit.Assert;
- import org.junit.Test;
-
- public class CalculatorTest {
- /**
- * 测试add方法
- */
- @Test
- public void testAdd(){
- Calculator c = new Calculator();
- int a = 1, b = 2;
- int result = c.add(1, 2);
- Assert.assertEquals(3, result);
- }
-
- /**
- * 测试sub方法
- */
- @Test
- public void testSub(){
- Calculator c = new Calculator();
- int a = 1, b = 2;
- int result = c.sub(1, 2);
- Assert.assertEquals(-1, 2);
- }
- }
-
@전에
테스트 메서드 앞에 @Before를 추가하면 초기화 메서드가 됩니다. 이 메서드는 모든 테스트 메서드가 실행되기 전에 자동으로 실행됩니다. 일반적으로 리소스 적용에 사용됩니다.
@후에
테스트 메서드 앞에 @After를 추가하면 리소스 해제 메서드가 되어 모든 테스트 메서드가 실행된 후 자동으로 실행된다.
@Before로 장식된 메서드는 테스트 메서드가 실행되기 전에 실행됩니다.
@After로 데코레이팅된 메소드는 테스트 메소드가 실행된 후에 실행됩니다.
@Before 또는 @After로 수정된 메소드는 테스트 메소드 발생 여부에 관계없이 실행됩니다.
(2) Test 클래스 플러그인 자동 생성
(1) 백엔드에 인터페이스 문서를 작성할 때는 프런트엔드가 이해할 수 있도록 명확하고 명확하게 작성해야 하며, 정형화된 방식으로 직접 작성하지 마십시오. . 다시 작성된 이름과 기본값 인터페이스 응답을 잘 작성해야 합니다.
(2) 강의 내용 외에도 이메일 인증 등록, 인증코드 로그인, c3p0, MD5 암호화, 로그 로그, 결과 스타일 등 기타 사항을 스스로 학습할 수 있습니다.
(3) 코드 작성도 표준화되어야 하며 논리가 엄격해야 합니다. (쿠키, 세션) 설정은 공허한 판단이 필요하고 보안이 강화될 수 있는 경우에는 이를 통해 배울 수 있습니다.
(4) 프론트엔드와 백엔드가 잘 협력해야 한다. 프론트엔드에게 아무 말도 하지 않고 백엔드가 자기 일만 하게 해서는 안 된다. 프런트엔드와 백엔드의 대화형 응답도 평가의 일부로 큰 부분을 차지합니다. 작성한 인터페이스는 apifox를 통해서만 실행할 수 없습니다. 특정 프런트엔드 페이지에 표시될 때 오류가 있습니까? ? 논리적인 문제 등이 있는지 고려해야 합니다.
(5) 수요 분석 중에 수행하려는 기능과 인터페이스를 명시하십시오. 일부 기능을 수행했지만 프런트엔드에서 수행하지 않은 경우 수행한 작업에 백엔드가 필요한 경우 해당 기능을 푸시할 수 있습니다. 인터페이스/데이터, 작성하지 않았다면 신중하게 반성하고 더 많이 소통하세요.
실제로 작동하는 프로젝트 또는 쇼핑 웹사이트와 같은 유사한 프로젝트를 벤치마킹할 수 있습니다. 그런 다음 이 웹사이트에 있을 수 있는 백엔드 인터페이스, 기능 모듈 및 구체적인 세부 사항을 Taobao에 대해 벤치마킹해야 합니다.
(6) 맹목적으로 더 많은 것을 추구하지 말고 논리적이고 합리적으로 단순화할 수 있는 부분을 단순화하는 법을 배우십시오. 하지만 기본 인터페이스 수와 코드 볼륨도 보장되어야 합니다. (원래 작성한 인터페이스는 기본적으로 40개 이상이었습니다.)