Lợi ích của việc sử dụng dòng lệnh để phát triển phần mềm là gì? [đóng cửa]


8

Những lợi ích nào có được từ việc sử dụng dòng lệnh để phát triển phần mềm so với sử dụng GUI thay thế? Là dòng lệnh nhanh hơn cho các nhiệm vụ nhất định? Là một số công cụ chỉ có sẵn thông qua dòng lệnh?


Bạn có nghĩa là sử dụng trình biên dịch dòng lệnh so với IDE? Hay bạn đang nói về UI của các chương trình bạn tạo ra?
Lord Tydus

1
@LordTydus Tôi đã đề cập đến trình biên dịch dòng lệnh và các công cụ dòng lệnh khác và cách nó có thể được sử dụng để quản lý cơ sở dữ liệu, v.v ... so với quảng cáo IDE các công cụ GUI khác
br3w5

4
Vào thời điểm Eclipse có thể hiển thị màn hình giật gân của nó, một chủ CLI đã khởi chạy vitrên một tệp, sửa một lỗi nhỏ và lưu tệp đã cập nhật. Có lẽ makelà trong tiến trình là tốt.
mouviciel

1
Chúng tôi sẽ không đề cập đến những gì xảy ra khi anh chàng UI từ xa rơi vào máy bị hỏng ở nửa vòng trái đất .... Anh chàng cli đã xuống quán rượu để uống vào chiều thứ Sáu trước khi màn hình giật gân được tải .....
mattnz

Câu trả lời:


28

Ưu điểm của dòng lệnh so với các ứng dụng GUI bao gồm:

  1. Nếu bạn đang viết các công cụ như vậy thay vì sử dụng chúng, dòng lệnh rất dễ phát triển. Việc chấp nhận các đối số trên dòng lệnh là chuyện nhỏ và việc xuất ra một luồng văn bản cũng dễ dàng tương tự.
  2. Các ứng dụng dòng lệnh có thể dễ dàng được sử dụng trong các tệp bó hoặc tập lệnh, rất phù hợp cho việc kiểm tra hoặc xây dựng tự động. Hầu hết các công cụ xây dựng, như make, ant và msbuild cung cấp hỗ trợ tốt cho việc gọi các công cụ dòng lệnh.
  3. Các luồng đầu vào, đầu ra và lỗi có thể dễ dàng được chuyển hướng, cho phép thông tin được gửi hoặc nhận từ các tệp hoặc các ứng dụng khác. Điều này có nghĩa là dữ liệu thử nghiệm có thể dễ dàng được cung cấp hoặc thu được đầu ra.
  4. Có một cơ chế trả lại lỗi đơn giản nhưng tiêu chuẩn (mã trả về và luồng lỗi). Phát hiện lỗi trong GUI có thể yêu cầu tự động hóa UI.
  5. Sử dụng trên vỏ từ xa hoặc các kết nối tương tự giúp thực hiện các tác vụ từ xa dễ dàng hơn nhiều, chẳng hạn như khi nhà phát triển đang kết nối từ nhà hoặc trên đường. Kết nối máy tính từ xa ngày nay phổ biến hơn nhưng yêu cầu nhiều băng thông hơn và kết nối độ trễ thấp hơn.
  6. Có các tiêu chuẩn được xác định cho trợ giúp (chẳng hạn như manlệnh unix hoặc truyền -? Làm đối số). Nếu ai đó không biết một tính năng, họ có thể dễ dàng xem những gì công cụ cung cấp. Tương tự, có các tiêu chuẩn cú pháp ký tự đại diện được xác định để chỉ định nhiều tệp, dựa trên kiến ​​thức nhà phát triển hiện có.

Tuy nhiên, các ứng dụng dòng lệnh có những nhược điểm này so với các ứng dụng GUI:

  1. Các ứng dụng dòng lệnh khó học hơn để sử dụng, đặc biệt đối với những ứng dụng không được sử dụng. Đây thường không phải là vấn đề đối với phát triển phần mềm vì các nhà phát triển thường được sử dụng để chỉ huy các công cụ dòng nhưng có thể gây rắc rối cho những người ít kỹ thuật tham gia phát triển như QA cơ sở, nhà văn bản địa và kỹ thuật.
  2. Các ứng dụng dòng lệnh yêu cầu bàn phím và do đó không thực tế đối với một số thiết bị như điện thoại hoặc máy tính bảng.

1
cảm ơn vì câu trả lời toàn diện như vậy (tôi sẽ để câu hỏi trưởng thành hơn một chút rồi chọn câu trả lời được chọn nhưng câu trả lời của bạn rất hữu ích) - có tài nguyên nào bạn muốn giới thiệu để có kiến ​​thức kỹ lưỡng về dòng lệnh (tốt nhất là thiết bị đầu cuối linux) không?
br3w5

1
@ssbrewster Nghệ thuật lập trình unix ( catb.org/esr/writings/taoup ) sẽ cho bạn ý tưởng tốt về lý do tại sao dòng lệnh linux hoạt động theo cách của nó. Điều này quan trọng hơn nhiều cho việc học cách sử dụng nó so với cách nó hoạt động. Điều quan trọng cần biết là các quy ước lót là gì và làm thế nào để khám phá chức năng mới. Một khi bạn biết hai điều đó, mọi thứ khác sẽ mở ra một cách tự nhiên theo thời gian. Ngoài ra, đó là một đọc tốt chết tiệt.
Racheet

