Witajcie mirki.

Tworzę w pracy stronkę, gdzie ma być sklep elektroniczny. Napisałem sobie serwis, gdzie tworzę zamówienie, dodaję produkty do zamówienia, pobieram informację o zamówieniu, cenę itd.
Jednak z powodu braku doświadczenia nie robię tego w odpowiedni sposób. W poprzedniej pracy widziałem jak takie coś było zrobione przez doświadczoną osobę i to mniej więcej wyglądało tak:
$this->getOrder()->getPrice() - aby pobrać cenę.
$this->getOrder()->getStatus() - aby pobrać status zamówienia.
U mnie to raczej wygląda
@mariecziek: odpuść sobie pisanie sklepu, zakopiesz się w gównie po kolana. Pomijając to, że piszesz aplikację i mieszasz kod infrastruktury (symfony2) i logiki biznesowej (zamówienia, płatności i takie tam).

Poczytaj sobie o zasadach SOLID, może obejrzyj jakąś prezentację z konferencji na yt.

Twój "OrderService" łamie bardzo wiele tych zasad. W programowaniu obiektowym nie powinieneś mieć takiego "serwisu" który robi wszystko związanego z orderami.

Zapewne Twój Order jest złożony z pól i
@mariecziek: taj w sensie encji, wszystkie te metody tam powinny się znajdować bo operują one na Order, ale przecież ty tu nie operujesz na sqlach, operujesz na orderze xD a to że robisz niepotrzebne zapytania co chwile to już inna kwestia, wiesz o tym że zamiast tego:

public function addOrderItem(Orders $order, ProductVariation $productVariation, $amount)
{
$orderItem = new OrderItem();
$orderItem->setOrder($order);
$orderItem->setPrice($productVariation->getPrice());
$orderItem->setProductVariation($productVariation);
if ($productVariation->getAmount() < $amount) {
$orderItem->setAmount($productVariation->getAmount());
} else {
#java #programowanie #programowanieobiektowe

Spotkaliście się w którejś książce z podstawami programowania obiektowego? Tzn.:
1. "filary programowania obiektowego",
2. "SOLID": https://pl.wikipedia.org/wiki/Solid_(programowanie_obiektowe)
3. "Zasada podstawienia Liskov": https://pl.wikipedia.org/wiki/Zasada_podstawienia_Liskov

Bo w każdej książce do Javy jaką widziałem ("Java. Podstawy", "Thinking in Java", "Java. Praktyczny kurs." itd), to jest programowanie obiektowe opisane. Jest co to są klasy, obiekty, dziedziczenie, interfejsy itd. Głównie na przykładach.

A w żadnej z nich nie ma słowa: "filary", "Liskov", "SOLID".

Niby wiem
@mk321: te popularne ksiązki do nauki jak te co podałeś są słabe, uczą języka i jego składni, ale nie uczą myślenia jak zaprojektować system, nie poruszają tematu optymalizacji kodu, aktualizacji do nowszych API, obsługiwania się kompilatorem i hackami języka.

To czego szukasz to inna półka programowania:
Design Patterns_ Elements of Reusable Object-Oriented Software - Gamma, Erich
The Well Grounded Java Developer
Java8 in Action
Model Driven Development
O złożonych i współgrających
#programowanie #programowanieobiektowe #cpp
Mam do zrobienia w studbazie prosty programik co symuluje świat zwierzątek
http://galaxy.eti.pg.gda.pl/katedry/ksg/pracownicy/Marcin.Kulawiak/PO/projekt_PO_wirtualny_swiat_2015_v2.pdf
i tak myślę czy by nie dało się zrobić jakoś prosto i wygodnie by wszystkie obiekty były sobie na równi i jak któryś coś robi to wysyła do wszystkich wiadomość a one coś z nią robią albo nie jak to ma miejsce w sieci.
Pytanie czy to dobry pomysł i jak byście go zrealizowali ? chyba tak
@wytrzzeszcz: nie mam teraz ochoty ani siły tego czytac, ale rzucę krótkie: polimorfizm. Tak masz to rozwiązać, wtedy wszystkie obiekty "są sobie na równi". Wiadomosc masz wysylac chyba tylko w zakresach row-1 do row+1 i column-1 do column+1 (row i column - miejsce w tablicy obiektu wywolujacego akcję), aczkolwiek mogę gadac glupoty. Przedstaw w jakims skrócie co jest napisane w tym dokumencie.
Witam.
W pracy pracuję korzystając z frameworka Yii i jakiegoś nieznanego WForce (brak informacji o takim frameworku w internecie). Piszę funkcje i zapytania w PL/SQL, ale…
Ostatnio otrzymałem zadanie. Niby łatwe itd. Powiedziałem, że zrobię to w gdzieś 50h. Jednak jak się okazało czasu minęło chyba 2x tyle, a zadania do końca nie udało się zrobić. Ciągle są jakieś błędy itd. Spowodowane to jest bardzo złym kodem z którzym przyszło mi pracować