소스 짤 때 어떻게 하시나요?

mcom7573의 이미지

아직 프로그래밍 초기단계인데

소스짤 때 어떻게 하시나요?

아직까지는 무식하게 int main부터 쓰고

논리나 알고리즘의 체계화 이런거 없이 생각나는대로 써내려가고

무한 컴파일 돌리는데요~

순서도나 의사코드 이런것들... 아니면 알고리즘을 미리 구상해보는 작업...

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

snowall의 이미지

음...

저도 그렇게 하긴 합니다.

그런데 머릿속에 전체 로직과 알고리즘이 들어있지 않으면 안좋은 것 같네요.

저는 일단 굴러가는 프로그램을 만든 후, 세부적인 것들을 뜯어고치는 방식으로 개발합니다.

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

clique의 이미지

바로 슈도코드로 표현할 수 있을 정도면 python으로 대략 동작가능한 코드 작성 후 c로 재작성(메인이 이쪽이라),

알고리즘을 평가해봐야 하거나 조금 복잡하면 종이에 낙서좀 해보고 계산좀 해보고 슈도코드 작성. 이네요

hsnks100의 이미지

전체적인 틀을 머리속에서 완성 시키고 앞으로 코딩할 계획을 주석으로 답니다.

// 여기선 A 작업

// 여기서 B 작업

풀어야 할 문제가 많이 복잡한 경우 키보드에서 손을 떼고 종이에 알고리즘을 구상합니다.

----------------------------------------------------
개인 블로그: https://kangssu.com

aral1의 이미지

저랑 비슷하시네요.
역시 손을 움직여서 종이에 직접 그릴때 머리도 잘 돌아가는거 같아요^^

creatorJinsang의 이미지

많은 분들이 초보때부터 수도코드 등 이용해서 잘 체계화 하라고 햇는데 아직 그 버릇은 못들였어도 종이에 손으로 그리면서 흉내내고 있네요ㅋㅋ

snowall의 이미지

http://kldp.org/node/120205

이런글이 있었네요

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

cz201의 이미지

제 경우는 거시적인 블록도 정도는 한번 그려 놓고 시작합니다.
세세한 순서도는 많은 노력을 필요로 하지만 전체 시스템에 대한 대략적인 블록도는 큰 노력이 들지도 않고, 작업이 끝날 때까지 훌륭한 지도의 역할을 해 줍니다.
C++을 이용한 프로그램이라면, 보통 클레스들 사이의 상관관계 주고받을 데이터 역할 등을 간단한 그림으로 그려줍니다.
C를 이용한 프로그램은 보통 하드웨어가 포함되는 경우가 많아서 하드웨어까지 하나의 시스템으로 보고 블록도를 그려 줍니다.

저는 아직 학부생이고 보통 혼자서 소스를 짜기 때문에, 아직까지 3000줄 이상 나가는 프로그램을 짜 본적이 없어서 확신하긴 어렵지만, 한번 작성해 놓은 블록도는 덩치가 큰 소스일수록 도움이 많이 되는 느낌입니다.

익명_사용자의 이미지

저는 걷습니다.

신선한 바깥공기를 쐐며 하늘을 보고,
천천히 걸으며 머리속으로 구상을 시작합니다.

가끔은 벤치에 앉기도 하고요.

그렇게 10~20분걷으며 머리속으로 디자인을 짭니다.
돌아와서는,

hsnks100님처럼, 방금생각한 디자인을 토대로 앞으로 코딩할 계획을 주석으로 답니다.
// 여기선 A 작업
// 여기서 B 작업

행여나 막히는 부분이 있으면, 다시 밖으로 나갑니다. -_-

왠만큼 완성할때까지는 컴파일조차 하지 않습니다.
생각하는데로..그냥 써나가기

댓글 달기

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