[Java] Java 코딩스타일에 대해서

김영재의 이미지

C, C++만 사용하다가 java를 배워보려고 자북을 보고 있습니다.

여기서 기본적으로 다음 코드는 자바 스타일입니다.

public class Test1 {
public static void main(String[] args) {
int a = 1; //int type의 a변수선언
int b = 2; //int type의 b변수선언
int c = a + b; //int type의 c변수선언
System.out.println("a b 의 합은 : " + c); //c의 결과 출력
}
}

여기서 C++에서는 다음과 같이 쓰거든요.
public class Test1
{
public static void main(String[] args)
{
int a = 1; //int type의 a변수선언
int b = 2; //int type의 b변수선언
int c = a + b; //int type의 c변수선언
System.out.println("a b 의 합은 : " + c); //c의 결과 출력
}
}

뭐 문법적으로야 어떻게 쓰던 상관없겠지만 자바로 코딩할 땐 자바처럼 쓰고
C++로 코딩할 땐 C++스타일로 쓰고 이렇게 하는게 좋을 지 아니면 제가 익숙한 C++스타일로 통일해서 코딩하는게 좋을지. 어떨까요?

ps) 자바에서 위와같이(또 다른 코딩스타일도 포함해서) 쓰는 특별한 이유가 있는지요?

futari의 이미지

통일하시는게 좋으실 듯 합니다.

특별한 이유는 없구요

말 그대로 관습.이죠...

근데 indent 원래 안쓰시는건가요? 아님 코드가 아니라서 저런건지...

-------------------------
The universe is run by the complex interweaving of three elements: matter, energy, and enlightened self-interest.
- G'kar, Babylon 5

lacovnk의 이미지

public class Test1 {
    public static void main(String[] args) {
        int a = 1; //int type의 a변수선언
        int b = 2; //int type의 b변수선언
        int c = a + b; //int type의 c변수선언
        System.out.println("a b 의 합은 : " + c); //c의 결과 출력
    }
}


public class Test1
{
    public static void main(String[] args)
    {
        int a = 1; //int type의 a변수선언
        int b = 2; //int type의 b변수선언
        int c = a + b; //int type의 c변수선언
        System.out.println("a b 의 합은 : " + c); //c의 결과 출력
    }
}

요렇게요 :)

글쓸때 위에 보면 Code라고 버튼있습니다;

(게시판 끈적이에도 적혀있는 내용이지요 :) )

Zeroidle의 이미지

전 예전에는

public static void main (String[] args)
{
   .....
   .....
}

이런식으로 썼었는데요..

하다보니까

public static void main (String[] args) {
   ....
   ....
}

이게 보기가 더 쉬워지더라구요

처음에는 위에꺼가 보기가 쉽다고 생각했었는데..

왜그럴까요 ㅡ.ㅡ; 전 프로그래머도 아닌데 ㅠ.ㅠ
ㅡ,.ㅡ;;의 이미지

Zeroidle wrote:
전 예전에는

public static void main (String[] args)
{
   .....
   .....
}

이런식으로 썼었는데요..

하다보니까

public static void main (String[] args) {
   ....
   ....
}

이게 보기가 더 쉬워지더라구요

처음에는 위에꺼가 보기가 쉽다고 생각했었는데..

왜그럴까요 ㅡ.ㅡ; 전 프로그래머도 아닌데 ㅠ.ㅠ

프로그램을 짜보시거나 디버깅해보시면 차이가 납니다.
그냥 눈으로 볼때는 {이것이 한줄을 차지하고 있는것이 보기에 않좋다고 생각이 드는게 당연한게 아닌가하는.. 하지만 알고벼면 }도 어차피 한줄을 차지하고 있죠.
if나 함수가 수없이 나오다보면 함수의 끝이 다음함수의 끝으로 착각하는경우를 방지하기 위해서라도 {을 }과 짝을 맞추어주는게 편리합니다.
참고로남녀성차별금지 이후
프로그래밍계에서는 "{" "}" 차별금지 방안이 추진되고 있다는....믿거나말거나.ㅡ,.ㅡ;;


----------------------------------------------------------------------------

atie의 이미지

그동안 C/C++를 하셨더라도, Java는 Sun의 관례를 따르는게 좋을 겁니다. 항상 내가 짠 소스만 보는 것이 아니라 타인의 소스를 볼 때 나와 스타일이 다른 것을 보려면 힘들죠. 그런면에서 Sun의 관례가 대세입니다.

이거보다는

try
{
    statements; 
}
catch (exception-declaration) {
    statements; 
}
finally {
    statements;
}

이게 보기가 쉽죠.

try {
    statements; 
} catch (exception-declaration) {
    statements; 
} finally {
    statements;
}

동일한 주제 : http://bbs.kldp.org/viewtopic.php?t=39895

----
I paint objects as I think them, not as I see them.
atie's minipage

initiative의 이미지

저 같은 경우도 C, VC++ 과 자바를 왔다갔다하는데..
가끔 혼란스럽기는 하지만 개발이란게 혼자하는 것이 아니라 팀이 구성되어 최종적으로 산출물을 만들어내는 것이니만큼 언어에 맞는 코딩규약을 지키는 게 좋습니다.

이는 나의 소스를 타인이 인계받아 작업할 수 있는 경우도 생기며 프로젝트 통합 테스트 수행시에 팀원의 공통의 이해를 이끌어내야하기 때문입니다.

그래서 프로젝트 초기에 '개발표준지침서'를 통하여 코딩 스타일에 대하여 가이드라인-code convention- 을 설정하게 됩니다.-심지어 indentation 탭 간격까지.-

자바의 경우
http://java.sun.com/docs/codeconv/
을 참고하세요.

With Everlasting Passion about new Tech. and Information!

김영재의 이미지

아 감사합니다. 자바의 경우는 링크걸어주신 문서를 보니 도움이 많이 되었습니다. 그러면 C++(저같은 경우 주로 VC++에서 작업을 많이 합니다) 경우에는 표준이 될만한 Coding Convention이 있는지요?

initiative의 이미지

"c code convention" 구글링하면 나옵니다.

http://www.chris-lott.org/resources/cstyle/

여기보면 C, C++ 코딩 스타일에 대하여 많은 사람들이 내놓은것이 있습니다. 리누스 토발즈꺼도 보이네요..

With Everlasting Passion about new Tech. and Information!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.