IDE에 의존합니다. 어떻게 해를 입힐 수 있습니까?


27

나는 IDE에 의존하는 개발자입니다 (JAVA 개발자 인 NetBeans 및 Eclipse). IDE가 있으면 올바르게 코딩 할 수 있습니다. 개발, 디버깅 및 배포에 많이 의존 할 수 있습니다. 그러나 IDE가 없으면 아무것도 할 수 없습니다. 간단한 hello world 프로그램이나 간단한 UI 배열을 코딩 할 수는 있지만 복잡한 일이나 간단한 일을 오래 코딩하려면 IDE가 필요합니다.

그것이 나에게 해가된다고 생각합니까? 6 년 이상의 개발 경험이있는 일부 프로그래머는 그것이 해로울 수 있다고 강하게 믿고 있지만, 복잡한 작업을 빠르고 올바르게 수행 할 수 있다면 메모장과 명령 줄 도구를 사용하여 시간이 많이 걸리는 작업을 수행해야하는 이유는 무엇입니까? IDE에는 버튼 클릭이 있습니까?


29
이것을 대답으로 추가하지는 않지만 Java (전용) 개발자가되면 해를 입힐 수 있습니다. 실제 언어를 배우십시오. 나쁜 프로그래머를 사용하는 것이 더 저렴하기 때문에 Java를 사용하여 gazillions에서 또 다른 코드 원숭이가 아닙니다. 부디?
Lacrymology

5
이것은 나에게 매혹적인 질문이다. 나는 Emacs 또는 Vi 이외의 다른 프로그램을 프로그래밍 한 적이 없다. 결과적으로 나는 IDE가 당신에게 의존 할 수있는 것을 당신에게 무엇을 제공하는지 전혀 모른다.
kasterma

8
@kasterma 보자 : 코드 도움말, 리팩토링 도구, 코드 개요, 디버깅, 매개 변수화 된 디버깅, 스택 추적, 매개 변수 감시, 솔루션 구조화, rad, 인텔리전스, 코드 스 니펫, 컴파일 및 컴파일러 오류 지원, 표준 시행, 빠른 시작 템플릿, 구문 강조 표시하고 더 많이 ;-)
Syg

2
@Lacrymology는 또 다른 요점에 가깝다고 생각합니다. Java는 IDE에 따라 다릅니다. 대부분의 코더가 Python, Scheme 또는 Common Lisp와 같은 IDE를 사용하지 않는 언어를 배우십시오. 그것은 당신에게 새로운 기술을 제공하고 때로는 IDE에서 당신을 유지합니다.
JasonFruit

7
@Lacrymology : Java는 IDE에 의존 하지 않으며 가장 널리 사용되는 언어 중 하나입니다. 나는 그것이 당신이 그것이 "실제"라고 생각하지 않는다는 것을 충격을받습니다.
Josh K

답변:


15

다른 사람들이 말했듯이 IDE에서없는 것보다 IDE에서 더 빠르면 괜찮습니다. 복잡한 도구를 올바르게 사용하여 생산성을 높이는 것은 중요한 기술입니다.

그러나 IDE에 대한 과도한 종속성으로 인해 문제가 발생할 수 있습니다. 더 이상 운동하지 않는 기술과 지식은 사라지고 일부 측면에 대한 이해가 얕을 수 있습니다. 고전적인 예제는 명령 행에서 컴파일하고 실행하는 것입니다. 거의 모든 작업을 수행 할 때마다 Eclipse가 나를 위해 할 수있는 시간의 99 %가 잘못 되었기 때문에 (일반적으로 클래스 경로 관련) 무언가 잘못됩니다.

IDE 외부에있을 때 영향을 미치지 않습니다. IDE가 숨기고있는 복잡성에 대한 지식이 얕 으면 잘못 될 때 (어느 시점에서 잘못 될 수 있음) 해결하기가 훨씬 어렵습니다.

이 두 가지 방법을 처리합니다.

  1. 가장 기본적인 형태의 새로운 도구를 배우십시오. 예를 들어 SVN에서 Mercurial로 전환했지만 Eclipse 플러그인 대신 명령 행 클라이언트로 시작했습니다. 이로 인해 훨씬 ​​더 심오한 일에 대한 이해가 이루어졌으며, 무엇이 잘못되었는지, IDE에서 오류가 발생했을 때 문제를 해결하는 방법을 알았습니다.

  2. 명령 줄에서 기본 코딩 기술을 연습하십시오. 이 작업을 수행하기에 좋은 곳은 구문 강조 표시, 대괄호 일치, 빨간색 밑줄, 아무것도없는 CodingBat 입니다. 그래도 java 및 javac 명령 행 기술을 연습하는 것을 잊지 마십시오! (그리고 당신의 워크 플로우에 적합한 다른 것들-나에게는 hg와 개미도 포함됩니다)

