Sử dụng một trình thiết kế GUI hoặc tự viết nó cho máy tính để bàn?


8

Viết GUI cho một chương trình luôn là một nhiệm vụ khó khăn, thất vọng và bực bội. Không quan trọng ngôn ngữ nào, cực kỳ khó để có được thứ tôi muốn. Đặc biệt là trong các ngôn ngữ được biên dịch như Java, nơi một thay đổi mất một hoặc hai phút để xây dựng.

Kết quả là tôi ngày càng sử dụng các nhà thiết kế GUI cho một số dự án của mình. Chắc chắn có một số mã spagetti, nhưng miễn là tôi rời khỏi cấu hình và một ghi chú cho biết "Cái này được thiết kế với X" Tôi không có cảm giác gì khi làm điều này.

Đây có phải là một cách ổn để thiết kế GUI? Quan trọng hơn, đây có phải là điều mà hầu hết mọi người làm? Hay là cách phổ biến để chỉ ngồi xuống và viết nó ra?


Tôi làm việc trên một ứng dụng Java GUI có 650k dòng mã và phải mất khoảng một phút để xây dựng. Tuy nhiên, làm việc trong Eclipse, nó tăng dần cho bạn. Do đó, tôi không phải xây dựng toàn bộ ứng dụng mỗi lần tôi muốn chạy nó. Tôi chỉ cần khởi động lại ứng dụng và nó chạy với những thay đổi của tôi. Không cần chờ đợi.
Nemi

1
Ồ vâng, và các nhà xây dựng GUI là xấu xa. Nếu mục tiêu của bạn là làm cho phần mềm không thể được duy trì bởi bất kỳ ai (bao gồm cả chính bạn), bạn đang đi đúng hướng.
Nemi

Câu trả lời:


6

Tôi chưa bao giờ thực sự tìm thấy một nhà thiết kế hình ảnh giúp dễ dàng tạo ra các thiết kế mạnh mẽ (nếu bất cứ ai có bất kỳ thứ gì họ thích, hãy thoải mái sửa tôi). Chúng rất phù hợp để đổ đồ vào cửa sổ có kích thước cố định để chế nhạo mọi thứ, nhưng khi nói đến việc tạo ra thứ gì đó thay đổi kích thước, chơi tốt với DPI và chủ đề, và tất cả những thứ khác tách giao diện người dùng chuyên nghiệp khỏi chỉ là "tốt - không đủ ", họ thực sự trở thành công việc nhiều hơn là tự mình viết mã (giả sử một khung UI tốt để chơi).

Các nhà thiết kế hình ảnh là tuyệt vời cho phần mềm tạo mẫu nhanh, thiết kế thử nghiệm và chơi xung quanh để xem công cụ trông như thế nào, nhưng tôi sẽ không sử dụng một cho bản dựng cuối cùng.


Bạn sử dụng khuôn khổ nào? Tôi không thể tưởng tượng việc viết UI WPF mà không có nhà thiết kế, ví dụ ...
Dean Harding

Tôi chưa có nhiều cơ hội để chơi xung quanh với WPF - điều đó nói rằng, trong vài lần tôi đã sử dụng nó, tôi chỉ sử dụng nhà thiết kế để chế tạo bố cục chung, sau đó chỉnh sửa XAML bằng tay trong khi giữ một mắt xem thiết kế để xem nó trông như thế nào.
Anon.

Glade là một niềm vui để làm việc với, thực sự, và tạo ra các giao diện với tất cả khả năng thay đổi kích thước và chủ đề mà một UI nên có. Ngoài ra, bạn chỉ có thể tải tệp dự án (XML) khi chạy, truy vấn nó, đính kèm các sự kiện và bất ngờ ứng dụng của bạn chỉ hoạt động. Đó thực sự là điều tốt nhất của cả hai thế giới, theo kinh nghiệm của tôi. Chưa kể rằng nếu bạn viết ứng dụng bằng C hoặc Python, bạn cũng sẽ tự động ràng buộc các cuộc gọi lại sự kiện, không cần truy vấn.
Jon Purdy

