180bpm

코드리뷰 정리 본문

Flash/기타

코드리뷰 정리

powdersnow 2012. 8. 13. 19:50

08/06~08/09 작업 상황.

지적이 많이 나왔다.

순차적으로 작성

1. AS2에서 클래스의 기본(원류?)은 Object 클래스다.

그래서 모든 형은 결국엔 Object 클래스로 바뀔텐데 var o; 같이 형을 적지 않고 선언하면

런타임에서 형검사를 하지 않아 실행속도가 빨라진다.

그리고 런타임에서 모든 코드를 파싱할텐데 글자수도 적어져서 초기실행속도도 빨라진다.

다만 AS3에선 써야한다 - 근데 왜 내코드는 작동을 하지?


2. $e.target as loaderInfo;

$e.target.content as Bitmap;


3. 계속 나왔던 이야기. 메서드 이름을 생각하고 지어라.

어떤 알고리즘으로 돌아가는지에 대해 짓지 말고 실제적으로 하는 행동을 적어라.


4. alpha =0.1;을 10장 겹쳐도 사실은 100%로 나오지 못한다.

이유는 alpha의 범위는 0~1, 근데 코드적으로는 00~FF.

그래서 0.03;


5. scrollRect에 담을 rectangle은 한개만 만들어서 써도 된다.

해당 디스플레이 오브젝트에 넣어도 참조가 아닌 복사가 되기 때문이다.


6. 비슷한 내용인데, Bitmap Class를 처음엔 겹칠만큼은 만들어야겠지만

그 이후에는 removeChild 하지 않고 계속 써도 무방하다.


7. embed 태그를 이용해 lib 폴더에 있는 그림을 바로 불러오는 방법이 있다. 지원 안됨


8. new는 왠만해선 쓰지 말자. 쓸꺼면 클래스만 써도 무방하다. new Array;


9. 상속받은 클래스의 생성자에 파라메터 넣지 말아라. 확장하기 어려워진다.

의미없는 파라메터 받지 마라. 못알아본다.

최소단계, 최대단계, 알파값 같은건 코드 까보지 않으면 뭘 하는지 모른다.

퀄리티.HI같이 의미를 명확하게 알아볼 수 있게 해라. 의미 없는 배려다. 똥이다.


10. 도큐먼트 클래스를 사용했다면 fla와 dc파일명을 대소문자까지 같이 해야한다


11. 캐시 잡아써라.



8월 13일 코드리뷰


1. 내 코드중 변수에 형을 지정하지 않은것이 있는데 왜 오류가 나지 않는지 알아볼것

2. 체인로더 쓰기.

3. embed 써보기. 지원 안됨

4. private인데 _가 있는게 있고 없는게 있다. 변수명에 일관성이 없다.

5. 지시사항 미이행에 대한 사유와 설득이 불가능하다면 시키는대로 할것.

6. setImage()

-이미 나는 640이라는 기준값을 알고 있다. 그렇다면 어렵게 작은값부터 할 필요 없이 이미 알고있는걸 써라.

-디자이너가 원하는 조건을 예측하고 그에 대한 구현을 하라. 디자이너는 왼쪽부터 몇 px까지 알파가 빠지게 해주세요. 이런식으로 요구를 할것이다.


7.drawTo()

-원본값을 참조하지 않고 새로 계산하는것이 낫다.

그 이유는 새로 계산 한다면 문제가 발생했을 경우 새로 계산한 부분만 다시 보면 되는데

원본 값을 가져와서 가공해서 사용하다 문제가 발생했을 경우 호출스택을 계속 올라가면서 봐야 할 경우가 생긴다.

-aImageIndex(몇번째 배열이 이 컨테이너에서 몇단계인지를 의미...는 나도 못알아먹겠다)

무엇을 의미하는지 알 수 없다. 다른 사람이 본다면 코드를 통독하지 않는 이상 알 수 없다.

버그가 날 수밖에 없는 코드다.

-recTemp.x = maskPoint / 4 + $pX;

항상 고정된 값이라면 다시 계산 할 필요가 있는가?

불필요한 연산이 발생한다. 그리고 /4보단 *0.25가 빠르다. 결국엔 실수로 처리하고 곱셈이 더 빠르다.

-저번에 나왔던 '이 메서드가 하는 일에 대해'

drawTo()는 다음 두가지 행동을 한다.

중심점을 찾아서 그리거나, 오브젝트를 기준으로 그리거나.


8. 로드가 완료되지 않은 상황에서 다른걸 로드했을때의 대처가 없음.

9. maskPoint - 의미불명의 메서드. 7과 같음.

10. Copy&paste 를 하려면 제대로 해라. 안쓰는 변수들 남겨두지 말아라.

11. 알고리즘은 어떻게든 만드는거 같은데 그걸 수학적으로 표현하는 능력이 매우 부족하다.

12. 너무 학생적인, 레포트 제출 같은 느낌이다. 시키는것만 급급하는 느낌이 든다.

13. recTemp - 멤버변수는 객체가 소멸되지 않는 이상 남아있다.

14. copyPixels에서 생겼던 문제 - 비트맵 갈아끼우기에 대해 재현하기.

15. unloadMap - 필요 없다.

내부에서 처리하면 되는걸 왜 외부에 공개하는가?

16. 메서드명은 간략하게

17. as/is/캐스팅의 차이


Comments