Nie buduj oprogramowania od końca

Programiści są leniwi, klienci też — nie chce im się skarżyć na interfejs. Zaczynaj budowanie aplikacji od interfejsu, a nie od warstwy funkcjonalnej. I rób to z głową.

Przykładem jest system płatności online Protx, który podłączamy właśnie do serwisu jednego z klientów. Po przejściu do formularza dokonywania płatności, naszym oczom ukazuje się okienko z napisem credit card number, enter without the spaces. Jeśli projektant tego systemu wiedział doskonale, że wszystkie numery kart kredytowych posiadają separatory w postaci spacji lub myślników, to czemu kazać je usuwać użytkownikowi, zamiast wyczyścić je po stronie serwisu?

To wzorcowy przypadek zwalania pracy na użytkownika w sytuacji, w której komputer poradziłby sobie znacznie lepiej. Wpisywanie numeru karty bez separatorów powoduje też, że łatwiej o błąd — cyfry nie są pogrupowane i łatwo przeoczyć pomyłkę.

Jeśli masz zamiar oczekiwać od użytkownika wprowadzenia jakichś danych, to zrób co w twojej mocy, żeby przyjąć możliwie dużo popularnych formatów. Powyższy przykład jest o tyle idiotyczny, że na samej karcie numer zawiera spacje, a system wymaga wpisania go w zupełnie nietypowym formacie.

Technorati Tags: , , , , ,

5 » odpowiedzi dla wpisu “Nie buduj oprogramowania od końca”


  1. 1 Cthulhu

    Zgadywanie w jakim formacie wpisać jakieś dane to moja ulubiona zabawa ale z tymi numerami to już przegięcie. Ja zawsze jak wpiszę numer karty/konta to sprawdzam czy jest poprawny - dostałbym cholery jakby to wszystko zlało się w jednego inta..

  2. 2 mcv

    Może nie znają podziału na warstwy prezentacji, logiki i źródła informacji?

  3. 3 Tomash

    Aplikacji nie buduje się od interfejsu - ten zazwyczaj zostawia się na koniec. Aplikację buduje się od zaprojektowania, najpierw warstwy logicznej, a potem interfejsu przyciętego do tej warstwy logicznej. Że ktoś jest palant i ominął etap projektowania albo zrzuca większość pracy na użytkownika - no jasne, do kanału z nim. Ale proszę bez odważnych, wywrotowych tekstów w stylu “zaczynaj aplikację od interfejsu”, bo wtedy dopiero zacznie się tragedia ;)

  4. 4 Patrys

    Interfejst to nie tylko przyciski i inputy, to cały schemat interakcji z użytkownikiem.

    Powtórzę przykład z kalkulatorem:

    Programując kalkulator nie zaczynasz od implementacji wydajnego algorytmu ONP, a potem nie mówisz użytkownikowi, że znak się wciska po parametrach. Najpierw projektujesz schemat interakcji (co użytkownik może zrobić, w jakich okolicznościach, w jakim formacie), a dopiero potem dostosowujesz do tego warstwę logiki.

    Logika to warstwa, która ma za zadanie tylko połączyć model z widokiem, do jej prawidłowego stworzenia potrzebne są makiety tych ostatnich.

  5. 5 lu

    “Aplikacji nie buduje się od interfejsu - ten zazwyczaj zostawia się na koniec.” - zalezy w jaki sposob tworzona jest aplikacja, jesli masz dobrze “uchwycone” wymagania interfejs moze powstawac rownolegle.

    “Że ktoś jest palant i ominął etap projektowania albo zrzuca większość pracy na użytkownika - no jasne, do kanału z nim.” - a to jest juz mala przesada z tym palantem. Pokaz swoje I komercyjne projekty kolego, od razu byles geniuszem??? Moze poprostu klient nie szanuje uzytkownika, i nie zalezy mu na jego wygodzie, moze mu spieszylo sie z oddaniem systemu?

Skomentuj wpis