여러분의 코딩 스타일은?

geekforum의 이미지

프로그래머로서 코드를 만들어 나가다 보면 자기 자신만의 코딩 스타일이 생기게 마련이죠. 똑같은 루틴을 구현한다고 할지라도 실제로 표현된 코드는 사람마다 제각각 다를 것입니다. 문법적으로 완전히 동일한 코드라도 탭사이즈나 스페이스 등을 어떻게 사용하느냐는 만드는 사람 마음이죠.

리눅스 커널의 코딩 스타일은 다음과 같습니다. 전체 내용은 아래 관련 링크를 참조하시고요....

if (x is true) {
[TAB]we do y
}

int function(int x)
{
[TAB]body of function
}

do {
[TAB]body of do-loop
} while (condition);

if (x == y) {
[TAB]..
} else if (x > y) {
[TAB]...
} else {
[TAB]....
}

여러분들은 어떤 스타일로 코딩을 하시는지, 왜 그렇게 하는 것을 좋아하는지요?

댓글

스카리의 이미지

제 개인적인 생각으로 헝가리안 표기법은 그다지 소용없는 일 같습니다.
윈도우 프로그래밍같은 경우에는 아주 쓸만했던것으로 기억합니다만
그 외의 프로그래밍에서는 별 필요가 없어 보이더군요..

그리고 이건 '그냥' 적어두는 말입니다만.

헝가리안 표기법을 만든 사람은 MS 오피스 개발팀 사람이더군요.

Writing Solid Code 란 책을 한번 보시길..
MS 개발팀장이 쓴 책이지만 내용은 훌륭합니다.

익명 사용자의 이미지

정확히 말하면 찰스 시모니가 거의 만들었다고 할 수 있지요. C언어와 Compiler의
문제, 그리고 휴먼 인터페이스의 측면에서는, 특히 기존의 절차적인 Programming
패러다임에서는 Linus가 뭐라고 했던 간에(물론 스타일의 문제지요:-) 실제로
많은 오류를 줄이고 성공적인 프로그램을 만드는데 도움을 준다고 연구결과가
있습니다. 그러나 현대적인 OOP등과 같은 경우에는 짧은 method 또는 message로
이루어 지고 있어서 이런 표기법 보다는 내용에 집중하는 것이 낫다고 알고 있습니다.

익명 사용자의 이미지

찰스 패졸드가 쓴 윈도우 프로그래밍 책(아주 유명하죠)에도 헝가리안 표기법에 대해 간단히 소개가 나옵니다. :)

차현진의 이미지

리눅스 소스의 Documentation/CodingStyle 문서를 보면....

...
Encoding the type of a function into the name (so-called Hungarian
notation) is brain damaged - the compiler knows the types anyway and can
check those, and it only confuses the programmer. No wonder MicroSoft
makes buggy programs.
...

저 개인적으로도 헝가리안 표기법은 쓰잘데 없는짓 같다는 생각이 듭니다.....

아 물론 이것 역시 "스타일"에 대한 부분이지만요...

소내기_의 이미지

do...while은 사용하지 않습니다.(그냥 대부분 while만씁니다.)
tab사이즈는 언제나 4(아무래도 능력이 미약해서, 중첩문을 너무 많이 쓰나봐요.)
for( ..;..;)
{
}
괄호는 언제나 새줄에서 시작.
void
MyClass::MyClass(...)
{
}
리턴타입쓰고 밑에 클래스이름씁니다.
예전에 이만용씨글에서 읽었는데, 이렇게 하는게 보기에 좋다고 하더군요. 하다보니까 익숙해져서 계속쓰죠.
Public, Protected,private함수를 모두 크게 나누어 분리해서 코딩합니다. 그리고, 큰주석은
/**************************
** Public......XxXXX...
****************************/
함수중간에 주석은.
[Tab] /* ....*/
[NoTab] //
기타등등.

스타일은 그렇다치고, 역시 중구난방코딩스타일은
지양해야겠더군요. 머리만 아프고, 코드도 드러워지고,
개인적으로, A4지에 써가면서 합니다.

익명 사용자의 이미지

tab 쓰는 것 귀찮아 왼쪽에 공백없이 주르륵.
그런데 이런 짓 하지 마세요.
나중에 골치 아픔 TT

페이지

댓글 달기

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