2009-03-20 19 views
7

Các trang tạo ứng dụng web:Các trang web chỉ làm quá nhiều thứ

Gần đây, tôi đã tự tạo các trang web đơn giản hơn những trang tôi thường sử dụng. Trước đây, tôi sẽ cố gắng mứt nhiều chức năng vào một trang duy nhất để ngăn không cho có nhiều trang.

Tôi bắt đầu nhận ra rằng điều này chỉ làm cho mọi việc trở nên phức tạp hơn, phức tạp và khó hiểu hơn trước đây. Tại sao không có nhiều trang hơn? Tôi nghĩ rằng lý do mà tôi đã làm điều này là bởi vì tôi không muốn người dùng phải duyệt đến các trang khác; chỉ để có tất cả chức năng họ cần trên một trang duy nhất.

Vâng, những ý định tốt này đã trở thành giao diện quá khó hiểu đối với người dùng và mã nguồn không thể quản lý được. Tôi là một nhà phát triển mới và tôi đang cố gắng phản ánh những gì tôi đang làm để tôi có thể cải thiện. Nếu nó làm cho một sự khác biệt, tôi đang phát triển trong ASP.net (mặc dù đây có lẽ là những cân nhắc cho bất kỳ nền tảng nào).

Câu hỏi của tôi là:

  • Am Tôi overthinking những điều này?
  • Có ai khác thấy mình đang làm việc này không?
  • Phương tiện hạnh phúc ở đâu?
+0

Cảm ơn, Ronnie, đã chọn câu trả lời của tôi làm câu trả lời *. * –

+0

Bạn được chào đón. Đó chính là loại thông tin tôi đang tìm kiếm. –

Trả lời

5

Không có chuyên gia nào có thể cung cấp cho bạn quy tắc hoạt động ở mọi nơi mọi lúc. Tôi đã được biết đến trong ngành công nghiệp của tôi trong nhiều năm qua cho các giao diện "dễ dàng" và chúng tôi đã giành được một lượng đáng kể kinh doanh cho nó (cũng như 5 giải thưởng "Tốt nhất trong lớp"). Tôi cũng đã có những người trong công ty của tôi và bên ngoài của nó cho tôi biết - trong nhiều năm - rằng họ thích công việc của tôi nhưng mong rằng tôi sẽ "jazz nó lên" với đồ họa nhiều hơn và như vậy. Điều khiến tôi ngạc nhiên là sự kết nối giữa hai người.

... Vì vậy, một vài quy tắc của ngón tay cái:

  1. Một trang nên làm một chính điều.
  2. Một trang cũng có thể có nhiều liên kết liên quan đến việc điều chính
  3. Menuing và bố trí liên kết nên nhất quán trên các trang
  4. đơn giản hơn là tốt hơn so với phức tạp hơn
  5. trang nên trực quan hấp dẫn và mời
  6. Rule 4 quan trọng hơn quy tắc 5.

Ví dụ, sản phẩm của tôi cung cấp giao diện cho phép mọi người xác định các lớp và sự kiện được hiển thị trong lịch. Tôi có thể có một trang cho phép bạn Xem lại, Thêm, Cập nhật, Xóa và Chỉnh sửa các lớp học. Thật vậy, trong một số lĩnh vực đơn giản hơn, tôi đã sử dụng GridView để cho phép mọi người quản lý mọi thứ trong một mạng lưới. Tuy nhiên, các lớp học có quá nhiều thông tin để làm điều này và vẫn tuân theo các quy tắc trên.

Vì vậy,

  1. Các tưởng chính là: "Đây là một danh sách các lớp cho vị trí này"
  2. Các liên kết được "Add New" trình bày ở trên và bên phải của lưới điện, Thay đổi và Xóa là các liên kết trong mỗi hàng. Điều này nhất quán trên ứng dụng.
  3. Việc chọn toàn bộ hệ thống luôn ở bên phải/trên cùng. Không có gì khác xuất hiện trên trang lớp/sự kiện ngoại trừ các phần tử chuẩn chung cho tất cả các trang (biểu trưng, ​​đầu trang, chân trang).
  4. Lưới điện là độc đáo theo kiểu nhưng không có đồ họa giả mạo (4,5,6)

