Là phụ thuộc IDE. Làm thế nào nó có thể làm hại tôi?


27

Tôi là nhà phát triển phụ thuộc IDE cao (NetBeans và Eclipse vì tôi là nhà phát triển JAVA). Tôi có thể viết mã đúng nếu tôi có IDE. Tôi có thể dựa rất nhiều vào điều đó để phát triển, gỡ lỗi và triển khai. Nhưng không có IDE tôi không thể làm gì. Có thể viết mã chương trình hello world đơn giản hoặc sắp xếp giao diện người dùng đơn giản nhưng tôi cần một IDE để thực hiện những việc phức tạp hoặc mã hóa dài những thứ đơn giản hơn.

Bạn có nghĩ rằng nó làm hại tôi? Một số lập trình viên có hơn 6 năm kinh nghiệm phát triển tin tưởng mạnh mẽ rằng nó có thể gây hại, nhưng tôi nghĩ rằng nếu tôi có thể làm một số việc phức tạp một cách nhanh chóng và đúng đắn thì tại sao tôi phải sử dụng notepad và các công cụ dòng lệnh để thực hiện một công việc tốn thời gian khi IDE có một nút bấm để làm điều này?


29
Không thêm điều này như một câu trả lời, nhưng là một nhà phát triển Java (chỉ) là điều có thể gây hại cho bạn, và rất nhiều. Học một ngôn ngữ thực sự, đừng chỉ là một con khỉ mã khác trong số những ánh mắt sử dụng Java chỉ vì sử dụng các lập trình viên xấu rẻ hơn. Xin vui lòng?
Lacrymology

5
Đây là một câu hỏi hấp dẫn với tôi; Tôi chưa bao giờ lập trình trong bất cứ điều gì khác ngoài Emacs hoặc Vi. Kết quả là tôi không biết IDE mang đến cho bạn điều gì mà bạn thậm chí có thể trở nên phụ thuộc.
kasterma

8
@kasterma Hãy để tôi xem: trợ giúp mã, công cụ tái cấu trúc, phác thảo mã, gỡ lỗi, gỡ lỗi tối ưu hóa, theo dõi ngăn xếp, xem tham số, cấu trúc giải pháp, rad, intellisense, đoạn mã, hỗ trợ biên dịch và biên dịch, thực thi tiêu chuẩn làm nổi bật và nhiều hơn nữa ;-)
Syg

2
Tôi nghĩ rằng @Lacrymology đến gần một điểm khác: Java phụ thuộc vào IDE. Hãy thử học một ngôn ngữ nơi hầu hết các lập trình viên không sử dụng IDE, như Python, Scheme hoặc Common Lisp; điều đó sẽ cung cấp cho bạn một kỹ năng mới và đôi khi giúp bạn thoát khỏi IDE.
JasonFnut

7
@Lacrymology: Java không phụ thuộc vào IDE và là một trong những ngôn ngữ phổ biến nhất hiện có. Tôi thấy nó gây sốc khi bạn không nghĩ nó là "thực" đủ.
Josh K

Câu trả lời:


15

Như những người khác đã nói, sẽ tốt hơn nếu bạn nhanh hơn trong IDE của mình hơn là không có nó, đó là một điểm quan trọng. Có thể sử dụng các công cụ phức tạp một cách chính xác để tăng năng suất của bạn là một kỹ năng quan trọng.

Tuy nhiên, việc phụ thuộc quá nhiều vào IDE có thể gây ra vấn đề. Kỹ năng và kiến ​​thức bạn không còn tập thể dục sẽ mất dần, và sự hiểu biết của bạn về một số khía cạnh có thể còn nông cạn. Một ví dụ kinh điển là biên dịch và chạy trên dòng lệnh - hầu như mỗi khi tôi làm điều này, tôi gặp phải một lỗi nào đó (thường là liên quan đến đường dẫn lớp), bởi vì 99% thời gian tôi để Eclipse làm điều đó cho tôi.

