Cześć! Skontaktowałem się z Andreasem, który pracował w Oracle'u między innymi przy kompilatorze javac. Miałem pewną zagwozdkę:
byte a = Byte.MAXVALUE + 1; int b = Integer.MAXVALUE +1;
Obie linie stanowią overflow. Pierwsza linia powoduje błąd kompilacji, a druga nie. Andreas napisał, że spędził cały dzień nad tym i owocem tego jest artykuł na jego
@menelaosPL: ano właśnie. Tym bardziej, że kompilator to potrafi w ramach assignment context. Może hen dawno temu nie było to możliwe i tak już zostało.
Hej. Odwracanie zależności w prostych słowach. Czym jest kierunek przepływu sterowania (control flow), jak się ma do kierunku zależności między modułami, kiedy warto stosować, a kiedy będzie to przerost formy nad treścią, czym są moduły wysokopoziomowe/niskopoziomowe i czemu jest to istotne. Zapraszam
@Hauleth mogłem zrobić to na przykładzie jakiejś encji domenowej z kilkoma regułami, byłoby łatwiej i może bardziej oddawałoby prawdę, ale chciałem powiązać to z konstruktem interfejsu, bo (przynajmniej mi) tak na początku, przez długi czas się kojarzyło słowo kontrakt. Dlatego na koniec dorzuciłem zdanie o DbC przy projektowaniu zachowań modelu, żeby było wiadomo, że DbC nie dotyczy tylko interfejsu/klasy abstrakcyjnej i ma ogólne zastosowanie.
@Hauleth tak, biorę w poście poprawkę na to, zważając na niekiedy brak możliwości / trudności w sformułowaniu takich warunków. Post jest dość ogólny, nie zaszkodzi na pewno wiedzieć. :-) Martin Fowler napisał fajnie właśnie o owych trudnościach w jednym z artykułów ale coś nie mogę go znaleźć i chyba on stwierdził, że warto jednak myśleć w takich kategoriach kontraktowych i tu się można zgodzić :-)
@ZaoSan: DbC jest kolejnym z podejść wspomagającym Twoje oprogramowanie w byciu zgodnym z wymaganiami. Tzn., pomaga formułować i weryfikować wymagania według poznanych warunków wstępnych, końcowych i niezmienników. Jeśli udokumentujesz takie wymagania, masz większą gwarancję, że Twoja aplikacja będzie zachowywać się zgodnie z wymaganiami. Są też języki, które wspierają w pełni np.: adnotacje DbC, które pozwalają definiować i pilnować warunków i po np.: refaktoringu/jakiejś zmianie nie zostaną one złamane. Java/c# nie
Łączę się na pulpit zdalny poprzez RDP. Maszyna, na której pracuje, z automatu pobiera moje ustawienia obrazu. Na maszynie testuję mój kod, który działa bezbłędnie przez 8h. Następnie ustawiam odpalenie kodu i wyłączam RDP. W momencie odłączenia RDP (zamknięcie poprzez wciśnięcie krzyżyka) dostaję informację, że aplikacje nadal będą działać i będą widoczne po ponownym połączeniu z maszyną.
@Lubie_Budyn: jeśli ta aplikacja nawiguje za pomoca opencv/sikuli to po rdp się tak nie da, testowałem to i mówi też o tym ichni autor. Uruchomienie aplikacji po vnc nie ma tego problemu, też to testowałem. Ale tak jak mówię, dotyczy to tylko sikuli (ktore pod spodem ma opencv)
@FFF1243 bo mogę :* pytałem dostawcę hostingu czy mogę napisać dwa wpisy o SOLID i jeden o enkapsulacji. Kręcił nosem ale w końcu posoliłem mu srogo i oto jestem. mam nadzieję jednak, że Cię tym nie krzywdzę. Jeśli tak jest, to daj koniecznie znać.
@FFF1243: w żadnym wypadku, nie wywołałeś u mnie takich uczuć. ;) Nie oczekuję, że wszyscy się rzucą na moje artykuły. Robię to w moim wolnym czasie i sprawia mi to przyjemność. To jest wystarczający powód :-) W większości materiałów brakuje mi prostego języka, przykładów innych niż na klasie Animal. Do każdego artykułu, tam gdzie uznam że to potrzebne, umieszczam i będę umieszczał przykłady na githubie, które, moim zdaniem, lepiej trafiają
mmmmm, inteligentny humorek. Przepychanki słowne z takim mistrzem słowa to radość dla mnie. Ale wracając do tematu. Tak, ponieważ wbrew pozorom są one powiązane z tematem. Mam nadzieję, że wkrótce zastąpię je moimi własnymi rysunkami. Ostrzegam na wstępie, że również mogą się nie spodobać, ponieważ nie potrafię rysować, ale bardzo lubię.
@Czesiowcy: agresywnie. odmiennie niż kolega wyżej. Oprócz przykładu z datą są tam również dwa inne przykłady :) Mam nadzieję, że bardzo Cię nie uraziłem tym, że na Twoim monitorze pojawił się mój wpis
@Saly: dzięki. te wszystkie informacje są na każdej stronie. Ten wpis bazuje na przykładach. Dwóch rozsądnych, które znalazłem w sieci i jednym moim, który umieściłem na githubie. Napisałem to w takiej formie, jaką ja bym chciał kiedyś przeczytać. Nie zawsze da się trafić w potrzeby każdego czytelnika. karkołomna sprawa.
Dziś zauważyłem, że moje testy integracyjne w selenium odpalane są podczas mvn install, jak tego uniknąć oprócz anotacji @Ignore junitowej? #programowanie #naukaprogramowania
@asdasdce2w: IOException jest wyjątkiem typu „checked”. Są to wyjątki które w Javie muszą zostać jakoś obsłużone. Tzn. Jeśli Twoja metoda ‚jakasmetoda’ wywołuje metodę ‚metodaKtoraRzucaIOException’ która taki wyjątek moze rzucic, to musisz tę metodę ‚metodaKtoraRzucaIOException’ objąć blokiem try catch. Możesz w metodzie ‚jakasmetoda’ również dopisać throws IOException. Np: void jakasmetoda() throws IOException { metodaKtoraRzucaIOException }
Wowczas w tej metodzie nie misisz miec bloku try catch. Bedziesz jednak musial obsluzyc ten wyjatek
cześć. piszę artykuły dla początkujących programistów. wrzuciłem je ostatnio na wordpressa, może komuś się przydadzą. celem jest opisywanie zagadnień w jak najprostszych słowach. http://wprostychslowach.pl #java #programowanie #dotnet #informatyka pozdrawiam
@Prism2772: doszedłem do wniosku, że nie są to zdania, ani nazwy własne, więc napisałem z małej. Może faktycznie szczypie trochę w oczy, pomyślę, dzięki ;)
byte a = Byte.MAXVALUE + 1;
int b = Integer.MAXVALUE +1;
Obie linie stanowią overflow. Pierwsza linia powoduje błąd kompilacji, a druga nie. Andreas napisał, że spędził cały dzień nad tym i owocem tego jest artykuł na jego