보면 식은 땀 줄줄 나는 섬뜩한 코드를 작성하려면 어떻게 해야 하나요?

sammykim의 이미지


[당연히, 많이 짜보고 많이 겪어보면 되겠지만..]
- 30대 초반인 선임급들이랑 요즘 같은 문제로 동일한 시간에 같이 해결하는 중인데,, 그분들 코드 보면.. 정말 어떻게 설계도 안하고 머리로 깔끔하게 짤수각 있지..? 라는 생각이 드는데.. ㅠㅠㅠㅠㅠㅠ

저도 항상 머리로는 모듈별로 잘 나눠서 짜야지 하고는,,(일단 효율적이고 자시고는 둘째치고,, 유지보수 용이하게라도..)

짜다보면 뒤죽 박죽 섞여서,,

역할 기능 별로 나뉘어져 있지도 않고,

가령 메타데이터가 있는 파일이 있다고 치고,
그 파일에 맞는 이미지를 그리는 렌더링 엔진을 만든다고 하면..

파일을 읽어오고, 토큰화 하고/ 파싱하는 부분/ 파싱 된 데이터로 그리는 부분/

이렇게 잘 구조화 되어 있어야 되는데..

제 코드는 그리는 부분에 파싱하는 부분도 있고,, 파싱하면서 토큰화도 하고 뭐가 뒤죽 박죽이네요.ㅠㅠㅠㅠㅠ

무시무시한 코드를 작성하는 노하우 없나요..?

sohn9086의 이미지

식은 땀 쫙 나는 코드를 겨루는 대회가 있습니다.
작년 수상작품에 한국분이 계시는 듯 하네요.
http://www.ioccc.org/years.html#2012

생산적인 댓글을 달자

어허야의 이미지

퇴고도 없이 단박에 쓰여진 명저가 있지도 않을테고 그러해야할 필요도 없듯이, 프로그램 작성 또한 좋은 프로그램을 '한번에 작성할 수 있느냐'가 아니라 '작성할 수 있는지'가 관건같습니다. '(프로그램을) 잘 짜야지' 하는 생각을 할땐 오버엔지니어링이 되지 않도록 유념하는게 필요한것 같아요. 한번에 잘 작성하려고 노력하기보다는 우선 적당히 써놓고 글을 계속 퇴고하듯, 프로그램 또한 작성한 후에도 계속 리팩토링을 하것도 도움이 되는것 같습니다.

snowall의 이미지

지금 이미 그렇게 잘 짜고 계신것같은데요.

피할 수 있을때 즐겨라! http://melotopia.net/b

익명 사용자의 이미지


예전에 그런한 일을 한 경험이 있어서

그렇지 않을까요?


한 번에 깔끔하게 되는게 하니라,

비슷한 일을 여러번 하다 보니, 나름대로 노하우가 생긴 거겠죠...

k1d0bus3의 이미지

예를들면
GPL 코드를 수정/추가 할때, 난해하게 해서 자신(회사)의 지적재산을 최대한 감추는겁니다.
확실하진 않지만 국내 S사 프로그래머들이 저것때문에 고생하고, 또 저렇게 한다고 들었던거 같습니다.

HDNua의 이미지

정말 생각의 반전이군요.

저는 이렇게 생각했습니다.

k1d0bus3의 이미지

정말 몰라서 물은겁니다.

Necromancer의 이미지

si에서 운영 이관작업 해보시면 됩니다.
개발머신에서 자기가 짠 코드가 잘 돌아갔는데 운영 들어가서 온갖 에러를 내뱉으면 ㅠㅠ

Written By the Black Knight of Destruction

댓글 달기

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