Điều này không chỉ ảnh hưởng đến bạn khi bạn ra khỏi IDE - nếu kiến ​​thức về sự phức tạp mà IDE đang che giấu bạn là nông cạn, thì khi nó gặp trục trặc (và đôi khi nó sẽ sai) nó khó hơn nhiều để sửa chữa

Tôi xử lý hai cách này:

  1. Tìm hiểu các công cụ mới ở dạng cơ bản nhất của họ. Ví dụ, tôi đã chuyển từ SVN sang Mercurial, nhưng bắt đầu với ứng dụng khách dòng lệnh thay vì plugin Eclipse. Điều này làm cho sự hiểu biết của tôi về những gì đang diễn ra sâu hơn rất nhiều, điều đó có nghĩa là tôi biết điều gì đang xảy ra và cách khắc phục khi IDE ném lỗi.

  2. Thực hành các kỹ năng mã hóa cơ bản của bạn trên dòng lệnh. Một nơi tuyệt vời để làm điều này là CodingBat nơi bạn không có đánh dấu cú pháp, không khớp khung, không gạch chân màu đỏ, không có gì. Mặc dù vậy, đừng quên thực hành các kỹ năng dòng lệnh java và javac! (Và bất kỳ ai khác phù hợp với quy trình làm việc của bạn - đối với tôi, điều này cũng sẽ bao gồm hg và ant)

Cuối cùng, đừng lo lắng về nó quá nhiều. Nó không chắc bao giờ bạn sẽ phải làm một mảnh lớn của công việc mà không cần một trong hai NetBeans hoặc Eclipse, do đó, miễn là bạn có khả năng mã hóa mà không có họ, và hiểu những gì IDE đang làm cho bạn, nó không quan trọng mà bạn' lại chậm hơn hoặc phạm nhiều sai lầm hơn mà không có nó.


2
Là một sở thích, dành thời gian và tế bào não để biết các chi tiết cấp thấp là niềm vui. Về mặt thương mại, nó mất rất nhiều giá trị. Đó là thời gian tốt hơn dành cho việc học kinh doanh, sau đó thực hiện với hiệu quả cao hơn mà IDE mang lại.
Brian Knoblauch

CodingBat có cú pháp tô sáng ngay bây giờ.
masterxilo

29

Không. Tôi nghĩ rằng đó là cách khác xung quanh thực sự. IDE lấy đi sự cần thiết để bạn biết một khung công tác (thông qua intellisense) và đơn giản hóa các tác vụ phức tạp / lặp đi lặp lại / phức tạp (gỡ lỗi, triển khai), những thứ bạn thực sự không quan tâm. Điều này cho phép bạn tập trung vào giải quyết vấn đề kinh doanh trong tầm tay. Biết và IDE và hiểu rõ về nó thực sự có thể giúp bạn viết mã duy trì nhanh hơn.

Và dĩ nhiên, việc trở thành một nhà phát triển không chỉ là về điều đó. Kinh nghiệm bạn có với tư cách là nhà phát triển giúp bạn áp dụng giải pháp chính xác cho vấn đề vượt qua con đường của bạn. Tôi nghĩ đó là kỹ năng thực sự.


2
+1 cho intellisense! Tôi cảm thấy tiếc cho mọi người khi tôi xem họ gõ từng nhân vật trong một chương trình khi intellisense sẽ tăng tốc rất nhiều.
David

8
Điều đó được gọi là tự động hoàn thành cho phần còn lại của chúng tôi :)
mhitza

4
@David: Thật đau đớn cho tôi khi xem những người gõ hai ký tự sau đó đợi nửa giây để tự động hoàn thành bật lên và hỏi họ xem họ thực sự có ý nghĩa gì. Sau đó, họ sẽ chuyển sang chuột và cuộn qua các lựa chọn có sẵn cho đến khi cuối cùng nhấp vào một trong số chúng. Không, tự động hoàn thành không phải là một ơn trời hoặc thậm chí thực sự hữu ích. Đó là một công cụ của sự lười biếng.
Josh K

1
@Josh K: Đó là sự thật. Tự động hoàn thành có thể làm cho các lập trình viên xấu trở nên tồi tệ hơn, nhưng nó cũng có thể giúp các lập trình viên giỏi hiệu quả hơn. :)
David

