Wszystkie powtarzające się wywołania HQL zostały przeniesione do jednego szablonu. Dzięki temu klasa DBCache całkiem przyjemnie teraz wygląda.
Na przykład obsługa ustawień stała się trywialna:
The next gen of old-school blogging
Wszystkie powtarzające się wywołania HQL zostały przeniesione do jednego szablonu. Dzięki temu klasa DBCache całkiem przyjemnie teraz wygląda.
Na przykład obsługa ustawień stała się trywialna:
Pisząc kolejne metody do cache DB ciężko było nie zauważyć, że znaczna część ich kodu się powtarza. Z tego powodu utworzyłem szablon CacheElement (nazwa robocza).
Jednocześnie operacje na samej bazie przeniosłem do osobnego szablonu DBElementDriver (nazwa jeszcze bardziej robocza), który jest odpowiedzialny za wykonywanie odpowiednich zapytań w bazie danych. Parametrami tego szablonu są: klasa elementu oraz nazwa pola odpowiadającego za klucz.
Dopisałem kod tworzący kanały RSS. Na razie jest to wersja alpha – tylko dla wersji językowych (np: http://krzaq.cc:8080/rss/lang/en). Następnym zadaniem będzie dodanie RSS dla tagów, a przyszłościowo – dla komentarzy. Niemniej jednak, MVP zbliża się wielkimi krokami.
Commit odpowiedzialny za to można znaleźć tutaj: [link]
Do użycia ORM-a przekonał mnie znajomy. W założeniu: super. Nie będę się rozpisywał czym jest ORM i jakie funkcjonalności ma spełniać – na pewno jest to wielokrotnie opisane przez bardziej kompetentnych w tym zakresie ludzi. Dość powiedzieć, że dzięki temu korzystam z natywnych klas reprezentujących dane, np.:
class PostData { @Generated @Id int id; Post post; string title; string markdown; string excerpt; Nullable!string gpg; DateTime timestamp; @ManyToMany Tag[] tags; } |
Pozmieniałem trochę css, doprowadziłem do zgody z hibernated, “naprawiłem” tagi (t.j. relacja @ManyToMany w końcu poprawnie działa).
Czego będę starał się trzymać:
generated in 154 μs and 3 hnsecs
Wersja testowa widoczna jest pod adresem:
Uprzedzając krytykę: słyszałem o czymś takim jak debugger. Nie zawsze ma on jednak zastosowanie:
Z powyższych powodów (ale głównie ostatniego), utworzyłem sobie proste makro w C++ pozwalające czytelnie przedstawiać zawartość zmiennych:
Tutaj będę opisywał moje przygody z implemetnacją Pieruna. W ramach możliwości asap się na niego przesiądę.