Điều gì biện minh cho việc sử dụng IDE so với trình soạn thảo tiêu chuẩn? [đóng cửa]


39

Tôi thấy mình sử dụng trình soạn thảo văn bản mà tôi chọn (vim, nano, gedit, chọn chất độc của bạn) thường xuyên hơn bất kỳ IDE nào vào cuối.

Sau khi nhận thấy các phím tắt ide của tôi trở nên bụi bặm, tôi bắt đầu suy nghĩ về điều này và tự hỏi: điều gì biện minh cho việc sử dụng IDE cho bạn trái ngược với trình soạn thảo văn bản ?

Đối với vấn đề đó, bạn sẽ có lý do gì để không sử dụng IDE và chỉ dựa vào một trình soạn thảo?


bản sao có thể có của lập trình viên.stackexchange.com / questions / 1003 / trên ?
Larry Coleman

bạn thực sự làm gì trong các biên tập viên của bạn?

Viết mã, phát triển ứng dụng, ... gần như mọi thứ gần đây.
Chris

15
Cá nhân, tôi thấy IDE hữu ích hơn rất nhiều khi đọc mã của người khác (đặc biệt là các dự án lớn) so với khi viết mã của riêng tôi. IDE cho phép bạn điều hướng qua nguồn dễ dàng hơn, giúp dễ dàng hiểu nhanh hơn mã nguồn của người khác.
Charles Salvia

3
Tôi muốn chuyển câu hỏi xung quanh. Điều gì biện minh KHÔNG sử dụng IDE.
Thợ làm móng

Câu trả lời:


69

Cái tôi: hội nhập . Một trình soạn thảo văn bản tốt có thể tốt cho việc viết mã, nhưng hầu hết chương trình của bạn không dành cho việc viết; nó đã dành để thử nghiệm và gỡ lỗi và vì thế bạn muốn trình soạn thảo văn bản của mình tích hợp với trình biên dịch và trình gỡ lỗi của bạn. Đó là sức mạnh lớn nhất của một IDE.


Giá như tôi có thể tìm thấy một thứ không cản đường tôi :)
Tim Post

5
Tôi vừa mới chấp nhận chỉnh sửa mệnh giá phụ là giá tôi phải trả cho sự thuận tiện của việc tích hợp.
TMN

Không kiểm tra lập trình nếu bạn làm đúng? Nếu bạn dành phần lớn thời gian để gỡ lỗi và kiểm tra khỉ, thì tôi nghĩ tôi thấy vấn đề của bạn ở đâu.
Tom Hawtin - tackline

8
@Tom, Kiểm tra là lập trình khi bạn có thể tự động hóa các bài kiểm tra bạn làm mọi lúc. Mặt khác, xác minh bằng bất kỳ phương pháp nào mang lại chất lượng tốt nhất.
Andres Jaan Tack

49

Đây là những tính năng yêu thích của tôi về IDE yêu thích của tôi, IntelliJ, mà tôi thích sử dụng cho Java, PHP, Javascript, HTML, thậm chí là ActionScript.

  • Kiểm tra lỗi - Giống như kiểm tra chính tả trực tiếp cho mã. Hoàn toàn cần thiết.
  • Điều hướng mã - Ctrl+clicktrên một chức năng, biến, loại để đi đến định nghĩa. (IntelliJ rất giỏi về điều này trong tất cả các ngôn ngữ trên)
  • Hoàn thành mã - Tôi sử dụng Ctrl+spaceliên tục để giúp điền vào tên lớp hoặc phương thức mà tôi cần. Điều này tăng tốc mã hóa một tấn và thậm chí giúp bắt lỗi trước khi chúng xảy ra khi không thể truy cập thứ gì đó từ ngữ cảnh bạn đang ở. IntelliJ thậm chí sẽ giúp bạn mở rộng các từ viết tắt - gõ NPE, nhấn Ctrl+spacevà nó sẽ hiển thị "NullPulumException", "NoPageError", v.v. Đánh Alt+enterđể tự động thêm importcũng thực sự tốt.
  • Tạo - Tạo getters và setters, thực hiện các phương thức từ một giao diện với một vài cú nhấp chuột.
  • Tô màu mã rất tốt - IntelliJ không chỉ thực hiện từ khóa tiêu chuẩn, chuỗi, tô màu tên biến, mà còn tô màu các biến thành viên, biến cục bộ, tham số. Trong ActionScript, một biến thực sự là setter / getter sẽ được tô màu giống như một hàm.
  • Tái cấu trúc - Đổi tên không có lỗi là lớn nhất. IntelliJ rất giỏi trong việc đổi tên ngay cả setters và getters hoặc chuỗi sử dụng. Tất nhiên, có tìm kiếm dựa trên regex và thay thế khi bạn cần và tùy chọn "bảo quản trường hợp" để cho phép bạn thay thế "myNumber", "MyNumber" và "MYNUMBER" bằng "myString", "MyString" và "MYSTRING" trong một hoạt động
  • Tích hợp kiểm soát phiên bản - Chúng tôi sử dụng SVN và các tính năng IDE VC yêu thích của tôi có thể tạo, xóa, di chuyển các lớp mà không cần suy nghĩ về SVN, dễ dàng duyệt lịch sử, công cụ tìm khác biệt rất tốt, khả năng hợp nhất tốt và chú thích các tệp (hiển thị dòng- lịch sử dòng) trong trình soạn thảo.
  • Nhập phụ thuộc - Khi dựa vào thư viện của bên thứ ba mà bạn có nguồn, bạn có thể điều hướng đến mã dễ dàng để tham khảo, gỡ lỗi, v.v.
  • Gõ thông minh - dán mã và để nó tự động dán vào vị trí tab bên phải, tự động hoàn thành dấu ngoặc cuối, dấu ngoặc đơn, dấu ngoặc kép, v.v.
  • Trình chạy thử nghiệm rất tốt cho JUnit, FlexUnit, PHPUnit
  • Gỡ lỗi - tất nhiên. Gỡ lỗi JBoss, Jetty, thậm chí Flash hoàn hảo. Ctrl + nhấp vào dấu vết ngăn xếp để đi thẳng đến mã.

