1. 속성 파일에서 변경 해야하는 일부 구성 작성
예를 들어, 일부 동시 실행에 사용되는 스레드 수는 속성 파일에서 구성 할 수 있도록 설정되지 않습니다. 그런 다음 프로그램은 DEV 환경과 테스트 환경에서 프로그램이 원활하고 무기력하게 실행될 수 있지만, PROD에 배포되고 더 큰 데이터 세트를 다중 스레드 프로그램으로 처리하면 IOException이 발생합니다. 그 이유는 온라인 환경이 동시에 그것을 일으키고 있기 때문일 수 있습니다. 속성 파일에서 스레드 수를 구성 할 수있는 경우 단일 스레드 응용 프로그램으로 쉽게 만들 수 있습니다. 더 이상 문제를 해결하기 위해 응용 프로그램을 반복적으로 배포하고 테스트 할 필요가 없습니다. 이 방법은 URL, 서버 및 포트 번호를 구성하는 데에도 적합합니다.
속성 파일을 사용하여 이러한 구성을 외부화하는 것이 좋습니다. 파일 형식은 속성, YAML, Hocon 및 JSON이 적용됩니다. 다음 클래스는 자리 표시 자 지원을 포함하여 이러한 형식의 파일에 대한 스프링 주입 지원을 구현합니다.
https://github.com/superhj1987/awesome-libs/blob/mas
2. 시험 중에 온라인 환경을 가능한 한 많이 시뮬레이션하십시오.
생산 프로세스의 일반적인 시나리오는 테스트를 위해 1 ~ 3 계정 만 사용하는 것이며이 숫자는 1,000 ~ 2,000이어야합니다. 성능 테스트를 수행 할 때 사용 된 데이터는 사실이어야합니다. 실제 환경에 가깝지 않은 성능 테스트는 예측할 수없는 성능, 확장 및 멀티 스레딩 문제를 가져올 수 있습니다. 여기서 우리는 또한 사전 방출 환경을 사용하여 몇 가지 문제를 해결할 수 있습니다.
3. 모든 외부 통화 및 내부 서비스에 대해 결함 내성 처리를 수행해야합니다.
RPC 전화이든 타사 서비스 전화이든간에 가용성이 100%임을 당연한 것으로 여길 수는 없습니다. 서비스 호출 시간 초과 및 재시도는 허용되지 않으므로 응용 프로그램의 안정성과 성능에 악영향을 미칩니다.
4. 시스템은 보안 시스템을 설계 할 때 최소 권한의 원칙을 따라야합니다.
웹 서비스는 어디에나 있으므로 해커가 서비스 거부 공격을 위해 쉽게 이용할 수 있습니다. 따라서 시스템을 설계 할 때 "최소 권한"의 원리를 따르고 화이트리스트 및 기타 방법을 채택해야합니다.
5. 다음 문서가 필요합니다
단위 테스트 문서를 작성하고 좋은 코드 적용 범위를 가지고 있습니다.
고급 설계 도면 : 모든 구성 요소, 상호 작용 및 구조를 설명합니다.
자세한 디자인 도면 : 코드 레벨 설계 및 일부 주요 논리 프로세스에 따라.
시스템 구성 문서 : 시스템의 모든 구성 파일, 구성 파일 등을 설명합니다.
데이터베이스 레벨 DML 및 DDL 문서, 특히 SQL 쿼리 문은 DBA 또는 핵심 개발자를 검토하기 전에 검토해야합니다.
전통적인 개발 프로세스뿐만 아니라 민첩한 개발에도 이러한 문서가 필수적입니다. 그렇지 않으면 후속 유지 보수 및 핸드 오버에 큰 불편 함을 유발할 것입니다.
6. 모니터링, 오류 복구, 백업 및 시스템의 기타 주요 기능을 잘 수행하십시오.
시스템의 중요한 기능 모듈의 경우 시스템 작동에 영향을 미치지 않고 추정되지 않은 손실을 유발하도록 모니터링해야합니다. 또한 가능하면 결함을 모니터링 한 후 복구하고 복구가 실패하면 알람을 보내십시오. 매우 중요한 데이터 파일의 경우 갑작스런 고장 및 데이터 손실을 방지하기 위해 중복 백업을 수행해야합니다.
7. 히스토리를 쉽게 추적 할 수있는 열을 설계하고 데이터베이스를 설계 할 때 구성하십시오.
예를 들어, create_time 및 update_time은 레코드의 생성 및 업데이트 시간을 표시 할 수 있습니다. Create_by 및 Update_by는 누가 레코드를 작성하고 업데이트했는지 표시 할 수 있습니다.
또한 레코드 삭제는 때때로 실제로 삭제되지 않습니다. 현재 'Active'또는 'Active' '상태'열과 같은이 레코드의 상태를 나타내는 열을 설계해야합니다.
8. 프로젝트 롤백 계획을 세우십시오
새로운 기능이 시작되면 롤백 계획이 없으면 서두르고 온라인 서비스가 일정 기간 동안 사용할 수 없게 될 수 있습니다. 정서적으로 관련 작업을 수행하고 제어 된 시간 내에 시스템을 실행 가능한 상태로 복원 할 수있는 좋은 롤백 계획이 있습니다.
9. 프로젝트가 시작되기 전에 정량 분석을 수행해야합니다.
프로젝트에 사용 된 메모리, 데이터베이스, 파일, 캐시 등에 대한 정량 분석을 수행해야합니다. 향후 우주 점령을 추정하고 작동 및 유지 보수 기계 할당에 대한 참조를 제공합니다. 데이터 부피의 빠른 성장으로 인해 저장이 충분하지 않다는 것을 방지하십시오. 이것은 매우 중요합니다. 그렇지 않으면 온라인 서비스를 쉽게 사용할 수 없게됩니다.
10. 시스템 배포 계획을 개발합니다.
시스템 배포 플랫폼이 중요한 부분입니다. 배포 플랫폼에 대한 설명은 하나의 서버 또는 두 개의 데이터베이스로 제한 될 수 없습니다. 최소한 포함해야합니다.
11. 가장 적합한 도구/기술을 선택하십시오
대부분의 경우 개발자는 제작 시스템에서 배우고 싶은 언어 나 도구를 사용합니다. 일반적으로 이것은 최선의 선택이 아닙니다. 예를 들어, 이미 관계형 형식 인 데이터에 NOSQL 데이터베이스를 사용하십시오. 언어이든 도구이든, 적용 가능한 시나리오가 있습니다. 우리는 혁신을 추구 할 수 없으며 "자기"를 표준으로 사용할 수 없습니다.
12. 일부 주요 기술 분야에서 충분한 지식 보유가 있습니다.
디자인 패턴
JVM 튜닝 멀티 스레드 "동시성 문제"
GC, 컴퓨팅 및 기타 캐시를 포함한 분산 거래 성능 문제를 포함한 거래 문제
이 기사를 통해 Java 프로그램 개발을 도울 수있는 친구들 이이 웹 사이트에 대한 지원에 감사드립니다!