두 가지 근본 문제를 내포한다. 
1. 프로그래머가 자신이 작성한 코드가 어떤 상황에도 정상 동적할 것이라는 확신을 가지지 못함
2. 해당 코드를 수정해야 될때 프로그래머는 일종의 정신적 공황상태에 빠지기 쉽다. 어떻게 코딩한지 기억이 잘 나지 않는다;;

- 버그를 논리지거은 절차에 따라 해결하지 않고 프로그램의 엔트로피와 복잡성을 기하급수적으로 중대시키는 최악의 해결책을 선택하지 말아야 한다.
- 프로시저적 접근 방식을 사용하는 프로그래머들은 대개 자신의 코드를 이미 존재하는 코드의 골격에 맞추지만, 객체지향 접근방식이 몸에 밴 프로그래머는 거꾸로 원래 존재하는 코드를 새로운 코드가 존재하는 이상적인 방식에 맞춘다.
- 리펙토링(Refactoring) : 다양한 디자인 패턴을 구사해서 객체의 관련성을 수정하고, 불필요하게 중복된 코드를 한 곳으로 모으로, 이해하기 힘든 코드를 간명한 코드로 재작성하고, 객체의 계층관계를 단순화 하는 등, 새로운 기능이 자리를 잡을 장소의 주변을 깔끔하게 청소하는 작업
- but.. 리펙토링 전에 반드시!! 유닛테스트 코드 있어야한다.

Posted by 빈솔B
,
새로운 프로젝트 실행시

1. 요구사항 소화
- 복잡하고 까다로운 요구사항이 End User에게 미치는 영향은?
- 시스템 설계 전반에 미치는 영향은 무엇?
- 구현 가능한가?
- 요구사항에 담긴 내용은 최종목적에 부합하는가?
- 빠진 내용 없나?
- 서로 모순되는 요구사항은 없나?
- 그것으로 인한 보안, 성능, 확장가능성 등에 미치는 부정적 영향은 없나?

2. 약간의 코딩
- 필요시 새로운 코드의 얼개를 바로 코딩하는 것도 좋다.
얼개 [명사] 어떤 사물이나 조직의 전체를 이루는 짜임새나 구조. - 다음사전

3. 종이와 연필로 그림 그리기
- 전체적인 시스템 모습 스케치
- 객체를 동그란 원으로
- 관계 나타내는 선
- 기억해야 할 것은 작은 글씨로 표시

4. 인터뷰
- 새로운 기능이 다른 기존의 객체나 검포넌트를 다루고 있는 프로그래머에게 인터뷰함.
- 모르는것은 질문으로 확인, 아이디어는 동의를 구함, 더 나은 제안은 경청 및 메모
- 인터뷰를 토대로 이미 작성한 코드 개요 있으면 수정

5. 그림을 비트의 세계로 옮기기. UML을 사용하면 추가 점수.
- 객체 관련성을 도표로 표현하는데 사용하는 UML은 보조도구을 뿐임을 명심. 너무 많은 시간을 할애하지 말자.

6. 그림과 약간의 설명을 담은 문서를 작성하기
- 스케치한 걸 저장이 필요할때, 복잡하고 작업 범위가 넓은 기능 구현시에는 UML로 정리하도록 한다. 
- 마지막으로 발표(publish) 위한 자료 수집.
- 새로운 기능 구현이 갖는 개략적 방향, 방법론
- 시스템내에 영향을 받는 부분, 문제점과 해결책, 인터뷰통해 수집한 질문과 제안을 문서화
- 문서화에 또 너무 많은 시간을 투자하지 말자.

7. 공동의 검토
- 설계검토(design review) 
- 참석자들은 논의 내용을 충분히 숙지한 사람만 참여시키도록, 괜히 설명하느라 시간낭비가 될 수 있다. 


디버깅시
1. 요구사항 혹은 버거의 내용파악
2. 코딩시작

저자는 '코딩'과 '설계'를 굳이 구분할 필요가 없는 자연스러운 행위가 되어야 한다고 보고있다.


refer to 프로그래밍은 상상이다. -임백준 지음
Posted by 빈솔B
,
'합류, 합치, 생각의 일치'라는 의미하는 위키(wiki) 기업용 소프트웨어이다.
Posted by 빈솔B
,

Visual Paradigm

RareItem 2009. 2. 25. 10:14
파워포인트 비지오(visio)와 같은 UML 작성 프로그램이다. 
Posted by 빈솔B
,
TIOBE 인덱스
순위 산출 방법은 해당 언어가 구글,msn,야후, 유투브 등의 검색엔진에서 검색되는 빈도를 측정한 값을 중심으로 순위를 매김, 검색수가 아닌 상대적인 값이다.(시작은 2001년부터)
Posted by 빈솔B
,
커버팝 coverpop.com
아마존,유투브, 플릭커등에서 제공하는 데이터를 이용해 화려한 모자이크 기법으로 표현한 독특한 사이트

아마존에서 제공하는 api를 이용해 200페이지가 넘지않은 책만 검색하게 만들어놓은 사이트

씸리스웹 seamlessweb.com
뉴요커들이 주로 사용하며 원하는 음식 가장가까운 주문 가능한 곳을 알려줌, 레스토랑의 정보 집합

매쉬업 기술에 대한 길잡이 programmableweb.com
웹에서 제공하는 api 검색 또는 미리 분류해놓은 디렉토리에서 찾게 해놓음.


Posted by 빈솔B
,
TechCrunch(www.techcruch.com)는 이와는 다른 콘텐츠 생산방식과 비즈니스 모델을 가지고 있다. 2005년 변호사 출신의 마이클 아링턴이 창업한 TechCrunch는 IT 업계에서 가장 성공한 블로그 미디어다.

 8020Publishing(www.8020Media.com)이다. 이곳의 비즈니스 모델을 한마디로 말하자면 매쉬업을 이용한 사용자들의 원고와 사진으로 제작되는 잡지다. 즉 사이트를 통해 온라인 커뮤니티 구성원들이 잡지 발간 과정에 참여토록 하는 애플리케이션을 제공한다.


Posted by 빈솔B
,