마지막으로 너무 걱정하지 마십시오. NetBeans 또는 Eclipse없이 많은 작업을 수행해야 할 가능성은 거의 없으며, 코드없이 코딩 할 수 있고 IDE가 수행하는 작업을 이해 하는 한 중요하지 않습니다. 그것없이 느리게하거나 더 많은 실수를 저 지르십시오.


2
취미로, 저수준 세부 사항을 아는 데 시간과 두뇌 세포를 소비하는 것은 재미있다. 상업적으로 많은 가치를 잃습니다. 이제 비즈니스를 배우고 IDE가 제공하는 추가 효율성으로 구현하는 데 더 나은 시간을 보냈습니다.
Brian Knoblauch

CodingBat에는 구문 강조가 있습니다.
masterxilo

29

아니요. 실제로 다른 방법이라고 생각합니다. IDE는 인텔리전스를 통해 마음으로 프레임 워크를 알아야 할 필요성을 없애고 지루하고 반복적이며 복잡한 작업 (디버깅, 배포)을 단순화시킵니다. 이를 통해 비즈니스 문제해결하는집중할 수 있습니다 . 알고 IDE를 잘 알고 있으면 유지 관리 가능한 코드를 더 빨리 작성할 수 있습니다.

물론 개발자가되는 것만은 아닙니다. 개발자로서의 경험은 경로를 넘어서는 문제에 올바른 솔루션을 적용하는 데 도움이됩니다. 그게 진짜 기술이라고 생각합니다.


2
지능을 +1하십시오! 사람들이 프로그램에서 각 문자를 입력하여 인텔리전스가 그 속도를 크게 높일 때 유감스럽게 생각합니다.
David

8
그것은 우리의 나머지 부분에 대해 자동 완성이라고합니다 :)
mhitza

4
@David : 사람들이 두 문자를 입력하는 것을 본 다음 자동 완성이 나타나기 위해 0.5 초 동안 기다렸다가 실제로 의미하는 것을 물어 보는 것은 고통 스럽습니다. 그런 다음 마우스로 이동하여 마지막으로 클릭 할 때까지 사용 가능한 선택 항목을 스크롤합니다. 아니요, 자동 완성은 신의 선물이 아니며 실제로 유용하지도 않습니다. 게으른 도구입니다.
Josh K

1
@ 조쉬 K : 사실입니다. 자동 완성 기능을 사용하면 나쁜 프로그래머가 더 나빠질 수 있지만 좋은 프로그래머가 더 효율적일 수 있습니다. :)
David

2
@ 조쉬 그러나 분명히 지능 / 자동 완성에 더 많은 방법이 있으며 분석법의 이름을 마무리합니까? 인라인 메소드 설명 (무엇이 있고 어떤 매개 변수가 사용되는지), 사용 가능한 메소드 오버로드, 코드 스 니펫에 대한 액세스, 재정의 할 수있는 메소드 등의 통찰력은 어떻습니까?
Syg

24

아니, 그것은 당신을 "해치지"않습니다. 물론 IDE 없이는 어떻게 작동하는지 이해해야합니다 (즉, 기본 컴파일 프로세스 등을 이해해야합니다). 그러나 이것에 대해 마조 히지 말자 ... IDE가 하나를 사용하지 않는 것보다 생산성을 높이면 왜 그렇지 않을까요? 당신은?


17

IDE에 종속되면 다음과 같은 위험이 있습니다.

  • 특정 IDE 및 버전이 필요한 소프트웨어 빌드를 작성하게됩니다.
  • 팀의 다른 사람들이 해당 IDE를 사용하여 시스템을 구축하도록 강요합니다.
  • 소프트웨어 구축을 쉽게 자동화 할 수 없습니다.
  • 소프트웨어 종속성이 무엇인지 모릅니다.

따라서 명령 줄에서도 소프트웨어를 빌드 할 수 있어야합니다. 예를 들어 Java에서는 maven 또는 ant를 사용하십시오. 그런 다음 위의 위험을 완화하십시오.

