내가 짠 코드를 내가 이해 하지 못 할 때...

사랑천사의 이미지

이럴 때 어떻게 하죠? 계속 읽어 보면 다시 이해가 갈 까요? 아니면 처음부터 그 코드가 잘못 되어 잇었던 걸까요??? 음.

그런 경우들 없으신지.. 사실 좀 오래 되긴 했어요 만든지.. 그렇다고 이렇게 이해가 안 가나.. 다시 시작 해야 하는데 코딩을 문제군요.

jachin의 이미지

한 번에 보면 이해할 수 있는 함수라면 모르겠지만...

특정 목적을 위해 만든 함수라면 주석은 필수죠.

덧붙여 전체 시스템 흐름도와 각 블럭의 기능에 대해서 나온 것도 있다면 최고라 생각합니다. :)
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

atie의 이미지

부엌에 자주 들락거려야 양념통, 조미료통이 어디 있는지 알 수 있는 것이겠지요.
----
I paint objects as I think them, not as I see them.
Ubuntu Edgy user / Ubuntu KoreanTeam

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

서지훈의 이미지

주석이 없고, 당장 필요한 코드 아니면 새로 짜세요...
그게 속편하고 빠른길입니다.
안보이는 코드 계속 보다가는 더 꼬이는 코드가 나오는게 일반적입니다.

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <beer.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

dormael의 이미지

저도 지난 코드를 보면 잘 이해를 못합니다.
주석을 잘 안달거든요.

그나마 이름(메소드, 변수)에 의미를 두면서 네이밍 하는 편이라 그거로 삽질합니다.

오래된 코드를 설계 문서나 주석이 없으면 이해 못하는건 당연한게 아닌가 생각합니다.
하지만 게으름 때문에.. 일정이 바쁘다는 핑계로.. ㅋㅋ

-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.

사랑천사의 이미지

어쩔 수 없이 제가 만든걸 제가 보면서 분석하고 부족한 것을 주석 설치 해 가면서... 다시 코딩 들어갔습니다. 이러다가 꼬여서 나중에 프로그램 처리 속도 떨어져 버리면 난리 나는 건데... 윽.

주석을 적절하게 잘 달아 놔야 한다는건 귀가 막히도록 많이 들은 이야기고 저도 코드를 가지고 와서 도움을 청하는 사람들이나 프로그래밍을 처음 배우려고 하는 사람들이 도움을 청할 때 주석 잘 달아 놓고 하라고 하지만 정작 저 스스로는 잘 하질 못 하고 있습니다. 이래서야.. 아직 저는 코더의 수준을 못 넘어 선 거 같습니다.

부엌에 자주 들락거려야 양념통, 조미료통이 어디 있는지 알 수 있는 것이겠지요.

이거... 정말 맞는 말씀이십니다. 비유가 적절하십니다.
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사

winner의 이미지

과거의 source 를 분석하는 것도 도움이 될 겁니다.

과거의 자신은 지금의 자신과 다르기 때문에 다른 사람이 작성했다고 생각하세요.

M.W.Park의 이미지

클래스나 모듈 레벨의 주석도 과거에 작성한 코드 이해에 상당히 도움이 됩니다만,
요즘들어 절실히 느끼는 것은 테스트 코드도 못지않게 많은 도움이 되더라구요.
테스트 코드 작성하기를 추천합니다.

-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

나빌레라의 이미지

코드 본체를 봐서 이해가 안될때는 우선 주석을 봅니다.
그래도 이해 안될때는 한번 흐름을 따라가 봅니다.
그래도 이해 안될때는 유닛테스트 코드를 봅니다.
아울러 유닛테스트 만들때 작성해 두었던 TODO 문서도 봅니다.

M.W.Park 님께서 쓰신것 처럼 테스트 코드가 상당히 도움이 많이 되더라구요.

앞으로 코드 만드실때, 유닛테스트를 생활화 해보십시오.
코딩의 색다른 재미가 느껴집니다. ^^;
--------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

사랑천사의 이미지

