Milestone 1

3 dni temu pobralem wersje z svn’a no i zaczolem robic podstawowa funkcjonalnosc :slight_smile: Aktualnie jest 60 % Mileston 1
Co mamy ?:

  1. Kategorie
  2. Fora dla kategorii
  3. Fora potomne (60%, brakuje synchronizacji last_post in forum w forach nadrzednych)
  4. Tablice dla forow:
    a. tworzenie tablicy
    b. usuwanie tablicy
    c. usuwania postow z tablicy 30 % (brakuje synchornizacji z forami dla last_post in forum w forach nadrzednych w forum do ktorego nalezy topic wszystko jest synchronizowane)
    c. przyklejanie/zamykanie tablicy
    Czego brakuje ?:
    I. Aplikacja
  5. dzielenie topicow
  6. przenoszenie topicow
  7. scalanie topicow
    II. Adminitracja aplikacja
    praktycznie wszystkiego do wyzej wymienionej funkcjonalnosci :slight_smile: aktualnie jest tylko to co zrobil karol na svn

Nic z wyzej wymienionej funkcjonalnosci nie znajduje sie jeszcze na svnie poniewaz nie dostalem dostepu, dzis postaram sie skonczyc synchornizacje topicow/postow z forami.

Ogolnie przyjolem zalozenie nie korzystania wszedzie gdzie sie tylko da z has_many poniewaz uawzam ze sam jezyk ruby jest wystarczajaco wolny… od php i nie nalezy obciazac nim systemu. Lepiej jest pobrac dane raz i je cachowac niz wiele razy zmuszac activerecord do parsowania jednego zapytania. Wiec zamiast uzywac :include oraz has_many :slight_smile: uzywam np:

def topics
@topics = Topics.find(:all, :conditions => […], :order => ‘…’) unless @topics
@topics
end

Ba… takie podejscie do sprawy daje nawet wieksze mozliwosci poniewaz w :conditions mozna stosowac wtedy smialo self.atrybut :slight_smile: Dane cachowane sa wtedy w obrebie jednej instancji, wiec praktycznie nie ma zadnych problemow jak narazie :slight_smile: W przypadku has_many bez :include baza potrafila wykonac 5-6 zapytan do jednej tabeli… teraz wykonywane jest jedno.

Zaraz pewnie znajda sie przeciwnicy tej ideii :stuck_out_tongue: “Jak to ? przeciez has_many jest takie zajebiste i wogole :include robi wszystko co trzeba :)” no ok :include potrafi robisz wszystko co trzeba ale zupelnie olewa :conditions i :order z has_many (trzeba je robic bezposrednio podczas zapytania w ktorym wystepuje :include) no i zaloze sie ze w momencie gdy baza urosnie do wielkosci 90 tys postow i 1200 tablic oraz 150 forow to mozna bedzie odczuc znaczny spdek mocy przez typecasting ruby na 20 zapytaniach sql niz na 5 zapytaniach sql oraz przetwarzaniu danych w obrebie rubego (for, each, select, find, collect). Chociaz moge sie pomylic i napewno bedzie zapytanie ktore bedzie dzialac w ten sposob wolniej, zobaczymy wszystko wyjdzie w praniu, ja mam tylo nadzieje ze ten sposob bedzie lepszy :slight_smile: i nie bede musial zmieniac pogladow na temat has_many

Czy administrator moglby dac mozliwosc moderacji tym forum dlamnie i dla Karola ? (albo dlamnie albo dla karola ? :slight_smile: (hasiawka?:slight_smile:

PaK,

Nie wiem za bardzo o co chodzi z tym z rezygnowaniem z has_many i cacheowaniem.
Zaraz dam Ci dostep do svn’a to bedziemy mogli podyskutowac na konkretnym przykladzie.