최신 IDE에는 코드 작성, 리팩토링, 검색에 도움이되는 많은 수의 트릭이 있습니다. 그것들은 모두 매우 도움이되지만, 그들 중 어느 것도 실제 "마법"처럼 보이지 않고 "와우! 어떻게 알아 냈습니까?"
당신이 그것을 처음 보았을 때 인상적인 IDE 코드 자동화 (또는 다른) 기능의 이름을 지정할 수 있습니까?
최신 IDE에는 코드 작성, 리팩토링, 검색에 도움이되는 많은 수의 트릭이 있습니다. 그것들은 모두 매우 도움이되지만, 그들 중 어느 것도 실제 "마법"처럼 보이지 않고 "와우! 어떻게 알아 냈습니까?"
당신이 그것을 처음 보았을 때 인상적인 IDE 코드 자동화 (또는 다른) 기능의 이름을 지정할 수 있습니까?
답변:
거꾸로 디버깅
Visual Studio 2010 (및 현재 2012)을 사용하면 IntelliTrace를 사용 하여 뒤로 디버깅 할 수 있습니다 .
F10을 한 번 이상 누른 순간 디버깅을 다시 시작해야하는 순간을 다시는 다시 살아 나지 않아도됩니다.
코드 완성
당신이 보았던 모든 것이 텍스트 편집기라면, 이것은 인상적입니다
내가 원하는 변수를 추측 할 수있는 ReSharper의 능력은 저를 놀라게합니다. 다음은 매우 간단한 예이지만 아이디어를 얻습니다.
foreach(var matche in regex.Matches(str))
. 또한 설정 matche
int로서 object
가 아닌 Match
, 매우 유용하지 않습니다.
MatchCollection
입니다. 형식화되지 않은 컬렉션 이기 때문 입니다. 적절한 컬렉션을 위해 var
훌륭하게 작동합니다. (여전히 마음에 들지 않습니다)
코드 버블. http://www.andrewbragdon.com/codebubbles_site.asp
코드 변경을 위해 제공하는 도구로는 Visual Studio와 Eclipse를 좋아하지만 Code Bubbles는 코드를 탐색하고 볼 수 있다는 점에서 정말 흥분됩니다. 안타깝게도 공개적으로 사용할 수 없습니다 =-{
내가 들어 본 것 중 가장 인상적인 프로그래밍 환경은 Genera 운영 체제입니다.
윈도우 시스템에서 위젯을 클릭하고 소스 코드 및 항목의 문서를 완전히 읽을 수 있습니다. 동적 프로그래밍 언어 (Lisp)이므로 위젯 소스를 즉석에서 편집 할 수 있습니다.
Lisp Machine 세계의 ZMACS는 여전히 피어가없는 편집기 환경 인 Emacs보다 우수한 편집기라고합니다.
프로그램의 구조를 시각적으로 보여줍니다 (프로그램 / 기능 / 루틴 //)
ReSharper의 리팩토링 기능.전체 공개에서, Eclipse를 사용하는 Java가 한동안 이러한 유형의 기능을 가지고 있다고 생각하기 때문에 곡선 아래에있을 수 있지만 Java로 정기적으로 작업하지는 않습니다.
ReSharper가 Visual Studio에 추가하는 기능의 델타는 매우 뛰어납니다. 광고처럼 들리지만 ReSharper를 설치하지 않고 Visual Studio 설치를 다시 사용할 수 있다고 생각하지 않습니다.
더 일반적으로, 코드 의 의미 론적 이해는 언젠가는 평범한 오래된 텍스트 편집기의 바지를 이길 것입니다. 이로 인해 "변수 찾기 사용"또는 "인라인 함수"또는 "관용적 패턴 사용 기회"등이 발생합니다.
스몰 토크의 디버거 :
스몰 토크에서는 디버거 내에서 코드를 작성하는 데 대부분의 시간을 보내는 것이 일반적입니다.
(VA4J는 Visual Age for Smalltalk로 작성 되었기 때문에 메소드를 실행하고 잘못된 것을보고 변경하고 다시 Visual Age for Java로 응용 프로그램을 다시 시작하지 않고 메소드를 다시 실행하여 날아간 것을 기억합니다.)
스몰 토크의 메소드 파인더
Method Finder를 사용하면 "이 매개 변수를 가져 와서 결과를 얻기 위해 어떤 메시지를 보낼 수 있습니까?" 물어 보면 'abc'. 'def'. 'abcdeb'.
알려줍니다 'abc' , 'def' --> 'abcdef'
. 그것을 질문 #(0 1 2 3)
과는 말한다 #(0 1 2 3) sum --> 6
. * 발신자, 구현 자-모든 메시지 발신자 또는 해당 메시지를 구현하는 모든 객체를 찾을 수 있습니다.
(*) 런타임에 메시지 이름 만들기와 같은 작업을 수행하는 경우를 제외하고 : self perform: (#foo, #bar)
자신에게 메시지를 보내십시오. #foobar
이 경우 수행중인 작업을 알고 있으며 자신의 페타 드에 자신을 올리는 가능성을 신경 쓰지 않습니다.
Java를 볼 때 Whyline for Java가 정말 감동했습니다. 텍스트뿐만 아니라 그래픽도 프로그램의 출력에 대해 질문 할 수있는 동적 분석 도구입니다. 예를 들어, "그 줄은 왜 빨간색입니까?" 또는 "페인트 메소드가 호출되지 않은 이유는 무엇입니까?"
프로그램을 계측하고 실행을 기록하여 작동합니다. 예를 들어, 재현 할 수있는 버그가 있다고 가정하십시오. Whyline으로 프로그램을 계측하고 Whyline에서 프로그램을 실행하여 버그를 재현 한 다음 프로그램을 종료하면 Whyline을 사용하여 실행 기록을 검사 할 수 있습니다.
이 녹음 및 재생은 새로운 것이 아니지만 Whyline이 구현하는 방식은 매우 매끄 럽습니다. 특정 이벤트에 따라 기록을 볼 수 있습니다 (예 : 마우스 끌기 이벤트에만 집중하거나 키 다운 이벤트에만 집중). 또한 출력을 프로그램의 인쇄 된 부분과 연관 시키므로 출력에서 코드로 이동할 수 있습니다.
작동하기 위해 프로그램 슬라이싱을 사용하므로 실제로 관련된 코드 부분에 집중할 수 있습니다. CMU는 이제 그것에 대한 특허를 가지고 있으며, 그들의 계획이 무엇인지 모르겠지만 프로덕션에서 더 많이 볼 수 있기를 바랍니다. 그것은 메모리 호그이지만 프로토 타입이기 때문에 향상 될 수 있습니다.
온라인에서 데모를 볼 수 있지만 전체 경험을 얻으려면 직접 사용해보십시오. 온라인 데모는이 아이디어를 판매합니다.
필자가 본 가장 인상적인 IDE 기능은 SyncEdit 이며 AFAIK는 Delphi에서만 사용할 수 있습니다.
IDE에서보고 싶은 것은 다음과 같은 기능입니다.
sheet[A3]
)과 그림을 포함시키고 변수처럼 액세스 할 수 있습니다.if
조건을 표와 같은 방식으로 표시 (여전히 링크 검색)동적 언어 유형 확인
코드가 너무 '메타'가 아닌 한 Ruby 또는 Python 용 IDE는 백그라운드 작업을 실행할 수 있어야합니다.
아직이 작업을 수행하는 IDE를 보지 못했습니다.
Vs2010에서 Alt- 클릭 멀티 라인 기능 에 대한 열렬한 팬이자 새 버전에 대해 찾은 것이 가장 좋습니다.
DevExpress 'CodeRush와 같은 코드 템플릿 및 확장 C #에서 a DependencyProperty
는 작성하는 데 큰 어려움이 있습니다. 구문은 자세하게 표현할 수 있지만 단순히 "dp"를 입력하면 유형, 이름 및 기본값을 입력하는 스 니펫과 비슷한 것을 가져옵니다. 필요한 "사용"문을 추가하고 메모리가 제공되는 경우 프로젝트 참조가 가능합니다.
이점은 간단한 INotifyPropertyChanged
속성 구현과 같이 자주 재사용하거나 다시 작성하는 코드에 대해 템플릿을 작성하는 것입니다 . 여기서는 템플릿 에 속성의 이름과 유형 (다른 확장기가 처리하지 않은 경우)을 지정하면됩니다. 백킹 변수 작성을 포함하여 나머지를 처리합니다.
Pex 는 매우 멋진 자동 단위 테스트 생성을 수행합니다. 코드를 추적하고 분기점을 결정하며 조건부 솔버를 사용하여 가능한 모든 분기에 맞는 입력을 생성 한 다음 결과를 반복 가능한 단위 테스트로 내보낼 수 있습니다. 복잡한 문자열 처리 코드를 모욕 할 수 있습니다.