Aktywne Wpisy
urarthone +827
News dnia to...
- Morawiecki będzie próbował utworzyć rząd 27.6% (909)
- Wyrzucenie 4 zawodników z U17 chwilę przed MŚ 3.5% (116)
- Znaleziono ciało poszukiwanego zabójcy 6-latka 9.2% (301)
- ZEA wysłały szpital do Gazy 1.1% (36)
- Złodziej książek z USA 4.3% (141)
- Microsoft chciał zaoszczędzić na pracownikach 1.6% (54)
- Turyści z Hiszpanii wracają ze sraczką 3.8% (124)
- Zrobił pranie sąsiadce, kiedy jej nie było 48.9% (1608)
CzuowiekPor +17
Aktywne Znaleziska
Zawiera treści 18+
Ta treść została oznaczona jako materiał kontrowersyjny lub dla dorosłych.
Zapiernicz w pracy i bobo w domu mocno ograniczyły mi czas w tym tygodniu, więc prace posuwają się w tempie ślimaka wyścigowego. Co zatem się udało. Zgodnie z sugestą @mamapoth zrezygnowałem z używania zmiennych zmiennoprzecinkowych do przechowywania informacji o kasie. Popatrzyłem za info w sieci (thank you Stackoverflow!) i najłatwiej - chociaż z punktu widzenia wydajności programu, niezbyt optymalnie - będzie sprawę ogarnąć używając BigDecimal - tu artykuł o tym W przybliżeniu klasa ta pozwala na wykonywania obliczeń o dużej dokładności, a później zaokrąglania wyników zgodnie ze zdefiniowaną dokładnością i regułami.
Jak już pisałem, czytam Roberta C. Martina, Czysty Kod (dotarłem do połowy książki), w kolejce mam jeszcze parę innych prac. Wczoraj napisałem sobie w ramach treningu prosty parser tekstu, który przyda mi się w robocie, ułatwiając nudną pracę. Mam 40-stronicowy plik, w miarę jednolicie sformatowany, zawierający nazwiska autorów piszących do czasopisma wydawanego przez wydział, którym pracuję, i adresy URL do ich profili w bazie nauka polska. Wszystko to musi trafić na stronę internetową. Zamiast ręcznie klepać <p class="... <a href="... napisałem programik, który robi to za mnie :-) Pierwsze #profity z nauki Java już zatem są :D
Parę rzeczy, nad rozkminieniem których zastanawiam się w głównym projekcie. Kto zaglądał na GitHub'a ten wie, ze mam klasę Item, która opisuje przedmiot przechowywany w magazynie (Storehouse) sklepu. Przedmiot ma w sumie 9 'właściwości'/zmiennych instancyjnych: 1. nazwę, 2. symbol PKWiU, 3. cenę zakupu, 4. cenę netto, 5. cenę
brutto, 6. ilośc, 7. jednostkę, w której ilość jest podawana (sztuka, kilogram, metr bieżący, opakowanie itd.) 8. stawkę VAT 9. marżę.
Myślę, że warto będzie z tego wyodrębnić klasę Price, która będzie przechowywać trzy wartości (purchaseValue, nettoValue, bruttoValue) i w konstruktorze wymagać podania dwóch wartości - ceny zakupu i ceny brutto, lub wszystkich trzech. Dodatkowo klasa będzie przechowywać informacje o marży, która jest związana z wartościami cen i która będzie automatycznie obliczana. Do niej trafią też metody obliczające ceny i marżę.
Taki zabieg będzie, wydaje mi się, wymagał wyodrębnienia również klasy oddzielnei opisującej podatek VAT. Zgodnie z sugestią, po raz drugi @mamapoth nie chcę hardokodować wartości podatku VAT, ale jednocześnie dobrze byłoby przechowywać informację, do której grupy podatkowej dany przedmiot należy, mając przy tym możliwość łatwej zmiany wartości przypisanej do danej grupy. Dla niezorientowanych: grup podatkowych jest pięć pierwsza(0%), druga(8%), trzecia(23%), w której znajduje się 95% sprzedawanych w sklepie teściów przedmiotów, czwarta (zwolniony) i piąta (5%). Widziałbym to tak, że w momencie zmiany danej stawki, np. z grupy trzeciej, cena brutto wszystkich towarów jest z automatu przekalkulowywana (obserwator?).
Z innej beczki I. Program ma korzystać z SQLite, więc muszę koniecznie ogarnąć jakiś framework, który ustrzeże mnie przed pisaniem zapytań z palca (pisał o tym @ufik78). Jesli nie Hibernate, to co? A jeśli Hibernate to od czego warto zacząć? :-)
Z innej beczki II. Pobrałem i zainstalowałem, tu ukłony należą się znó dla @ufik78), IntelliJ Idea Community Edition i wygląda na to, że przy nim pozostanę, przynajmniej przez jakiś czas. W porównaniu z Eclipse Luna, z którego dotychczas korzystałem i do którego zdążyłem nawyknąć, IntelliJ odczuwalnie wolniej kompiluje i odpala programy, szczególnei jeśli jest to pierwsze uruchomienie. Sprawdziłem na dwóch różnych kompach (starym Dell'u studio z 4GB RAM i Core 2 Duo @ 2.1Ghz i stacji roboczej HP z i5, nie pamiętam jednak dokładnie jaką) i w obu IDE na poczatku trochę przymulało indeksując pliki, żeby później działać przyzwoicie. Mam jednak wrażenie, że system podpowiedzi i edycji kodu, stopień dopracowania interfejsu i z mojego punktu widzenia rzecz istotna, estetyczna strona programu (w końcu mogę ustawić w pełni całości ciemny motyw + tryb pełnoekranowy) kładą Eclipse'a na łopatki. A jakie są wasze doświadczenia z różnymi IDE?
#java #programowanie #kitkeprogramuje
Czasem trzymanie się zasad nie przynosi żadnego efektu, wręcz przeciwnie - prowadzi do "overengineering"
Może jest jakiś jeden na milion przypadek, gdzie singleton byłby potrzebny. Nie jestem w stanie go wymyślić, ale może jakiś tam jest. Natomiast w przytłaczajacej większości przypadków singletony są wpychane w miejsca, gdzie, w najlepszym przypadku, nie są potrzebne, a w najgorszym, powodują wiele problemów.
zgadzam się - używanie singletonów na lewo i prawo to kompletna porażka, bo kod robi się zamkniętą skrzynką; są jednak sytuacje, z których dobrym wyjściem jest singleton - przykład podałem wyżej.
Tak czy inaczej, zostaje IntelliJ.
Logika prezentacji rządzi się innymi prawami. Mimo to nigdy nie znalazłem uzasadnionego przypadku zastosowania singletona. Owszem znalazłyby się miejsca gdzie rozwiązałby pewne problemy ale to droga na skróty, zawsze udawało się wypracować lepsze rozwiązanie.
@kitke: Podchodziłem już do
PS Translator
pomoże w ten sposób, że masz globalną klasę, w której trzymasz stan klawiatury i zawsze możesz ją odpytać o stan danego klawisza. tyle.
poza tym, wymuszenie jednej instancji w tym przypadku miałoby swój uzasadniony cel (chociaż nie o to mi chodzi w tym problemie!) - masz jedną instancję masz pewność, że nie ma desynchronizacji pomiędzy stanami i masz pewność, że ten sam kod nie jest wykonywany dwukrotnie (wydajność, heloł), nie przechowujesz tych samych stanów w