Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

#java

Gwiazdor

w Python

5piorunów

Pytanie bardzo na poważnie. Jakiego języka programowania zacząć się uczyć, jeśli nie miałem zbyt wiele do czynienia z programowaniem? python czy java? A może co innego?

  

Kompan2piorunów

@Jokohama polecam się uczyć konceptów, język to kwestia wtórna. Ogólnie Python jest łatwy, ale przez dynamiczne typowanie środowisko programistyczne ci za wiele nie podpowie jak zrobisz gdzieś błąd.

Gwiazdor1piorunów

@Fra konceptów? Prosiłbym językiem laika

Pokaż więcej komentarzy (20)

Kompan

w Programowanie

10piorunów

Jak dostać pracę w 2016:

Odróżniać githuba od pornhuba

Wiedzieć że bubble sort to nie jest rodzaj gumy balonowej

Chcieć wejść do IT

Jak dostać pracę w 2023:

Skończyć PW albo bardzo dobry kierunek techniczny* z wyróżnieniem

znajomość kilku języków programowania

Mieć plecy w branży aby ktoś chociaż zaprosił cię na rozmowę

* Prywatne uczelnie się nie liczą. Jestem na trzecim roku informatyki (prywatnie) i nie ma to żadnego wpływu na moje szanse. Ilość i jakość projektów również nie ma znaczenia, bo nikt na to nie patrzy. Jeśli myślisz o pracy w IT, a twój ojciec nie jest dyrektorem w takiej firmie to możesz o tym zapomnieć.

Kompan1piorunów

@pingWIN Oferty od comarchu dotyczą wyłącznie osób z doświadczeniem. Niestety go nie posiadam

Pokaż więcej komentarzy (23)

Gwiazdor

w Java

26piorunów

Mikroserwisy, wszędzie mikroserwisy. Tylko jak testować to w praktyce? Podejść jest wiele, jedno z nich to testy integracyjne. W ramach teorii tak zwanego "black box testing" nie powinniśmy ingerować w wewnętrzne komponenty systemu a jedynie weryfikować wejście i wyjście z systemu.

Oczywiście jest to łatwe w teorii, nieco trudniejsze w praktyce. Jak więc poradzić sobie z wyzwaniem pt. po wywołaniu HTTP powinien być komunikat w Kafce? Na przykład przy pomocy biblioteki testcontainers: https://www.testcontainers.org/, która pozwala uruchomić wasz serwis oraz jego zależności w postaci kontenerów. Naturalnie symulowanie całego klastra np. kubernetes mija się z celem, natomiast z powodzeniem można dorzucić przynajmniej tę część infrastruktury, która zapewnia komunikację.

Testcontainers poza podstawową funkcjonalnością pozwalającą na uruchomienie dowolnego kontenera z kodu Javy, dostarcza również moduły dla PostgreSQL, MySQL, Cassandra czy też ElasticSearch - lista kontenerów do przejrzenia: https://mvnrepository.com/artifact/org.testcontainers. Z ciekawszych rzeczy - można uruchomić z testem również selenium, które działa w kontenerze, bez konieczności aranżowania wszystkich zależności systemowych potrzebnych do uruchomienia przeglądarki. Brzmi świetnie, nieprawdaż? :slightly_smiling_face:

 

Gwiazdor2piorunów

@Kazix Chodzi głównie o przygotowanie testu w trakcie którego zamieniając komponent na potrzeby testu z docelowego (np. baza danych, kolejka JMS lub topic Kafki na implementację in-memory) pośrednio ingeruje się w zachowanie systemu. Twój test wciąż jest integracyjny, ponieważ wchodzić w interakcję na wyższych warstwach, ale do weryfikacji wyników wymaga wymiany warstw niższych.

GURU1piorunów
ale nie da rady ogarnąć kolejek

@splatch dlatego napisałem przy wiremocku rest call. Te 2 narzędzia się uzupełniają - testcontainers do stawiania faktycznej bazy/kolejki itd, wiremock do "mockowania" innych mikroserwisów z których korzysta testowany komponent.

Pokaż więcej komentarzy (6)

Kompan

w Programowanie

1piorunów

Dlaczego znalezienie pracy lub staży na trzecim roku informatyki jest niemożliwe? Przecież to jakis absurd, nikt nie chce dać szansy nowemu nawet za darmo

Osobistość0piorunów

@MokebeTesto Bo to ty masz im płacić za możliwość zdobycia stażu. Ale tylko przez dwa lata. Potem rok pracy za darmo, a potem już z górki. [̲̅$̲̅(̲̅ ͡° ͜ʖ ͡°̲̅)̲̅$̲̅]