2
@Josh Nhưng chắc chắn có nhiều hơn để intellisense / autocomplete sau đó hoàn thành tên phương thức của bạn? Làm thế nào về các mô tả phương thức nội tuyến (cái gì được thực hiện và tham số nào), quá tải phương thức availabe, truy cập vào đoạn mã, cái nhìn sâu sắc về phương thức nào bạn có thể ghi đè, v.v ... Nó thấy nó thực sự hữu ích, không có gì phải làm với việc lười biếng ....
Syg

24

Không, nó không "làm hại" bạn. Tất nhiên, bạn nên hiểu cách mọi thứ hoạt động mà không cần IDE (nghĩa là bạn nên hiểu quy trình biên dịch cơ bản, v.v.) nhưng đừng bạo dâm về điều này ... nếu một IDE làm cho bạn hiệu quả hơn là không sử dụng, thì tại sao lại không bạn khỏe không


17

Trở nên phụ thuộc IDE có những rủi ro sau:

  • cuối cùng bạn tạo ra một bản dựng phần mềm yêu cầu một phiên bản và IDE cụ thể.
  • bạn buộc những người khác trong nhóm của bạn sử dụng IDE đó để xây dựng hệ thống.
  • bạn không thể dễ dàng tự động hóa việc xây dựng phần mềm của bạn.
  • bạn không biết phụ thuộc phần mềm của bạn là gì.

Vì vậy, hãy chắc chắn rằng bạn có thể xây dựng phần mềm của bạn từ dòng lệnh. Ví dụ: Trong Java sử dụng maven hoặc ant. Sau đó, bạn giảm thiểu những rủi ro trên.

Các rủi ro phụ thuộc IDE khác:

  • IDE đánh dấu các lỗi và cảnh báo trong mã của bạn và cung cấp cho bạn các bản sửa lỗi nhanh. Đây có thể không phù hợp - có thể có một vấn đề về thiết kế hoặc yêu cầu khi chơi.
  • bạn quên những điều cơ bản - bạn cần biết những điều cơ bản của ngôn ngữ bạn đã chọn để bạn có thể thành thạo nó và để bạn có thể truyền đạt thành thạo tại các cuộc phỏng vấn.
  • cuối cùng bạn bị mắc kẹt trong một hố cát IDE - ngại thử bất cứ điều gì mới hoặc bất cứ điều gì không được IDE của bạn hỗ trợ. Ví dụ, IDE của bạn có thể có các chức năng khá rộng rãi để tìm kiếm và thay thế. Nhưng những thứ này không là gì so với sức mạnh và tốc độ của các công cụ dòng lệnh như grep và sed. Bạn có thể không phát triển Android vì IDE đã chọn của bạn (ví dụ: netbeans) không hỗ trợ tốt.
  • một số IDE không thể xử lý các tệp lớn - ví dụ: cố gắng mở tệp đầu ra máy chủ lớn trong nhật thực. Nó mất mãi mãi và / hoặc hết bộ nhớ.

3
Tôi đồng ý với quan điểm của bạn, nhưng tôi không nghĩ nó giải quyết được câu hỏi thực sự. Người hỏi không chỉ phụ thuộc vào Netbeans chẳng hạn. Nếu anh ấy / cô ấy là tất cả những điểm này có thể đúng, nhưng câu hỏi mà tôi hiểu nó chỉ là sử dụng một IDE nói chung trái ngược với trình soạn thảo văn bản cơ bản và dòng lệnh.
jzd

2
Các tham chiếu đến các trường hợp IDE trong câu trả lời của tôi chỉ là ví dụ về cách phụ thuộc IDE có thể gặp rủi ro. Tôi không đặc biệt chỉ ra netbeans hoặc nhật thực.
Conor

Tôi sử dụng Netbeans tại nơi làm việc, nhưng tôi đã viết tất cả các tập lệnh Ant của mình để mọi người có thể xây dựng dự án mà không cần Netbeans. Tôi thích các tính năng soạn thảo và dễ dàng điều hướng mã, nhưng tôi làm bất cứ điều gì có thể để giữ cho IDE độc lập.
jonescb

