= Clean Code = * [http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 CleanCode book] * [http://www.cleancoders.com/ CleanCoders] * 쩌네 ì´ëŸ°ë°ê°€ 있네요. 안경ë¼ê³ ì†ê°€ë½ì§ˆ 하는 ë¶„ ì—‰í´ ë°¥ ê°™ìœ¼ì‹ ë°..? - [서지혜] * [https://code.google.com/p/support/wiki/CodeReviews Google Code Review System] * [https://code.google.com/p/google-styleguide/ google coding style guide] * [http://refactoring.com/ Martin Fowlerì˜ refactoring home] * [http://blog.goyello.com/2013/05/17/express-names-in-code-bad-vs-clean/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+goyello%2FuokR+%28Goyelloblog%29 Express names in code: Bad vs Clean] * [http://dogfeet.github.io/progit/progit.ko.pdf git 사용과 ê´€ë ¨ëœ pro gitì´ë¼ëŠ” ì±…ì˜ í•œêµì–´ 번ì—본. ìƒë‹¹ížˆ ìžì„¸ížˆ 나와 ìžˆë‹¤ê³ í•˜ë„¤ìš”] == 5ì›” 4ì¼ == * 스터디 킥오프 * ë„서 : [http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 Clean Code] * [서지혜]ì˜ my-calculator 코드를 피어 리뷰함. == 5ì›” 11ì¼ == * Clean Code ì½ì€ ë¶€ë¶„ì— ëŒ€í•´ í† ë¡ (Chap 01, Chap 09) * Chapter 2 Meaningful Names - Naming Convention * í´ëž˜ìŠ¤ì˜ ì´ë¦„ì„ ì§€ì„ ë•ŒëŠ” -info, -data와 ê°™ì€ ì¼ë°˜ì ì¸ ì´ë¦„ì„ ì“°ì§€ ë§ë¼. * Account를 만들면 ë˜ì§€ AccountInfoë¼ëŠ” í´ëž˜ìŠ¤ë¥¼ 만들 필요는 없다. Account í´ëž˜ìФ ë‚´ë¶€ì— ë“¤ì–´ê°€ëŠ” ì •ë³´ê°€ Info니까. * -List ë¼ëŠ” ì‹ì˜ ì´ë¦„ì„ ì§€ì„ ë•ŒëŠ” ì •ë§ë¡œ Listì˜ APIë“¤ì„ ì§€ì›í• 때ì—ë§Œ -Listë¼ê³ ë¶™ì—¬ì£¼ëŠ”ê²ƒì´ ì¢‹ë‹¤. ì´ë¦„ì„ ì €ë ‡ê²Œ 지으면 -Listì˜ APIë“¤ì„ ì§€ì›í• 것 ê°™ì€ ëŠë‚Œì´ 들기 ë•Œë¬¸ì— ì•„ë‹ ê²½ìš°ì—는 -s나 다른 ë°©ì‹ìœ¼ë¡œ 하는게 ì¢‹ì„ ê²ƒ. * 아래와 ê°™ì€ ì‹ìœ¼ë¡œ Accountë‚´ë¶€ì˜ ì •ë³´ë¥¼ 하나로 묶으면 AccountInfo í´ëž˜ìŠ¤ì™€ getAccountInfo()ë“±ì´ ìžˆì„법하지 않ì€ê°€? -> ì €ëŸ° 구조 ìžì²´ê°€ 잘못ëì„ ìˆ˜ 있다. getAccountInfo()와 ê°™ì€ ë°©ë²•ì´ ì•„ë‹ˆë¼ ë‹¤ë¥¸ 방법으로 ì¼ì„ 시키는 ëª¨ì–‘ì´ ë” ë‚«ë‹¤. {{{ Class Account { private AccountInfo info; }; }}} * Chapter 9 Unit Tests * ë¬¸ì œë¥¼ ë“¤ì—ˆì„ ë•Œ 테스트코드를 ë¨¼ì € ìƒê°í•˜ëŠ” ìŠµê´€ì„ ë“¤ì—¬ì•¼ í• ê²ƒ 같다. ë¬¸ì œë¥¼ 해결하는 코드를 ë¨¼ì € ì§œë ¤ê³ í•˜ë©´ ê²°êµ í…ŒìŠ¤íŠ¸ì½”ë“œ ìž‘ì„±ì´ ì•„ë‹ˆë¼ ì§ì ‘ 테스트를 하게 ë˜ëŠ” 듯 하다. * í”¼ë“œë°±ì„ ë¹¨ë¦¬ 받기 위해서 테스트를 실시. í”¼ë“œë°±ì„ ë°›ê³ ê³ ì¹ ë•Œê¹Œì§€ì˜ ì£¼ê¸°ê°€ 짧아야 함. 코드를 ì§œê³ ìœ ë‹›í…ŒìŠ¤íŠ¸ë¥¼ 만드는 ê²ƒë„ ì•ˆë˜ëŠ”ê±´ 아님. í”¼ë“œë°±ì„ ë°”ë¡œ ë°›ì„ ìˆ˜ 있으면 ë¨. * 코드를 깨ë—하게 í•˜ê³ ì‹¶ìœ¼ë©´ 테스트 ì½”ë“œë„ ê¹¨ë—하게 ìœ ì§€í•´ì•¼ 한다. 테스트 코드가 ë”러워지면 테스트를 잘 안하게 ë˜ë‹ˆê¹Œ ì½”ë“œë„ ë”러워지게 ëœë‹¤. * 테스트 시ì—는 올바른 inputì´ ì œëŒ€ë¡œ 들어오는지를 ë¨¼ì € 확ì¸í•˜ê³ 나서 코드가 잘못ë˜ì—ˆëŠ”ì§€ ìƒê°í•´ë³¼ 것. * ì‹¤ì œë¡œëŠ” ì“°ì§€ ì•ŠëŠ”ë° í…ŒìŠ¤íŠ¸ë¥¼ 위한 메소드를 추가하게 ë˜ëŠ” 경우가 ìžˆì„ ìˆ˜ 있지 않ì€ê°€? -> javaì˜ ê²½ìš°ëŠ” reflectionì„ ì‚¬ìš©í•˜ë©´ ë©”ì†Œë“œì˜ ì¶”ê°€ ì—†ì´ ì²˜ë¦¬ê°€ 가능한 ê²½ìš°ë„ ìžˆì§€ë§Œ ê·¸ê²ƒë³´ë‹¤ë„ í…ŒìŠ¤íŠ¸ìš© framework(mockito 등)를 ì‚¬ìš©í•˜ëŠ”ê²ƒì´ ì¢‹ë‹¤. * [http://oddpoet.net/blog/2010/08/02/a-new-look-at-test-driven-development-kr/ BDD, Given/When/Then] * gerrit 설치 * [http://alblue.bandlem.com/2011/02/gerrit-git-review-with-jenkins-ci.html ì°¸ê³ ë°ëª¨ ë™ì˜ìƒ] * [https://gist.github.com/benelog/2922437 ë²„ì „ê´€ë¦¬ê°€ 필요한 ì´ìœ 를 깨닫는 ì–´ë–¤ 사람] * [http://www.filewiki.net/xe/index.php?&vid=blog&mid=textyle&act=dispTextyle&search_target=title_content&search_keyword=gerrit&x=-1169&y=-20&document_srl=10376 gerrit install guide] * [http://whatwant.tistory.com/419 위와는 좀 다른 ì°¸ê³ ì‚¬ì´íЏ] - ì´ìª½ì´ ì „ì²´ì ì¸ í름ì´ë‚˜ 아파치 ì„¤ì • ê´€ë ¨ì€ ì¢€ ë” ë³´ê¸° ê´œì°®ì€ ê²ƒ 같다. * [http://u1aryz.blogspot.kr/2011/12/gerrit-error-gerritsite-not-set.html Gerrit기ë™ì‹œì—「** ERROR: GERRIT_SITE not setã€] * í—ã…‹ã…‹ã…‹ 번ì—하니까 ì¸ìŠ¤í† ë£¨ë””ë ˆì¿ í† ë¦¬ë¡œ 나온닼ㅋㅋㅋ ì „ 그냥 환경변수 ì„¤ì • í•´ë²„ë ¸ìŠµë‹ˆë‹¤. ì ˆëŒ€ê²½ë¡œ 쓰다가 ë² ì´ìФ ë””ë ‰í† ë¦¬ 한번 ë‚ ë ¤ë¨¹ê³ ê°€ëŠ¥í•˜ë©´ 피해범위 ì ë„ë¡ ê²½ë¡œ ì´ë™í•´ì„œ ì¡°ìž‘í•˜ê±°ë“ ìš”. - [서지혜] * next : gitê³¼ ì—°ë™ * Git + Gerrit + Jenkins ì „ì²´ ê²°í•©ì„ í†µí•´ 코드 버그를 ì¤„ì—¬ë³´ìž * [http://rein.kr/blog/archives/3156] == 5ì›” 18ì¼ == * 함수 * 플래그는 추하다 * [http://c2.com/cgi/wiki?GuardClause guard clause]를 쓰세요! * 함수는 í•˜ë‚˜ì˜ ì¼ì„ 하는게 ì¢‹ë‹¤ê³ í•˜ëŠ”ë° í”Œëž˜ê·¸ë¥¼ 쓴다는 ê²ƒì€ í•¨ìˆ˜ê°€ í”Œëž˜ê·¸ì˜ ê°’ì— ë”°ë¼ì„œ 다른 ê°’ì„ í•œë‹¤ê³ ë§í•˜ëŠ” 것ì´ë¯€ë¡œ. * ì°¨ë¼ë¦¬ 다른 ì¼ì„ 하는 함수를 여러개 만드는게 ë” ë‚«ë‹¤. * abstraction level * String.append와 PathParser.render는 ë‘˜ì´ ì„œë¡œ 문ìžì—´ì„ 합치는 ìž‘ì—…ì„ í•˜ë”ë¼ë„ ì§ì ‘ì ì¸ ì—°ì‚°ì„ í•˜ëŠ” 것과 ì¶”ìƒì ì¸ ì—°ì‚°ì„ í•˜ëŠ” ê²ƒì˜ ì°¨ì´ë¡œ 서로 ì¶”ìƒí™” ìˆ˜ì¤€ì´ ë‹¤ë¥´ë‹¤ê³ í• ìˆ˜ 있다. * ì¶”ìƒí™” ìˆ˜ì¤€ì´ ì„œë¡œ 다른 코드가 섞여있으면 보기ì—ë„ ì¢‹ì§€ 않다. * ì¶”ìƒí™” ë ˆë²¨ì´ ë‹¬ë¼ì§€ëŠ” ê²ƒì„ ë§‰ê¸° 위해서는 코드를 짧게 í•˜ê³ ë©”ì†Œë“œë¡œ ë§Žì´ ë‚˜ëˆ„ë©´ 한 코드 ë‚´ì—서 ì¶”ìƒí™” ë ˆë²¨ì´ ë‹¬ë¼ì§€ëŠ” ê²ƒì„ ë§‰ì„ ìˆ˜ 있다. * 함수 ì¸ìžëŠ” ì ì„ìˆ˜ë¡ ì¢‹ë‹¤. * 함수 ì¸ìžê°€ 많아지게 ë˜ë©´ 사용ìžê°€ ì¸ìžë“¤ì— 대해서 ì´í•´ë¥¼ 하기 힘들다. * 테스트 코드를 ìž‘ì„±í• ë•Œ ì¸ìžë“¤ì˜ ì¡°í•© ìˆ˜ì— ë”°ë¼ í…ŒìŠ¤íŠ¸ ì¼€ì´ìŠ¤ê°€ ëŠ˜ì–´ë‚ ìˆ˜ 있기 때문ì—. * Error Handling * ì—러를 방지하거나, 처리하는 코드 ë•Œë¬¸ì— í•¨ìˆ˜ì˜ ë³¸ 임무를 파악하기 힘들게 ë˜ë©´ 안ë©ë‹ˆë‹¤. * Consider using try-catch-finally instead of if statement. * Don't return null. * Returning null or undefined (Javascript) {{{ var array = stringObject.match(/regexp/); // if there is no match, then the function returns null, if not returns array. if(!array){ // handle and return } array.forEach(/* handle found strings */) ... }}} * Returning emtpy object (Javascript) {{{ var array = stringObject.match(/regexp/) || []; // if the function returns null, then substitute empty array. array.forEach(/* handle found strings */) /* You can handle empty array with "array.length === 0" statement in anywhere after array is set. */ }}} * Don't pass null. == 후기 == * 민관 * + : 코드 ë¦¬íŒ©í† ë§ì„ í•´ë´ì„œ 좋았다. í™”ì´íŠ¸ë³´ë“œì— ì 어가면서 ì½ì–´ë³¸ 부분 ê³µìœ í•˜ë‹ˆê¹Œ ì •ë¦¬ëœ ëŠë‚Œ. * - : 프로ì 트 ë°©ì‹ê³¼ ë°©í–¥ì´ í릿한 ëŠë‚Œì´ë‹¤. * F : ì‹œê°„ì„ ì»´íŒ©íŠ¸í•˜ê²Œ ì§„í–‰í•˜ê³ ì‹¶ë‹¤. 늘어지는 ê²½í–¥ì´ ìžˆë‹¤. * ì§„ê²½ * + : ë¦¬íŒ©í† ë§ì„ 시ë„해보았다. 다른 ì‚¬ëžŒì˜ ì½”ë“œë¥¼ ë¦¬íŒ©í† ë§ í• ìˆ˜ 있다는 ìƒê°ì„ 하게 ë˜ì—ˆë‹¤. * - : 본ì¸ì˜ 코드를 ë¦¬ë·°ë°›ê³ ì‹¶ì—ˆëŠ”ë° ì •ë¦¬ê°€ ë˜ì§€ 않아 받지 못했다. * F : 주중ì—ë„ ìŠ¤í„°ë””ë¥¼! 온ë¼ì¸ 협업 íˆ´ì„ ì´ìš©í• 수 있다. * ì˜ì£¼ * + : ì±… 얘기만 한게 ì•„ë‹ˆë¼ ì±…ì˜ ì˜ˆì œë¥¼ 시ë„해봤다. * - : ê°ìž ì˜ˆì œë¥¼ ë¦¬íŒ©í† ë§í–ˆë‹¤. 따로 ë…¼ ëŠë‚Œ. * 사실 그런 ëŠë‚Œì´ ë“¤ì–´ë„ ê²°êµ ì½”ë“œ 짜는 ë¶€ë¶„ì€ ë”°ë¡œ í• ìˆ˜ë°–ì— ì—†ëŠ” 것 같으니 ì–´ì©” 수 없는 것 ê°™ê¸°ë„ í•˜ì§€ë§Œìš”. - [서ì˜ì£¼] * F : 스터디를 ì œëŒ€ë¡œ í•˜ê³ ìžˆëŠ”ì§€ ì•Œê³ ì‹¶ë‹¤. (ë©˜í† ê°€ 있었으면 ì¢‹ê² ë‹¤?) * ì½”ì¹ì„ ë°›ê³ ì‹¶ë‹¤ëŠ” ë§ì¸ë“¯ - [서지혜] * 가르ì³ì£¼ëŠ” 것 까지는 ì•„ë‹ˆê³ ìž˜ í•˜ê³ ìžˆëŠ”ê±´ì§€ 아닌지를 알 수 있었으면 ì¢‹ê² ë‹¤ëŠ”ê±°ì£ . 목표 얘기 í•˜ì‹ ê±´ 확실히 ì œëŒ€ë¡œ í•˜ê³ ìžˆëŠ”ì§€ ì°¸ê³ ê°€ ë 것 같습니다. - [서ì˜ì£¼] * 네 그래서 ì¼ë¶€ëŸ¬ ì½”ì¹ì´ë¼ê³ ì¼ì–´ìš”ã…‹ã…‹ ë©˜í† ë§ì€ 아닌 것 ê°™ê³ í‹°ì¹ì€ ì§€ì–‘í•˜ê³ ì‹¶ê³ , 스터디가 잘 ë˜ì–´ê°€ê³ 있는지를 확ì¸í•˜ê³ 싶다는 ë§¥ë½ì—ì„ ì½”ì¹ì´ ì œì¼ ìœ ì‚¬í•œ 것같아서리.. - [서지혜] * í¬ì • * + : ì²˜ìŒ ë‚˜ì˜¬ë•Œ ë–¨ë ¸ëŠ”ë° ë§Žì´ ì‹ ê²½ ì¨ ì¤˜ì„œ 좋았다. * - : 배경지ì‹ì´ 부족한 듯 하다. * F : ìŠ¤í„°ë””ì¤‘ì— ì–´ë–»ê²Œ 진행해야 í•˜ë‚˜ì— ëŒ€í•œ 얘기를 너무 ë§Žì´ í•œë‹¤. * 지혜 * + : 다른 ì‚¬ëžŒë“¤ì´ ë¦¬íŒ©í† ë§ í•˜ëŠ” ê²ƒì„ ë³´ì•˜ë‹¤. 새로운 사람 추가 * - : ë¦¬íŒ©í† ë§ì„ í• ë•Œ ë¦¬íŒ©í† ë§ì— 대한 요구사í•, ë¦¬íŒ©í† ë§ì„ 멈출 수 있는 ìˆ˜ì¤€ì„ ì œì‹œí•˜ì§€ 못하였다. * 'ì´ê²ƒ'ì„ ì œì‹œí• ìˆ˜ê°€ 있나? * F : 스터디 ì²«ë‚ ì •í–ˆë˜ ê°ìžì˜ 목ì ê³¼ 목표(어디갔지?)를 통해 스터디가 ì œëŒ€ë¡œ ì§„í–‰ë˜ì–´ ê°€ê³ ìžˆëŠ”ì§€ ì²´í¬í• 수 있ì„것. * 그러나 ìžì‹ ì˜ ì‹¤ë ¥ì´ ë” ë‚˜ìŒì„ 어떻게 비êµí• 수 있ì„까? [http://www.intropsych.com/ch07_cognition/learning_curve.html 학습 ê³¡ì„ ]ë„ ë¬´ì‹œí• ìˆ˜ 없다. == 5ì›” 25ì¼ == * ajax (callbackì— ëŒ€í•œ ì´í•´ë¥¼ 위해) * javascript를 ì´ìš©í•œ 비ë™ê¸° http ìš”ì². * UI를 그리는 í름(thread)ê³¼ http ìš”ì²ì— 대한 í름(thread)ì´ ë”°ë¡œ 존재함. * http ìš”ì² ìª½ì€ ì–¸ì œ ìž‘ì—…ì´ ëë‚ ì§€ 알 수 ì—†ìŒ. * callback 함수ë¼ëŠ” ê²ƒì„ ì´ìš©í•´ì„œ ìž‘ì—…ì´ ëë‚¬ì„ ë•Œ ì²˜ë¦¬í• ë°©ë²•ì„ ì •í• ìˆ˜ 있다. * ì§„ê²½ì´ ì½”ë“œ(CauBooks) 살펴보기 * javascript 소스 코드ì—서 í•œêº¼ë²ˆì— ì¸ìžë¥¼ 넘기는 ë°©ì‹. * ë¡œê·¸ì¸ ì„±ê³µ, ì‹¤íŒ¨ì— ë”°ë¥¸ callback 함수를 한 ë²ˆì— ë„˜ê¸°ê³ ìžˆë‹¤. * 현재는 callback í•¨ìˆ˜ì— ì´ë¦„ì„ ë¶™ì—¬ì„œ ì¸ìžì— ë„£ê³ ìžˆì§€ë§Œ 주로 ìµëª… 함수를 쓰는 jsì˜ íŠ¹ì§•ì´ë‚˜ 프로그래머가 ì§ì ‘ ì´ë¦„ì„ ë¶™ì—¬ì„œ 관리를 해야 하는 ë“±ì˜ ë¶ˆíŽ¸í•¨ì„ ê³ ë ¤í•˜ì—¬ 다른 ë°©ì‹ìœ¼ë¡œ ìˆ˜ì •í•˜ê³ ì‹¶ë‹¤. * í•œêº¼ë²ˆì— { id:, password:, success:, fail: }ì„ í•˜ë‚˜ì˜ ê°ì²´ë¡œ 만들어서 넘기는 ë°©ì‹. * id, password와 success, failì€ ê´€ê³„ê°€ 별로 ì—†ëŠ”ë° ê°™ì´ ë¬¶ì–´ì„œ 넘기면 ë‚˜ì¤‘ì— login ë‚´ì—서 ê°ê°ì˜ 파트를 ë˜ ë½‘ì•„ë‚´ì•¼ 한다. * ê°ì²´ê°€ 넘어가는 거니까 íŠ¹ì • propertyì˜ ìœ ë¬´ì— ë”°ë¼ ì—러를 ì¼ìœ¼í‚¬ 수 있다. * module.login(id, password).success(function() {...}).fail(function() {...})으로 ìˆ˜ì •í• ê²½ìš°. * ê° callback í•¨ìˆ˜ì— ëŒ€í•œ ì˜ë„ê°€ 보다 잘 드러남. * ì¢‹ì€ ì½”ë“œ? * 현재 CleanCodeì—서 ì¢‹ì€ ì½”ë“œë¡œ 너무 ê°€ë…ì„±ë§Œì„ ì¤‘ì‹œí•˜ê³ ìžˆëŠ” ê²ƒì€ ì•„ë‹Œê°€. * ì½ì„ ì‚¬ëžŒì˜ ìˆ˜ì¤€ì„ ê³ ë ¤í•˜ëŠ” ê²ƒë„ í•„ìš”í•˜ë‹¤. (너무 다 풀어 ì“´ 코드보다는 ì½ëŠ” ì‚¬ëžŒì´ ì´í•´í• 수 ìžˆì„ ì •ë„ì˜ ë‚œì´ë„ + 효율ì ì¸ ì½”ë“œê°€ ë‚«ì§€ 않ì€ê°€) * ë™ê°í•©ë‹ˆë‹¤. ì œê°€ í´ë¦°ì½”드 스터디를 하는 ì´ìœ 는 ê¶ê·¹ì 으로 ìƒì‚°ì„± í–¥ìƒìž…니다(ì œê°€ 요즘 강조하는? ã…‹ã…‹). 지혜 누나가 언급했듯 코드는 ì¼ë‹¨ ë™ìž‘해야 하는 ê²ƒì´ ì²« 번째. ì œ 취향대로 약간 ì¶”ìƒí™”하ìžë©´ 요구사í•ì„ ì¶©ì¡±í•˜ëŠ” 것. ìž„ë² ë””ë“œ 개발ì—서는 í¼í¬ë¨¼ìФ í–¥ìƒì„ 위해 'ì •ì„ì ì¸(?)' 구조나 ë°©ë²•ë¡ ì„ ê¹¨ëŠ” ê²½ìš°ë„ ìžˆìŠµë‹ˆë‹¤. 요구사í•ì„ ì¶©ì¡±í•˜ì§€ 못 하면, 실질ì 으로는 아무 ê²ƒë„ ìƒì‚°í•˜ì§€ ì•Šì€ ê²ƒê³¼ ê°™ì„ ìˆ˜ë„ ìžˆìœ¼ë‹ˆê¹Œìš”. - [ì •ì§„ê²½] * 산문ì´ëƒ 운문ì´ëƒì˜ ì°¨ì´ë¼ëŠ” ìƒê°ì´ ë“니다. - [서지혜] * [서지혜]ì˜ my-calculator 테스트 코드 리뷰 * specì— ì§€ì •ë˜ì–´ 있지 ì•Šì€ ê²½ìš°ì— í…ŒìŠ¤íŠ¸ 코드를 작성해야 하는가? * specì— ì§€ì •ë˜ì–´ 있지 않다는건 무슨 ì˜ë¯¸ì§€?? - [서지혜] * 예를들면 ìž…ë ¥ì´ ë“¤ì–´ì™”ì„ ë•Œ Aë¼ëŠ” ì¶œë ¥ì´ ë‚˜ì™€ì•¼ í•œë‹¤ê³ ë§Œ specì— ì •ì˜ë¼ìžˆìœ¼ë©´ ìž…ë ¥ì´ ì—†ì„ ë•Œì— ëŒ€í•œ 테스트 코드는 무슨 기준으로 작성하ëŠëƒ ë˜ëŠ” ì—러처리를 해야 í•˜ëŠ”ê°€ì— ëŒ€í•œ ê¸°ì¤€ì„ ë§í•˜ëŠ”ê²ƒ 같습니다. - [서ì˜ì£¼] * ì•„, ê·¸ëŸ°ë§ í•œ 것 같네요. ì´ê²½ìš°ëŠ” 코드가 ì•„ë‹ˆë¼ ìš”êµ¬ì‚¬í•(아키í…처) 단계ì—서 ì •ì˜ê°€ 필요한 ì¼ì´ë„¤ìš”. - [서지혜] * ì‹¤ì œ ì¼í•˜ëŠ”ë°ì„œëŠ” 어떤가요? ì´ëŸ° ë¶€ë¶„ì— ëŒ€í•œ 요구사í•ì´ ì—†ì„ ê²½ìš°ì—는 ì–´ë–¤ì‹ìœ¼ë¡œ 처리를 하는지가 ê¶ê¸ˆí•©ë‹ˆë‹¤. ë¨¼ì € ì²˜ë¦¬í•˜ê³ ì–´ë–»ê²Œ ì²˜ë¦¬í–ˆë‹¤ê³ ë”°ë¡œ ë³´ê³ í•˜ë‚˜ìš”? 아니면 없으니까 ì´ëŸ°ê±¸ ì •ì˜í•´ì¤˜ì•¼ í•œë‹¤ê³ ê±´ì˜ë¥¼ í•˜ê³ ëŒ€ë‹µì´ ì˜¤ë©´ ê·¸ 때 처리를 하나요? - [서ì˜ì£¼] *[https://github.com/styleguide/ruby Ruby StyleGuide] - 코딩 ìŠ¤íƒ€ì¼ ìžì²´ë³´ë‹¤ 왜 그런 스타ì¼ì„ ì„ íƒí–ˆëŠ”ì§€ì— ëŒ€í•´ ìƒê°í•´ 보는 ê²ƒì´ ì¤‘ìš”í•¨. === íšŒê³ === 1. 지혜 + : 회사ì—서 ì§ì„ 나르다가 왔는ë°(ì´ì‚¿ì§ 나름.. 주ë§ì—.. ì 장), 오기를 잘 한 것 같다. - : ì›ëž˜ 올 계íšì´ 아니었기 ë•Œë¬¸ì— í•„ìš”í•œ 노트ë¶ì´ë‚˜ ì±… ë“±ì„ ì±™ê²¨ì˜¤ì§€ 못 했다. 1. 서ì˜ì£¼ + : ë¬´ìž‘ì • í´ë¦° ì½”ë“œì— ëŒ€í•´ ì´ì•¼ê¸°ë¥¼ í–ˆì—ˆëŠ”ë° ì¢‹ì€ ì½”ë“œì— ëŒ€í•œ 얘기를 하면서 í´ë¦° ì½”ë“œì— ëŒ€í•´ 다시 ìƒê°í•˜ê²Œ ë¨. - : ì¢‹ì€ ì½”ë“œë¥¼ 구해 오ìžê³ í–ˆëŠ”ë° í•˜ë‹¤ 보니 ìƒê°ë³´ë‹¤ ì–´ë ¤ì›Œì„œ 못 찾아온 ê²ƒì— ëŒ€í•œ 미안함. 1. ì§„ê²½ + : 서ì˜ì£¼ê°€ ì½”ë“œì— ëŒ€í•´ 리뷰를 í•˜ê³ ìƒê°ì„ ì ì–´ 준 것. -> 누가 코드를 ë´ ì¤¬ìœ¼ë‹ˆ ë‹¤ìŒ ì£¼ì— ë˜ ìž‘ì—…ì„ í• ë™ê¸°ê°€ ë¨. - : 스터디 ì‹œê°„ì˜ ê²½ê³„ì„ ì´ ì•„ì§ ëšœë ·í•˜ì§€ 않ìŒ. f : - 줄ì´ê³ + 늘리게 1. ë°•í¬ì • <= ìžê¸° 코드 ë“¤ê³ ì˜¤ë©´ ì¢‹ê² ë‹¤ + : ì´ˆë°˜ì— callback, ajaxì— ëŒ€í•´ 따로 ì„¤ëª…ì„ í•´ 준 게 ì¢‹ì•˜ìŒ - : ë§í•˜ëŠ” ë‚´ìš©ì„ ì™„ì „ížˆ ì´í•´í•˜ê¸°ê°€ 힘들다. 1. 서민관 + : 따로 준비 í•´ 온 게 없었지만 ê·¸ëž˜ë„ ë‹¤ë¥¸ 분들 ë•ë¶„ì— ì§„í–‰ì´ ìž˜ ë˜ì—ˆë‹¤. 준비를 하지 않ë”ë¼ë„ ì°¸ê°€ì— ì˜ë¯¸ê°€ 있다는 ìƒê°ì„ í• ìˆ˜ 있게 ë˜ì—ˆë‹¤. - : 시간 ì¤„ì¼ ìˆ˜ ì—†ì„까? ì±…ì§„í–‰? 코드 ì§„í–‰? ì§„í–‰ì„ ì–´ë–¤ ì‹ìœ¼ë¡œ 해야 í• ì§€ ì•„ì§ë„ 매ë„럽지 ì•Šì€ ëŠë‚Œì´ 있다. = 6ì›” 1ì¼ = * [http://docs.oracle.com/javase/specs/jls/se7/jls7.pdf java se7 spec] * guava 코드 * [서ì˜ì£¼]ì˜ xml 파서 * [서민관]ì˜ ì…€ë£°ëŸ¬ 오타마타 게임 == íšŒê³ == 1. [서지혜] 1. [서ì˜ì£¼] 1. [ì •ì§„ê²½] 1. [ë°•í¬ì •] 1. [서민관] = 6ì›” 8ì¼ = 1. 4장 코멘트 1. CleanCoders ê°•ì˜ ë§›ë³´ê¸°. 1. ì—피소드 1ì€ 1달러여서 싼 줄 ì•Œì•˜ëŠ”ë° ê·¸ ì´í›„부턴 12달러...ã… ã… 1. ì§€ì›ê¸ˆìœ¼ë¡œ 구매하는게 ì¢‹ê² ìŒ. 1. SE titan 코드 리뷰 1. íšŒì‹ - 7ë§Œì› ì§€ì›ë°›ìŒ == íšŒê³ == 1. [서지혜] íšŒê³ ë¥¼ 회ì‹ìœ¼ë¡œ ì ì„ ë»” 했다. 1. [서ì˜ì£¼] 1. [ì •ì§„ê²½] 1. [ë°•í¬ì •] 1. [서민관] 1. [안í˜ì¤€] 1. [ê³ í•œì¢…] = 6ì›” 22ì¼ = * [ì •ì§„ê²½], [김남규](환ì˜!), [ë°•í¬ì •] * 남규 C 코드 리뷰. ì•„ì§ ì±„ì ë˜ì§€ ì•Šì€ ê³¼ì œë¬¼ì´ë¼ 코드는 나중ì—..? * ê¿€ìž * ì œê°€ 지루한 ê°•ì˜ë¥¼ 하는 바람ì—... - [ì •ì§„ê²½] = comment me = * 스터디 ì´ë¦„ ì •í•©ì‹œë‹¤. ì•„ë¦„ë‹¤ì›€ì„ ì¶”êµ¬í•˜ë‹ˆê¹Œ 소니 ì—ë¦ìЍ? - [서지혜] * 아름다운 걸로 하ìžë©´ unit sphere ê°™ì€ ê²Œ 아름다울 것 같긴 한ë°... 그건 좀 아닌 것 ê°™ì£ -_-;; - [서민관] * ìŒ.. 공학ìžì˜ 아름다움ì´êµ°... - [서지혜] * Beautiful Code -[김태진] * 후기를 +, -, F ë°©ì‹ìœ¼ë¡œ 나누어 작성했네요! ì¢‹ì€ ë°©ì‹ì¸ë“¯ã…‹ã…‹ - [김민재] * ì—‡ 난 ê±°ìŠ¬ë ¤ì„œ ë°”ê¿€ëž¬ëŠ”ë° ê·¸ëƒ¥ 냅둬야지ㅋㅋ - [서지혜]