저는 유닛 테스트가 무슨 말인지 정확히 잘은 모르겠지만, 코드를 조금씩 만들고 하나 하나 기능을 추가 하면서 계속 해서 테스트를 해 가면서 만듭니다. 어느정도 이상의 틀이 짜여 졌다 싶으면 그 기능이 정상 작동 하는지 보기 위해 테스트 데이터를 삽입하고 여러가지 종류의 테스트를 감행 하고 그러면서 버그를 잡고 그 다음 단계로 진행 하는 방식을 씁니다.(근대 다들 그렇게 하시는거 아닌지...)

앞으론 좀 더 열심히 주석 붙이는 것을 습관화 해야 겠습니다. 주석이 아예 안 달린 것도 있더군요 보니 젠장! 주석을 달면 보통은 세 부분으로 나눠서 달고 있습니다. 알고리즘이나 구현 방식에 대한 것은 중간 중간에 끼워 넣지만 함수나 클레스 레벨에선 이게 뭘 하는 녀석인지 여기에 들어가는 주요 인자나 구성 요소가 뭐가 있는지, 함수의 경우 반환 되는 반환값이 어떤 의미를 가지거나 어떤 자료이고 어떤 자료형인지 등을 적어 두는데 앞으론 소스가 잘 이해 안 될 때를 대비해서 좀 더 일목요연한 주석을 달아야 겠습니다. 이거 내년 되기 전에 완성 해야 되는 건데 다른 일 하느라 소스를 잠시 놓았더니 이꼴이네요 ㅎㅎㅎ!
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사

나빌레라의 이미지

http://en.wikipedia.org/wiki/Test_driven_development
를 한번 방문 해 보시고..
저 페이지 밑에 있는
http://en.wikipedia.org/wiki/Test_driven_development#Automatic_test_frameworks
에 있는 링크를 한번 둘러 보시고, 예제 코드 같은거 한번 봐 보세요.

그리고 서점 가면 '테스트주도형개발' 이라는 책이 있습니다. (인사이트에서 출판됐을 겁니다..)

이미 프로그래밍을 하시면서 계속 테스트를 추가 하신다고 하셨는데, TDD 로 개발하면 보다 체계적으로 테스트를 넣어가며 작업 하실 수 있을 겁니다.

작년 쯤인가.. 김창준씨와 퍼키옹께서 주최하셨던 무슨 프로그램 대회였는데, 참가자 거의 대부분이 유닛테스트로 문제 푸는거 보고 놀랐었죠..

몇번 하다보면, 그다음부턴, 뭔가를 만들때, 유닛테스트 안하면, 뭔가 불안하고.. 왠지 잘 안돌아갈것 같고... 막 그러실겁니다...^^;
-------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

사랑천사의 이미지

지금도 사실 테스트 안 하고 만들다 보면 불안합니다. 중간 중간 테스트가 잇어야 프로그래밍 하는 맛이 난다랄까요 으윽... 아무튼 보긴 한번 봐야 겠군요... 빨리 스케너를 구해야 뭘가 책을 자유롭게 볼 수 잇을 거 같은데.. ㅋㅋ..

텍스트 인식(필체 인식에 가까울려나..) 하는 프로그램과 그런 프로그램에 잘 맞는 스케너좀 추천 해 주세요 혹시 쓰시는 분들 계시면... 아는 프로그램은 아르미 밖에 없어서 흐흠...
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사

honeamis의 이미지

소스 작성시보다 실력이 향상돼서 단지, 소스코드가 맘에 들지 않는 것 아닐까요? ^^;;

---
민법 제 2 조 제 2 항 - 권리는 남용하지 못한다.

민법 제 2 조 제 2 항 - 권리는 남용하지 못한다.

사랑천사의 이미지

설마 그럴리가요... 뭐.. 보다 보면 마음에 안 드는 것이 많은 것도 사실이긴 하지만, 단지 그것 만은 아닌 거 같습니다. 솔직히 여러가지 정리 하다 보면 많이 조잡 하다... 그런 생각도 듭니다. 이전 소스들... 수 많은 편법들 마음에 들지 않는 알고리즘과 처리 방법들.. 훗.. 어쩔 수 없는 거죠. 한마디로 주접입니다. 근대 역시 그것만이 이유는 아닌 듯 해서 써 본 글이었지요 후후
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사