Come consentire ai membri del team di sapere quali modifiche ho apportato a un oggetto? [chiuso]

9

Supponiamo di avere un oggetto PHP, diciamo: companyObj.

class companyObj
{
  private company_name;
  private company_address;

  public function print_contact()
  {
    //logic
  }
}

Questo è l'oggetto che ho scritto e condiviso con i compagni di squadra. Ora mi piacerebbe renderlo più potente, come questo:

class companyObj
{
  private company_name;
  private company_address;
  private company_contact_person;

  public function print_contact()
  {
    //logic updated
  }
}

Ora, come posso notificare ai miei compagni di squadra che il mio oggetto ha più attributi che possono essere impostati?

Invece di inviare e-mail a tutti i membri del team di sviluppo, come faccio a far sapere al team cosa sta succedendo, quando non voglio che i miei compagni di squadra sprechino il loro tempo a guardare ciò che è cambiato a livello di codice sorgente ?

    
posta Ted Wong 08.02.2012 - 05:29
fonte

5 risposte

10

Dipende molto dalla situazione concreta. Supponiamo che la nuova proprietà che hai aggiunto sia obbligatoria, cioè deve essere sempre impostata. Quindi devi cercare il codice da solo e aggiornarlo ovunque venga creato companyObj , per assicurarti che sia stato costruito correttamente (inclusa l'impostazione della nuova proprietà). Presumo che PHP abbia costruttori, nel qual caso è sufficiente aggiungere un nuovo parametro costruttore e il compilatore segnerà automaticamente ogni chiamata del costruttore senza il parametro extra come errore di compilazione. Ciò assicurerà inoltre che i membri del team conoscano la nuova proprietà non appena utilizzano companyObj .

Se la nuova proprietà è facoltativa, tuttavia, le cose sono meno chiare. Si può o non può avere un valore predefinito adatto per questo. In quest'ultimo caso, ti suggerirei comunque di aggiornare tutte le creazioni di istanze per impostare la nuova proprietà ogni volta che lo ritieni opportuno. In questo modo assicurati che il codice sia sempre mantenuto in uno stato coerente .

Comunicare il cambiamento ai compagni di squadra è un altro, lontano passo qui. I gruppi agili preferiscono la comunicazione faccia a faccia e IMHO per una buona ragione. Affidarsi ai documenti è un mezzo molto lento e inefficace per diffondere informazioni attorno a una squadra. Un Wiki è in qualche modo migliore, ma comunque, documentare ogni singolo attributo di classe è eccessivo. Diventerà un enorme fardello per il team, ed è presto destinato a diventare inaffidabile e inutile comunque, dato che siamo umani, quindi siamo costretti a dimenticare l'aggiornamento a volte, inoltre scommetto che non molti membri del team stanno andando regolarmente controlla la documentazione (sia in qualsiasi forma) per essere informato delle ultime modifiche al codice.

Anche quest'ultimo è vero per la documentazione generata automaticamente tramite ad es. Javadoc o Doxygen. Sebbene possano essere configurati in una build automatica per mantenere sempre aggiornata la documentazione generata, non ho mai visto un team di sviluppo con membri che navigano regolarmente nella documentazione per essere informati sulle ultime modifiche al codice. E se utilizzi un qualsiasi sistema di controllo del codice sorgente, il primo posto in cui notare le modifiche si verifica quando aggiorni la tua copia locale del codice, quindi puoi verificare le modifiche nelle classi familiari e vedere con precisione cosa e come è cambiato (insieme a una breve spiegazione e / o riferimento a un ID di attività, se il tuo team è abituato a aggiungere commenti di controllo significativi - che mancherà ai documenti generati automaticamente).

La comunicazione è uno dei motivi principali per cui i team di programmazione Extreme accoppiano la programmazione. Se apporti le modifiche insieme a un compagno di squadra, sei subito in due a sapere di ogni cambiamento, e la prossima volta che ognuno di voi abbinerà qualcun altro, le informazioni così utili si diffonderanno abbastanza rapidamente. Tuttavia, non è sempre applicabile, per vari motivi. Salvo che, potresti semplicemente parlare con i tuoi vicini del cambiamento in un momento appropriato (ad esempio durante il pranzo, se ti capita di pranzare insieme), o inviare una mail in giro se è più grande, più importante o cambiamenti più complicati.

In quest'ultimo caso, ci può essere una buona ragione per documentarlo correttamente. I documenti di progettazione IMHO sono i migliori quando offrono una panoramica a grana grossa e di alto livello del sistema, mentre i dettagli di implementazione sono nel codice (attenendosi a il principio di DRY ).

    
risposta data 08.02.2012 - 09:20
fonte
10

Hai considerato semplicemente parlare con loro ? Pianifica un breve incontro: "hey, ho apportato alcune modifiche all'oggetto X, voglio mostrarti cosa è cambiato e perché". Oppure, parla con ogni persona individualmente se una riunione sembra troppo formale o dirompente.

    
risposta data 08.02.2012 - 13:08
fonte
2

Se hai una squadra probabilmente hai anche un documento di design. Altrimenti. iniziare su di esso. E usa uno strumento UML per mappare i tuoi disegni.

    
risposta data 08.02.2012 - 07:02
fonte
1

Potresti utilizzare uno strumento come doxygen all'interno del tuo codice. Ora crea uno script che generi la documentazione di doxygen e lo esegua regolarmente, forse come parte della tua build notturna (fai una compilazione notturna, giusto?).

Penso che tu possa assegnare un attributo personalizzato in doxygen alla tua aggiunta per evidenziarlo come nuovo.

Se i tuoi compagni di squadra sono a posto, passano attraverso la nuova documentazione.

    
risposta data 08.02.2012 - 09:19
fonte
0

Now, how can I notify my teammates that my object had more attributes that they can set?

Bene, non dovresti informare i tuoi compagni di squadra di ogni piccola cosa che fai. Altrimenti, dovresti inviare molte email. Se è una cosa importante, allora puoi fare una piccola riunione e fargli sapere cosa hai fatto (se fai la mischia, quindi non è necessario impostare una riunione separata).

Se utilizzi un IDE che supporta il completamento automatico, i tuoi compagni di squadra dovrebbero notare le tue modifiche. Spero solo che commenti il tuo codice.

    
risposta data 08.02.2012 - 10:13
fonte

Leggi altre domande sui tag