@Dean Harding Tôi đã sử dụng WPF gần ba năm và gần như không bao giờ sử dụng nhà thiết kế. Tôi có thể bắt đầu bố trí chung với nó, nhưng sau đó tôi làm mọi thứ bằng tay.
MetalMikester

@Dean Harding - nếu bạn đang sử dụng một nhà thiết kế cho WPF, bạn đang thiếu một trong những tính năng tốt nhất: bố cục tự động. Tôi đã thực hiện rất nhiều WPF và không bao giờ sử dụng một nhà thiết kế. Thiết kế của tôi không bao giờ là "tĩnh".
Scott Whitlock

4

Lập kế hoạch trong đầu của bạn và sau đó sử dụng bút / giấy là cách nhanh nhất dễ dàng nhất để khởi tạo một thiết kế.

Khi bạn đã sẵn sàng để thực hiện, tôi sử dụng một trình thiết kế GUI thay vì mã hóa bằng tay. Ví dụ, trong Java Swing, với bất kỳ giao diện đủ lớn nào, tôi có thể tưởng tượng mình sẽ lãng phí bao nhiêu thời gian bằng cách thực hiện tất cả bằng tay và sau đó sửa đổi nó sau. Dễ dàng hơn nhiều để sử dụng trình tạo GUI như Netbeans Matisse và sau đó điều chỉnh một chút bằng tay nếu cần.


vâng, xây dựng bố cục xoay bằng tay rất tẻ nhạt và tốn thời gian, sử dụng Matisse luôn là lựa chọn của tôi
Mahmoud Hossam

3

Đầu tiên tạo GUI trên giấy.

Sau đó tôi chỉ sử dụng chế độ thiết kế Visual Studios để tạo GUI. Dễ dàng tạo và những gì bạn thấy là những gì bạn nhận được. Thêm vào đó, bạn không phải xây dựng lại chỉ để xem GUI.


2

Một nhà thiết kế GUI là một sửa chữa nhanh chóng hấp dẫn. Nhưng ngồi xuống và làm nó bằng tay là một sự thay thế tốt hơn cho các dự án và vật phẩm sẽ không bị vứt bỏ sau này.

Thông thường tôi thấy phương pháp tốt nhất là thiết kế GUI trên giấy trước. Vẽ một bản phác thảo thô về nơi các nút và các thành phần khác sẽ được. Sau đó, khi làm việc trong một ngôn ngữ như Java sử dụng các Trình quản lý bố cục khác nhau, hãy nghĩ về những thành phần và sự kết hợp của các trình quản lý bố cục sẽ cần thiết. Tất cả điều này trước khi bạn bắt đầu mã hóa nó. Sau đó thực hiện nó từng mảnh.

Nếu bạn tham gia khóa học thiết kế GUI, bạn sẽ cảm thấy như mình đang tiến bộ rất nhiều cho đến khi bạn gần kết thúc và không thể làm gì đó để hoạt động đúng hoặc phải thay đổi. Làm nó bằng tay có vẻ giống như một con rùa chậm, nhưng nó mang lại tiến bộ ổn định. Ngoài ra, tốc độ của bạn sẽ tăng lên khi bạn làm điều đó.


1

Giống như ai đó đã nói, tốt hơn là chỉ sử dụng (a) một tờ giấy trắng, một số ghi chú dán (kích cỡ khác nhau) và cố gắng thực hiện bố cục trên giấy, sử dụng các ghi chú dán làm điều khiển (như nút, kết hợp các hộp, v.v.) (b) một chương trình tạo mẫu như GUI Designer Studio hoặc addon bút chì cho firefox ...

Sau giai đoạn tạo mẫu, với bố cục gần bạn, việc tự mã hóa ui trở nên dễ dàng hơn, vì bạn có thể triển khai các mẫu như mvc, mvp, v.v., dễ dàng hơn vì các trình soạn thảo gui thường không cho phép bạn thay đổi mã của họ vì họ sẽ viết lại mỗi khi bạn thay đổi ui.


0

