Zephyrus Project 진행중의 이야기들. Thread - Document BottomUp 을 해도 좋겠고요.


Database 관련 부분 아니라 팀 프로젝트시 고려해야 할 사항은 꽤 됩니다. SuccessfulProject 를 위해서 고려해야 할 사항은 어떤게 있을까요? 자세한 내용은 차후 정리해서 쓰기로 하고, 하나 이야기 하고 싶은건 최대한 중복을 피하도록 하세요. 특히나, 한참 대화를 하지 않고 있다보면 같은 일을 하는 utility성 클래스들을 모두가 하나씩 지니고 있을겁니다.

가장 이상적인 상태는 예전 창준선배님이 세미나에서 이야기 했었던, '이러 이러한 라이브러리는 여기 있지 않을까 해서 봤더니 바로 그 자리에 있더라.' 하는 상태입니다. 그러면 최악은? '이러 이러한 라이브러리가 필요한데? 음.. 이쁘게 잘 만들어놓기는 귀찮고 에라 다음에 정리하지 뭐' 그리고는 해당 method들을 copy & paste. 공통 모듈을 한곳에서 다루도록 하세요. 공통 모듈은 꽤 많습니다. logging, configuration, resource managing ,..
혼자서 플밍할때에도 자주 발생하는.. ^^ 다른 프로그램들 플밍하다가도 비슷한 패턴의 코드들이 많이 보여서 그런 건 따로 utility class 식으로 디렉토리 따로 두고 관리하고 했었죠. 프로젝트 진행중에는 다른 사람들 소스를 지속적으로 같이 봐 나가면서 생각해야겠군요. CVS 로 한곳에 소스를 모으면 도움이 될 것이라 생각. --석천

아 한가지 더 생각나는게 있군요. 자바로 프로젝트를 하니 적습니다. 절대 작성하는 라이브러리나 코드의 중간에서 Exception을 잡아서 삼켜버리지 마세요. Exception은 추후 debugging에 절대적인 정보를 담고 있습니다. 중간에 try ~ catch 로 잡아버리고, 어떠한 형태로도 알려주지 않는것은 상당히 위험합니다. 시간이 나면 이와 관련해서 더 적도록 하지요. --이선우


코드 조언
~cpp 
    static synchronized public SocketManager getInstance() {
        if (instance == null) {
            instance = new SocketManager();
        }
        return instance;
    }

위의 방식 대신 아래처럼...

~cpp 
    public static SocketManager getInstance() {
        if (instance == null) {
            synchronized( this ) {
                if (instance == null) {
                    instance = new SocketManager();
                }
            }
        }
        return instance;
    }

System.out.println() 이 머지않아 재앙을 가져올 것이니.. --삽질 계시록 2장 :)


Retrieved from http://wiki.zeropage.org/wiki.php/ProjectZephyrus/Thread
last modified 2021-02-07 05:24:06