Questo non risponderà a tutte le tue domande, ma almeno potrebbe essere meglio di niente.
- There is few cohesion between us, so there is lack of understanding what other members are doing or what should each one do.
- Now that we try a beta of the website we found each part is not well correlated with each others.
Penso che inizi a programmare troppo velocemente, impieghi più tempo a pianificare e elencare le tue funzionalità.
1. Requisiti
- Scrivi tutte le pagine che desideri avere (dal punto utente)
- Da ognuna di queste pagine scrivi ciò che ti aspetti da questa pagina (l'obiettivo principale da tenere presente)
-
Quindi, per ogni pagina, annota tutte le funzionalità che ti aspetti (e cosa dovrebbe).
per esempio. Se utilizzo un blog come esempio di un sito web
- Post.php (pagina per aggiungere / aggiornare un post):
- Obbligatorio: obbliga l'utente a registrarsi
- Obbligatorio: obbliga l'utente ad essere amministratore (nel caso tu abbia più livelli di sicurezza)
- Obbligatorio: convalida il contenuto non è vuoto
- avere un testo con un pulsante di invio / modifica
3.1. Disegna utilizza schemi caso di tutte le interazioni che l'utente potrebbe fare.
per esempio. Se provo a modificare un post ma non sono un amministratore né registrato devo reindirizzare alla schermata di accesso.
Questo ti aiuterà a creare un elenco TODO e a dichiarare chiaramente il comportamento finale che ti aspetti.
2. Disegno
- Progetta il database in base ai tuoi requisiti
-
Identità elementi comuni / condivisi da ciascuna pagina
per esempio.
- Se ho molte pagine che hanno bisogno di forzare l'accesso dell'utente, potrei provare a creare una classe / metodo per farlo e riutilizzarla quando necessario.
- La tua interfaccia utente ha una forma comune, prova ad avere un solo file con questa forma.
L'idea qui è di evitare di fare lo stesso lavoro da ciascuno dei tuoi compagni e in un modo diverso.
Fallo una volta, condividilo con i tuoi amici
-
Pensa all'implementazione dal punto 2. (Il flusso delle tue chiamate, i tuoi metodi, le tue classi, ...) INSIEME e assicurati che sia solid
in rock.
Poiché sei nuovo sia per la programmazione che per MySQL / HTML / PHP, tutte le conoscenze sono importanti.
Il codice condiviso è fondamentale, lo si vuole fare UNA VOLTA e non lo si tocca dopo perché si rischia di riscrivere il codice in più file.
NOTA: il codice non è SOLIDO IN ROCCIA, potrebbe essere necessario aggiornarlo se necessario.
Non sono bravo a spiegarlo, ma l'obiettivo principale è definire chiaramente quali classi, i metodi saranno disponibili in tutti i tuoi file. (Cosa sarà condiviso).
Tu non dovresti aver bisogno di stabilire chiaramente le classi / metodi interni (privati) e la logica, ma devi assolutamente pensarci perché dichiarerà ciò che dovrai passare nei tuoi metodi / classi pubblici.
ad es. Per verificare se sono l'amministratore stavo pensando a una classe Security
con IsPartOfGroup(group name)
. (Dove il nome del gruppo è admin
)
So che questa classe avrà bisogno di accedere alle mie informazioni di accesso e accesso al database. Non sono sicuro se dovrei recuperare i dati (un carico pigro, che significa creare una logica!) Solo quando IsPartOfGroup()
è una chiamata (supponendo che possa richiedere un uso intensivo delle risorse) o se potrebbe già averla quando chiama IsPartOfGroup()
( perché lo recupero quando creo la mia classe Security
.
So che avrò bisogno delle mie informazioni di accesso (una classe Session?) E della connessione al database e non avrò bisogno di passarlo su ogni% chiamataIsPartOfGroup()
. Quindi sono abbastanza sicuro di passare solo il mio nome di gruppo a IsPartOfGroup()
-
Pensa sempre più a fondo ai tuoi requisiti (pensa velocemente a come lo implementeresti, ma pensa a più di 5 secondi) in modo tale da poter elencare i passaggi di sviluppo (aiutandoti nella sezione di progettazione!):
- Crea un sistema di sessione
- Crea un gruppo di sicurezza
- Crea una forma condivisa del tuo sito web
- Crea HTML / JS
- Crea un modo di includere la pagina richiesta
- login.php
- Crea una sessione da credenziali valide
- Prova del concetto
Non so se potrebbe essere una buona idea (se ne hai il tempo) ma perché sei nuovo a questo potrebbe essere "easiler" per avviare la codifica e creare metodi / classi fittizi che restituiscono valori hardcoded per un test codici per la parte di codice condivisa.
3. Fase di programmazione
- Crea classi / metodi fittizi che restituiscono un valore di caso d'uso.
Mentre il codice condiviso è effettivamente implementato, altri membri del tuo team dovrebbero essere in grado di iniziare a fare la loro parte usando le classi / metodi fittizi.
Potrebbero testare il loro codice.
- Fai quello che devi fare!
Dispacciamento
Non so quali strumenti potrebbero essere disponibili, quindi lo terrò semplice, potresti creare un foglio di lavoro google condiviso. Elenca tutte le attività e le attività secondarie come gerarchia.
Sarai in grado di inviare compiti o / e portare il proprietario a spedire un compito se finisci presto un'attività.