2009-03-20 13 views
7

chodzi o strony, które zbudować aplikację internetową:Strony internetowe, które po prostu zbyt wiele rzeczy

Ostatnio znalazłem się tworzenia stron internetowych, które są prostsze niż te, które kiedyś. Wcześniej starałem się zablokować jak najwięcej funkcjonalności na jednej stronie, tak aby uniknąć wielu stron.

Zaczynam rozumieć, że to po prostu sprawia, że ​​rzeczy stają się bardziej złożone, zawiłe i mylące, niż to musiało być. Dlaczego nie mieć więcej stron? Myślę, że powodem, dla którego to robię, było to, że nie chciałem, aby użytkownik przeglądał inne strony; tylko po to, by mieć całą funkcjonalność, jakiej potrzebowali na jednej stronie.

Cóż, te dobre intencje zmieniły się w zbyt mylący interfejs dla użytkownika i bardzo trudny do opanowania kod źródłowy. Jestem nowym programistą i staram się bardzo odzwierciedlać to, co robię, aby móc go ulepszyć. Jeśli to robi różnicę, rozwijam się w ASP.net (chociaż są to prawdopodobnie rozważania dla każdej platformy).

Moje pytania są następujące:

  • Am I overthinking te rzeczy?
  • Czy ktoś jeszcze to zrobił?
  • Gdzie jest szczęśliwe medium?
+0

Dzięki, Ronnie, za wybranie mojej odpowiedzi jako * odpowiedź. * –

+0

Nie ma za co. To była dokładnie taka informacja, której szukałem. –

Odpowiedz

5

Nie ma eksperta, który może podać regułę, która działa we wszystkich miejscach przez cały czas. Od lat jestem znany w mojej branży z "łatwych" interfejsów i wygraliśmy dla niego znaczące ilości biznesu (jak również 5 nagród "Best in Class"). Miałem też ludzi w mojej firmie, a poza nią mówią mi - przez lata - że podobają mi się moje prace, ale życzę sobie, żebym je "podkręcił" z większą ilością grafiki i tym podobnych. Zawsze zadziwia mnie to, jak niewiele osób łączy się między nimi.

Więc ... kilka zasad kciuk:

  1. Strona powinna zrobić jedną główny rzecz.
  2. Strona może mieć kilka linków związanych najważniejsze
  3. menuing i układ link powinien być spójne stron
  4. Prostsze jest lepsze niż bardziej złożone
  5. Strony powinny być atrakcyjne wizualnie i zapraszając
  6. Rule 4 jest ważniejsze niż reguła 5.

Na przykład mój produkt udostępnia interfejs, który pozwala użytkownikom definiować klasy i zdarzenia, które mają być wyświetlane w kalendarzu. I może mieć jedną stronę, która pozwala Ci przeglądać, dodawać, aktualizować, usuwać i edytować klasy. Rzeczywiście, w niektórych prostszych obszarach użyłem widoku siatki, aby pozwolić ludziom zarządzać wszystkim w siatce. Jednak zajęcia mają zbyt dużo informacji, aby to zrobić i nadal postępować zgodnie z powyższymi regułami.

Więc

  1. Ideą brzmi: „Oto lista klas dla tej lokalizacji”
  2. linki są „Dodaj nowy” pokazany powyżej i na prawo od siatki, Zmień i usuń są linki w każdym wierszu. Jest to spójne w całej aplikacji.
  3. Menu dla systemu jako całości znajduje się zawsze po prawej/na górze. Nic nie pojawia się na stronie klasy/wydarzenia, z wyjątkiem standardowych elementów wspólnych dla wszystkich stron (logo, nagłówek, stopka).
  4. Siatka jest ładnie urządzone, ale nie ma żadnych fałszywych grafika (4,5,6)

Kilka ostatnich rzeczy o UIs i projektowania graficznego.

Po pierwsze, rozwijaj własną wizję i zachowuj spójność na różnych stronach i w aplikacjach.

Po drugie, nie bój się simplicity.

Następnie, gdy szukając porady od innych, pamiętaj, że nie chcesz ich porady - chcesz ich wrażenia: chcesz zrozumieć, w jaki sposób postrzegają interfejs jako. Porady są czasami dobre, ale częściej niż szkodliwe. Z mojego doświadczenia wszyscy myślą, że są ekspertami od interfejsu użytkownika.

