Czołem Mircy,
Powoli zaczynam znowu programować. Ponad dwa lata temu skończyłem technikum, ale raczej unikałem przez całe cztery lata jakiegokolwiek samokształcenia, przez co sporo zapomniałem, o ile w ogóle chciało mi się coś nauczyć.
Ale do rzeczy: tworzę mały projekcik przelicznika miar w Javie. W sumie to w takiej formie chyba go już zostawię, jednak byłbym wdzięczny za code review. Wszelkie uwagi bardzo mile widziane, co do nazw zmiennych, logiki całego programu
@Seveir:
trochę dziwne jest, że w liście z jednostkami dodajesz np. takie coś new Unit("BACK", -1)
Generalnie zarówno miary jak i odległości to pewien zamknięty zbiór, więc zamiast klasy Unit wykorzystałbym na Twoim miejscu tutaj enumy. Klasy miałyby sens, gdybyś dawał użytkownikowi możliwość definiowania jednostek.
Liczby reprezentujesz jako double, co nie jest jakimś wielkim błędem w takim małym programiku, ale od razu możesz sobie przećwiczyć BigDecimale jako prawidłowy wybór przy precyzyjnych
@dzeksondzekson

no nie bardzo chyba bo u mnie dataUrodzenia to jest String

No i słabo. String to ciąg znaków. Nie nadaje się do reprezentacji daty.
Czytasz tę datę z pliku jako String. Wiadomo. Ale musisz to jak najszybciej zamienić na właściwy typ.
#php #symfony #symfony3 proszę o #codereview mojej próby stworzenia projektu w oparciu o Hexagonal Architecture i jednocześnie zrozumienia tej koncepcji. W przypadku encji poszedłem na skróty, ale z tego co oglądałem na konferencjach, to zdarzają się takie decyzje, które ułatwiają pracę (np Kris Wallsmith). Moja encja jest jednocześnie tą z domeny oraz z bazy danych. Jeśli z kodu wynika Wam, że czegoś nie rozumiem lub źle rozumiem to też proszę o wyjaśnienie
@masterix: nie nazwałbym tego co robisz architekturą heksagonalną. Brak wstrzykiwania zależności by móc nimi żonglować (a nam tym polega ta architektura, wyciągasz bloczek "wolny MySQL" i wkładasz za niego "szybki Elasticsearch"), beznadziejnie zaimplementowany CQRS (to nawet nie jest CQRS bo nie ma literki Q, nie ma literki C, pewnie nie ma również R i S, chyba, że zmienna $commandBus jest tylko z nazwy), brak separacji zmiennych (modyfikator publiczny, kiedy można dać
Mam pytania do mojego kodu w #java - napisałem sobie prosty monitor domen (czy odpowiadają i jakim statusem). Kod jest dostępny na GH: https://github.com/masterix/domain-monitor
1) https://github.com/masterix/domain-monitor/blob/master/src/MonitorApp.java czy te bloki try/catch nie lepiej byłoby połączyć w całość i rozbić tylko akcję w catch ze względu na wyłapywany wyjątek? Teraz tak bez sensu jest trochę zmienna domainList przed pierwszym blokiem try/catch, żeby była widoczna w nastepnym
2) Chcę stworzyć powiadamianie dla niektórych statusów np
Hej
Napisałem jakąś pierwszą wersję swojej aplikacji do liczenia czasu pracy. Założenie jest takie, żeby dodawać sobie czasy pracy (WorkActivity) i później na ich podstawie wysyłać sobie informacje na maila. Pliki kontrolerów i .html powstały trochę dodatkowo bo głównie chciałem się skupić na tym, aby warstwa aplikacji i wszystko co niżej działało i wyglądało dobrze (jak mi to wyszło to się okaże ;) )

https://github.com/krasnoludkolo/WorkCounter

