자바 코딩 스타일...

이한길의 이미지

다들 어떻게 하시는지 궁금하네요...

저는 보통....

void test()
{
}

이런식인데... 일반적으로는...

void test() {
}

이렇더군요. 책들도 그렇고 자바 튜토리얼의 소스들도 그렇구요...
혹시 줄을 아낄려구 그랬나 했더니... 템플릿들도 그렇더군요...

다들 어떻게 하시는지 궁금합니다.

댓글

serialx의 이미지

그런 면에 있어서 저는 저런걸 굳이 따질 필요 없는 파이썬이 좋습니다.

요즘 C++로 코딩 중인데, 회사 사내 코딩 컨벤션 따라하느라고 골머리 썩고 있습니다. ㅠ.ㅠ

Darkcircle의 이미지

void main(){
}
이런 형식을 주로 쓰는데
비주얼 스튜디오에서 코드를 짤때는
편집기의 정책에 의해 자동적으로

void main()
{
}

이렇게 되더군요. 차라리 위에거보다 덜 혼동되는건...
위의 경우에는 괄호가 비슷하게 겹쳐지니
가끔 괄호를 빼먹어도 못알아채는 경우가 있습니다.
특히 화면이 뿌옇게 된 오래된 CRT를 볼때나.. 눈이 침침할때 더더욱...

--------------------------------------------------------------
피곤함 1테라톤을 가방 보따리에 주섬주섬 짊어메고 다니는 아이 . . . Orz

---------------------------------------------------------------
폐인이 되자 (/ㅂ/)

mengguo의 이미지

원래 정해진 규칙은

타입 이름(파라미터)
{

}
이지만 관습상
타입 이름(파라미터) {
}
을 쓰는 사람들이 더 많습니다.

이것은 두가지 이유가 따른다고 봅니다.
한가지는 보기에 깔끔하고
또 다른 한가지는 if문의 else작성시
if ( true ) {
가라 30;
} else {
가라 50;
}
처럼 else문의 앞 뒤에서 쓰던것으로부터 유래되여 사용된 관습이라고 보아집니다.

저도 가끔 두번째 방법을 택하지만.
C++ 코딩을 할 때는 전방참조 문제랑이 있어 첫째 방법이 더 쓰이군 합니다.

두가지가 다 규칙은 없고 그저 관습상, 프래그래머의 습관상 굳어진것이라고 봅니다.
하지만 거의 모든 프레임워크들은 첫번째 방식.
if ( true )
{
}
else
{
}
를 따르더군요.

많이 배울께요~V_V 내가 알면 배워두 주구요~~ 웬걸~Q_Q

codepage의 이미지

여기 글을 쓰시는 분들이 근무하시는 회사의 정책의 문제라고 생각합니다.
제 경우도 한길님처럼 하는데..
한 5000라인쯤 되는 소스 코드 중 '{'하나 빼먹었을 때 에러 줄줄이 나는 경우 겪어 보신 분은 알 겁니다.
요즘은 개발 툴이 잘 발달되어서 하이라이팅 기능이 있지만..
C이건 JAVA이건 간에 소위 Readability(가독성)을 생각한다면
그리고 내가 짠 코드 남이 보면서 겪는 어려움을 생각한다면 절대로 그렇게 못 짭니다.
그럼 즐프하세요.

HotPotato의 이미지

Quote:
내가 짠 코드 남이 보면서 겪는 어려움을 생각한다면 절대로 그렇게 못 짭니다.

저흰 그런 분들이 안계십니다. 업주(ㅡㅡ;)님이 개발에서 손떼신 후로는 도무지 안지켜지더군요.

--
즐 Tux~

codepage의 이미지

위에 글 안올라간 줄 알고 다시 썼는데요..삭제할 수 없어서..그냥..^^

bluewall99의 이미지

후후 내가 얼마나 심혈을 기울여 짠 코드인데 남에게 보기 쉽게 만들어주기 싫은 맘두 있죠.

내가 만든건데 내가 없어도 코드 유지 보수가 쉽게 되면 열받자나 ㅡㅡ^;

훗 리눅스 커널의 복잡한 코드 처럼 가끔 어렵게 짜주는것두 나쁘지 않음

가끔 듣보잡 메크로와 포인터의 화려한 기술을 활용해야

free1002의 이미지

Python 같은 멀티 페러다임 언어인 경우.. OO 적으로 작성할 수도 있고

Functional Style 로도 작성할 수 있습니다. 특히 map, list comprehension 등을 이용하면

코드가 꽤 짧아지죠. 꼭 이러한 상황이 아니더라도, 타 언어들에의 Syntactic Sugar들을 이리 저리

쓰고 나면 굉장히 깔끔해지고 상황에 따라 언어 컨셉에도 맞고 추후 변경 비용도 적은 추상성이 높은 코드가 나옵니다.

문제는 이 코드를 같이 있는 팀원들이 전혀 이해할 수 없다고 합니다. 이 경우

이 코드는 어떻게 해야 할까요?

HotPotato의 이미지

조건문 쓸 때만 바로 뒤에 붙여서 쓰는데 문단이 길어질수록 내용을 이해하기가 힘들어집니다.
특히 조건문 내 조건이 길어지면 줄바꿈을 하게 되니까요.

class AClass
{
  public AClass()
  {
  }
 
  void main()
  {
    int x = -1;
    for (int i = 0; i < 3; i++) {
      ..
      if (x == 1) {
      }
    }
  }
}

공백의 미학(일까? 과연??)
저렇게 배웠는데 새 멤버가 들어오면서 안지켜질 때 짜증납니다. (마지막 구 멤버)
더구나 편집기마다 탭 공백 사이즈가 달라서 구조가 쉽게 망가지게 됩니다. eclipse 와 kawa 의 이질감.

if( i == 0 ) 이런 코드가 눈에 띄는 즉시 if (i == 0) 로 바꾸어 버리죠. 쓰읍.

--
즐 Tux~

r0oo0t의 이미지

test()
{
}//end test();

이런식으로 씁니다. 넷빈이나 이클립스에 보면 이런방식으로 셋팅하는 부분도 있죠..

/*********************************
*모든것을 방관하고 지켜보며
*모든것을 창조하고 파괴할수
* 있는 '권한'을 가진 자
*
* 루트 == 신 같은 뜻 아닌가?
*********************************/

/*********************************
*모든것을 방관하고 지켜보며
*모든것을 창조하고 파괴할수
* 있는 '권한'을 가진 자
*
* 루트 == 신 같은 뜻 아닌가?
*********************************/

익명 사용자의 이미지

저는
void main(){
}

보통 이렇게 사용하는대요.

어떤 프로젝트의 PM/PL 이냐에 따라 코딩 스타일이 바뀝니다만,,
개발 문서 표준에 의거해서, 그 규칙이 저거라면 저렇게 따르고, 다르다면 다르게 따라야 한다고 생각합니다.
남에게 강요하기 보다는 그건 프로젝트를 하면서 정해진 약속이니까요.

익명 사용자의 이미지

이글타래를보고있자니
계속 파이썬이 생각나요
프로나 입문자나
모두가 같은 스타일~

cleansugar의 이미지

애플이 이번에 스위프트란 언어를 발표했습니다.

괄호는 아직도 살아있네요.

댓글 첨부 파일: 
첨부파일 크기
Image icon 1030381715_88436a4c.jpg22.33 KB

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

페이지

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.