Một vài điều cuối cùng về UI và thiết kế đồ họa.

Trước tiên, hãy phát triển tầm nhìn của riêng bạn và nhất quán trên các trang và ứng dụng.

Thứ hai, đừng sợ simplicity.

Tiếp theo, khi thu hút lời khuyên từ người khác, hãy nhớ rằng bạn không muốn lời khuyên của họ - bạn muốn hiển thị của họ: bạn muốn hiểu cách họ nhận thức giao diện. Lời khuyên đôi khi tốt nhưng, thường xuyên hơn không, thực sự có hại. Theo kinh nghiệm của tôi, mọi người đều nghĩ rằng họ là một chuyên gia về UI.

Khi bạn thực hiện kiểm tra khả năng sử dụng hành lang của bạn (hoặc chính thức), bạn nên giảm giá gần như tất cả lời khuyên để có hiệu lực là "bạn nên làm cho rằng nổi bật hơn". Như bạn sẽ thấy, nó sẽ nhanh chóng trở thành "và rằng," "và rằng," "và khác". Nếu bạn làm theo lời khuyên này, bạn sẽ kết thúc với một mớ hỗn độn do quy tắc thiết kế đầu tiên của Brittingham: Nếu mọi thứ quan trọng hơn là không có gì. (Có bạn đi: khi giải thích lý do tại sao bạn không thể làm cho ai đó nổi bật hơn, chỉ cần nói với họ rằng "nó vi phạm quy tắc thiết kế đầu tiên của Brittingham!")

Hy vọng điều này sẽ hữu ích!

+0

+1 Rất sâu sắc và có nhiều thông tin. Cảm ơn! –

3

Bạn nhấn đinh trên đầu. Sử dụng nguyên tắc KISS. (Giữ nó đơn giản ngu ngốc) Tôi đã làm điều này trong quá khứ là tốt và không chỉ làm cho một giao diện người dùng ghê tởm, nhưng khó hiểu như những gì hoạt động bạn có thể làm trên trang do có quá nhiều chức năng. Tôi thường thấy trong thử nghiệm rằng tôi không có đủ kiểm tra để xem liệu người dùng có thể thực hiện một hoạt động nhất định dựa trên trạng thái của dữ liệu hay không.

Thật dễ dàng trong ASP.Net để viết một số trang thực hiện các tác vụ đơn giản và sau đó liên kết chúng cùng với Response.Redirect hoặc Server.Transfer. Bây giờ tất cả tôi cố gắng để đạt được trên bất kỳ trang nào là những gì các thông số kỹ thuật thiết kế nói. Vì vậy, nếu trang của tôi chỉ là một trang tìm kiếm, đó là tất cả những gì tôi đưa ra. Nếu người dùng muốn xem chi tiết của một mục được trả về trong tìm kiếm, thì tôi sẽ gửi chúng đến trang itemDetails.aspx.

+0

Tôi đồng ý. Vấn đề duy nhất tôi có với nhiều trang là tiết kiệm và truy xuất dữ liệu trang từ trang này sang trang khác. Điều đó có thể tạo ra một số lượng hợp lý của tiếng ồn mã. Bạn làm gì để giải quyết vấn đề đó? –

+0

Tùy thuộc vào lượng dữ liệu phải được chuyển qua lại, tôi thường giữ nó được lưu trong Phiên. Nếu nó quá nhiều, thì tôi sẽ thực hiện một chuyến đi tới cơ sở dữ liệu và tìm lại nó. – Eppz

