Posts

Showing posts from August, 2017

HashCode, equals i kolekcje

Image
Nie wiem jak Wy, ale ja nigdy nie zagłębiałem się w kwestię hashCode i equals. Zawsze generowałem obydwa elementy używając IDE z uwzględniając identyczne parametry. Pozwalało mi to zachować myśl, że gdy equals obiektu zwróci wartość 'true' to hash będzie zawsze identyczny. Wiedziałem, że tak powinno być, ale nigdy nie myślałem dlaczego. Gdy zostałem ostatnio zapytany o to, okazało się, że nie mam pojęcia dlaczego i po co się tak robi. Zagłębiając się w literaturę o tym poświęconą postanowiłem przedstawić Wam wiedzę, którą powinna posiadać każda osoba korzystająca z kolekcji. Wychodzi więc, że każdy. Szkoda, że wcześniej nikt nie wyjaśnił mi, że wiedza o tym jest niezbędna. Kontrakt Tak jak wspomniałem we wstępie, gdy equals zwróci wartość 'true', możemy spodziewać się, że hash będzie identyczny. Nigdy jednak nie zastanawiałem się jak wygląda sytuacja odwrócona. Czy gdy hash jest identyczny to zawsze equals zwraca 'true'? I tutaj wyszło na to, że nie. W Javie w

Co złego w uproszczeniach języków?

Image
Zastanawialiście się czasami w jakim kierunku idą kolejne rozwiązania języków? Czy to w ogóle idzie w dobrą stronę? Ja czasami myślę i o takich rzeczach. Nie do końca zgadzam się z takimi rozwiązaniami, ale całkowicie je rozumie. Wszystkie chcą mieć wszystko Firmy zajmujące się utrzymaniem danego języka chcą przyciągnąć do siebie jak największą liczbę programistów. Spowodowane jest to oczywiści możliwością rozwoju. W tym kierunku języki starają się zaspokoić potrzeby wszystkich programistów. To dlatego Java wprowadziła programowanie funkcyjne. C# wprowadził w ramach rozwoju parametry opcjonalne i nazwane. To miało przyciągnąć grono fanów innych języków tj. Scala, JS itp.. Co zyskujemy? Bardziej funkcjonalne języki. Robimy dużo więcej rzeczy w jednej linijce. Kod tworzy się w tle. Gettery i settery automatyczne w C# to tylko zaleta. Jednocześnie wraz z usprawnieniami możemy osiągnąć łatwiej swoje cele. Pozwala to na szybkie pisanie logiki oraz rozwiązywanie problemów. Skusiłbym się

Technologia Blokchain zyskuje coraz większą popularność

Image
W informatyce coraz częstszym tematem jest technologia Blockchain. Firmy, głównie z strefy finansowej, zaczęły się interesować tą technologią. Nie jest to nowość, ponieważ Bitcoin stosują ją już od 2009 roku. Popularność kryptowaluty zapoczątkowała zainteresowanie rozwiązaniem technicznym, które pozwala na łatwe i bezpieczne transakcje. Firmy dużo inwestują w rozwój tej technologii. I jest Ich coraz więcej. Technologia opiera się na blokach danych, które posiadają klucz stworzony przez metody kryptograficzne, następny blok posiada informację o hashu poprzedniego bloku. Wraz z tym rozwiązaniem posiadamy łańcuch danych, który przy dzisiejszych zasobach jest ciężki do złamania w skończonym czasie. Technologia, więc jest bardzo bezpieczna. Stąd pojawiło się jej zainteresowanie. Problemem tego rozwiązania jest duża energochłonność. Przypuszczam, że właśnie to powstrzymuje firmy od zastosowania tego w codziennym życiu. Zamierzam spojrzeć bliżej na tą technologię i przygotować większy wpis

Co najgorszego może się stać?

Image
Macie też tak, że strach przed działaniem blokuje Wam drogę do lepszego życia? Przez to boicie się czegoś powiedzieć, wyrazić swoją opinie lub po prostu ponarzekać? Czasami nawet zrobić coś na prawdę szalonego, nierozsądnego lub zupełnie innego niż dotychczas? Boimy się. Jesteśmy ostrożni. To jest bardzo dobre, ale czasami robimy to za bardzo. W takich sytuacjach musimy sobie odpowiedzieć na bardzo ważne pytanie. Co najgorszego może się stać? To pytanie może zadać sobie każdy. Lekarz, fryzjer, programista, po prostu każdy. Gdy uświadomimy sobie, że strach jest tylko w nas. To będziemy mogli zdziałać więcej. Pisze to tutaj, ponieważ w zawodzie programisty często spotykamy się z takim strachem. Jesteśmy narażeni na tego typu myśli ponieważ głównie pracujemy naszym umysłem. Boimy się poprosić o pomoc bardziej doświadczonego od siebie. A co najgorszego może się stać? Jedynie może odmówić pomocy, więc będziemy w tym samym miejscu jak teraz. Wydaje się więc, że strach jest wymyślony przez

Warto pomagać!

Image
Nikt nie urodził się idealny. Nikt nie wie wszystkiego. A co za tym idzie? Każdy potrzebuje pomocy. Nie powinniśmy uważać taką osobę za słabsza. Potrzeba otrzymania pomocy nie jest oznaką słabości. Często wręcz jest to oznaką mądrości, ponieważ nie marnujemy cennego czasu na szukanie rozwiązania. Ale kiedy pomagać i jak pomagać? Tutaj nie ma prostej odpowiedzi. Rodzaje pomocy Uważam, że jest bardzo dużo ścieżek, którędy możemy poprowadzić taką osobę. Drogę, którą wybierzemy powinniśmy dostosować do sytuacji. Poniżej przestawię Wam rodzaje, które wyróżniam i najczęściej stosuje. Podanie gotowego rozwiązania - sposób ten uważam za najgorszy, ale na pewno skuteczny. Stosuje go najczęściej w sytuacjach kryzysowych. W momentach, gdzie rozwiązanie jest potrzebne na już (albo nawet na wczoraj). Staram się jednak tego unikać, ponieważ najczęściej osoba, której przekażecie takie rozwiązanie, nic z tej pomocy nie wyciągnie. Następnym razem, gdy coś takiego wystąpi pewnie nie będzie już pamię

To jest MÓJ projekt...

Image
W projektach zwykle przyjmuje się, że osoba pisząca dany fragment kodu jest za niego odpowiedzialna. Projektant za projekt. Dział marketingu za sprzedaż. Przykładów takich można przedstawić wiele więcej. Odpowiedzialność skupia się tylko na jednej osobie. Podział odpowiedzialności posiada jeszcze jedną konsekwencje. Nikt inny nie interesuje się kwestią nie związaną z jego obowiązkami. A czymże jest super program bez dobrej reklamy? Projekt bez programistów? Odpowiedz na to jest prosta i do niej właśnie zmierzam. Do uzyskania sukcesu produkcji oprogramowania potrzebujemy wszystkiego i wszystkich. Przejście jednak wszystkich procesów od analizy przez programowanie do sprzedaży nie wystarczy. Osoby lub działy muszą ściśle współpracować, a nie tylko wykonywać swoją pracę. Dlaczego? No bo co mogą wiedzieć marketingowcy o programie, który został napisany przez inny dział? Co może wiedzieć programista o projekcie, gdy okazuje się coś nie do końca zrozumiałe? Tutaj odpowiedz nasuwa się sam