[vim] 왜 IDE를 사용해야합니까? [닫은]

또 다른 질문으로 Mark 는 “어떤 사람들이 여전히 사용해야하는 이유를 모른다”고 말합니다. 프로그래밍에 vim을 사용하고 대부분의 동료가 vim 또는 emacs를 모든 작업에 사용하는 환경에서 근무하는 누군가 IDE의 장점은 무엇입니까? 왜 하나를 사용해야합니까?

나는 이것이 일부 사람들에게 부과 된 문제라고 확신하며 화염 전쟁을 시작하는 데 관심이 없으므로 IDE 기반 접근 방식이 우수하다고 생각하는 이유만으로 답장하십시오 . IDE를 사용하지 않아야하는 이유에 대해서는 관심이 없습니다. 나는 이미 하나를 사용하지 않습니다. 나는 “울타리의 다른 쪽”에서 듣는 것에 관심이 있습니다.

IDE가 일부 유형의 작업에는 적합하지만 다른 유형에는 적합하지 않다고 생각한다면 그 이유를 듣고 싶습니다.



답변

실제로 사용하는 언어에 따라 다르지만 C # 및 Java에서는 IDE가 다음과 같은 이점을 제공합니다.

  • 네임 스페이스, 프로젝트 등에 대해 걱정할 필요없이 유형으로 빠르게 탐색
  • 멤버를 하이퍼 링크로 취급하여 멤버 탐색
  • 마음 속으로 모든 회원의 이름을 기억할 수 없을 때 자동 완성
  • 자동 코드 생성
  • 리팩토링 (대규모)
  • 가져 오기 구성 (C ​​#의 지시문을 사용하여 Java에서 적절한 가져 오기를 자동으로 추가)
  • 유형별 경고 (예 : 일부 오류는 컴파일주기가 필요하지 않음)
  • 문서를 볼 수있는 항목 위로 마우스를 가져 가기
  • 화면에서 파일, 오류 / 경고 / 콘솔 / 장치 테스트 및 소스 코드를 모두 유용한 방식으로 동시에 확인
  • 동일한 창에서 단위 테스트를 쉽게 수행
  • 통합 디버깅
  • 통합 소스 제어
  • 오류 세부 사항에서 직접 컴파일 오류 또는 런타임 예외가 발생한 위치를 탐색하십시오.
  • 기타!

이 모든 것이 시간을 절약 해줍니다. 그것들은 내가 수동으로 할 수있는 일이지만 더 고통 스럽습니다. 오히려 코딩하고 싶습니다.


답변

코드 완성. 코드 탐색에 많은 도움이됩니다.


답변

IDE를 사용하는 이유에 대한 짧은 대답은 게으름입니다.

나는 쉬운 방법이있을 때 어려운 일을하는 것을 싫어하는 게으른 영혼입니다. IDE는 인생을 편하게 만들어 게으른 사람들에게 호소합니다.

코드를 입력 할 때 IDE는 자동으로 코드의 유효성을 검사합니다. 메소드를 강조 표시하고 F1을 눌러 도움말을 볼 수 있습니다. 마우스 오른쪽 단추를 클릭하고 “정의로 이동”을 선택하여 정의 된 위치로 바로 이동하십시오. 하나의 버튼을 누르면 자동으로 연결된 디버거와 함께 응용 프로그램이 시작됩니다. 그래서 목록은 계속됩니다. 개발자가 일상적으로하는 모든 일은 하나의 지붕 아래에 모입니다.

IDE를 사용할 필요가 없습니다. 하지 않는 것이 훨씬 더 어렵다.


답변

“text editor”가 실제로 emacs 일 때 고전적인 “text editor and console window vs IDE”를하는 것이 공정하지 않다고 생각합니다. IDE에 일반적인 대부분의 기능은 emacs에도 있습니다. 또는 아마도 거기에서 시작되었을 수도 있으며 최신 IDE는 주로 인터페이스 개선 / 단순화입니다.

이것은 원래 질문에 대한 답이 명확하지 않다는 것을 의미합니다. 이에 따라 어떻게 그들이 주로 텍스트 편집기로 사용하는 경우, 질문 사용 이맥스의 사이트 명, 또는 모든 출력 및 사용하는 사용자 정의 스크립트를 이동하는 경우, 해당 모드에 대해 명령을 배울 코드 태그 등등에 대해 알고.


답변

나는이 질문에 반대 방향에서왔다. 나는 Makefile + Emacs 땅에서 아주 적은 피트 스탑으로 프로그래밍을 시작했습니다. DOS에서 가장 빠른 컴파일러 인 Microsoft Quick C에서 작업을 자동화 할 IDE가있었습니다. Visual C ++ 6.0에서 수년을 보냈으며 Enterprise Java를 졸업하면서 Borland JBuilder와 함께 일한 후 Eclipse를 사용하여 생산성을 높였습니다.

저의 초기 자체 교육, 대학 및 현재 전문 경력을 통해 IDE 내에서만 수행되는 모든 주요 소프트웨어 개발이 비생산적이라는 사실을 알게되었습니다. 나는 대부분의 IDE가 당신이 그들의 작업을 원하기 때문에 이것을 말한다독특한 I-control-how-the-world-works 스타일. 당신은 그들의 선을 따라 프로젝트를 슬라이스하고 주사위를 굴려야합니다. 이상한 대화 상자를 사용하여 프로젝트 빌드를 관리했습니다. 대부분의 IDE는 프로젝트 간의 복잡한 빌드 종속성을 제대로 관리하지 못하므로 종속성을 100 % 작동시키기가 어려울 수 있습니다. IDE가 Clean / Rebuild All을 수행하지 않으면 코드의 실제 빌드를 생성하지 않는 상황에 처해 있습니다. 마지막으로 소프트웨어를 개발에서 제외하고 QA 또는 프로덕션과 같은 다른 환경으로 소프트웨어를 옮기는 확실한 방법은 거의 없습니다. 일반적으로 모든 배포 단위를 구축하는 것은 매우 번거로운 일이거나 IDE 공급 업체가 제공하는 어색한 도구가 있습니다. 그러나 다시

팀과의 대규모 개발을 위해 IDE를 사용하여 코드를 개발하고 수동으로 작성된 명령 줄 스크립트를 사용하여 모든 빌드를 수행하면 생산성이 가장 높아질 수 있다는 것을 알게되었습니다. (우리는 Java 개발을 위해 Apache Ant를 좋아한다.) 우리는 IDE에서 스크립트를 실행하는 것이 단지 클릭 페스트이거나 복잡한 빌드를위한 자동화 악몽이라는 것을 알았다. 쉘에서 스크립트를 실행하십시오.

수동 빌드에는 백그라운드 컴파일과 같은 최신 IDE의 장점 중 일부를 놓쳐 야하지만 여러 환경에서 살 수있는 깨끗하고 쉬운 빌드가 훨씬 중요합니다. 민첩한 사람들이 말하는 “원 클릭 빌드”? 우리는 그것을 가지고있다. 지속적인 통합 시스템에서도 빌드 스크립트를 직접 호출 할 수 있습니다. 지속적인 통합을 통해 빌드를 관리하면 코드 배포를보다 공식적으로 준비하고 다른 환경으로 마이그레이션 할 수 있으며 누군가 빌드 또는 단위 테스트를 중단하는 잘못된 코드를 체크인하면 거의 즉시 알 수 있습니다.

사실, IDE에서 빌드 역할을 맡아도 우리를 크게 해치지 않았습니다. Eclipse의 인텔리전스 및 리팩토링 도구는 여전히 유용하고 유효합니다. 백그라운드 컴파일은 단순히 해당 도구를 지원하는 역할을합니다. 그리고 Eclipse의 독특한 프로젝트 조각화는 모든 사람들이 이해할 수있는 방식으로 문제 세트를 정신적으로 세분화하는 아주 좋은 방법으로 사용되었습니다 (여전히 내 취향에 대해서는 조금 장황합니다). Eclipse에서 가장 중요한 점 중 하나는 탁월한 SCM 통합이라고 생각합니다. 이것이 팀 개발을 즐겁게 해줍니다. 우리는 Subversion + Eclipse를 사용하며, 이는 생산성이 높고 직원이 전문가가되도록 훈련시키기가 매우 쉽습니다.


답변

귀하가 귀하의 질문에 강조한 답변의 저자이기 때문에,이 질문에 조금 늦게 들어온다는 사실은, 목록에 나와있는 많은 이유 중에서 전문 개발자의 생산성이 가장 큰 존경받는 기술.

생산성이란, 가능한 최상의 결과로 업무를 효율적으로 수행 할 수있는 능력을 의미합니다. IDE는이를 여러 수준에서 가능하게합니다. 저는 Emacs 전문가는 아니지만 주요 IDE의 기능이 부족한 것 같습니다.

엔터프라이즈 응용 프로그램의 주요 디딤돌 인 설계, 문서화, 추적, 개발, 구축, 분석, 배포 및 유지 관리는 모두 IDE 내에서 수행 할 수 있습니다.

선택의 여지가 있다면 왜 그렇게 강력한 것을 사용하지 않습니까?

실험으로 30 일 동안 IDE를 사용하고 자신의 기분을 확인하십시오. 나는 경험에 대한 당신의 생각을 읽고 싶습니다.


답변

IDE를 사용하면 다음과 같은 장점이 있습니다.

  • 컴파일은 일반적으로 “즉석에서”수행되며 더 이상 컴파일하기 위해 명령 행으로 전환하지 않습니다.
  • 디버깅은 통합되어 있으며 IDE에서 디버깅한다는 것은 단계 디버거가 실제로 내부 편집기를 사용하여 실행되는 코드를 시각적으로 보여줍니다.
  • IDE는 일반적으로 작업중인 언어에 대한 의미를 잘 알고 있으며 입력하는 동안 가능한 문제를 보여줄 수 있습니다. 리팩토링은 “search replace”보다 훨씬 강력합니다.

더 많은 것이 있습니다. 어쩌면 시도해보십시오.