8

Tôi giả sử bạn có nghĩa là sử dụng trình biên dịch dòng lệnh thay vì IDE. Để lại một bình luận nếu không và tôi sẽ xóa câu trả lời của tôi.

Học tập. Tìm hiểu cách các đơn vị mã được biên dịch, liên kết hoặc ánh xạ với nhau trong ngôn ngữ của bạn. Thông thường, bạn phải thông báo rõ ràng cho trình biên dịch những tập tin cần biên dịch và liên kết. Vì vậy, bạn có được một sự hiểu biết tốt hơn về cách thức hoạt động. Một IDE sẽ làm phép thuật để làm cho cuộc sống của bạn dễ dàng hơn nhưng sẽ khiến bạn không biết gì.

Sau đó, bạn tiến thêm một bước và học cách tạo tập tin tạo của riêng bạn. Đây là một kỹ năng có giá trị. Tệp tạo của bạn làm cho chu trình xây dựng tiếp cận sự tiện lợi của "ma thuật IDE" trong khi vẫn duy trì sự hiểu biết và học hỏi đầy đủ.

Ngoài ra, quá trình xây dựng của bạn rất dễ dàng để kiểm soát nguồn. Và thật dễ dàng để chuyển quá trình xây dựng của bạn để làm việc với nhiều trình biên dịch. Đôi khi, đó chỉ là vấn đề thay đổi 1 dòng trong tệp tạo cho tên trình biên dịch.

Bạn phát triển các kỹ năng cho phép bạn làm việc nhiều nền tảng. Trình soạn thảo văn bản và trình biên dịch dòng lệnh rất giống nhau từ tất cả các nhà cung cấp và trên tất cả các nền tảng. Những công cụ cơ bản này giúp bạn vượt qua để phát triển trên mọi hệ thống, mọi lúc, mọi nơi 24/7. Nếu bạn đã sống trong Visual Studio cả đời, đó sẽ là một quá trình chuyển đổi khó khăn hơn nhiều để hoạt động bên ngoài nó.

Nếu bạn đi xuống con đường này, bạn có thể muốn học một trình soạn thảo văn bản nâng cao như VIM. Nó bổ sung cho khả năng hoạt động trên mọi nền tảng vì nó được hỗ trợ ở hầu hết mọi nơi. Nó có một đường cong học tập khổng lồ nhưng phần thưởng là khả năng chỉnh sửa văn bản dễ dàng ở tốc độ cao mà không cần di chuyển tay sang chuột.

BTW, tôi không chống lại IDE.


Cảm ơn @LordTydus, đề xuất tệp thực sự hữu ích và hiểu đúng về cách mọi thứ hoạt động ở mức độ thấp là cách tôi muốn tìm hiểu
br3w5

2
Một ưu điểm khác của việc sử dụng dòng lệnh là việc chỉ định nhiều tệp bằng ký tự đại diện sẽ dễ dàng hơn nhiều, chẳng hạn như * .c - cách duy nhất để làm điều này với GUI là cung cấp hộp chỉnh sửa dòng lệnh giả.
tcrosley

4

GUI có lợi thế là có thể sử dụng các hình ảnh tiên tiến. Điều này có thể cực kỳ hữu ích để làm cho dữ liệu phức tạp có ý nghĩa.

Mặt khác, các dòng lệnh thường mạnh hơn (ví dụ hoàn toàn là tập lệnh) và cũng thường nhanh hơn. Các câu trả lời khác đã mở rộng về điều đó - ở đây tôi chỉ muốn đề cập rằng GUI không mang lại lợi thế cho một số tác vụ:

Trong quá trình phát triển, nhiều tác vụ thực sự không cần bất kỳ hình ảnh hóa nào không thể thực hiện được bằng giao diện dòng lệnh / văn bản. Hãy biên dịch: các trình soạn thảo văn bản tốt (Vim, Emacs) dễ dàng hỗ trợ phân tích thông báo lỗi và sẽ chuyển trực tiếp đến lỗi trong mã. IDE đồ họa không cung cấp nhiều hơn. Nói một cách đơn giản, đối với các tác vụ như vậy, không cần giao diện đồ họa và bạn sẽ mất tính linh hoạt và hiệu quả của giao diện dòng lệnh.

Mặt khác, một trực quan tương tác có thể rất hữu ích nếu bạn đang xử lý một tương tác dữ liệu phức tạp. Phần mềm kiểm soát phiên bản có thể hiển thị biểu đồ nhánh thường đánh bại các giao diện văn bản ở đây. Chẳng hạn, đây là ảnh chụp nhanh từ một trong các kho của tôi:

biểu đồ nhánh

Điều này thuận tiện hơn nhiều so với giao diện văn bản, mặc dù điều này thậm chí không phải là một hình ảnh trực quan đặc biệt mạnh mẽ. Nhưng một lần nữa, lưu ý rằng thực sự thao tác kho lưu trữ nhanh hơn bằng cách sử dụng dòng lệnh (ít nhất là đối với tôi). Tôi sử dụng GUI chỉ để hiển thị các nhánh.

Cũng lưu ý cách Github gần đây đã thêm giao diện dòng lệnh để nhận ra thực tế là nhiều tác vụ có thể được thực hiện nhanh hơn bằng cách nhập lệnh hơn là nhấp qua trang web.

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.