0
  1. Không
  2. Có - tôi
  3. tôi thấy vừa hạnh phúc là sử dụng MasterPages, và sử dụng nó trong một cách đó là quen thuộc với IFrame. Rằng tôi có thể có rất nhiều chức năng kết hợp tốt với nhau. Có một cách thú vị hơn để thực hiện việc này với WPF/Silverlight được gọi là Prism
0

Lượng chức năng trên trang thường không do bạn xác định. Nếu khách hàng yêu cầu một trang để cập nhật một số VeryComplexObject, bạn có thể kết thúc bằng một trang aspx có một số lượng đáng kể các dòng. Lý do chính là bạn chỉ cần có rất nhiều trình xử lý sự kiện cho tất cả các hành động trên trang.

Cho dù trang đó phức tạp là hoàn toàn tùy thuộc vào bạn. Bạn nên luôn cố gắng làm cho tệp phía sau mã của bạn đơn giản và rõ ràng nhất có thể. Một số đề xuất theo hướng đó:

  • Di chuyển tất cả mã doanh nghiệp sang một lớp ứng dụng khác.
  • Sử dụng ObjectDataSource để cung cấp dữ liệu cho các điều khiển ràng buộc dữ liệu như ListView, GridView, Repeater, ... Ủy thác tải dữ liệu đến một đối tượng chuyên dụng ngăn nhiều chi phí trong tệp aspx.cs của bạn.

Một đề xuất khác là sử dụng các điều khiển của người dùng để triển khai các phần của trang của bạn. Bạn thường sẽ chỉ làm điều này khi bạn có thể tái sử dụng điều khiển người dùng, nhưng nó cũng có thể giúp ích rất nhiều cho việc giảm độ phức tạp của trang (cả tệp mã phía sau của bạn cũng như aspx của bạn).

+0

Từ quan điểm của tôi, "khách hàng" không có yêu cầu thiết kế cụ thể. Họ khái quát và tôi phải tìm ra tất cả. Đó là lý do tại sao tôi phải xác định những gì diễn ra giữa các trang. –

+0

Tôi đồng ý với Ronnie về điều này, khách hàng biết mục tiêu cuối cùng của họ là gì nhưng công việc của chúng tôi là làm cho việc triển khai càng đơn giản để sử dụng càng tốt. Có nói rằng giao diện người dùng đôi khi cần phải phức tạp hơn nhưng tất cả phụ thuộc vào công việc trong tầm tay và loại người sử dụng nó. – lexx

+0

Trong trường hợp đó, trước tiên tôi sẽ tạo một mockup html cho trang web của bạn để hiển thị cho khách hàng những gì nó sẽ giống như thế nào. Liên kết chúng càng sớm càng tốt. Bạn không muốn xây dựng một trang web chỉ để khách hàng của bạn nói: 'đó không phải là những gì chúng tôi muốn'. –

1

Bạn đã phá vỡ bức tường mà hầu hết các nhà phát triển phần mềm có, cái mà đã chặn chế độ xem của bạn về khả năng sử dụng trước đây. Rất nhiều nhà phát triển không thực sự nghĩ về nó và cố gắng làm cho nó dễ dàng hơn cho họ bằng cách nhồi chức năng trong một cửa sổ, trang web hoặc bất cứ điều gì.

Điều này là khi bạn bắt đầu thiết kế phần mềm theo quan điểm của người dùng, tức là làm cho việc này trở nên dễ dàng hơn, một số điều bắt đầu trở nên rõ ràng. Một là vấn đề bảo trì mã, mã đó có thể dễ dàng quản lý hơn nếu bạn không làm mọi thứ trong một lớp khổng lồ hay bất cứ điều gì bạn đang làm. Bản thân khác là khả năng sử dụng, bạn bắt đầu nghĩ cách người dùng thực sự đang sử dụng ứng dụng của bạn thông qua giao diện đồ họa. Thứ ba là tránh các yêu cầu hoặc phạm vi creep nơi bạn ngừng phát triển chức năng mà người dùng không cần.