다른 IDE 의존성 위험 :

  • IDE는 코드의 오류 및 경고를 표시하고 빠른 수정을 제공합니다. 이것들은 적절하지 않을 수 있습니다-아마도 디자인이나 요구 사항 문제가있을 수 있습니다.
  • 당신은 기초를 잊어 버립니다-당신은 당신이 언어를 숙달하고 인터뷰에서 숙달을 전달할 수 있도록 선택한 언어의 기초를 알아야합니다.
  • IDE 샌드 피트에 갇히게됩니다. IDE에서 지원하지 않는 새로운 기능이나 무엇이든 시도하는 것을 두려워합니다. 예를 들어 IDE에는 검색 및 교체를위한 광범위한 기능이있을 수 있습니다. 그러나 이것들은 grep 및 sed와 같은 명령 줄 도구의 성능 및 속도와 비교할 수 없습니다. 선택한 IDE (예 : netbeans)가 지원하지 않기 때문에 Android 개발을 수행하지 못할 수 있습니다.
  • 일부 IDE는 큰 파일을 처리 할 수 ​​없습니다. 예를 들어 이클립스에서 큰 서버 출력 파일을 열려고 시도하십시오. 영원히 걸리거나 메모리가 부족합니다.

3
나는 당신의 요점에 동의하지만, 그것이 실제 질문을 다루지 않는다고 생각합니다. 예를 들어 asker는 Netbeans에만 의존하지 않습니다. 그 / 그녀가이 모든 점들이 사실이라면, 내가 이해하는 질문은 기본 텍스트 편집기와 명령 행이 아니라 일반적으로 IDE를 사용하는 것입니다.
jzd

2
내 대답에서 IDE 인스턴스에 대한 참조는 IDE 의존성이 어떻게 위험한 지에 대한 예일뿐입니다. 넷빈이나 이클립스를 구체적으로 지적하지는 않습니다.
Conor

나는 직장에서 Netbeans를 사용하지만 누구나 Netbeans없이 프로젝트를 빌드 할 수 있도록 모든 Ant 스크립트를 직접 작성했습니다. 나는 편집기 기능을 좋아하고 쉽게 코드를 탐색하지만 IDE 독립적으로 유지하기 위해 가능한 모든 작업을 수행합니다.
jonescb

9

선택한 도구 세트로 생산성을 높이는 데 아무런 문제가 없습니다. 그러나 당신이 그것 없이는 일할 수 없다면, 나는 당신의 내면의 지식에 대해 매우 의심 할 것입니다.

IDE를 포기하지 마십시오. 그러나 때때로 브라우저에서 편집기와 문서를 사용하여 몇 가지 '쉬운'수업을 시도하십시오.

최고의 도구보다 더 빠른 도구를 사용할 필요는 없습니다.


IDE가 없으면 중지되거나 멍청하지 않습니다 (40 %의 경우).하지만 IDE가 없으면 속도가 크게 줄어 듭니다. IDE로 10 분 작업을 수행하기 위해 IDE가 충돌했을 때 메모장과 javac를 하루 종일 보냈습니다.
Prasham

음, 메모장이 너무 낮습니다. notepad ++와 같은 프로그래머의 편집기를 사용해보십시오. 운동이라고 생각하면 재미 있지 않지만 규칙적으로하면 더 나아질 수 있습니다.
Javier

4

그러나 IDE가 없으면 아무것도 할 수 없습니다.

복잡한 일이나 간단한 일을 오래 코딩하려면 IDE가 필요합니다.

당신은 그것을 고칠 수 있습니다.

실제로 언어와 프레임 워크를 배울 수 있습니다.

아무것도 당신을 막을 수 없습니다.

물론 IDE에 의존하는 것에 대해 자랑하지 않는 한.

IDE에 버튼 클릭이있을 때 시간이 많이 걸리는 작업을 수행하기 위해 메모장과 명령 줄 도구를 사용해야하는 이유는 무엇입니까?

관련이 없습니다. "메모장에 고정"은 "IDE 없이는 아무것도 할 수 없습니다" 와는 전혀 관련 이 없습니다. 메모장에서 아무것도하지 않는 것은 메모장을 고수하는 것과 다릅니다. 무엇 이니?


3