Po przeprowadzeniu przedpokoju (lub formalnego) testu przydatności należy zdyskwalifikować prawie wszystkie wskazówki, że "powinieneś zrobić , że wyróżniają się bardziej." Jak się przekonasz, szybko stanie się "i ," "i , która to nazwa jest" "i ". Jeśli zastosujesz się do tej rady, skończysz z bałaganem z powodu pierwszej zasady projektowania Brittinghama: Jeśli wszystko jest ważne, nic nie jest. (Tutaj: wyjaśniając, dlaczego nie można sprawić, że ktoś będzie bardziej wyróżniał się, po prostu powiedz im, że "narusza to pierwszą zasadę projektowania Brittinghama!")

Mam nadzieję, że to pomoże!

+0

+1 Bardzo wnikliwe i pouczające. Dzięki! –

3

Uderzyłeś paznokciem w głowę. Użyj zasady KISS. (Keep It Simple Stupid) Zrobiłem to również w przeszłości i nie tylko tworzy on ohydny interfejs użytkownika, ale także dezorientuje, jakie operacje można wykonać na stronie z powodu zbyt dużej funkcjonalności. W testowaniu często stwierdzałem, że nie mam wystarczającej liczby kontroli, aby sprawdzić, czy użytkownik może wykonać określoną operację na podstawie stanu danych.

W programie ASP.Net wystarczy napisać kilka stron, które wykonują proste zadania, a następnie połączyć je z Response.Redirect lub Server.Transfer. Teraz wszystko, co staram się osiągnąć na dowolnej stronie, jest takie, jak mówią specyfikacje projektu. Więc jeśli moja strona to tylko strona wyszukiwania, to wszystko, co daję. Jeśli użytkownik chce zobaczyć szczegóły elementu, który został zwrócony podczas wyszukiwania, wysyłam je na stronę itemDetails.aspx.

+0

Zgadzam się. Jedynym problemem, który mam z wieloma stronami, jest zapisywanie i pobieranie danych strony z jednej strony na drugą. To może generować sporą ilość szumu kodu. Co robisz, aby to obejść? –

+0

W zależności od ilości danych, które należy przekazywać tam iz powrotem, zazwyczaj przechowuję je w Sesjach. Jeśli to za dużo, zrobię wycieczkę do bazy danych i ponownie ją ściągnę. – Eppz

0
  1. Nie
  2. Tak - ja
  3. znalazłem złoty środek był w użyciu MasterPages i używania go w sposób, który był znany iframe. To, że mogłem mieć wiele funkcji połączonych razem. Bardziej interesujący jest ten sposób z WPF/Silverlight pod nazwą Prism
0

Ilość funkcji na stronie zazwyczaj nie jest określona przez Ciebie, ale przez klienta. Jeśli klient żąda jednej strony, aby zaktualizować numer VeryComplexObject, najprawdopodobniej pojawi się strona aspx, która ma znaczną liczbę wierszy. Głównym powodem jest to, że po prostu masz wiele programów obsługi zdarzeń dla wszystkich akcji na stronie.

To, czy strona jest skomplikowana, zależy wyłącznie od Ciebie. Zawsze powinieneś próbować uczynić swój plik zza kodu tak prostym i czystym, jak to tylko możliwe. Kilka sugestii w tym kierunku:

  • Przenieś cały kod biznesowy do innej warstwy aplikacji.
  • Użyj ObjectDataSource do dostarczenia danych do kontrolek związanych z danymi, takich jak ListView, GridView, Repeater, ... Delegowanie załadowania danych do dedykowanego obiektu zapobiega wielu obciążeniom w pliku aspx.cs.

Inną propozycją jest użycie elementów sterujących użytkownika do zaimplementowania części strony. Zwykle robisz to tylko wtedy, gdy możesz ponownie użyć formantu użytkownika, ale może to również bardzo pomóc w zmniejszeniu złożoności strony (zarówno pliku kodu źródłowego, jak i twojego aspx).

+0

Z mojego punktu widzenia, "klienci" nie mają konkretnych wymagań projektowych. Generalizują się i muszę to wszystko zrozumieć. Właśnie dlatego muszę określić, co dzieje się na stronach. –

+0

Zgadzam się z Ronniem na ten temat, klient wie, jaki jest ich cel końcowy, ale jest naszym zadaniem, aby implementacja była jak najprostsza w użyciu. Mówiąc, że interfejs użytkownika musi być czasem bardziej złożony, ale wszystko zależy od wykonywanej pracy i rodzaju osoby, która go używa. – lexx

+0

W takim przypadku najpierw utworzę makietę html dla Twojej strony internetowej, aby pokazać klientowi, jak będzie wyglądać. Zaangażuj ich tak wcześnie, jak to możliwe. Nie chcesz budować witryny tylko po to, aby klient powiedział: "nie tego chcieliśmy". –

