Jak zaprojektować przepływ pracy w witrynie?


18

Myślałem o tym od naprawdę długiego czasu, nie osiągając optymalnej odpowiedzi.

Przede wszystkim jestem lekarzem, który uwielbia programowanie, ale nigdy tak naprawdę go nie studiował, z wyjątkiem nauki w domu i wielu lat zabawy kodem w wolnym czasie.

Obecnie próbuję zbudować mały projekt do zarządzania moją kliniką, aby to zrobić, zacząłem od stworzenia listy opcji, które chcę mieć.

Przykład:

  1. aktywny zapis pacjenta.
  2. uwierzytelnianie z różnymi rolami (np. pacjent, pielęgniarka, dr)
  3. harmonogram wizyt (w tym kalendarz z planowymi wakacjami / operacjami itp. z przypomnieniem)
  4. pozwalają lekarzowi tworzyć własne wtyczki.
  5. pulpit nawigacyjny dla lekarza, aby zobaczyć jego statystyki

Potem zacząłem od codeigniter / mysql / php / jquery i zacząłem kodować.

Moje kroki w trakcie rozwoju: -

  1. 1. baza danych.

wprowadź opis zdjęcia tutaj

Zacząłem od stworzenia wszystkich moich tabel, których będę potrzebować.

  1. Utworzyłem wszystkie moje modele do obsługi tych tabel (1 model główny, który obsługuje podstawowe operacje odczytu / zapisu / aktualizacji / weryfikacji, jednocześnie biorąc pod uwagę moje relacje między tabelami

Następnie zaczynam kodować moje widoki i kontrolery. Najpierw stworzyłem widok HTML, a następnie kontroler, który obsłuży ten widok, i zacząłem kodować funkcje, aby interakcje widoku działały.

Przykład kodowania widoku spotkania (administrator booking.php):

wprowadź opis zdjęcia tutaj

utworzyłem ten układ i umożliwiłem kliknięcie tabeli td, gdy użytkownik kliknie: jquery get (booking / add_patient_form) i wyskakuje

kiedy użytkownik zapisze: dodaj do rezerwacji / zapisz - zapisz spotkanie, a następnie ponownie załaduj funkcję index ()

itd. i kontynuowałem te same kroki tworzenia widoku, a następnie jego kontrolera - który zawiera całą logikę, której ten widok potrzebował - aby zrealizować cały projekt.

Na końcu wszystkie moje funkcje docelowe działały dobrze, ale ponieważ od samego początku nie było PLANU, a ponieważ cały projekt był uderzeniem mózgu i debugowaniem bez żadnego planu, po tym, jak posunąłem się tak daleko w tym projekcie, znalazłem swój przyczepiony do siebie z elastycznością i łatwością obsługi i nie można ich połączyć.

Mam wrażenie, że każda strona na stronie jest całkowicie odizolowana od innych i nawet nie pamiętam, jak każda strona jest ładowana i jakie funkcje są w niej bez podglądania!

Czy w ogóle mogę to odzyskać i uzyskać projekt?


5
Zwykle wyjmuję duży kawałek papieru (A3 lub większy) i długopis i zaczynam rysować schematy blokowe, dopóki nie zorientowałem się, jaki jest kompletny „obieg” funkcjonalności strony internetowej, a także struktur bazy danych. Potem zdobędę kolejny kawałek papieru i opracuję kilka naprawdę podstawowych szkieletów. Odtąd jest to „tylko” kodowanie i odrobina grafiki. Dodam ostatnie poprawki i szczegóły po tym wszystkim. Schematy blokowe naprawdę ułatwiają ustalenie, gdzie należy umieścić jaką funkcję i jakie zmienne pobiera z jakiej lokalizacji.

3
Jeszcze lepiej z dużą szeroką białą tablicą;) +1 @LuudJacobs. Wiesz lepiej niż ktokolwiek, jak powinien przebiegać proces kliknięcia, z jakich jednostek i funkcji powinny przychodzić za każdym razem i jakich danych chcesz najczęściej wyszukiwać, jakich danych nie potrzebujesz tak często (rzadko). Jeśli chcesz zachować historię, czy nie i gdzie. Po narysowaniu kilku diagramów Entity znajdziesz się w miejscu, w którym czujesz się dobrze i upewnij się, że
wybrane przez