두 IDE가 모두 오픈 소스이기 때문에 "종속적"인 것은 아니기 때문에 사용할 수없는 시점까지 사라지거나 실수로 "개선"되지 않습니다. 그리고 당신이 선택한 언어는 어떤 옵션도 남기지 않습니다-당신은 수많은 도서관에 의존하고 있으며, 당신을 도울 IDE가있을 때 중요하지 않은 모든 것을 기억하는 것은 어리석은 일입니다. Java는 장황하고 장황하며 중복되는 세부 정보를 활용하는 스마트 도구 없이는 생산성을 높일 수 없습니다.


다른 언어에 대해서도 같은 말을 하시겠습니까? (필자의 경우 PHP를 생각하고 있습니다) 그러나 일반적인 규칙으로 좋은 조언이 확실하지 않습니다. 여기에 예외가있을 수 있습니다
Quamis

1
C #에서도 마찬가지라고 말하고 PHP도 마찬가지입니다. 다양한 라이브러리를 사용해야하는 언어와 문제 영역의 조합에는 스마트 도구가 필요합니다. 일부 언어는 수많은 라이브러리 없이도 사용할 수있을만큼 강력하고 표현력이 뛰어나며 IDE없이 간단한 것을 코딩 할 수 있습니다. 어떤 언어는 가장 간단한 것까지 항상 도움이 필요합니다. Lisp로 코딩 할 때 emacs 또는 CLI REPL로 괜찮습니다. C # 또는 Java로 코딩 할 때 적절한 IDE (msvs 또는 eclipse)가 없으면 아무것도하지 않습니다.
SK-logic

그러나 "지능형"또는 "양식 디자이너"의 필요성이 잘못 조직 된 (또는 명명 된) 객체 구성원에 대한 경고가되어서는 안됩니까? 나는 intellisense를 많이 사용하는 사람들이 객체 / 함수 / 변수에 더 길고 더 장황한 이름을 사용하는 경향이 있음을 관찰했습니다.이 이름은 처음에는 기억하기 어렵습니다. 이것이 좋은 습관이라는 것을 이해해야합니까?
Quamis

Quamis : 반대가 아니에요? 입력하면 클래스 / 방법을 설명하지 않는 짧은 이름과 긴 이름을 선택할 수 있습니다.
DistantEcho

@Niphra : 예, 그리고 나는 더 짧은 이름을 더 좋아합니다 :) 내 의견으로는 코드를 더 쉽게 읽을 수 있습니다. 기본적으로 짧게 유지하려고하는데 문제가 없습니다.
Quamis

3

IDE에 대한 과도한 의존으로 인한 피해는 마법사를 사용하여 코드를 생성하는 데 무의식적으로 작용한다고 생각합니다. NetBeans와 Eclipse 모두 ​​상당히 밝습니다. IMO가 좋은 것입니다. 하나의 IDE 만 알고 다른 IDE를 사용할 수없는 경우 또 다른 피해가 발생합니다. 일부 회사에는 사용할 것을 지시하는 정책이 있습니다. 더 좋든 나쁘 든 그것이 바로 그 것입니다.

IDE가 생산성 을 높이 지 않으면 가치가 없다고 주장합니다 . 예를 들어, JetBrains IDEA를 사용하면 생산성이 가장 뛰어나지 만 Eclipse는 먼 길을 왔으며 그로 인해 생산성이 높아질 수 있습니다. 이클립스는 또한 광범위한 용도에 맞게 조정되었으며 이는 두 가지 이점입니다. VIM 또는 다른 텍스트 편집기를 사용할 수는 있지만 리팩토링 지원과 같은 대부분의 최신 IDE에서는 대체 할 수없는 다른 기능이 있습니다.


2

나는 당신이 어떤 호의를하고 있다고 생각하지 않습니다. 물론 Eclipse를 사용하고 있습니다. Eclipse는 자유롭게 사용할 수 있으며 JVM이있는 모든 곳에서 실행됩니다. 그러나 X 서버가없는 터미널 세션을 통해 다른 컴퓨터에 원격으로 연결해야하기 전에 vi와 같은 일반 텍스트 편집기를 사용하고 명령 줄을 작성해야했습니다. 또한 개발 네트워크가 다른 국가와 물리적으로 분리되어있는 환경에서 일하고 있으며이 네트워크와 공용 네트워크 간의 모든 전송은 실제 미디어를 통해 이루어집니다. 해당 네트워크에 Eclipse가있는 유일한 이유는 여러 계층의 승인을 먼저 수행했기 때문입니다.