9

Không có gì sai khi làm việc hiệu quả hơn với bộ công cụ bạn đã chọn. Nhưng nếu bạn không thể làm việc mà không có nó, tôi sẽ rất nghi ngờ về kiến ​​thức bên trong của bạn.

Đừng từ bỏ IDE; nhưng thỉnh thoảng hãy thử thực hiện một vài lớp 'dễ dàng' chỉ với một trình soạn thảo và tài liệu trên trình duyệt.

Hãy nhớ rằng thậm chí nhanh hơn các công cụ tốt nhất là không phải sử dụng chúng.


Tôi sẽ không dừng lại hoặc chết lặng (trong 40% trường hợp) nếu tôi không có IDE, nhưng tốc độ của tôi sẽ giảm đáng kể nếu tôi không có IDE xung quanh. Để thực hiện một nhiệm vụ mười phút với IDE, tôi đã trải qua cả ngày với notepad và javac khi ide của tôi bị hỏng.
Prasham

tốt, notepad sẽ quá thấp hãy thử trình soạn thảo của lập trình viên, như notepad ++. Hãy nghĩ về nó như một bài tập: nó không vui nhưng làm cho bạn tốt hơn nếu bạn thực hiện nó thường xuyên.
Javier

4

Nhưng không có IDE tôi không thể làm gì.

Tôi cần một IDE để làm những việc phức tạp hoặc mã hóa dài những thứ đơn giản hơn.

Bạn có thể sửa nó, bạn biết đấy.

Bạn thực sự có thể học ngôn ngữ và khuôn khổ.

Không có gì ngăn cản bạn.

Tất nhiên trừ khi bạn khoe khoang về việc phụ thuộc vào IDE.

Tại sao tôi phải sử dụng notepad và các công cụ dòng lệnh để thực hiện một nhiệm vụ tốn thời gian khi IDE có một nút bấm để làm điều này?

Là không liên quan. "Stick to notepad" hoàn toàn không liên quan đến "không có IDE tôi không thể làm gì". Không làm gì trong notepad là không có gì giống như dính vào notepad. Đó là cái gì


3

Bạn không "phụ thuộc" như vậy, vì cả hai IDE của bạn đều là nguồn mở, vì vậy chúng sẽ không biến mất hoặc vô tình bị "cải thiện" đến mức không thể sử dụng được. Và ngôn ngữ bạn chọn không để lại cho bạn bất kỳ lựa chọn nào - bạn phụ thuộc vào ánh mắt của các thư viện và thật ngu ngốc khi cố nhớ tất cả những thứ không quan trọng khi có IDE để hỗ trợ bạn. Java dài dòng, dài dòng và bạn không thể làm việc hiệu quả nếu không có các công cụ thông minh tận dụng tính dài dòng dư thừa.


bạn có nói tương tự với ngôn ngữ khác không? (tôi đang nghĩ PHP trong trường hợp của tôi) nhưng tôi không chắc đó là một lời khuyên tốt như một quy tắc chung. JAVA có thể là một ngoại lệ ở đây mặc dù
Quamis

1
Tôi cũng nói như vậy với C #, cũng có thể là với PHP. Bất kỳ sự kết hợp nào của ngôn ngữ và miền vấn đề mà bạn phải sử dụng một bộ thư viện đa dạng khổng lồ sẽ yêu cầu các công cụ thông minh. Một số ngôn ngữ đủ mạnh và đủ sức biểu cảm để có thể sử dụng mà không cần nhiều thư viện - và bạn có thể mã hóa những thứ đơn giản mà không cần IDE. Một số ngôn ngữ luôn cần sự trợ giúp, cho những điều đơn giản nhất. Khi tôi viết mã bằng Lisp, tôi ổn với emacs hoặc thậm chí là REPL CLI. Khi tôi viết mã bằng C # hoặc Java, tôi sẽ không làm bất cứ điều gì nếu không có IDE tốt (msvs hoặc nhật thực).
SK-logic