Z rzeczy które wiem co trzeba zrobić:
#codereview #programowanie #naukaprogramowania Proszę o rzeczowy code review, z funkcjonalności to edit nie działa poprawnie, bo coś z id null wywala błąd, zamiast edytować kontakt dodaje kolejny i póki co nie wiem jak to naprawić. I z search jest mały problem tzn, jak teraz jest List searchBySurname(String surname); to można dodawać powtarzające się kontakty, ale po kliknięciu w szukaj cały czas w okienku szukania wywala toString to co wyszukuje i nie bardzo
Programiści, czy duplikacja kodu to jest aż taki grzech? Rozumiem, że czysty kod jest ważny, ale w momencie kiedy spędzam nad zadaniem kilkanaście godzin oczekuję jakiegoś bardziej merytorycznego przeglądu kodu: czy architektura się zgadza, czy nie ma rażących błędów, a tymczasem gość już któreś review zaczyna od tego, że wyciąga zduplikowane części kodu. Mania na maksymalną abstrakcję to jest codzienność u każdego szanującego się programisty, czy trafiłem na #codenazi? Czy presja
@fistasheq: Jak dla mnie przesadzone. Jeśli uczysz się Observabli i chcesz z nich korzystać to rozumiem, ale ja bym je powyrzucał i zrobił logikę na normalnych funkcjach.

A jeśli chcesz, żeby inne komponenty reagowały na dane zdarzenia, to zrobiłbym jakiś event z określonym typem i rzucał do oddzielnego Service'u i niech te komponenty się subskrybują na konretne zdarzenia.
Coś w tym stylu:
http://abusanad.net/2016/08/20/angular-2-cross-modules-communication-eventaggregator/
@saquas: jednocześnie synchronized i volatile, do tego tylko zmieniasz tam ten licznik, no tak właściwe nie wiem po wątki skoro wszystko syncujesz.
AtomicInteger tak jak ktoś pisał wyjdzie tu znacznie lepiej jako shared counter.
@saquas: ja mam jedynie niewielkie uwagi:

- nawet, jak masz single-line statement po ifie, to używaj klamer {}, to pozwoli uniknąć błędów.
- enumy możesz formatować trochę inaczej:

JEDEN(),
DRUGI(),
OSTATNI(),
;

pozwoli to na mniej ingerencji w kod w przypadku chęci dodania kolejnej linijki

- często zostawiasz jakieś dziwne puste linie: https://github.com/marcinpanfil/hospital/blob/master/src/main/java/com/edgelab/hospital/Medicine.java (24,25,26)

- statyczne importy wrzuciłbym na 'góre' listy importów
- osobiście #!$%@?łbym te interfejsy z jednym implementorem (cośtamPrinter)
Trochę się cykam, ale nadszedł moment, kiedy muszę Was spytać o parę rzeczy mirki.