Những thứ như màu mã bạn có thể được cấp, nhưng màu mã tốt cũng giống như tầm nhìn ngoại vi - nó cho phép bạn tập trung vào những thứ quan trọng mà không cần lấy thêm phần giây đó để xác định từ đầy đủ.

IntelliJ thậm chí còn sử dụng Ctrl+spaceđể đề xuất tên biến. Trong Java, nếu bạn khai báo một biến EventMessageItem mới và nhấn Ctrl+space, nó sẽ gợi ý "eventMessageItem", "eventMessage", "item", v.v.

Tất cả những điều cho tôi cách thêm thời gian để suy nghĩ về mã và kiến trúc của tôi, và nghĩ rằng ít về sửa chữa định dạng, đối phó với hệ thống tập tin, sửa chữa sao chép và dán lỗi, chuyển đổi giữa các ứng dụng, đuổi xuống tài liệu, vv vv Tôi không biết làm thế nào bạn có thể nói không với loại tăng năng suất đó.


4
+ 1 để đề cập đến IntelliJ Idea - Tôi chỉ thích nó
artjom

3
+1, hầu hết các điểm ở đây áp dụng cho bất kỳ IDE tốt nào, hoặc nên :)
Matthieu

21

IDE hiểu mã của bạn tốt hơn nhiều so với trình soạn thảo. Điều này cho phép ví dụ để hoàn thành và tái cấu trúc định danh, đối với các ngôn ngữ dài dòng như Java là một gửi thần,


1
Lưu ý rằng tất cả sự hiểu biết này đòi hỏi bộ nhớ để lưu trữ. Do đó, IDE có xu hướng khá đói tài nguyên so với trình soạn thảo "phù hợp với đĩa mềm".

19
Vâng, nhưng máy dev 8Gb i7 của tôi cần phải làm gì đó trong khi tôi đang gõ. : D
Dominique McDonnell

IDE không cần phải đói tài nguyên. Nhưng Smalltalk có lẽ là một trường hợp cạnh: cú pháp rất đơn giản, rất đơn giản, v.v.
Frank Shearar

@Frank, phụ thuộc vào những gì bạn muốn họ làm và dễ dàng như thế nào.

18
[To the IDE] You had me at intellisense/autocomplete

1
+1 Mặc dù luôn luôn bối rối khi nhận ra tôi không bao giờ nhập một lớp đầy đủ, phương thức hoặc tên thuộc tính nữa và biết chính xác có bao nhiêu tổ hợp phím để thực hiện tùy chọn tự động hoàn thành chính xác ... tic-tic-tic-TAB- dot-tic-tic-tic-TAB-dot-tic-tic-tic
Grossvogel

5
@gross, nhưng nó đúng ! Gõ thủ công thường xuyên ngụ ý lỗi đánh máy.

