일반적인 Java 실수를 방지하는 방법
일반적인 Java 실수를 방지하는 방법
보다 생산적인 Java 개발자가 되세요.
전 세계적으로 900만 명의 개발자가 있는 자바(오라클 코퍼레이션)는 세계에서 가장 인기 있는 프로그래밍 언어 중 하나입니다. 자바 런타임 환경(JRE)을 지원하는 다양한 장치에서 프로그램을 실행할 수 있는 매우 다양한 언어이기 때문에 Java에 많은 응용 프로그램 프레임워크가 구축되었습니다. 개발자 주도 커뮤니티는 매우 활발하며 새로운 프로그래머가 사용할 수 있는 심층적인 지원은 점점 더 증가하는 인기에 기여합니다.
Java는 오랫동안 주변에 있었던 이후, 커뮤니티는 표준, 도구, 코딩 패턴을 개발하고 개발자가 몇 번이고 직면하는 일반적인 실수를 완화하는 데 수년을 보냈습니다. 이러한 모든 커뮤니티 주도 이니셔티브는 개발자가 Java와 함께 응용 프로그램을 개발할 때 최대한 생산성을 높일 수 있도록 하는 하나의 공통적인 목표를 가지고 있습니다. 그러나 응용 프로그램 코드에서 모범 사례 나 패턴을 적용하는 경우 개발자에게 책임이 있습니다. 좋은 관행의 시행은 매우 다양하므로 커뮤니티 내에서 의견이 많이 다를 때 코딩 관행에 대한 표준 접근 방식을 갖기가 어렵습니다. 개발자는 온라인 커뮤니티에서 도움을 찾는 데 의존하여 실수로 코딩 문제에 대한 안전하지 않은 솔루션을 제공할 수 있습니다.
개발자가 일반적인 Java 코딩 문제에 대한 보안 솔루션을 구현할 수 있도록 Sensei - IntelliJ 플러그인은 전문 환경에서 사용자 또는 조직에 의해 정의 된 조리법 (또는 규칙)에 따라 나쁜 코딩 패턴을 수정합니다. Sensei 개발자가 한 번의 클릭으로 일반적인 Java 실수(gotchas)를 식별하고 수정할 수 있습니다.
어떻게 알고 계속 읽기 Sensei 몇 가지 일반적인 Java 코딩 실수를 해결하여 개발자 생산성을 향상시킵니다.
개발자를 좌절시키는 반복되는 실수
이러한 일반적인 실수의 한 가지 예는 래퍼 값의 잘못된 같음 검사입니다. 예기치 않은 결과를 방지하기 위해 참조 비교 연산자(===) 대신 동일한 메서드를 사용하여 박스형 프리미티브값을 비교해야 합니다.
예를 들어, 범위 -128 에서 127 범위에서 정수 값에 대한 참조 비교 연산자 (일반적으로) 동일한 메서드와 동일하게 행동한다. 그러나 이 범위 외부의 값과 동일한 비교를 수행하면 결과가 다릅니다. 이는 Java가 언급된 정수 값 범위에 대해 일정한 풀을 유지했기 때문입니다. 동일한 메서드를 사용하면 항상 예상 된 결과가 생성되므로 비교할 수있는 올바른 방법입니다.
이 예제에서는 연산자(===)를 잘못 사용하여 같음을 확인합니다.
이는 다음과 같은 출력을 초래합니다.
참
거짓
거짓
참
비교하는 올바른 방법은 동일한 메서드를 사용하는 것입니다.
그리고 출력은 다음과 같은 것입니다.
참
거짓
참
거짓
이 잘 알려진 모범 사례는 꽤 오랫동안 주변에 있었지만 종종 가장 부적절한 시간에 추한 머리를 올리기 위해 기다리는 레거시 코드에서 잘못 구현됩니다. 그래서 우리는 로컬로 이러한 바람직하지 않은 코딩 패턴을 식별하고 한 번의 클릭으로 수정 프로그램을 적용하는 데 도움이 조리법 (또는 규칙)을 만들었습니다 Sensei.
Sensei 수백 개의 다운로드 가능한 코드 변환 및 마이그레이션 레시피(규칙)와 직접 제작할 수 있는 내장 된 기능으로 입력할 때 바람직하지 않은 코드를 스캔하고 수정할 수 있는 매우 사용자 정의 가능한 IDE 플러그인입니다. 와 Sensei개발자는 잘못된 코드 패턴을 입력할 때 품질 코드를 더 빠르게 제공할 수 있도록 수정하고 궁극적으로 팀과 프로젝트 전반에 걸쳐 일관되고 표준적인 방식으로 작성할 수 있습니다.
어떻게 Sensei 이러한 일반적인 Java 문제를 해결합니다.
만큼 Sensei 당신이 당신의 자신의 조리법을 만들 수 있습니다, 우리는 위에서 언급 한 실수를 해결하기 위해 조리법을 만들었습니다.
이 예제에서는 박스형 원시 유형에서 비교 연산자(==)를 사용하는 위치를 찾으려고 합니다.
A Sensei 레시피는 (YAML에서) 다음과 같습니다.
위의 경우 전체 파일을 입력하거나 구성된 범위, 심지어 전체 코드베이스를 입력할 때 반복되는 잘못된 패턴을 검색할 수 있습니다. 패턴이 발견되면, 자연적인 다음 단계는 온라인으로 검색 할 필요없이 즉시 수정 할 수 있어야합니다. Sensei 지정된 대로 코드를 추가/편집/삭제할 수 있는 수정 프로그램을 만들 수 있습니다. 개발자가 적합하다고 판단되는 여러 수정 프로그램을 제공할 수도 있습니다.
예제에서는 연산자 대신 동일한 메서드를 사용하여 비교를 다시 작성하려고 합니다(==).
사용 가능한 수정 프로그램은 다음과 같이 설명됩니다.
작동 방식:
표준 코딩 가이드라인 을 간편하게 구현
자바 고츠쿡북은 일반적인 실수를 피하고 코드를 깨끗하고 안전하게 유지하는 데 도움이 되는 22가지 레시피를 가지고 있습니다. 개체 같음, 예외 처리, 정규 식 및 컬렉션과 같은 다양한 Java 언어 기능 및 API의 부정확하거나 안전하지 않은 사용을 감지합니다. 채택하 Sensei 그리고이 요리 책은 처음부터 더 나은 코드를 작성하기 시작하고, 심지어, 당신의 고유 한 팀, 프로젝트 또는 조직에 맞게 자신의 조리법을 만들 수 있습니다.
이것은 여러 가지 방법의 한 예일 뿐입니다. Sensei 프로젝트를 표준화하는 데 사용할 수 있습니다. 항상 풀 요청에서 자주 발생하거나 자신을 코딩할 때 자주 발생하는 패턴 방지 또는 특정 수동 코드 변환을 경계할 수 있습니다. 개발자가 자주 놓친 코딩 지침 집합이 있는 경우 가이드라인을 레시피로 변환하여 개발자가 승인된 코드 변환을 자신있게 적용할 수 있습니다.
설치하다 Sensei 이제 자바 고타스 쿡북을 통해 생산적인 개발 경험을 할 수 있습니다. https://sensei.securecodewarrior.com/cookbooks/scw:java
*2021, 개발자 국가, https://www.developernation.net/developer-reports/de20
블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.
Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.
개발자 중심 보안에 대한 최신 연구 보기
광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.
일반적인 Java 실수를 방지하는 방법
보다 생산적인 Java 개발자가 되세요.
전 세계적으로 900만 명의 개발자가 있는 자바(오라클 코퍼레이션)는 세계에서 가장 인기 있는 프로그래밍 언어 중 하나입니다. 자바 런타임 환경(JRE)을 지원하는 다양한 장치에서 프로그램을 실행할 수 있는 매우 다양한 언어이기 때문에 Java에 많은 응용 프로그램 프레임워크가 구축되었습니다. 개발자 주도 커뮤니티는 매우 활발하며 새로운 프로그래머가 사용할 수 있는 심층적인 지원은 점점 더 증가하는 인기에 기여합니다.
Java는 오랫동안 주변에 있었던 이후, 커뮤니티는 표준, 도구, 코딩 패턴을 개발하고 개발자가 몇 번이고 직면하는 일반적인 실수를 완화하는 데 수년을 보냈습니다. 이러한 모든 커뮤니티 주도 이니셔티브는 개발자가 Java와 함께 응용 프로그램을 개발할 때 최대한 생산성을 높일 수 있도록 하는 하나의 공통적인 목표를 가지고 있습니다. 그러나 응용 프로그램 코드에서 모범 사례 나 패턴을 적용하는 경우 개발자에게 책임이 있습니다. 좋은 관행의 시행은 매우 다양하므로 커뮤니티 내에서 의견이 많이 다를 때 코딩 관행에 대한 표준 접근 방식을 갖기가 어렵습니다. 개발자는 온라인 커뮤니티에서 도움을 찾는 데 의존하여 실수로 코딩 문제에 대한 안전하지 않은 솔루션을 제공할 수 있습니다.
개발자가 일반적인 Java 코딩 문제에 대한 보안 솔루션을 구현할 수 있도록 Sensei - IntelliJ 플러그인은 전문 환경에서 사용자 또는 조직에 의해 정의 된 조리법 (또는 규칙)에 따라 나쁜 코딩 패턴을 수정합니다. Sensei 개발자가 한 번의 클릭으로 일반적인 Java 실수(gotchas)를 식별하고 수정할 수 있습니다.
어떻게 알고 계속 읽기 Sensei 몇 가지 일반적인 Java 코딩 실수를 해결하여 개발자 생산성을 향상시킵니다.
개발자를 좌절시키는 반복되는 실수
이러한 일반적인 실수의 한 가지 예는 래퍼 값의 잘못된 같음 검사입니다. 예기치 않은 결과를 방지하기 위해 참조 비교 연산자(===) 대신 동일한 메서드를 사용하여 박스형 프리미티브값을 비교해야 합니다.
예를 들어, 범위 -128 에서 127 범위에서 정수 값에 대한 참조 비교 연산자 (일반적으로) 동일한 메서드와 동일하게 행동한다. 그러나 이 범위 외부의 값과 동일한 비교를 수행하면 결과가 다릅니다. 이는 Java가 언급된 정수 값 범위에 대해 일정한 풀을 유지했기 때문입니다. 동일한 메서드를 사용하면 항상 예상 된 결과가 생성되므로 비교할 수있는 올바른 방법입니다.
이 예제에서는 연산자(===)를 잘못 사용하여 같음을 확인합니다.
이는 다음과 같은 출력을 초래합니다.
참
거짓
거짓
참
비교하는 올바른 방법은 동일한 메서드를 사용하는 것입니다.
그리고 출력은 다음과 같은 것입니다.
참
거짓
참
거짓
이 잘 알려진 모범 사례는 꽤 오랫동안 주변에 있었지만 종종 가장 부적절한 시간에 추한 머리를 올리기 위해 기다리는 레거시 코드에서 잘못 구현됩니다. 그래서 우리는 로컬로 이러한 바람직하지 않은 코딩 패턴을 식별하고 한 번의 클릭으로 수정 프로그램을 적용하는 데 도움이 조리법 (또는 규칙)을 만들었습니다 Sensei.
Sensei 수백 개의 다운로드 가능한 코드 변환 및 마이그레이션 레시피(규칙)와 직접 제작할 수 있는 내장 된 기능으로 입력할 때 바람직하지 않은 코드를 스캔하고 수정할 수 있는 매우 사용자 정의 가능한 IDE 플러그인입니다. 와 Sensei개발자는 잘못된 코드 패턴을 입력할 때 품질 코드를 더 빠르게 제공할 수 있도록 수정하고 궁극적으로 팀과 프로젝트 전반에 걸쳐 일관되고 표준적인 방식으로 작성할 수 있습니다.
어떻게 Sensei 이러한 일반적인 Java 문제를 해결합니다.
만큼 Sensei 당신이 당신의 자신의 조리법을 만들 수 있습니다, 우리는 위에서 언급 한 실수를 해결하기 위해 조리법을 만들었습니다.
이 예제에서는 박스형 원시 유형에서 비교 연산자(==)를 사용하는 위치를 찾으려고 합니다.
A Sensei 레시피는 (YAML에서) 다음과 같습니다.
위의 경우 전체 파일을 입력하거나 구성된 범위, 심지어 전체 코드베이스를 입력할 때 반복되는 잘못된 패턴을 검색할 수 있습니다. 패턴이 발견되면, 자연적인 다음 단계는 온라인으로 검색 할 필요없이 즉시 수정 할 수 있어야합니다. Sensei 지정된 대로 코드를 추가/편집/삭제할 수 있는 수정 프로그램을 만들 수 있습니다. 개발자가 적합하다고 판단되는 여러 수정 프로그램을 제공할 수도 있습니다.
예제에서는 연산자 대신 동일한 메서드를 사용하여 비교를 다시 작성하려고 합니다(==).
사용 가능한 수정 프로그램은 다음과 같이 설명됩니다.
작동 방식:
표준 코딩 가이드라인 을 간편하게 구현
자바 고츠쿡북은 일반적인 실수를 피하고 코드를 깨끗하고 안전하게 유지하는 데 도움이 되는 22가지 레시피를 가지고 있습니다. 개체 같음, 예외 처리, 정규 식 및 컬렉션과 같은 다양한 Java 언어 기능 및 API의 부정확하거나 안전하지 않은 사용을 감지합니다. 채택하 Sensei 그리고이 요리 책은 처음부터 더 나은 코드를 작성하기 시작하고, 심지어, 당신의 고유 한 팀, 프로젝트 또는 조직에 맞게 자신의 조리법을 만들 수 있습니다.
이것은 여러 가지 방법의 한 예일 뿐입니다. Sensei 프로젝트를 표준화하는 데 사용할 수 있습니다. 항상 풀 요청에서 자주 발생하거나 자신을 코딩할 때 자주 발생하는 패턴 방지 또는 특정 수동 코드 변환을 경계할 수 있습니다. 개발자가 자주 놓친 코딩 지침 집합이 있는 경우 가이드라인을 레시피로 변환하여 개발자가 승인된 코드 변환을 자신있게 적용할 수 있습니다.
설치하다 Sensei 이제 자바 고타스 쿡북을 통해 생산적인 개발 경험을 할 수 있습니다. https://sensei.securecodewarrior.com/cookbooks/scw:java
*2021, 개발자 국가, https://www.developernation.net/developer-reports/de20