Có phải là một thực tiễn xấu khi sử dụng các công cụ thiết kế GUI với việc tạo mã để lập trình ứng dụng trong Java / C ++?


8

Trong câu hỏi stackOverflow tôi đã đọc rằng sử dụng chương trình thiết kế GUI có thể tạo ra nhiều mã lộn xộn và được coi là một thực tiễn xấu trừ khi bạn tạo các chương trình nhỏ hơn.

Câu hỏi của tôi là tại sao và như thế nào. Có phải là xấu khi sử dụng một chương trình thiết kế GUI? Tại sao?

Chi tiết bổ sung:

  • Lập trình trên nền tảng Windows;
  • Chỉ lập trình trong C ++ / Java cho các chương trình windows.
  • Đối với IDE, tôi đã sử dụng visual studio 2010 (Không phải phiên bản express) vì nó đi kèm với trình thiết kế GUI.

Bạn có thể gửi một liên kết đến câu hỏi mà bạn đang đề cập đến?
Thất vọngWithFormsDesigner

6
OMG, từ tiêu đề tôi đã phỏng đoán bạn khi nói về các nhà thiết kế GUI khác ... những người làm thiết kế GUI . Và để nói về việc sử dụng chúng như một thực hành xấu, tốt, là khá tuyệt vời.
ZJR

wow tôi cũng vậy ZJR, tôi sẽ cập nhật tiêu đề đó!
Michael Durrant

Cho đến khi ZIR đề cập đến nó, tôi thậm chí không biết có những thứ như vậy. Bạn học được điều gì mới mỗi ngày.
Bugster

Câu trả lời:


12

Việc sử dụng trình thiết kế GUI để thiết kế biểu mẫu, GUI của bạn là một thực tế không tồi. Esp trong Visual Studio. Chúng ở đó cho mục đích này và được sử dụng rộng rãi.

Trong phát triển web, đó là một câu chuyện khác nhau. Đó là một thực tế tồi khi sử dụng trình thiết kế GUI (ví dụ Microsoft Front Page hiện được thay thế bởi WebMatrix). Nguyên nhân

  • Họ cung cấp rất nhiều mã mà bạn không thực sự cần. Họ cơ bản tạo ra rác.
  • Chúng làm tăng kích thước của tài liệu html. Đó là điều không mong muốn CAO đối với trang web cao cấp có số lượng truy cập lớn.
  • Chúng khó bảo trì vì có nhiều mã rác bổ sung

Theo như câu hỏi của bạn, việc sử dụng GUI trong các mẫu thiết kế đặc biệt trong Visual Studio là không thực tế. Không có gì.


Tôi muốn nói rằng sẽ KHÔNG thực tế khi KHÔNG sử dụng trình thiết kế vs cho các ứng dụng máy tính để bàn.
Andy

5

Đối với một dự án lớn và vừa, chúng không nên được sử dụng, bởi vì mã mà chúng tạo ra không được tốt để duy trì. Trừ khi bạn không có kế hoạch dọn sạch mã được tạo bởi một nhà thiết kế GUI, bạn sẽ tốt hơn nếu không có nó.

Tuy nhiên, chúng rất tốt trong các trường hợp tiếp theo:

  • để tạo ra một cái gì đó nhanh chóng và bẩn thỉu (có thể cho một nguyên mẫu)
  • để thử những điều mới, và xem nó trông như thế nào

Tôi thấy rằng với VisualStudio, việc bảo trì và dọn sạch mã được tạo thủ công là cực kỳ hiếm.
Thất vọngWithFormsDesigner

@FrustratedWithFormsDesigner Không có ý tưởng. Không bao giờ sử dụng phòng thu trực quan. Kinh nghiệm của tôi là trên linux với các công cụ qt, trong đó mã được tạo ra không tệ, nhưng cũng không tốt. Dù sao, có thể làm sạch nó
Bовић

4
Bạn không bao giờ nên chạm vào một mã được tạo bằng tay. Hơn nó không quan trọng như thế nào mã, bởi vì bạn duy trì nó với nhà thiết kế. Nhà thiết kế ban đầu chỉ tạo mã, nhưng bạn không cần chỉnh sửa mã bằng tay không phải là tên và là vấn đề, nhưng tất cả những cái hợp lý (ví dụ Qt, VisualStuido) tạo ra một nguồn riêng mà bạn không bao giờ chạm tay. Thông thường mã không được phiên bản, nhưng được tạo ra như là một phần của bản dựng.
Jan Hudec

