전체
-
10. 코드 분량 줄이기Technique/Readable Code 2015. 12. 11. 12:53
프로그래머가 배워야 하는 가장 중요한 기술은 언제 코딩을 해야 하는지 아는 것이다.가장 읽기 쉬운 코드는 아무것도 없는 코드다 ■그 기능을 구현하려고 애쓰지 마라 - 그럴 필요 없다. 프로그래머는 어떤 기능을 구현하는 데 필요한 노력을 과소평가하는 경향도 있다. 조잡한 프로토타입을 구현하는 시간을 지나치게낙관적으로 예측하고 그 코드를 유지보수하고, 문서를 만들고, 코드베이스에 새로운 무게를 더하는데 얼마나 많은 시간이 필요한지 자각하지 못한다는 이야기이다. ■ 요구사항에 질문을 던지고 질문을 잘게 나누어 분석하라 프로그램이 반드시 빠르게 동작하고, 100% 정확하고, 모든 종류의 가능한 입력을 처리해야 하는 것은 아니다. 주어진 요구사항을 정말로 잘 분석하면, 적은 코드로 구현할 수 있는 간단한문제를 정..
-
9. 생각을 코드로 만들기Technique/Readable Code 2015. 12. 11. 12:06
할머니에게 설명할 수 없다면 당신은 제대로 이해한 게 아닙니다. - 아인슈타인 복잡한 생각을 다른 사람에게 설명할 때 중요하지 않은 자세한 내용 때문에 듣는 사람을 혼동시키는 일이 종종 있다.자신의 생각을 지식이 부족한 사람에게 전달하는 기술은 매우 소중하다.설명할 내용을 걸러서 요지만 뽑아내는 능력이 요구된다.내용을 잘 이해하게 도울 뿐만 아니라 설명하는 사람 자신도 그 내용을 다시 한 번 명확하게 이해하게 도와준다.작성한 코드를 다른 사람에게 보여줄 때도 같은 기술이 필요하다.코드역시 쉬운말로 작성 되어야 한다- 코드가 할 일을 옆의 동료에게 말하듯이 평범한 영어로 묘사하라 - 이 설명에 들어가는 핵심적인 단어와 문구를 포착 하라- 설명과 부합하는 코드를 작성하라 ■ 논리를 명확하게 설명하기■ 라이..
-
8. 한번에 하나씩Technique/Readable Code 2015. 12. 11. 11:55
한 번에 여러가지 일을 수행하는 코드는 읽기 어렵다. 코드 블록 하나에 새로운 객체를 초기화하고, 데이터를 청소하고, 입력을 분석하고 비지니스 논리를 적용하는 일을 한꺼번에 수행하는 경우도 있다. 이런일이 모두 한자리에 모여 있다면 각각의 작업이 별도로 시작되었다가 완료되는 경우보다 더욱더 이해하기 어렵다.다시 말해서 한 번에 하나의 작업만 수행하게 코드를 구성 해야한다. ■ 함수는 오직 한 가지 작업만 수행해야한다.이러한 말은 항상 함수 수준에 머물러야 하는 것은 아니다. 물론 커다란 함수를 여러 작은 함수로 나누는 것은 좋다.커다란 함수안에 있는 코드를 재조직하여 그 안에 여러 개의 독자적인 논리적 영역이 있는 것 처럼 만들 수 있다. - 코드가 수행하는 모든 작업을 나열한다. - 이러한 작업을 분리..
-
7.상관없는 하위 문제 추출Technique/Readable Code 2015. 12. 11. 11:06
우리는 문제를 해결 하기 위하여 커다란 문제를 작은 문제들로 쪼갠 다음 각각의 문제에 대한 해결책을 구하고 다시 하나의 해결책으로 맞추는 작업을 한다.이러한 원리를 코드에 적용하면 코드는 더 튿튿해지며 가독성도 좋아진다. 큰 흐름에서 작은 하위 문제를 적극적으로 바견해서 추출하라!■ 주어진 함수나 코드 블록을 보고 스스로에게 질문하라 "상위 수준에서 본 이 코드의 목적은 무엇인가?"■ 코드의 모든 줄에 질문을 던져라 "이 코드는 직접적으로 목적을 위해서 존재하는가? 혹은 목적을 위해서 필요하긴 하지만 목적 자체와 직접적으로 상관없는 하위 문제를 해결 하는가?"■ 만약 상당히 원래의 목적과 직접적으로 관련되지 않은 하위문제를 해결하는 코드 분량이 많으면, 이를 추출해서 별도의 함수로 만든다. sql 데이터..
-
6. 변수와 가독성Technique/Readable Code 2015. 12. 10. 22:24
변수를 엉터리로 사용하면 코드를 이해하기 어려워 지는 커다란 이유는 아래와 같다 ■ 변수의 수가 많을수록 기억하고 다루기 더 어려워진다.■ 변수의 범위가 넒어질수록 기억하고 다루는 시간이 더 길어진다■ 변수의 값이 자주 바뀔수록 현재값을 기억하고 다루기가 더 어려워진다. 이러한 문제를 해결하기 위하여... 변수 제거하기가독성에 도움이 되지 않는 변수를 제거하는 방법들■ 불필요한 임시변수 12now = datetime.datetime.now();root_message.last_view_time = now;cs위 코드에서 now변수는 꼭 필요한가? 그렇지 않다. 이유는- 복잡한 표현을 잘게 나누는 것이 아니다- 명확성에 도움이 되지 않는다 datetime.datetime.now는 그 자체로도 명확하다- 한 ..
-
추억의 게임4. 그라나도 에스파다카테고리 없음 2015. 12. 10. 22:16
오늘 이야기 하고자 할 추억의 게임은그라나도 에스파다 입니다.알고 계신 분들도 계실지 모르겠지만.. 일단 한번 이야기를 꺼내 볼까 합니다. 그라나도 에스파다는 2006년 6월에 오픈한 게임으로써imc games 가 개발하고한빛소프트에서 서비스 중인 mmorpg 게임 입니다. 제가 이 게임에 열광한 이유는바로 그라비티를 퇴사한 김학규 대표를 주축으로 만들어진 팀이 imc games 였고거기에서 개발을 했기 때문입니다.앞서 라그나로크를 신나게 즐긴 필자로선 피할수 없는 운명이라고 할까요..?그리고 또 하나 mmc 시스템이였나...?이 게임은 한명의 유저가 최대 3명의 캐릭터를 동시에 컨트롤 하며 게임 할 수있습니다.그당시엔 온라인 게임에선 이런 발상은 거의 처음이었기에제게 있어선 신선한 충격으로 다가 왔습니..
-
[ Animation OST ] Aimer - Last Stardust카테고리 없음 2015. 12. 10. 21:44
안녕하세요 (__)이번에 소개 해 드릴 곡은제 예상 2015 최고의 작품중 하나인 Fate Staynight [Unlimited balde works](이하 ubw )의 삽입곡중 하나인 Aimer 의 Last stardust 입니다. Aimer는 인디 가수로 한창 유명세를 타다건담 UC 의 ost 를 부르면서 확 올라온 가수입니다.그리고 이번 ubw의 2쿨 오프닝을 담당하면서 대중들에게 많이 알려 졌는데요저도 건담uc ost 를 들으면서 알게 되엇습니다. ㅎㅎ제가 Kalafina가 조금 뜨음한 현재 가장 마음에들어 하는 가수입니다. 전 여성이 가진 이 허스키한 목소리를 정말 정말 좋아하는데에이머나, kalafina의 케이코 가 그경우인데요에이머는 ..... 정말 말도 못할 것 같네요 ㅋㅋ제가 avril ..
-
5. 거대판 표현을 잘게 쪼개기Technique/Readable Code 2015. 12. 10. 12:39
코드의 표현이 커지면 커질수록 이해하기 더 어렵다 ■ 거대한 표현을 더 소화하기 쉬운 여러 조각으로 나눈다 설명변수- 작은 하위 포현을 담을 추가변수를 만드는것 - 추가변수 = 설명변수12345678if(list.split(':')[0].strip() == "root"): .... username = line.split(':')[0].stript()if(username == "root"):... Colored by Color Scriptercs 위 코드와 같이 한번에 모든걸 다 하려고 하면 읽기 불편함이 많다.가장 기본적인 방법중 하나이다 요약변수- 의미를 쉽게 파악할수 있어 별도의 설명을 요구하지 않는 표현이라고 해도 새로운 변수로 담아두는 방법은 유용할 수 있다. - 코다란 코드의 덩어리를 짧은 이름..