Mam tu taki projekcik, przy którym chciałem poćwiczyć pracę nad gotowym szablonem w kontekście rwd i układania elementów w sassie, gdyż mój poprzedni projekt robiłem całkiem sam, przez co jest po prostu szpetny ( https://tomlos.github.io/Coders-Lab-Final-Project-Tomasz-Los/ i wymaga poprawy - działa tylko w zakresie 1 doby, szerszy zakres czasu rozkracza program i grafiki).

Oto projekt, wobec którego mam trochę
@advert: Ja jestem po tym bootcampie Coders Lab, który niestety stety kosztował sporo hajsu, chociaż ja i tak załapałem się jeszcze na niższą cenę. I jak widać - od zera do jakiegoś poziomu doszedłem, ale trochę wyleciało z głowy, a jak się nie ćwiczy intensywnie, to też czasem coś wypadnie z głowy.
Z pewnością szlifuj dalej html i css, a sass/less - według uznania, ale na pewno ułatwia to pisanie cssów
@sokytsinolop: Moznaby to zrobic obiektowo. Az sie prosi.
Zamiast tablic lepiej chyba byloby uzyc jakiegos sensownego ceplusplusowego kontenera (std::vector, std::array).
Pomijajac wszystko... w generation() chyba lepiej zebrac wszystkie pola do uaktualnienia a potem je uaktualnic zamiast kopiowac tablice tam i spowrotem.
@Blade:

1. Testy automatyczne. Skąd mam wiedzieć czy Twój kod w ogóle działa?
2. Też irytuje mnie mieszanie camelCase ze snakecase
3. https://en.wikipedia.org/wiki/Single_responsibility_principle – masz widgeta, który w tej chwili wie jak robić dwie rzeczy na raz: zarządzać taskami i zapisywać swój stan. Jak rozpoznać, że się narusza SRP? Pomyśl jakie zmiany mógłbyś chcieć wprowadzić. Np mógłbyś chcieć zmienić format zapisu z JSONa. Albo w ogóle pisać do
Dzień dobry. napisałem sobie taki programik:
https://sourceforge.net/projects/twitch-stream-launcher/

pobiera on dane z api.twitch.kraken na temat streamów i wyświetla je
można uruchomić wybrany stream za pomocą Livestreamera http://docs.livestreamer.io/index.html albo w przeglądarce
można stworzyć własne kategorie streamów z parametrami
język
gra
maks. liczba streamów
styl do wyświetlania tej kategorii
można stworzyć własny styl, jak ktoś lubi duże obrazki, albo
generalnie to zrobiłem ten program bo nie lubię playera twitcha, jest okropny i lubi się zacinać mimo że mam jeszcze połowę wolnych zasobów.


@jaggi: Z tych samych powodów odpalam skryptem stream'a via livestreamer + WMP ( ͡° ͜ʖ ͡°)
#codereview


@qwelukasz:

1. Composer i PSR-4 do autoloada klas i zaciągania zależności
2. Przestrzenie nazw
3. Nie CURLuj „ręcznie” tylko weź pośrednika w stylu Guzzle
4. Wcięcia Ci się pokiereszowały
5. Ścieżkę do ciacha wstrzykuj w konstruktorze, zamiast hardkodować
6. Nie rób ciężkiej logiki w konstruktorze (logowanie się) – w dobie kontenerków DI możesz chcieć zainicjalizować klasę, ale jeszcze nie użyć. Lepiej odpalić to na początku metod publicznych albo pozostawić odpalenie
@krasnoludkolo:
Tak z grubsza na szybko:
Nie nazywaj klasy aktywności MainApp, bo to sugeruje rozszerzanie klasy Application, nazywaj je po prostu z sufixem Activity. Poza tym poczytaj o appcompacie i rozszerzaj AppCompatActivity. Jako kontekst w wielu miejscach możesz po prostu podawać kontekst aktywności, nie ma potrzeby przekazywania kontekstu aplikacji. Unikaj jednoliterowych nazw zmiennych typu "i". Postaraj się też bardziej precyzować nazwy metod, configure() nic nie mówi o tym co konfigurujesz. Jeśli
Napisałem swoją drugą aplikacje #android.

Dzięki Endoscope możesz połączyć bardzo szybko dwa urządzenia android następnie przesyłać pomiędzy nimi obraz na żywo z kamery za pomocą sieci wi-fi. Aplikacja świetnie się sprawdza do zaglądania w trudno dostępne miejsca.

Jedno urządzenie pełni rolę hosta streamującego a drugie łapie stream. Wszystko za pomocą protokołu RTSP.
Połączenie dwóch urządzeń może odbyć się za pomocą:

- QR CODE - jednym urządzeniem zeskanuj kod qr code na
Pobierz szyna55 - Napisałem swoją drugą aplikacje #android. 

Dzięki Endoscope możesz połąc...
źródło: comment_ymWbdTlcOHPQzGn4rUoJy6DqaZkj8Tkp.jpg
@szyna55 Zawsze kiedy moj 1,5 roczny syn ucina sobie popołudniową drzemkę na moim łóżku to mnie zachciewa się srać. I nie mogę iść, bo oczywiście jak tylko wyjdę to mały skula się, #!$%@? o podłogę i będzie ałka. Więc zaciskam poślady, stękam, chrzakam, ale nie idę. Z Twoją aplikacja koniec z tym! Będę mógł iść na tron, patrzeć czy dzieciak leży spokojnie a w razie czego lecieć na ratunek! Dzięki!