Whiteship's Note

Anyframe 보다가 흥분 해버렸네요.

모하니?/Thinking : 2008.07.17 16:31


"Devil's Advocate 엔딩곡"

Why did you just copy and paste another souce code? This is an unnessecary work. Just make a reference of that class. Isn't it a duplication?

=> 왜 다른 소스코드를 복사해서 붙여넣으셨나요? 그냥 레퍼런스 변수 하나 만들면 될 뿐인데요. 중복 아닌가?

증거? anyframe.common.util.AnyFrameProperties 클래스에 있는 주석과 org.apache.commons.configuration.PropertiesConfiguration 클래스에 있는 주석이 일치합니다. 이상하게 주석이 영문 API 스럽게 달려있는 걸보고 혹시나 해서 검색해 봤더니 구글이 바로 알려줍니다.

복사해서 붙여 넣을 꺼면 그냥 참조하면 되는데, 왜 굳이 AnyFrame 이름을 달려고 한건지 이해가 안 되네요~ @.@ 이건 중복이자나요. 중복.

Why are you using static logger? static logger can cause some serious problems on multithreading server platforms. Have you ever seen this article?
=>왜 static 로거를 사용하셨나요? static 로거는 멀티쓰레드 기반 서버 플랫폼(톰캣을 비롯한 대부분의 WAS)에서 static 로거는 자칠 심각한 문제들을 발생시킬 수 있습니다. 이 글을 본적 없으신가요?

로거들을 전부 static 으로 쓰고 있는데, 그럴 경우 멀티 쓰레드 기반으로 동작하는 서블릿 컨테이너들의 클래스로더 계층 구조 땜시 별에별 문제들이 발생할 수 있습니다. 그것과 관련해선 아래 글에 정리해둔 적이 있습니다. 스프링에서도 일부 static 로그를 사용하고 있지만, 테스트 용도로 debug 레벨의 로그만 남기는 정도 입니다. 하지만 애니프레임은 무분별하게 사용하고 있는것 같네요. 로거 객체에 별로 무관심 한 것 같습니다.

2008/05/09 - [Java] - Logging/StaticLog

What is your package organization strategy? I feel dizzy.
=> 패키지 구조 정책이 어떻게 되는겁니까? 어지럽습니다.

애니프레임 코어에도 anyframe.core.hiberante라는 패키지가 있고, 애니프레임 웹 프로젝트에도 똑같은 패키지가 있는데 애니프레임 웹 프로젝트에 갑자기 왠 DAO 코드가 있는건지 몰겠습니다. ICommonDAOHibernate라는 클래스가 웹 프로젝트에 있어야 하는건지.. 몰겠습니다. 애니프레임 코어에는 ICommonService라는 인터페이스가 anyframe.core.hiberante라는 패키지에 들어있던데 정말 어지러워 죽을 지경입니다.

Do you know Hibernate?
=> 하이버네이트를 알고 확장하신건가요?

하이버네이트를 알고 확장하신 건지 의문입니다. 왜 flush()를 모든 메소드에서 호출한 겁니까? 그러면 하이버네이트 세션 컨텍스트가 매번 DB와 싱크하기 때문에 하이버가 최대한 늦게(정말 싱크가 필요한 시점에) DB에 반영하는 특징을 전혀 살릴 수 없잖습니까? 저건 하이버네이트를 죽이는 일입니다. 저 코드를 개빈킹한테 보여주면 열받아서 코드를 찢어버릴지도 모릅니다. 개선이 필요합니다. 아니 그전에 하이버네이트를 좀 공부하신다음에 확장하시는게 어떨까요? 아니면 아예 하이버네이트는 지원하지 않으셨으면 합니다. 저런 식으로 하이버네이트를 오용하는 코드가 확산되면 오히려 괜한 오해만 사고 하이버네이트의 엘레강트 한 면모를 더럽힐 수 있으니까요.

Don't you know Spring MVC Interceptor?
=> Spring MVC의 interceptor를 모르시나요?

왜 AnyframeController에 preprocess()와 postprocess()라는게 있는지 의문입니다. 인터셉터로 할 수 있는 일을 굳이 전처리 후처리 메소드를 추가해야 했는지 몰겠네요. MAC랑 SFC를 합쳐서 AnyFrameController를 만드실 정도로, Spring MVC를 공부하셨다면 인터셉터 정돈 알고 계시지 않나요?? 그리고 해당 클래스의 테스트 코드들은 직접 작성 하신 겁니까? 아니면 스프링 코드에 있는 테스트 코드를 붙여 넣은 겁니까? 더 이상 확인해보고 싶지 않아서 손을 안 댔지만, 혹시 붙여 넣은 거라면 뭔가 좀 문제 있는거 아닐까요? 아무리 오픈소스고 테스트 코드라고 하지만 양심적으로 피쳐링 수준이 아니라 표절 수준이 되면 문제라고 생각이 되는데요;




이밖에도 계속하고 싶지만, 더 이상 코드를 봤다가는 이성을 잃어버릴 것 같아서 못 보겠습니다.
top




: 1 : ··· : 62 : 63 : 64 : 65 : 66 : 67 : 68 : 69 : 70 : ··· : 125 :