Chúng tôi là người dùng muốn đơn giản một phần vì chúng tôi không muốn dành phần lớn thời gian của chúng tôi qua giao diện người dùng xấu khi chúng tôi có thể hoàn thành công việc nhanh hơn với giao diện người dùng đơn giản và mượt mà. Điều đó làm cho nó cho chúng tôi phát triển phần mềm điều phải làm, suy nghĩ thông qua thiết kế của bạn trên tất cả các cấp ... đó và thông số kỹ thuật luôn luôn nằm.

0

Thỉnh thoảng tôi nghĩ rằng chúng ta đều có tội khi quên rằng chúng tôi phát triển các ứng dụng của mình cho ai. Nó không phải là luôn luôn dễ dàng như một nhà phát triển để có thể lùi lại một bước và có một cái nhìn tại ứng dụng của bạn như là một người dùng có thể làm như vậy. Đây là lý do tại sao các công ty lớn lao động hàng trăm người để làm điều này cho họ và họ không luôn luôn làm cho nó đúng.

Tính khả dụng là một chủ đề lớn nhưng chắc chắn là điều mà tất cả các nhà phát triển cần lưu ý. Nó đã đưa tôi một thời gian dài để tìm hiểu điều này, nhưng khi giải quyết bất kỳ nhiệm vụ phát triển, tôi luôn luôn cố gắng suy nghĩ về cách người dùng của tôi sẽ tương tác với những gì tôi đang viết. Điều này sẽ tạo sự khác biệt cho tất cả các cấp độ phát triển của bạn.

Tôi khuyên bạn nên đọc Don't Make Me Think by Steve Krug. Cuốn sách này sẽ không đưa bạn một tuổi để đọc và nó đặt trên một số ý tưởng tuyệt vời có thể giúp bạn phát triển các ứng dụng dễ sử dụng và dễ hiểu hơn nhiều.

Tôi luôn thấy rằng một khi tôi đã nghĩ về trải nghiệm người dùng, các quyết định về trang web của tôi sẽ làm gì và cách chúng tương tác sẽ dễ dàng hơn nhiều.

1

Chắc chắn đồng ý: hầu hết các nỗ lực viết các trang/hình thức mà làm quá nhiều đã dẫn đến

  • lỗi và viết lại. Các vấn đề xảy ra với việc giữ tất cả các bộ phận hợp lệ/đồng bộ hóa,
  • quản lý vượt quá mong đợi của người dùng ("Tôi đã nhập số hóa đơn tại đây và nhấp vào" tìm người "ở đó nhưng nó cung cấp thông báo lỗi. Tại sao?") hai là tách biệt về mặt logic. Những câu hỏi này không thể xuất hiện nếu chỉ hiển thị các tùy chọn hợp lệ,
  • Vấn đề về định dạng/bố cục: Trong các trang ASP.NET, cố gắng bố trí Điều khiển người dùng độc lập hóa ra là một cơn ác mộng ("Nhưng chúng tôi thực sự muốn tất cả các nút được căn chỉnh theo chiều dọc ! "trong điều khiển người dùng riêng biệt. Chúc may mắn với điều đó.)

tôi muốn xem xét các trang web với nhiều hơn một chức năng chỉ khi đối tượng mục tiêu bao gồm các chuyên gia tên miền, tức là những người mà cần rất nhiều chức năng trên cùng một trang cho năng suất tốt hơn (suy nghĩ nhập dữ liệu hoặc phần mềm tài chính với nhiều biến).

Thậm chí sau đó, hầu hết thời gian, có thể các trang riêng biệt thành các đơn vị đơn lẻ.

0

Có thể bạn nên hỏi những người đang sử dụng trang web của bạn. Hoặc tốt hơn, chỉ cần xem mọi người sử dụng trang web của bạn. Tôi nghĩ điều đó sẽ cho bạn biết nếu trang web của bạn được thiết kế tốt hay bạn cần thay đổi nó.

Các vấn đề liên quan