Twórca0piorunów

@MokebeTesto bo gówno dziennikarze naprodukowali artykułów w stylu: „po 3 miesiącach zaczął zarabiać 15 tysięcy na rękę [zobacz sposoby na IP BOX]” i wszyscy stwierdzili, że IT to ich przeznaczenie. Dlatego po co firmy mają się starać i organizować pracę / staże dla młodych, jak kupa ludzi sama się pcha do pracy za darmo.

Pokaż więcej komentarzy (7)

Specjalista

w Programowanie

6piorunów

Witam serdecznie towarzystwo

Kształcę się na Java backend developera, a jako że jest promocja na udemy, to pomyślałem, że dokupię parę kursów.

Z ogłoszeń o pracę wydedukowałem, że najbardziej pożądany stack technologiczny przy Javie to:

* Spring
* Hibernate
* PostgreSQL
* ew. Apache server

Czy ktoś mógłby polecić jakieś dobre materiały z ćwiczeniami, na które warto poświęcić czas i ew. pieniądze (np. na udemy)? Jestem nowicjuszem i nadal ciężko ocenić mi jakość materiałów.

Dotychczas miałem do czynienia z materiałami dr. Chucka (python 4 everybody), które uważam za świetne, jeżeli chodzi o formę, sposób tłumaczenia, quizy i zadania praktyczne dla takiego nowicjusza jak ja.

Aktualnie uczę się na udemy javy z kursu pana Buchalki, który zły nie jest, ale imo mocno rozwleczony (np. zamiast w połowie kursu pisać już snippetami "sout" albo "psvm" to nadal klepie cały kod z klawiatury, jakby chciał celowo zrobić czasowo dłuższy kurs) a dr. Chuck dużo lepiej i przystępniej tłumaczył sporo konceptów, ale niestety pominął trochę spraw, które później mogą się przydać (np. nie wiedziałem nawet, że integery mogą być również przedstawione jako hex)

Stąd też takie pytanie, czy jest tu ktoś kto już ma jakieś doświadczenie i obeznanie i jest w stanie podpowiedzieć, które materiały są ok, a które smrut, z wymienionego przeze mnie stacku?

Zawodowiec0piorunów

@kao a jak się najlepiej uczysz? :slightly_smiling_face: Wybierz sobie jakiś cel: zrobić stronkę, zrobić aplikację, pomóc w aplikacji mobilnej hejto, czy cokolwiek. Byle należało wymyślić rozwiązanie jakiegoś problemu. Później realizując projekt, ucz się i googlaj.
Nie wiesz, jak uruchomić lokalnie projekt w spring-boot? google: "run spring-boot project" i wchodzisz na pierwszy wynik, np.: https://www.geeksforgeeks.org/how-to-run-spring-boot-application/
Jak nie to, to szukasz jak odpalić z konsoli. Albo jak odpalić za pomocą `gradle`. Jest mnóstwo poradników, artykułów itp. Możesz też podpytać AI i GTP3, ale może wprowadzać w błąd i często ma przestarzałe dane. Jednak na początek nauki powinien się nadać.

How to Run Spring Boot Application? - GeeksforGeeksA Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.GeeksforGeeks
Specjalista0piorunów

@Meverth szczerze, to najlepiej uczy mi się zaczynając od kursów prowadzących za rączkę, później przechodząc do własnych projektów. Kiedy na studiach uczyłem się oprogramowania CAD, to najlepiej mi szło, zaczynając od tutoriali prowadzących za rączkę na YouTube, później przechodząc do zadanek z książek i inżynierii własnych pomysłów. Tutaj wydaje mi się, że podobnie będzie się to sprawdzać :slightly_smiling_face:
Na pewno przechodząc z Pythona na Javę, dużo łatwiej mi po prostu wpisać "how to parse int to string in java" w Google zamiast przechodzić samouczki od zera. Z frameworkami i bazami danych trochę trudniej, bo nie miałem nigdy z nimi do czynienia, a zanim zacznę się czymś bawić sam, lubię dobrze zrozumieć od podstaw co i dlaczego jakoś działa.

Pokaż więcej komentarzy (8)

Fenomen

w Ciekawostki

9piorunów

Dziś premierę ma kurs Javy autorstwa Michała Gellerta (ja jestem wydawcą, a on autorem).

**https://jdb.mikr.us/**

To kolejny z serii kursów 'w godzinę', których celem jest dostarczenie wartościowej wiedzy w możliwie skondensowanej formie.

Do niedzieli (20.11) kurs można dostać w niższej, premierowej cenie.

Gwiazdor

w Java

7piorunów