1

Złamałeś ścianę, którą ma większość programistów, która wcześniej blokowała twój pogląd na użyteczność. Wielu programistów naprawdę nie myśli o tym i próbuje im ułatwić, wypychając funkcjonalność w jednym oknie, stronie internetowej lub czymkolwiek innym.

Chodzi o to, że gdy zaczniesz projektować oprogramowanie z punktu widzenia użytkownika, to znaczy, że będzie łatwiej, kilka rzeczy stanie się jasne. Jednym z nich jest kwestia konserwacji kodu, kod ten jest łatwiejszy w zarządzaniu, jeśli nie poskładasz wszystkiego w jedną wielką klasę lub jakąkolwiek parodię, którą robiłeś. Druga to sama użyteczność, że zaczynasz myśleć, w jaki sposób użytkownik faktycznie korzysta z aplikacji za pośrednictwem interfejsu graficznego. Trzeci to unikanie wymagań lub zakresu, w którym przestajesz tworzyć funkcje, których użytkownik nie potrzebuje.

My, jako użytkownicy, chcemy prostoty, częściowo dlatego, że nie chcemy spędzać większość czasu na mieszaniu się przez zły interfejs użytkownika, kiedy możemy przyspieszyć naszą pracę dzięki prostemu i przejrzystemu interfejsowi użytkownika. To sprawia, że ​​nasi programiści powinni robić właściwe rzeczy, przemyśleć swój projekt na wszystkich poziomach ... to i specyfikacje zawsze kłamią.

0

Czasami myślę, że wszyscy jesteśmy winni zapomnienia o tym, dla kogo rozwijamy nasze aplikacje. Nie zawsze jest to łatwe, ponieważ programista może cofnąć się i spojrzeć na swoją aplikację, ponieważ może to zrobić użytkownik. Dlatego duże firmy zatrudniają setki osób, aby to zrobiły i nie zawsze są one odpowiednie.

Użyteczność to ogromny temat, ale jest wyzywająco czymś, o czym muszą pamiętać wszyscy programiści. Dużo czasu zajęło mi nauczenie się tego, ale przy rozwiązywaniu każdego zadania programistycznego zawsze staram się zastanowić, w jaki sposób moi użytkownicy będą wchodzić w interakcję z tym, co piszę. Będzie to miało wpływ na wszystkie poziomy rozwoju.

Sugerowałbym czytanie Don't Make Me Think by Steve Krug. Ta książka nie wymaga wieku, aby ją przeczytać, a zawiera fantastyczne pomysły, które mogą pomóc w opracowaniu aplikacji, które są znacznie łatwiejsze w użyciu i zrozumieniu.

Zawsze uważam, że gdy pomyślę o użytkownikach, decyzje o tym, co zrobią moje strony i jak będą wchodzić w interakcje, są łatwiejsze do wykonania.

1

Zdecydowanie są zgodni: większość prób pisania stron/formularzy, które robią zbyt wiele zaowocowały

  • błędów i przepisuje. Występują problemy z utrzymaniem wszystkich części ważnych/zsynchronizowanych,
  • nadmierne zarządzanie oczekiwaniami użytkowników ("Podałem tu numer rachunku i kliknąłem" znajdź osobę "tam, ale pojawia się komunikat o błędzie." Dlaczego? ") kiedy obie są logicznie oddzielone. Pytania te nie mogą powstać, jeśli widoczne są tylko ważne opcje,
  • Problemy z formatowaniem/układem: na stronach ASP.NET próba niezależnego układu kontroli użytkownika okazuje się koszmarem ("Ale naprawdę chcemy, aby wszystkie przyciski były wyrównane pionowo ! "w oddzielnych kontroli użytkowników. Powodzenia z tym.)

Pomyślę stron internetowych z więcej niż jednej funkcji tylko wtedy, gdy grupa docelowa składa się z ekspertów w tej dziedzinie, czyli osób, które potrzebują dużo funkcjonalności na jednej stronie dla lepszej produktywności (pomyśl o wprowadzeniu danych lub oprogramowaniu finansowym z dużą ilością zmiennych).

Nawet wtedy, w większości przypadków, możliwe jest oddzielne strony w pojedyncze jednostki.

0

Może powinieneś zapytać ludzi, którzy korzystają z Twojej strony. Albo jeszcze lepiej, po prostu obserwuj, jak ludzie korzystają z Twojej witryny. Myślę, że to by powiedzieć, czy witryna jest dobrze zaprojektowane, czy trzeba go zmienić.

Powiązane problemy