@ TThorbjørnRavnAndersen Trừ khi bạn có hai thứ được đặt tên tương tự nhau và vô tình không nhập đủ các ký tự để có được một ký tự đúng. Tôi đã vô tình chèn một thuộc tính "NumberOfPoints" vào một số khu vực cần "NumberOfSegments" do không chú ý đầy đủ đến tự động hoàn thành của tôi: p. Điều đó đang được nói, tôi thà tự động hoàn thành còn hơn không.
KChaloux

14

Năng suất. Có bất kỳ biện minh nào khác có ý nghĩa? Đối với tôi, một IDE được thiết kế tốt tập trung rất nhiều chức năng mà tôi thực hiện trong khi lập trình - tạo và chỉnh sửa mã, sử dụng kiểm soát nguồn, gỡ lỗi, tương tác với các công cụ quản lý dự án, giao tiếp với các lập trình viên khác, tạo tài liệu, chạy thử nghiệm tự động - giảm đáng kể ma sát quá trình làm giảm năng suất của tôi.

Ngoài ra, mặc dù tôi cảm thấy cần phải biết cách sử dụng từng công cụ riêng lẻ, tôi không muốn phải làm vậy. Đối với tôi ít nhất, nhấp chuột phải hoàn toàn thích hợp hơn để mở CLI và gõ.

Tôi đã sử dụng nhiều, nhưng các IDE mà tôi quay lại nhiều lần là Visual Studio, Wing IDE và NetBeans. Tất cả thêm giá trị đáng kể vào thời gian mà tôi dành cho lập trình.


9

Trong lịch sử, các IDE cung cấp sự tiện lợi chưa từng có trên một máy tính hoạt động đơn lẻ. Trình biên dịch C đầu tiên của tôi yêu cầu các bước sau trong chu trình chỉnh sửa-biên dịch-chạy:

  • Bắt đầu biên tập
  • Chỉnh sửa chương trình
  • Lưu chương trình, thoát khỏi trình soạn thảo
  • Chương trình biên dịch
  • Lắp ráp chương trình biên dịch
  • Liên kết chương trình biên soạn và lắp ráp
  • Chạy chương trình

trên hệ thống CP / M của tôi. (Tôi có thể tự động hóa phần lớn vì chương trình hàng loạt có ổ đĩa của tôi lớn hơn.)

Khi tôi có Turbo Pascal, tôi rất vui khi có thể giữ trình soạn thảo có sẵn trong khi biên dịch và gỡ lỗi.

Điều đó, tôi tin rằng, là những gì làm cho IDE phổ biến ở nơi đầu tiên.


Nhưng tất cả những điều đó có thể được thực hiện từ rất nhiều biên tập viên; Emacs, ví dụ.
JasonFnut

@JasonFnut: Chắc chắn. Tôi đang giải thích những gì đầu tiên thu hút tôi với họ. Vào những ngày đó, tôi đã chạy CP / M trên TRS-80 Mod 4 và tôi tin rằng Emacs vẫn dựa trên TECO.
David Thornley

Được rồi, điểm. :-) (Biểu tượng cảm xúc để điền vào số lượng ký tự cần thiết.)
JasonFnut

2
Các máy @JasonFnut, CP / M-80 có RAM tối đa 64 Kb. Xem xét bao nhiêu Emacs bạn có thể phù hợp với điều đó.

7

Nếu bạn viết mã trong Lisp, Emacs có các khả năng giống như Intellisense như tìm kiếm các tham số phương thức và tự động hoàn thành, vì vậy bạn có thể nói đó là IDE gốc. Thật tuyệt khi có thể sử dụng một chương trình cho nhiều tác vụ (chỉnh sửa nói chung, nhắc nhở shell / lệnh, đọc tin tức).

Nói chung, câu hỏi của biên tập viên và IDE dường như phụ thuộc vào ngôn ngữ lập trình. Từ những gì tôi đã thấy, ví dụ, các lập trình viên Ruby và Haskell dường như thích trình soạn thảo văn bản yêu thích của họ.


Emacs thực sự có thể làm điều đó trong hầu hết mọi ngôn ngữ. Chế độ PHP khá tốt, là các chế độ cho Javascript, Haskell, Erlang và SQL. (Những cái khác cũng có thể tốt, nhưng tôi đã không sử dụng chúng).
Zachary K

Khi bạn thêm tất cả các chuông và còi vào emacs (hoặc bất kỳ trình soạn thảo nào cho vấn đề đó), cái bạn có là một IDE. Môi trường phát triển tích hợp. Tôi so sánh nó với việc mua một chiếc bánh từ một tiệm bánh (IDE) so với làm nó từ đầu (biên tập viên bị lừa)
sal