Jedna z rzeczy, która mnie bardzo irytuje w Javie to toporność interakcji z systemem operacyjnym. Rozumiem, że JVM jest przenośne i tak dalej, ale ile trzeba się naszarpać, żeby wywołać coś z biblioteki SO/DLL przekracza ludzie pojęcie. Mam nadzieję, że zmiany z FFI (foreign function interface) do użycia i wywołanie funkcji z bibliotek systemowych przestanie być udręką.

Dla jasności programiści JVM mają do dyspozycji JNI, które wymaga kompilacji kodu natywnego, żeby ten można było wowłać z poziomu JVM. Z mniej topornych opcji mam JNA (oparte o libffi), które jest dość wolne, oraz nieoficjalne api jnr-ffi.

Dla zainteresowanych https://openjdk.org/jeps/424 i https://github.com/jnr :slightly_smiling_face:

Gwiazdor0piorunów

@DexterFromLab To prawda, z tym że jako język/platforma nadaje się do GUI i aplikacji wysokopoziomowych. Niekoniecznie jest w tym dobra, ale ma tę przewagę nad innymi platformami, że zmiana architektury procesora czy systemu operacyjnego nie ma dużych implikacji. Druga kwestia, że jest sporo aplikacji wysokopoziomowych typu klient/server, w których można z powodzeniem wykorzystać JVM.

Pokaż więcej komentarzy (2)

Specjalista

w Ciekawostki

11piorunów

Programujesz? Nie wiesz o co chodzi z tym "Log4j"?
Próbuję to wyjaśnić w najnowszym filmie pokazując podatność CVE-2021-44228 na prostym kawałku kodu.
• Dowiesz się jak użyć Canary Tokens do wykrycia podatności w swoich aplikacjach.
• Zobaczysz, że można wykraść zmienne środowiskowe korzystając z interactsh
• Pokazuję, że podatne mogą być wszystkie wersję Javy - te nowsze i te starsze.
• Zmienna "LOG4JFORMATMSGNOLOOKUPS" nie zawsze rozwiązuje problem.
• Wersja 2.15.0 nie jest najlepszym rozwiązaniem

Masz znajomych programistów? Podeślij im ten film - może ich zainteresuje 😉

https://www.youtube.com/watch?v=sPa83lM7YJs

Specjalista

w Java

4piorunów

Java 17 będzie lepiej generować liczby losowe

https://www.infoworld.com/article/3606833/jdk-17-whats-in-store-for-java-17.html

Gruba ryba

w Programowanie

14piorunów

Dlaczego samochody są złe, czyli po jakiego grzyba tutoriale robią nam wodę z mózgu?

W końcu się zmotywowałem, a poniżej efekt 😉 Zapraszam też do obserwowania tagu <- tu będę wrzucał swoje wypociny.

Jeśli ktoś z Was uczył się jakiegoś obiektowego języka programowania to mógł się przed chwilą uśmiechnąć pod nosem. Samochody. Wszędzie te samochody. Oczywiście, samochody posiadają markę, kolor, silnik. To już musi brzmieć znajomo. Ale od początku.

Obiekt. Podstawowa jednostka czasu i przestrzeni w obiektowych językach programowania. A może to jednak klasa jest tą jednostką? Prawda jest taka że w przypadku obiektów i klas nie ma dylematu kury i jajka - tu wszystko jest jasne. Klasa jest "projektem" obiektu, a obiekt instancją klasy. I choć w Javie wszystko dziedziczy po klasie Object, to jednak nie ma obiektu bez klasy.

Część z Was już wie, a część z Was zaraz się dowie, że klasa będąc "projektem" obiektu, jego definicją, w swoim najprostszym ujęciu może posiadać pola oraz metody. Pola służą do przechowywania danych, z kolei metody, w dużym uproszczeniu, coś z tymi danymi przechowywanymi w polach robią.

No ale dziki! Co z tymi samochodami, bo się niecierpliwimy!

Już odpowiadam. Jeśli ktoś miał okazję robić jakiś tutorial z Javy albo uczestniczył w bootcampie to prawie na sto procent widział public class Samochod. Taki Samochod miał pola: private String kolor, private String marka i obowiązkowo private Silnik silnik. Posiada też metody. I tu się zaczyna cały problem jaki widzę. Bo czy logicznym z punktu widzenia początkującego programisty jest to że Samochod posiada metody uruchom() czy zahamuj()? Ano tak. A czy z perspektywy programowania obiektowego ma to sens? Ano nie. Paradoksalnie, często w tutorialu samochód jest jeszcze dalej eksploatowany, i w pewnym momencie służy do wytłumaczenia czym jest odwrócenie zależności, i wtedy (najczęściej) jest to zrobione poprawnie. Ale o tym kiedy indziej.

