Menu

#11 Uwagi do projektantów i programistów

1.0
open
nobody
None
2012-06-20
2012-06-20
No

Biorąc pod uwagę że nie ma analityków w naszym zespole, zdaję sobie sprawę że projektanci nie są w stanie wygenerować poprawnego modelu działania aplikacji na poziomie diagramów interakcji obiektów, stosu wywołań metod czy stanów obiektu. Niemniej, warto byłoby umieścić programistom wskazówki odnośnie:

  • jak zapisywać w bazie Serial UID klasy;
  • jak unikać zapisywania wartości domyślnych dla zmiennych prymitywnych (int - 0, double 0.0), gdyż w trakcie deserializacji te wartości są automatycznie ustawiane,
  • jak ma być realizowane trawersowanie po grafie obiektów, w przypadku gdy zapisywany jest obiekt powiązany z innymi obiektami,
  • jak sprawdzać czy duplikat obiektu nie znajduje się w bazie.

Pewne rozwiązania można wskazać poprzez utworzenie PRYWATNYCH metod o właściwej nazwie np.
private boolean hasDuplicateInDB(Object argument)
lub poprzez zaproponowanie zmiennych pomocniczych i opisanie ich komentarzem np.
/* buffer for writing primitive field values /
private byte[] primVals;

/**
2220 * Lightweight identity hash table which maps objects to integer handles,

2221 * assigned in ascending order.

2222 */

2223 private static class HandleTable {

2225 / number of mappings in table/next available handle /

2226 private int size;

2227 / size threshold determining when to expand hash spine /

2228 private int threshold;

2229 / factor for computing size threshold /

2230 private final float loadFactor;

2231 / maps hash value -> candidate handle value /

etc. etc.

Discussion


Log in to post a comment.

MongoDB Logo MongoDB