+1, Đối với Coq, Haskell và Lisp Emacs là điều duy nhất có bất kỳ sự hỗ trợ tử tế nào
jozefg

4
  • Biên dịch bằng một cú nhấp chuột
  • Gỡ lỗi
  • Mẫu mã
  • Hoàn thành mã
  • Tích hợp với các công cụ tái cấu trúc và kiểm soát phiên bản
  • Kiểm tra đơn vị đơn giản

đến tên một vài


3

Tôi nghĩ rằng câu trả lời sẽ phụ thuộc rất nhiều vào ngôn ngữ lập trình bạn đang sử dụng và mức độ giỏi của bạn. Đối với các ngôn ngữ như JAVA, IDE phải có nếu bạn đang làm bất cứ điều gì nghiêm trọng. Bất cứ nơi nào như khi nói đến các ngôn ngữ kịch bản như JS hoặc Ruby IDES đều không được sử dụng nhiều.

Tôi sử dụng notepad ++ và một tập lệnh shell (để sao lưu, cam kết git) cho sự phát triển của tôi và nó hoạt động hoàn toàn tốt.


Tôi sử dụng GVIM cho Javascript và thấy rằng nó NHIỀU nhanh hơn sau đó sử dụng IDE. Nó cũng sử dụng ít bộ nhớ hơn. Thêm vào khoảng 3-4 tập lệnh shell cho những thứ như jsLint, định dạng và kiểm soát selen và tôi thấy rằng tôi gần như không bao giờ cần phải rời tay khỏi bàn phím. (Và thành thật mà nói, tôi có thể có thể biến tất cả các tập lệnh đó thành các plugin VIM nếu tôi quan tâm)
Zachary K

3

Một số đối số có lợi cho "biên tập viên":

  1. Có những trường hợp IDE chưa được phát triển hoặc sẽ không bao giờ.
  2. Với trình chỉnh sửa, bạn có thể thay đổi "nhanh hơn" và phẫu thuật hơn.
  3. Nó cần ít tài nguyên hơn (vì vậy dễ sử dụng nhiều mở cùng một lúc)
  4. Bởi vì đó là cách duy nhất để giải quyết một số vấn đề như những vấn đề được mô tả ở đây .
  5. (cá nhân) Đôi khi khi tôi phải gõ tất cả mọi thứ, tôi đang làm việc nhiều hơn bằng cách sử dụng sự thích thú của mình và tham gia nhiều hơn vào những gì tôi đang gõ. Nhiều lần tôi đã tìm thấy ví dụ một lỗi chính tả trong một phương thức (formaqString), mà sẽ không được chú ý khi sử dụng IDE.
  6. Nó làm cho nó dễ dàng hơn để làm việc chỉ với việc sử dụng bàn phím (tốc độ / lưu lượng)
  7. Mentality của việc sử dụng macro hoặc tiết kiệm thời gian khác.

Tôi sử dụng IDE mỗi ngày để làm việc, rất khó để viết Java / C # nếu không.

(2) so với (3): Về cơ bản chỉ có tùy chọn chỉnh sửa tệp từ xa (trên ssh / máy tính để bàn từ xa) và thực hiện các thay đổi tối thiểu đối với cấu hình hoặc tệp của máy chủ ở xa.


2

Tất nhiên tùy thuộc vào ngôn ngữ của bạn, một số IDE cũng bao gồm các nhà thiết kế Form / Window trực quan.

Mặc dù cần phải chỉ ra, ranh giới giữa trình soạn thảo văn bản của lập trình viên và IDE không phải là một đường được xác định rõ. Nhiều trình soạn thảo có thể được mở rộng để xử lý biên dịch, hoàn thành mã, gỡ lỗi, v.v.


2

Tôi sử dụng IDE để kiểm tra / gỡ lỗi / tích hợp và KEDIT để chỉnh sửa vì IDE thiếu nghiêm trọng về khả năng chỉnh sửa.
Vì .NET IDE nhận ra các chỉnh sửa bên ngoài, tất cả những gì tôi cần làm là lưu trong trình chỉnh sửa và chấp nhận lời nhắc để tải lại nguồn. Điều này cho phép tôi tối ưu hóa khả năng chỉnh sửa và gỡ lỗi cùng một lúc.
Đối với các IDE khác, tôi sử dụng KEDIT làm bộ xử lý mẫu và chương trình tìm kiếm nguồn và sao chép / dán nguồn đó vào IDE.


Bạn làm gì trong kedit mà IDE không thể làm được? Tôi thực sự tò mò, chưa bao giờ thực sự sử dụng bất cứ thứ gì ngoại trừ một IDE cho hầu hết các mã hóa nghiêm trọng của tôi ...
Dean Harding