커맨드 라인 환경 (VAX / VMS)에서 C와 Fortran 77에서 이빨을 잘라 냈기 때문에 다소 의심스러운 IDE 가 필요하다는 개념을 발견했습니다 . 그러나 이것들은 자바 인 야수에 비해 작은 언어입니다. 최신 Java Nutshell 책을 가지고 다니려면 지게차가 필요하다는 것을 감안할 때 IDE를 사용하는 것이 인생을 훨씬 쉽게 만드는 방법을 알 수 있습니다.


2

실제로 "해를 끼치 지"않을 수도 있지만 IDE 없이도 일을하는 것에 익숙하다면 얻을 것이다 . 시야를 넓히는 것을 두려워하지 마십시오.

대부분의 개발 도구는 먼저 명령 줄 도구로 작성됩니다. IDE는 나중에 생각할 수 있습니다. 다른 한편으로, 당신은 종종 포인트와 클릭을 유지하면 찾을 수없는 "숨겨진 보석 명령 행 스위치"또는 "고급 트릭"을 찾을 수 있습니다.

그래서 "어떻게 해를 입힐 수 있을까요?" 나는 명령 행 도구 (원점)를 배우지 않는 지점까지 모든 명령 행 도구가 버튼을 클릭하는 것보다 느리다고 생각할 때 해가 될 것이라고 생각합니다.

프로그래머로서 어셈블리를 배우는 것과 같습니다. 오늘날 거의 손으로 어셈블리를 작성하는 사람은 거의 없지만 어셈블리를 이해하는 사람들은 사용하는 언어에 관계없이 더 나은 프로그래머라고 생각합니다.


2

컴퓨터에 의존한다는 것은 이미 꽤 해 롭습니다. 나는 항상 큰 석재 정제와 망치로 허리를 닦습니다. 코드가 깨지는 데 시간이 걸리지 만 특히 큰 방법을 마치면 일반적으로 무언가를 먹습니다. 거기서 나는 슈퍼마켓과 그런 것들과 독립하려고 노력하므로 집에서 모든 밀을 재배하고 그냥 먹습니다. 물론, 밀씨와 물 공급 업체들은 저를 거의 사로 잡았 기 때문에이 의존성주기에서 벗어날 방법이 없다고 생각합니다.

진지하게 : <disclaimer>IDE를 사용하고 IDE </disclaimer>없이 자신을 발견하고 프로그래밍해야하는 경우, 게임을 통해

  1. IT에 전화하거나
  2. IT 인 경우 문제를 직접 해결하십시오.

필요한 도구가 없으면 프로그래밍하지 말아야 할뿐만 아니라 치약을 열 페이스트로 사용할 수도 없습니다.


1

IDE에 의존한다고해서 반드시 해를 입힐 필요는 없지만 선택한 환경 없이도 운영 할 수있는 것은 매우 중요한 기술입니다.

IDE는 일반적으로 중요하지 않은 '작은 것들'을 배우지 못하게하며 쓸모없는 타이핑 / 보일러 플레이트를 피하기 때문에 작업을 더 빨리 완료 할 수 있도록 도와줍니다. 일반적으로 함수 철자 오류와 같은 문제가 발생할 때이를 해결할 수도 있습니다.

언어 / 프레임 워크 등을 배울 때의 개인적 규칙은 먼저 어려운 방법을 배우는 것입니다. 그런 다음 그것을 익힌 후, 나는 그것을 쉽게 할 수있는 권리를 얻었습니다 . 문제는 작은 세부 사항을 모른다면 하수구가 부엌 싱크대에서 쓰레기를 뿜어 내기 시작할 때 SOL이 될 것입니다. 잠재적 인 원인이 될 수있는 기본 작업을 알고 있으면 문제를 해결하거나 전혀 발생하지 않을 수 있습니다.


0

PSPad for MS-Windows (프리웨어), TextMate for Mac OS X, Geany for GNU Desktop (오픈 소스) 또는 Kate for KDE (오픈 소스) 와 같은 훌륭한 텍스트 편집기를 사용해 봅시다 .

MS-DOS 용 MultiEdit4.0은 몇 년 전부터 삶을 변화 시켰습니다. 그 이후로 저는 텍스트 편집기에 매우 합리적입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.