nhưng không phải nhu cầu "intellisense" hay "form designer" có phải là một cảnh báo cho các thành viên đối tượng được tổ chức (hoặc đặt tên) không? Tôi đã quan sát thấy những người sử dụng intellisense rất nhiều có xu hướng sử dụng tên dài hơn và dài hơn cho các đối tượng / hàm / biến làm cho những tên này khó nhớ hơn ngay từ đầu. tôi có nên hiểu rằng đây cũng là một thói quen tốt không?
Quamis

Quamis: Không phải nó là ngược lại sao? Việc phải nhập khiến bạn chọn các tên ngắn không mô tả lớp / phương thức cũng như tên dài.
DistantEcho

@Niphra: vâng, và tôi thích các tên ngắn hơn nhiều hơn :) theo ý kiến ​​của tôi làm cho mã dễ đọc hơn..nếu phương thức làm một cái gì đó không thể mô tả theo cách ngắn gọn, thì có, một tên dài hơn có thể chấp nhận được, nhưng tôi Về cơ bản, tôi đang cố gắng để giữ cho nó ngắn, và tôi không thấy có gì sai với nó.
Quamis

3

Tôi nghĩ rằng tác hại của việc quá phụ thuộc vào IDE sẽ xuất hiện khi bạn vô thức dựa vào các trình hướng dẫn để tạo mã cho bạn. Cả NetBeans và Eclipse đều khá nhẹ về những điều đó, đó là một điều tốt IMO. Một tác hại khác sẽ xảy ra nếu bạn chỉ biết một IDE và không thể sử dụng IDE khác. Một số công ty có chính sách chỉ đạo những gì bạn sẽ sử dụng. Dù tốt hay xấu, đó là những gì nó có.

Tôi sẽ lập luận rằng nếu một IDE không làm cho bạn hiệu quả hơn , thì nó không đáng giá. Ví dụ, tôi là người làm việc hiệu quả nhất với JetBrains IDEA, nhưng Eclipse đã đi được một chặng đường dài và tôi có thể làm việc khá hiệu quả với điều đó. Eclipse cũng đã được điều chỉnh cho nhiều mục đích sử dụng - đó là một lợi ích kép. Mặc dù tôi có thể sử dụng VIM hoặc một số trình soạn thảo văn bản khác, nhưng có những tính năng khác mà tôi thấy không thể thay thế trong hầu hết các IDE hiện tại như hỗ trợ tái cấu trúc.


2

Tôi không nghĩ rằng bạn đang làm cho mình bất kỳ ưu đãi. Cấp, bạn đang sử dụng Eclipse, có sẵn miễn phí và chạy bất cứ nơi nào bạn có JVM. Nhưng tôi đã gặp phải tình huống trước khi phải điều khiển từ xa sang máy khác thông qua phiên cuối không có máy chủ X, nghĩa là tôi phải sử dụng trình soạn thảo văn bản đơn giản như vi và xây dựng trên dòng lệnh. Tôi cũng làm việc trong một môi trường nơi mạng lưới phát triển bị cô lập về mặt vật lý với phần còn lại của thế giới và tất cả các giao dịch chuyển đổi giữa nó và mạng công cộng đều thông qua phương tiện vật lý. Lý do duy nhất chúng tôi có Eclipse trên mạng đó là vì nó đã trải qua nhiều lớp phê duyệt trước tiên.

Tôi đã cắt răng trên C và Fortran 77 trong môi trường dòng lệnh (VAX / VMS), vì vậy tôi thấy khái niệm cần một IDE hơi đáng ngờ. Tuy nhiên, đó là những ngôn ngữ nhỏ so với con thú đó là Java; cho rằng bạn cần một chiếc xe nâng để mang theo cuốn sách Java Nutshell mới nhất, tôi có thể thấy việc IDE có sẵn giúp cuộc sống dễ dàng hơn rất nhiều.


2

Nó có thể không thực sự "làm hại" bạn, nhưng bạn sẽ đạt được nếu bạn cũng quen với việc làm mà không có IDE. Đừng sợ mở rộng chân trời của bạn.