KEDIT, giống như các biên tập viên thông minh khác, có khả năng viết kịch bản cho phép tôi làm những việc mà IDE không thể. Chẳng hạn, tôi sử dụng KEDIT để thực hiện nhiều bộ đệm (tối đa 100 mỗi phiên kedit) sao chép và dán và chỉnh sửa cột mà IDE thậm chí không thể thực hiện được.
Dave

1

Đối với IDE:
- các tính năng nâng cao được kết nối có sẵn.
- một số tính năng rất cụ thể cho khung của bạn mà các biên tập viên không có tương đương.

Đối với biên tập viên: -
Giữ tay trên bàn phím.
- môi trường dev của bạn giống nhau trên tất cả các hệ thống
- kịch bản tốt hơn cho trình soạn thảo của bạn -
một số tính năng của IDE có sẵn với các công cụ hoặc tập lệnh bên ngoài. (intellisense, định nghĩa goto, tìm tài liệu tham khảo)


0

Đường cong học tập ngắn. Đó là nó.


4
Tôi đoán bạn đã không sử dụng tối đa bất kỳ loại IDE nào
Harald Scheirich vào

4
Với vim là đồng nghiệp của tôi, tôi không cần phải làm vậy.
nate c

Đường cong học tập ngắn cho ....? tha thứ nhưng điều này không rõ ràng với tôi
Chris

0

Người duy nhất tôi thực sự khuyên dùng là trình gỡ lỗi. IDE thực sự là một trình soạn thảo có tải các gubbins khác được thêm vào, nhưng nếu bạn có thể biên dịch bằng cách gõ make (hoặc mũi tên lên + enter) trong một dấu nhắc lệnh, thì bạn không cần IDE. Nếu bạn có thể cam kết với SCM bằng cách nhấp chuột phải vào explorer và chọn mục menu phù hợp, bạn không cần IDE.

Bây giờ tôi biết một số người cần các công cụ như hỗ trợ tái cấu trúc (viết mã của bạn ngay lần đầu tiên :)) hoặc một số nhà thiết kế GUI tích hợp (nhưng ngay cả khi đó, sử dụng Visual Studio tôi sử dụng Expression để thực hiện công việc GUI của mình chứ không phải hỗ trợ XAML xảo quyệt trong VS ) và nhiều người cần intellisense và autocomplete (đặc biệt đối với các ngôn ngữ dài dòng như Java và C # có tên dài hạn).

Nhưng đối với tôi, trình gỡ lỗi GUI là lý do thực sự tốt để sử dụng IDE. Tôi vẫn sử dụng trình gỡ lỗi 'dòng lệnh' (tốt, Windbg) nhưng hàng ngày, nó là bản dựng sẵn cho VS.


0

Có những lợi ích cho một IDE. Không phải tất cả các ngôn ngữ đều có một IDE toàn diện để thực sự vượt qua quy mô hoặc rất khó để tạo ra một ngôn ngữ cho ngôn ngữ nói. Lý do tại sao sẽ muốn có một IDE? Hãy bắt đầu với những điều này:

  • Ngôn ngữ có API tiêu chuẩn phong phú mà trong cửa sổ bật lên IDE có thể giúp tăng tốc độ phát triển.
  • Có rất nhiều mã nồi hơi. (Buộc thử / bắt, getters / setters, v.v.)
  • Tự động hoàn thành có thể đáp ứng chính xác nhu cầu mã hóa của bạn
  • Bộ kiểm tra đơn vị ngôn ngữ của bạn được tích hợp vào IDE nói.
  • IDE nhận thức và hỗ trợ nhiều thư viện phổ biến ngôn ngữ liên quan đến thực tiễn tốt nhất.
  • Plugin có sẵn để thực hiện mo'betta
  • Nó không quá nặng đến nỗi làm chậm hệ thống của bạn
  • Trình gỡ lỗi tích hợp cao? Những sự giúp đỡ đó.

Vấn đề là không phải tất cả các ngôn ngữ thực sự đạt được mức tăng năng suất lớn từ một IDE toàn diện. Tôi sử dụng IDE cho một số công việc tôi làm (Java, C #) nhưng không cho các công việc khác (Python, Ruby, Coldfusion). Tất cả thực sự là một hành động cân bằng. Một số ngôn ngữ không yêu cầu một bộ toàn diện như vậy.

Có IDE cho mỗi? Chắc chắn rồi. Bạn luôn cần một cái? Không hẳn vậy.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.