#PARAN SILVERLIGHT#
  • Tistory
    • 관리자
    • 글쓰기
Carousel 01
Carousel 02
Previous Next

Ch2 Packing Information into Names

SOFTWARE ENGINEERING/Art Of Readable Code 2012. 11. 23. 10:44

가독성이 좋은 코드를 생성하는 방법을 찾다가 The Art of Readable Code라는 책을 발견

책 내용을 공부하면서 좋은 방법들은 정리 하였다. 자세하게 알고 싶으신 분들은 책을 참조하세요.

 

참조 : The Art of Readable Code

 

특정한 단어 고르기 - 구체적인 단어를 선택하자. 


    send - deliver, dispatch, announce, distribute, route 

    find - search, extract, locate, recover

    start - launch, create, begin, open

    make - create, set up, build, generate, compose, add, new

 

1.Avoid Generic Names Like tmp and retval

 

var euclidean_norm = function (v) {

    var retval = 0.0;  //에 실행된 명령들이 제대로 동작했느냐를 담아두는 변수라고
    var sum_squares = 0.0;
    for (var i = 0; i < v.length; i += 1)
    {
        retval += v[i] * v[i];
        sum_squares += v[i]; // Where's the "square" that we're summing? Bug!
    }

    return Math.sqrt(retval);
};


*만약 변수명이 sum_squares 였다면 다음 처럼 버그는 더 몇백하게 드러날 것이다. 

 sum_squares += v[i]; // 더해야 하는 '제곱'은 어디에 있다는 말인가? 버그다.  


*temp라는 이름은 대상이 짧게 임시적으로만 존재하고 , 임시적 존재 재체가 변수의 가장 중요한 용도일때 한해서 사용

 Swap 함수

  if (right, left) {

tmp = right; 

right = left;

left = tmp

}

 

2.Loop Iterators

 

var euclidean_norm = function (v) {

    for (var i = 0; i < clubs.size(); i++)
    {
        for (var j = 0; j < clubs[i].members.size(); j++)
        {
            for (var k = 0; k < users.size(); k++)
            {
                if (clubs[i].members[k] == users[j]) ;
            }


        }
    }

     //When used correctly, the first letter of the index would match the first letter of the array
    for (var ci = 0; ci < clubs.size(); ci++)
    {
        for (var mi = 0; ci < clubs[ci].members.size(); mi++)
        {
            for (var ui = 0; ui < users.size(); ui++)
            {
                if (clubs[ci].members[mi] == users[ui]) ;
            }


        }
    }

    return 0;

};

 

3.Values with Units

 

var euclidean_norm = function (v) {

    var start = (new Date()).getTime(); // top of the page
    var elapsed = (new Date()).getTime() - start; // bottom of the page
    document.writeln("Load time was: " + elapsed + " seconds");

 

    //By appending _ms to our variables, we can make everything more explicit:
    var start_ms = (new Date()).getTime(); // top of the page
    var elapsed_ms = (new Date()).getTime() - start_ms; // bottom of the
    document.writeln("Load time was: " + elapsed_ms / 1000 + " seconds");

 

    return 0;

};


/*    Function parameter Renaming parameter to encode units
    Start(int delay ) delay → delay_secs
    CreateCache(int size ) size → size_mb
    ThrottleDownload(float limit) limit → max_kbps
    Rotate(float angle) angle → degrees_cw*/


   password => plaintext_password    

   comment => unescaped_comment

   html => html_utf8

   data => data_urlenc






저작자표시 비영리 (새창열림)
블로그 이미지

파란실버라이트

To remember the time when I started learning Silver Light!

,

카테고리

  • Inforamtion Technology (281)
    • DESIGN PATTERN (33)
      • 실용주의 디자인패턴 (29)
    • SOFTWARE ENGINEERING (21)
      • Art Of Readable Code (12)
      • Object Oriented Programming (6)
      • TDD (2)
    • FRAMEWORK (22)
      • Spring.net (2)
      • LightSwitch (20)
    • PROGRAMING (58)
      • C# (20)
      • .NET (6)
      • HTML5 (7)
      • ASP.NET (9)
      • SILVERLIGHT (7)
      • Ruby On Rails (6)
    • PROJECT MANAGEMENT (10)
      • SW Version Management (7)
      • Schedulring Management (1)
    • BOOKS (18)
    • MOBILE APP (1)
      • SENCHA TOUCH (1)
    • SECURITY (5)
    • MES (1)
    • B2B (14)
      • WEBMETHODS (4)
    • ERP (53)
      • SAP/R/3 (51)
    • ABOUT TOOLS (2)
    • FUNDAMENT CONCEPT (21)
    • SOA BPM (22)
    • PORTFOLIO (0)

태그목록

  • 프로그래밍
  • 병렬
  • 동시성

최근에 받은 트랙백

글 보관함

링크

파란실버라이트

블로그 이미지

To remember the time when I started learning Silver Light!

LATEST FROM OUR BLOG

RSS 구독하기

LATEST COMMENTS

BLOG VISITORS

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015 Socialdev. All Rights Reserved.

티스토리툴바