Hãy nhớ rằng hầu hết các công cụ dev được viết dưới dạng công cụ dòng lệnh trước tiên. IDE là suy nghĩ lại, đó là tốt. Mặt khác, bạn sẽ thường tìm thấy một số "công tắc dòng lệnh đá quý ẩn" hoặc "thủ thuật nâng cao" mà bạn không bao giờ có thể phát hiện ra nếu bạn giữ điểm và nhấp.

Vì vậy, để trả lời câu hỏi "Làm thế nào nó có thể làm hại tôi?" Tôi nghĩ rằng nó sẽ gây hại cho bạn khi bạn trở nên gắn bó với nó đến mức bạn tin rằng tất cả các công cụ dòng lệnh sẽ chậm hơn so với việc nhấp vào nút, đến mức bạn tránh học các công cụ dòng lệnh (vốn là nguồn gốc).

Nó giống như học lắp ráp như một lập trình viên - rất ít người trong chúng ta viết lắp ráp bằng tay ngày nay, nhưng tôi tin rằng những người hiểu lắp ráp là những lập trình viên giỏi hơn trong bất kỳ ngôn ngữ nào họ đang sử dụng.


2

Bị phụ thuộc máy tính đã khá nguy hại. Tôi luôn lập trình trong một miếng vải thăn với một viên đá lớn và một cái búa. Mã phải mất một thời gian để phá vỡ, nhưng khi bạn hoàn thành một phương pháp đặc biệt lớn, bạn thường ăn một cái gì đó. Ở đó, tôi cố gắng độc lập với siêu thị và những thứ đó, vì vậy tôi trồng tất cả lúa mì ở nhà và chỉ ăn nó. Tất nhiên, các nhà cung cấp hạt giống và nước lúa mì đã khiến tôi bị cuốn hút, khiến tôi nghĩ rằng không có cách nào thoát khỏi chu kỳ phụ thuộc này.

Nghiêm túc: nếu <disclaimer>bạn sử dụng IDE và </disclaimer>bạn thấy mình không có IDE và bạn PHẢI lập trình, bạn chỉ nên xem xét bản thân trò chơi và

  1. Gọi CNTT hoặc
  2. Tự khắc phục sự cố nếu bạn là IT

Bạn không chỉ không nên lập trình mà không có bất kỳ công cụ nào bạn thấy cần thiết, mà bạn cũng không thể sử dụng kem đánh răng dưới dạng dán nhiệt.


1

Trở nên phụ thuộc vào IDE có thể không nhất thiết làm hại bạn, nhưng có thể hoạt động mà không có môi trường lựa chọn là một kỹ năng quan trọng.

IDE có thể ngăn bạn học 'những điều nhỏ nhặt' thường không đáng kể và có thể giúp bạn hoàn thành công việc nhanh hơn vì bạn tránh được việc gõ / soạn thảo vô dụng. Bạn cũng có thể khắc phục sự cố khi chúng xảy ra, ví dụ như lỗi chính tả.

Quy tắc cá nhân của tôi khi học bất kỳ ngôn ngữ / khung / vv nào là học nó một cách khó khăn trước tiên. Sau đó, sau khi đã làm chủ được nó, tôi rơi Tôi đã giành được quyền làm điều đó một cách dễ dàng. Vấn đề là, nếu bạn không biết một số chi tiết nhỏ xíu, khi ống cống của bạn bắt đầu phun ra từ bồn rửa trong nhà bếp, bạn sẽ là SOL. Nếu bạn biết những gì các hoạt động cơ bản có thể là một nguyên nhân tiềm năng, bạn có thể có thể khắc phục vấn đề hoặc ngăn chặn nó xảy ra hoàn toàn.


0

Hãy thử một trình soạn thảo văn bản tốt, ví dụ PSPad cho MS-Windows (phần mềm miễn phí), TextMate cho Mac OS X, Geany cho GNU Desktop (mã nguồn mở) hoặc Kate cho KDE (mã nguồn mở).

MultiEdit4.0 cho MS-DOS đã thay đổi cuộc sống của tôi vài năm trước, kể từ đó tôi rất hợp lý cho các trình soạn thảo văn bản.

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.