To co z tym samochodem jest nie tak że jest on złym przykładem? Bo samochód sam w sobie jest tworem zbyt skomplikowanym żeby móc go opisać za pomocą jednej klasy która będzie zawierała absolutnie wszystkie jego elementy składowe, metody, enumeracje, i co tylko sobie można jeszcze tam wyobrazić.

Dlaczego nikt nie używa jako przykładu czegoś prostszego? Weźmy takiego buta. But ma kolor, but ma markę, składa się z kilku różnych materiałów które zostały użyte do jego produkcji, ma sznurówki, rzepy czy zamek. No but. Chyba każdy z Was widział kiedyś buta.

Jedyne metody jakie może mieć nasz but to tak zwane gettery i settery - metody które służą do ustawiania wartości pól. Przykładowo - but ma kolor, więc setterem do ustawienia koloru będzie setColor() a getterem do pobrania wartości koloru będzie getColor(). Bez żadnych skomplikowanych powiązań między wewnętrznymi elementami buta. Jest on też doskonałym przykładem do tego by pokazać kilka rodzajów pól jakie może mieć klasa. Kolor - ciąg znaków, rozmiar - wartość liczbowa, sposób wiązania - enumeracja (sznurówki, rzepy, zamek), a rodzaj materiału może być osobnym obiektem o nazwie Material, który będzie miał w środku przykładowo rodzaj materiału i wartość prawda/fałsz odnosząca się do jego nieprzemakalności. Proste? Proste.

But nie będzie miał metod takich jak załóż() czy zawiąż() - bo każdy chyba się zgodzi że but się sam nie zakłada ani sam się nie zawiązuje (no dobra, wiem że istnieją Nike Adapt :P) - wiadomym jest że za zakładanie buta odpowiedzialny jest inny obiekt - Człowiek.

Odpowiedzialność to też ważne słowo w programowaniu obiektowym. Dziś rozpisywać się o tym nie będę, ale chciałem napomknąć jedynie że w programowaniu obiektowym mamy wprowadzony zestaw założeń opisywany skrótem SOLID - gdzie rozwinięciem pierwszej literki jest "Single responsibility principle" mówiąca o tym że klasa powinna mieć tylko jedną odpowiedzialność. W przypadku klas służących do przechowywania danych - tą odpowiedzialnością jest... przechowywanie danych. Ot, niespodzianka. Umieszczanie metody uruchom() w klasie Samochód łamie tę zasadę. "Czepiasz się, dziki" - ano czepiam się, bo osobiście uważam że złym pomysłem jest rozpoczynanie uczenia innych ludzi programowania od zrobienia tego na złym przykładzie.

Uff. Przebrnąłem. Jeśli doczytaliście aż do tego miejsca to dajcie znać jak bardzo powinienem przestać pisać o programowaniu 😛

Tytan4piorunów

@dziki kurde, wreszcie wpis o programowaniu który zrozumiałem w pełni, super! A co do samochodu to ja spotkałem się również często z psem, bądź innym zwierzęciem 😎

Gruba ryba4piorunów

@Admiral psy i inne zwierzęta to częsty przykład, tylko używany do wyjaśniania takich zagadnień jak dziedziczenie czy polimorfizm 😉

Pokaż więcej komentarzy (6)

Gruba ryba

w Programowanie

12piorunów

Chcecie jakieś w miarę quality wpisy o programowaniu w i po stronie backendowej, trochę o szynach ESB, testach jednostkowych i takich tam? Próbuję się zabrać za pisanie od pewnego czasu i szukam motywacji 😅

Wirtuoz3piorunów

@dziki Nie upieram się oczywiście przy tej formule. Po prostu zwracam uwagę, że jeśli chcemy mieć tu oryginalny content, to musi zaistnieć jakaś mechanika go wspierająca, bo inaczej w większości przypadków przegra on konkurencję z krótszymi formami.
(O wilku mowa. Właśnie musiałem podzielić komentarz przez limit znaków xD).

Pokaż więcej komentarzy (12)

Gruba ryba

w Programowanie

6piorunów

Kurła, dawno nie wykonałem takiej ilości pracy jak dzisiaj. Jestem z siebie zadowolony. Choć przede mną jeszcze masa pracy.

Wirtuoz3piorunów

@dzik no jak dla mnie to bardziej kara niż nagroda, ale co kto lubi

Gruba ryba3piorunów

@dziki brzmisz jak materiał na super żołnierza hejto.pl ! Dołącz do nas, a razem podniesiemy ten portal do rangi światowego imperium i centrum Internetu!

Pokaż więcej komentarzy (8)