Visio cung cấp một bộ dụng cụ UI, vì vậy nó thay thế hiệu quả bút và giấy, nhưng vẫn cung cấp cách tiếp cận thiết kế tương tự - nghĩ trước, rút ​​thứ hai, viết mã sau.


0

Trong VB6 và Windows Forms tôi luôn sử dụng trình thiết kế, nhưng trong WPF tôi không bao giờ sử dụng nó. Nhà thiết kế WPF tạo ra XAML khủng khiếp, cộng với WPF tôi thích thiết kế giao diện người dùng của mình như một loạt các widget và để cho khung công tác kết hợp tất cả lại với nhau khi chạy. Bạn sẽ mất rất nhiều sự linh hoạt đó nếu bạn sử dụng nhà thiết kế.


0

Tôi thấy nó giống như thế này:

(Đối với bất kỳ tùy chọn nào trong số này, luôn vẽ nó trên giấy hoặc bảng trắng, hãy tin tôi rằng nó giúp tiết kiệm thời gian và sự thất vọng về mã)

Prototying:
Sử dụng một trình thiết kế GUI, tốt nhất là một đề xuất được sử dụng bởi hầu hết trong một ngôn ngữ cụ thể. Bằng cách đó, mã của bạn sẽ không quá khó hiểu khi bạn có thể điều chỉnh nó theo ý thích (hầu hết thời gian) của mình và cộng với vì mã rất có thể sẽ bị vứt đi hoặc thay đổi nhiều sau đó, bạn sẽ không phải lãng phí quá nhiều thời gian sớm trong chu kỳ phát triển. Sử dụng trình thiết kế GUI phù hợp với các ứng dụng GUI đơn giản và nhanh chóng hoặc hiển thị cho khách hàng của bạn một bức tranh sơ bộ về ứng dụng mà họ không phải đợi hàng tháng chỉ để xem.

Các dự án nhỏ:
Đây là một chút của một túi hỗn hợp, tùy thuộc vào ngôn ngữ và thời gian hạn chế. Sử dụng một trình thiết kế GUI ở đây sẽ hữu ích nhưng bạn nên xem xét việc dọn dẹp sau nó hoặc tạo các thành phần nhỏ hơn bằng tay. Bằng cách đó, bất kỳ ai khác (hoặc chính bạn) sẽ có thời gian sửa lỗi và đọc mã dễ dàng hơn. Điều này sẽ giúp bạn có được sự kiểm soát tốt hơn và tính linh hoạt của GUI. (Cũng là một lợi ích tốt đẹp của việc học khi bạn viết mã)

Các dự án lớn:
Đây là khi nó trở nên cần thiết để tạo GUI bằng tay. Các dự án lớn hơn có thể trở nên phức tạp một cách nhanh chóng và việc tạo GUI với một nhà thiết kế chỉ làm cho dự án phức tạp hơn và khó gỡ lỗi hơn. Tạo khung GUI cho ứng dụng của bạn có thể giúp phá vỡ nhiệm vụ tạo GUI thủ công dễ dàng hơn. Kiểm soát hoàn toàn ứng dụng của bạn là cần thiết vì nó sẽ giúp bảo trì hoặc nếu bạn muốn thêm các tính năng sau này (hoặc một khách hàng phiền phức khi đề cập đến bạn đã bỏ lỡ một yêu cầu lol), kết hợp chúng sẽ ít gây phiền toái và sạch sẽ hơn.

Theo kinh nghiệm cá nhân của tôi, học cách tạo GUI theo cách thủ công cần có thời gian và một số yêu cầu các đường cong học tập khó khăn (Heck, tôi lập trình trong Java và trang hướng dẫn Java Java cảnh báo bạn không nên tự làm GUI và sử dụng một nhà thiết kế), nhưng cuối cùng bạn sẽ đạt được kiểm soát cao hơn và tính linh hoạt của các ứng dụng của bạn, từ đó tạo ra các ứng dụng có giao diện đẹp hơn. Hy vọng bạn sử dụng một hướng dẫn thô tốt! Chúc mừng GUI :)

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.