Java 프로그래머가 준수 해야하는 "분야"는 무엇입니까?
1. 코드에 댓글을 추가하십시오. 댓글을 추가하기 위해 몇 번이나 "잊어 버렸습니까? 실제로 주석은 프로그램에 기능 기능을 추가하지 않습니다. 그러나 2 주 전에 작성된 코드를 몇 번이나 보았으며 그것이 무엇을하는지 기억할 수 없습니까? 당신은 그 무정한 코드가 스스로 작성된 것이 운이 좋으며, 당신은 여전히 당신의 마음에 잔여 인상을 가질 것입니다. 불행히도, 대부분의 경우 코드는 다른 사람이 작성했으며 그 사람은 회사를 떠났을 것입니다. "오고 가고 가고, 상호 이익이있다"는 속담이 있습니다. 그래서 프로그래머는 서로를 배려하고 코드에 대해 의견을 제시해야합니다.
2. 나는 이것을 복잡하게하지 말고 , 나는 당신이 동일하다고 생각합니다. 개발자는 복잡한 방법을 사용하여 간단한 문제를 해결하는 경향이 있습니다. 우리는 5 명의 사용자 만있는 시스템에 EJB를 도입하여 프레임 워크가 필요하지 않은 애플리케이션, 속성 파일, 객체 지향 솔루션 및 스레드를 사용하는 응용 프로그램에 대한 프레임 워크 세트를 구현했지만 전혀 필요하지 않습니다. 왜 이렇게 했습니까? 어떤 사람들은 더 나은 해결책이 있다는 것을 알지 못할 수도 있지만, 다른 사람들은 새로운 것을 배우기 위해 의도적으로 또는 단순히 재미 있기 때문에 할 수 있습니다. 더 나은 솔루션을 모르는 사람들은 숙련 된 프로그래머의 조언을 더 많이 들어보십시오. 개인적인 목적을 위해 순전히 디자인을 복잡하게하는 사람들에게는 더 전문적이라는 것이 좋습니다.
3. 기억하십시오 - "더 적은 것이 더 많음"을 명심하십시오. 고효율 코드가 좋은 것은 아니지만, 많은 경우 효율적인 코드 라인이 높을수록 높을수록 더 높습니다. 다음 "간단한"예를 참조하십시오.
if (newstatuscode.equals ( "sd") && (solloffdate == null || Todaydate.compareto (solloffdate) <0 || (LastusedDate! = null && todaydate.compareto (lastuse ddate)> 0) || (NewStatusCode. Equals ( "Obs") && (Obsdate == NULL || TodayDate.comPareto (ObsDate))) {NewStatuscode = "NYP";조건이 무엇인지 지적하는 것이 얼마나 어려운가요? 이 코드를 쓴 사람이 제 1 조를 따르지 않았다고 다시 상상해보십시오. 코드에 댓글을 추가하십시오.
조건이 2 인 경우 진술을 분해하는 것이 더 쉽지 않습니까? 이제 수정 된 코드를 살펴 보겠습니다.
if (newStatusCode.equals ( "SD") && (SelloffDate == NULL || TODAYDATE.COMPARETO (SOLLOFFDATE) <0 || (LastOussDate! = NULL && TodayDate.comPareto (Lastuse DDate)> 0))) {NewStatusCode = " nyp ";} else if (newstatuscode.equals ("Obs ") && (Obsdate == null || Todaydate.compareto (ObsDate) <0)) {newstatuscode ="nyp ";}이것이 더 나은 가독성이 아닌가? 실제로, 우리는 반복적 인 진술을 썼습니다.
4. "하드 코딩을 제발"하지 마십시오. 그러나 또 다른 가능성은이 교훈을 따름으로써 우리는 "시간이 지침"의 딜레마에 빠지지 않을 것입니다. 정적 최종 변수를 정의하고 코드 줄을 추가하는 데 얼마나 걸립니까? 예를 들어:
공개 클래스 {공개 정적 최종 문자열 S_CONSTANT_ABC = "ABC";이제 문자열 "ABC"를 변수와 비교해야 할 때마다 우리는 그것이 무엇인지 기억하지 않고 a.s_constant_abc를 참조합니다. 이 상수를 수정하는 것도 매우 편리합니다.
5. 자신의 프레임 워크를 발명하지 마십시오. 이미 수천 개의 프레임 워크가 있으며 대부분은 여전히 오픈 소스입니다. 많은 프레임 워크는 매우 완벽한 솔루션이며 수천 개의 시스템에서 사용되었습니다. 우리는 최신 인기있는 프레임 워크에주의를 기울이고 적어도 표면에 익숙해 져야합니다. 가장 성공적이고 널리 사용되는 예 중 하나는 Struts 프레임 워크입니다.이 프레임 워크는 웹 시스템을 구축하는 데 탁월한 선택이되는 오픈 소스 웹 프레임 워크입니다. 그러나 당신은 제 2 조의 교훈을 기억해야합니다 (번역가의 주 : 원본 텍스트는 "제 3 조"이며, 단순한 것을 복잡하게하지 마십시오. 개발하려는 시스템에는 3 개의 인터페이스 만 있으면 Struts를 사용하지 않으면 "제어"가 필요하지 않습니다 (번역기 주 : Struts는 MVC로 나눕니다. C는 컨트롤러입니다. 저자는 "제어"가 많이 필요하지 않다고 말했다).
6. 라인과 문자열 연결을 인쇄하지 말아야합니다. 디버깅의 편의를 위해 프로그래머는 System.out.println을 사용하여 자신에게 말한 후 삭제합니다. 그러나 우리는 종종 이러한 줄을 삭제하는 것을 잊어 버리거나 테스트 후에도 코드를 변경 해야하는 System.out.println을 사용하지 않습니다. 이는 실수로 삭제 해야하는 코드 줄로 이어질 수 있습니다. System.out.println의 피해를 과소 평가하지 마십시오. 다음 코드를 참조하십시오.
public class badcode {public static void acculationwithprint () {int i = 0; i <10000; i ++) {system.out.println (someval ue = somevalue+i); () {int i = 0; i <10000; i+i; 계산 된 프린트 ()};아래 표에서 볼 수 있듯이 계산 () 메소드의 실행 시간은 0.001204 s입니다.
(이와 같은 테이블을 만드는 방법을 알고 싶다면 WSAD를 사용한 Java 프로파일 링 "WSAD와의 Java 프로파일 링"다른 기사를 읽으십시오)
CPU 폐기물을 피하기 위해 가장 좋은 방법은 다음과 같이 래퍼 방법을 도입하는 것입니다.
공개 클래스 BADCODE {public static int debug_mode = 1; = myPrintmethod (logmode, somevalue)} int logmode, double value) static void main (string [] n) {badcode.calculationwithprint (badcode.production_mode)};문자열 연결은 CPU를 폐기하는 또 다른 방법입니다. 다음 예를 참조하십시오.
공개 정적 void concateNatestrings (String StartString) {int i = 0; i <20; i ++) {startingstring+startingstring}} concateNatestringstringstringbuffer (Stringbuffer sb = new stringbuffer); Append (startingstring);아래 표에서 StringBuffer를 사용하는 데 0.08 초가 필요하다는 것을 알 수 있습니다.
7. GUI에주의를 기울이십시오. 얼마나 우스운 소리를 내더라도 여러 번 알아 차린 한 가지가 있습니다. GUI는 응용 프로그램의 성공에 중요합니다. IT 관리자는 종종 GUI의 중요성을 무시합니다. 많은 회사는 돈을 절약하기 위해 웹 디자이너를 고용하지 않습니다. Java 프로그래머는 제한된 HMTL 지식에 의존해야합니다. 나는 "사용자 친화적"보다는 "컴퓨터 친화적"인 많은 응용 프로그램을 보았으며 소프트웨어 개발 및 사용자 인터페이스 개발에 능숙한 개발자에게는 드물다. 불행히도 인터페이스 개발을하도록 할당 된 Java 프로그래머 인 경우 다음 3 가지 규칙을 따라야합니다.
a. 바퀴를 재발 명하지 마십시오. 응용 프로그램 시스템과 유사한 인터페이스를 보려면 이동하십시오.
b. 먼저 프로토 타입을 만듭니다. 이 단계는 매우 중요합니다. 고객은 미리 사용하고 싶은 것을보고 싶어합니다. 또한 고객이 싫어하는 것을 만들기 위해 열심히 노력하는 대신 피드백을 얻을 수 있습니다.
c. 사용자의 모자를 시도해보십시오. 즉, 사용자의 관점에서 요구 사항을 봅니다. 예를 들어, 통계 인터페이스는 페이징 될 수 있습니다. 개발자는 고객의 관점에서 많은 문제를 줄일 수 있기 때문에 페이징을 무시할 수 있습니다. 이는 데이터가 수백 줄이 될 수 있기 때문에 좋은 솔루션이 아닙니다.
8. 문서 요구 사항을 미리 준비하십시오. 각 비즈니스 요구 사항은 문서에 기록됩니다. 이것은 동화에서 달성 될 수 있지만 실제로는하기가 어렵습니다. 시간이 아무리 빡빡하더라도 마감일이 아무리 가까워 지더라도 비즈니스 요구가 기록되어 있는지 확인해야합니다. (번역가의 노트 :이 개념은 분명히 민첩한 개발과 상반됩니다. 모든 사람은 독립적으로 생각하고 잘못된 것과 구별해야합니다)
9. 단위 테스트, 단위 테스트, 단위 테스트 (단위 테스트. 단위 테스트) 단위 테스트 방법에 대한 세부 사항에 대해 논의하지 않을 것입니다. . 이것은 프로그래밍에서 가장 기본적인 규칙이며 무시할 수 없습니다. 동료가 코드에 대한 테스트 계획을 만들 수 있다면 더 나을 것입니다. 단위 테스트 계획을 수행 할 때 다음과 같은 원칙을 따르십시오.
a. 인코딩하기 전에 단위 테스트를 쓰십시오
b. 단위 테스트에 대한 의견을 유지하십시오
c. 단위 테스트는 "흥미로운"공개 방법에 필요합니다 ( "흥미로운"은 가장 일반적인 Getter/Setter와 같은 방법 이외의 방법을 의미하지만 자체 내용을 포함합니다.)
10. 제품 문제, 마감일 또는 기타 비상 사태로 인해 제 시간에 일을 할 수 없다는 것을 알고 있습니다. 그러나 관리자는 일반적인 문제에 대해 너무 늦어서 감사하지 않을 것입니다. 위의 열의 원리를 따르면 더 강력하고 버그없는 프로그램을 작성하게됩니다. 이것이 당신이 가장해야 할 일입니다.
이 기사는 Java 프로그래머가주의를 기울여야하는 가장 중요한 10 가지 규칙을 요약합니다. 아는 것만으로는 충분하지 않으며 따르십시오. 이러한 규칙이 우리가보다 전문적인 프로그래머가 될 수 있기를 바랍니다.