Architektura programu - tak myśle że to się nazywa

1

Witam jestem początkującym, znam już ogólne podstawy Javy, zrobiłem kilka prostych programów
i gdy potrzebne mi coś nowego( jakaś klasa, funkcja itp) z pomocą książki potrafie to przejść.

Mam jednak prośbe o pomoc innej natury. Chodzi mi powiedzmy o taki warsztat pracy, ogólne spojrzenie programisty na problem, tworzenie programu jako takiego, jego architektury.
Jak na razie nie znalazłem czegoś takiego w książkach, ani na forum(chyba że gdzieś to już jest ujęte

  • to prosze o linka, tytuł książki i przepraszam za zaśmiecanie forum :)

Wiem z własnego doświadczenia projektowego (inżynier budownictwa) że to przychodzi z czasem,
ale znacznie lepiej jest zapytać kogoś doświadczonego niż od początku kluczyć i brnąć w głupie rozwiązania. Wiadomo że błedy zawsze się zdarzają i każdemu, ale chodzi mi o to żeby te najogólniejsze założenia przyjąć prawidłowo.

Do przykładu :) Powiedzmy że chce stworzyć program.

Założenia:
Program kucharski :) niby książka kucharska, ale taka lepsza :)
( to tylko przykłąd nigdy nie powstanie chyba że kogoś to zainspiruje :)

  • program ma za zadanie tworzyć kolejne dania na cały dzień, tydzien jak kto woli.
    czyli program tworzy jeden lub wiecej elementów (element = danie).
  • mamy kilka z góry zdefiniownytch podstawowych typów dań( śniadanie, przystawka, deser itp.)
  • zdefiniowane w jakieś bazie produkty ich charakterystyka
  • zdefiniowane interakcje produktów itp

Działanie:
Tworzymy element: np danie typu: śniadanie ma parametry ( ilość ludzi, zawartość białka%, mieso tak/nie, warzywa tak/nie itp.)

Wynik programu:
Program podaje wynik dla każdego elementu z osobna:

  • lista produktów,
  • sposób przyrządzenie
  • może rysunek i takie tam :)

I teraz sedno mojego pytania

  1. Jak i czy rozdzielamy część obliczeniową programu od części graficznej. Czy robimy to za pomocą pakietów(każdy z nich zawiera zbiór klas o jednym charakterze działąnia.
    Czy istnieje tu jakaś najogolniesze zasada.

  2. Czy tworząc kolejny element(danie) tworze kolejny wątek, w którym tworzę obiekt mnie interesujący (przyznam w tym wzgledzie najbardziej brakuje mi wyczucia :( Czy w ogóle w tego typu programach jest potrzeba stosowania wątków i jakie z tytułu ich zastosowania mogą wynikać korzyści.

  3. Jakiego typu elementy stosować jako zapis danych elemntu, charakterystyk produktów na dysk.

  4. Jakie efektywne rozwiązanie ustawień/konfiguracji użytkownika się stosuje (kolor tła programu, jakie kto lubi mieso, czy ma ktoś alergie na coś itp.)
    Czy isnieją już gotowe klasy tym zajmujące się.

  5. Ogólnie pytam o podejście do takie problemu, ogólny podział charakteru klas( graficzne, obliczeniowe, ...) Czy isnieje taka ogólna metodyka w podejsciu do tego typu zadania.

Troche przydługi post ale dzięki za przeczytanie, myślę że może to być ciekawy temat dla początkujących i nie tylko.
Wiadomo sposobów rozwiązań problemu jest zawsze dużo ale dla początkujących ważne jest nadanie pewnego kierunku i sposobu myślenia, określenia zalet i wad zastosowanych rozwiązań.

Moja prośba o ogólne założenie.
Dziekuje z góry za pomoc.
Mariusz

0

ja bym proponowal zapoznac sie z wzorcami projektowymi np. HeadFirst czy GoF.

pozdrawiam

0

Wzorce projektowe się kłaniają... Przede wszystkim wzorzec MVC :)
Krótkie odpowiedzi na pytania:

  1. Rozdzielić, a komunikację zapewnić przez warstwę pośrednią wykorzystującą interfejsy. Inaczej zginiesz jeżeli coś trzeba będzie gdzieś poprawić. Wykorzystanie pakietów jest naturalne.
  2. Mylisz techniczną i projektową część. Mówiąc obrazowo jak chcesz wykopać dół (zapisać danie) możesz użyć łopaty (jakiś system baz danych ) lub koparki (jakiś inny system BD).
  3. Bazę danych. Można kombinować z plikami, ale to jest po prostu głupie. Na początek mysql lub HSQLDB.
  4. Tu też mylisz narzędzia z projektem. Poczytaj o Użyteczności i dostępności graficznych interfejsów użytkownika (GUI). Teksty z tego zakresu obejmują projektowanie i wdrażanie GUI tak by były wygodne dla użytkowników.
  5. czytać o wzorcach projektowych :

Przede wszystkim pytać

0

Dzieki za wyjaśnienia.
Czy w książce "HeadFirst" znajde opis wzorca MVC?
Prosze o jakiegoś linka lub ewenutalnie tytuł książki o wzorcach MVC?
Pozdrawiam
Mariusz

0

Dużo zostało już wyjaśnione, ja jescze dodam od siebie:
http://java.sun.com/developer/technicalArticles/javase/mvc/

Naprawdę polecam :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1