Aktywne Wpisy
ATAT-2 +180
Siedzę sobie z kawką i myślę jak mój salonik będzie za kilka miesięcy wyglądał :)
Takie poranne #chwalesie
Stan deweloperski - niby nic wielkiego ale cieszy, szczególnie że decyzja o kupnie działki i budowie została podjęta pod wpływem impulsu i nie miałem bladego pojęcia jak zabrać się do następnych etapów i wszystko ogarnąć. A wyszło znośnie :)
Kosztowo szkoda gadać - mogłem dalej wynajmować i zamiast tego co mam jeździć nową S
Takie poranne #chwalesie
Stan deweloperski - niby nic wielkiego ale cieszy, szczególnie że decyzja o kupnie działki i budowie została podjęta pod wpływem impulsu i nie miałem bladego pojęcia jak zabrać się do następnych etapów i wszystko ogarnąć. A wyszło znośnie :)
Kosztowo szkoda gadać - mogłem dalej wynajmować i zamiast tego co mam jeździć nową S
p0melo +54
#pracait #it #programowanie #korposwiat #praca
Myślę na poważnie zeby zawinąć się z IT. Przepracowałem 5 lata, mam dosyć.
IT to branża dla ludzi bez życia prywatnego. Każdy kolejny miesiąc czuję że inwestuję w coś co po latach będzie gównem w papierku po cukierku.
Nie mam ochoty na uczestnictwo w wyścigu szczurów. W poprzedniej robocie miałem chorą presję szybciej, szybciej. Zmieniałem robotę w ciągu tych lat trzy razy. Z roku na rok widzę
Myślę na poważnie zeby zawinąć się z IT. Przepracowałem 5 lata, mam dosyć.
IT to branża dla ludzi bez życia prywatnego. Każdy kolejny miesiąc czuję że inwestuję w coś co po latach będzie gównem w papierku po cukierku.
Nie mam ochoty na uczestnictwo w wyścigu szczurów. W poprzedniej robocie miałem chorą presję szybciej, szybciej. Zmieniałem robotę w ciągu tych lat trzy razy. Z roku na rok widzę
Napisałem sobie pierwszą apke, nic skomplikowanego, prosty TODOList. Zobaczyłby może ktoś z was co robię źle, co można zrobić lepiej? ;)
Kod
1.
Task
: dawno nie kodziłem w Javie, alesuper()
w konstruktorze chyba zbędne – nie dziedziczysz po żadnej klasie.2.
Task
: w konstruktorze parametr nazywaszinfo
, dalej jużname
– do ujednolicenia.3.
TaskRepository
: nie traktuj repozytorium jak kolekcję (czyli nie powinna posiadać metodysort
) – ale raczej jako dostawcę kolekcji. Czyli ewentualnie możesz poprosić repozytorium o posortowaną kolekcję (zamiastrepo.sort(); repo.getAll()
raczej róbrepo.getAllSorted(sortBy)
Grafiki na razie w wersji roboczej ;)
@krasnoludkolo: IMHO repo jest na tyle proste, że bym olał. Tak na prawdę to repozytorium nie ma za bardzo logiki, chyba, że ją potem dodasz i będziesz chciał wydzielić persystencję gdzie indziej, żeby mieć SOLID.
i co do 4. Jeśli te metody będą prywatne to jak uzyskać efekt z metod onResume onStop itp?
@krasnoludkolo: Repozytorium jest miejscem, skąd możesz czerpać obiekt(y). Służy Ci do tego, żeby mieć skąd pobrać jeden obiekt lub kolekcję obiektów.
To nie jest tak, że wykonujesz na nim jakieś działania. Nie sortujesz repozytorium. Możesz sortować kolekcję obiektów, ale nie repozytorium.
Czyli opcje dwie:
a.)
tasks = repo.getAll()
zwraca kolekcję i ta kolekcja ma metody sortowaniatasks.sortBy(sortedBy)
b.)
tasks = repo.getAll(sortedBy)
– czyli repo zwraca@krasnoludkolo: Jeszcze a propos tego. Wybraź sobie, że chcesz pobrać tylko taski, które mają priorytet powyżej określonego poziomu.
Nie będziesz robić metody typu
repo.setReturningOnlyWithPriorityHigherThan(priority); repo.getAll();
.Raczej chcesz mieć
repo.getWithPriorityHigherThan(priority);
Czyli repo zwraca Ci gotową kolekcję o jakichś cechach, ale robisz to na poziomie metody, zamiast mutować samo repo.
http://martinfowler.com/bliki/TellDontAsk.html
Czyli powinienem zrobić tak, że przy każdorazowej zmianie danych zrobić coś takiego?
adapter.clear()
adapter.addAll(repo.getAllSortBy(sortedby))
Nie wiem więc jaka do końca jest rola tego adaptera, ale z tego co widzę
TaskListAdapter
dostaje repo w konstruktorze i je sobie trzyma w polu. Więc widzę dwie opcje:a.) dorób sobie
adapter.reload()
(w końcu ma repo, więc sam sobieTaskCollection
brzmi bardziej „pro” ;-)Tak czy siak, wtedy wywalasz wszystkie funkcje zapisywania, zamieniasz save na add, etc.
SingleResponsibilityPrinciple: albo jest kolekcją albo jej persystencją.
1. Podmioty, obiekty którymi zarządzasz (Task),
2. Zestawy, listy, kolekcje tych podmiotów (TaskCollection, ArrayCollection, Array, TaskArray),
3. Dostarczyciela/zarządcę powyższych: repozytorium.
Podmiot (Task) może mutować siebie (może mieć jakieś cechy zmienione), ale nie powinien siebie zapisywać (tym zajmuje się repozytorium).
Kolekcja może mutować siebie (możesz do niej dodawać podmioty, usuwać, sortować), ale nie powinna mutować podmiotów (Tasków) i nie powinna siebie zapisywać.
Repozytorium może mutować