@LuudJacobs dobrze dziękuję :), ale próbowałem to zrobić, wyjąłem białą tablicę i wydrukowałem mój schemat db i ... niczego nie narysowałem! chyba nie wiem jak powinien wyglądać schemat blokowy. postaram się znaleźć w Google przykłady. jeśli masz jakieś schematy blokowe rzeczywistego projektu, chciałbym to zobaczyć
Zalaboza,

+1 @bonCodigo: Tablica jest lepszą opcją, ponieważ a) masz więcej miejsca do pracy i b) łatwo jest usunąć dane. Oto wyszukiwarka google z kilkoma przykładami schematu blokowego. Dobre oprogramowanie do tworzenia schematów blokowych to MS Visio i Mac OmniGraffle

Dla lekarza wykonałeś z tym godną podziwu robotę, szczególnie biorąc pod uwagę, że wybrałeś Nickleback of Programming Languages do współpracy.
Robert Harvey

Odpowiedzi:


6

Twoje pytanie - jaki jest proces tworzenia oprogramowania - jest gorącym tematem; wystarczy google „metodologia oprogramowania”, aby zobaczyć, jak daleko sięga ta paczka robaków ...

Nie ma powszechnie akceptowanej odpowiedzi. W rzeczywistości, jeśli poprosisz 5 programistów, dostaniesz 7 odpowiedzi, z mojego doświadczenia.

Polecam kupienie „Kompletnego kodu” Steve'a McConnella, aby zobaczyć praktyki kodowania niższego poziomu - takie jak układanie kodu, komentowanie go, testowanie. Polecam „Projektowanie oparte na domenie” autorstwa Erica Evansa, aby zapoznać się ze sposobem tworzenia aplikacji na poziomie architektonicznym. Polecam „Agile Software Development: Principles, Patterns and Practices” autorstwa Roberta Martina jako przegląd tego, jak „rozwijać” oprogramowanie w czasie, zachowując jednocześnie jego jakość.

Inny programista prawdopodobnie odrzuci wszystkie te książki i skieruje cię na UML, Rational Unified Process i generowanie kodu. Nie ma właściwej odpowiedzi!


Aby zilustrować punkt widzenia Neville'a K na temat różnych odpowiedzi, pominął dobre zasoby do projektowania interakcji z użytkownikami końcowymi, od których chciałbym zacząć. ;-)
Eric G

1

0

Radziłbym zachować strukturę bazy danych i wygenerować nowy kod PHP za pomocą PHP Generatora dla MySQL stworzonego przez firmę SQL Maestro . To naprawdę działało dla mnie. Używam go bardzo często i jestem z niego bardzo zadowolony, szczególnie możliwość dostosowania kodu PHP do własnych potrzeb. Co więcej, wprowadzają one nowe żądane funkcje do swoich aktualizacji i mają fajne samouczki na temat poprawiania kodu. Aby lepiej zrozumieć, zapoznaj się z tym projektem demonstracyjnym .

Na ich stronie internetowej podano następujący opis produktu:

PHP Generator dla MySQL to interfejs użytkownika MySQL GUI, który pozwala generować wysokiej jakości skrypty PHP dla wybranych tabel, widoków i zapytań w celu dalszej pracy z tymi obiektami przez Internet. Kluczowe funkcje obejmują:

  • Zarządzanie danymi: dodawaj, edytuj, usuwaj i kopiuj rekordy
  • Dostosowywanie wyglądu HTML
  • Filtrowanie i sortowanie
  • Ochrona danych z wieloma ustawieniami bezpieczeństwa
  • Prezentacje mistrzowskie
  • Zarządzanie treścią oparte na zdarzeniach
  • Eksport danych do formatu PDF, XML, CVS, Excel i Word

Generator PHP dla MySQL tworzy przejrzysty i łatwy do zrozumienia kod, którego można używać w takiej postaci, w jakiej jest lub można go modyfikować w dowolny sposób.

Zaoszczędź ogromne koszty wynajmu programisty, nauki dowolnego języka programowania lub zakupu drogiego oprogramowania - cały kod jest generowany automatycznie!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.