2
Vâng tôi đồng ý. Một công cụ tạo mã và hy vọng bạn duy trì thủ công sau đó bị hỏng khủng khiếp và sẽ gây ra nhiều vấn đề, bởi vì mã chắc chắn sẽ có một số mụn cóc. Điều này áp dụng cho bất kỳ trình tạo mã nào; Bộ điều chế ORM hoặc UML hoạt động như thế này sẽ gây ra vấn đề theo cùng một cách. Nhưng đó không phải là trường hợp của các nhà thiết kế GUI hiện đại. .NET và Qt tạo mã để bạn xác định logic trong nguồn riêng biệt và Gtk thậm chí không tạo mã, nhưng diễn giải tệp thiết kế khi chạy. Hầu hết các nền tảng di động hoạt động tương tự.
Jan Hudec

1
@PeterTaylor: Đi sâu vào kiểm soát phiên bản không phải là vấn đề ở đây. Phải chỉnh sửa nó là được. Nhà thiết kế WinForms tạo mã phải đi vào kiểm soát phiên bản, bởi vì nhà thiết kế duy trì thông tin trực tiếp dưới dạng nguồn C #. Nhưng nó không phải được chỉnh sửa bằng tay, bởi vì đó là một partiallớp và mã được viết thủ công đi trong các tệp riêng biệt. Vâng, khác biệt là xấu xí như bất kỳ dữ liệu nào được duy trì bởi nhà thiết kế, nhưng đó không phải là vấn đề trong thực tế.
Jan Hudec

4

Nói chung, tôi không nghĩ các nhà thiết kế GUI là một thực tiễn tồi. Lợi ích chính tôi nghĩ bạn sẽ nhận được từ việc sử dụng một nhà thiết kế GUI tốt :

  • Thời gian phát triển và sửa đổi GUI nhanh hơn.
  • Bạn có thể thấy giao diện người dùng sẽ trông như thế nào mà không cần phải biên dịch và thực thi chương trình.

Các vấn đề tiềm ẩn bạn có thể gặp phải:

  • Các thành phần UI động được tạo / quản lý vào thời gian chạy có thể không khả dụng với các nhà thiết kế GUI
  • Tôi đã gặp vấn đề với các điều khiển GUI phức tạp hơn, chẳng hạn như Điều khiển chung tùy chỉnh trong VisualStudio.
  • Mã được tạo cũng có thể là một nguồn tiềm năng của nhiều vấn đề và nỗi đau và nếu bạn cố gắng sửa đổi nó bằng tay, nhà thiết kế GUI có thể không thể cho phép bạn thiết kế nó nữa.

Tất nhiên, nếu bạn không biết cách sử dụng đúng công cụ như vậy, thì nó có thể dẫn đến các vấn đề rất nhanh.


3

Nó phụ thuộc rất nhiều, vào công cụ hoặc môi trường lập trình, bạn sẽ sử dụng.

Hầu hết, một nhà thiết kế GUI tốt (một loại trình tạo mã) là tốt, trong đó cho phép bạn tự động hóa càng nhiều mã càng tốt, đồng thời, cho phép bạn mã hóa, mã thủ công, mã đặc biệt, hơn là không thể tự động .

Các nhà thiết kế GUI, thường cho phép bạn tự động hóa các nội dung liên quan đến vị trí, màu sắc, định dạng, kiểu dáng và để lại logic hoặc lập trình các điều khiển cho lập trình viên.

Nhận xét bổ sung: Tương tự với các công cụ ORM, chúng cũng là các trình tạo mã.


1

Bạn cần hiểu mã của bạn làm gì. Nếu ai đó đến với bạn và nói "Tại sao điều này xảy ra?", "Visual Studio đã làm điều đó cho tôi, tôi không biết" không phải là một câu trả lời chấp nhận được. Miễn là bạn có thể tìm và giải quyết các lỗi chương trình của riêng mình, không có vấn đề gì với nhà thiết kế GUI, nhưng một khi bạn thấy mình chiến đấu với chương trình và không thể tuân theo logic, bạn cần phải rút lui khỏi WYSIWYG.

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.