Prasówka IT SALESmanago to zbiór nowości, ciekawostek i rozwiązań z zakresu programowania, Big Data, Machine Learning & AI oraz budowania zaawansowanych systemów informatycznych.
Co dwa tygodnie nasi specjaliści selekcjonują kilka najważniejszych i najciekawszych artykułów. W tym wydaniu m.in. Cykl życia zapytania SQL, wielowątkowość w Javie oraz przystępne wprowadzenie do Machine Learningu. Zapraszamy do lektury!
Programowanie ogólne
Nie daj się zwieść – Event Sourcing jest trudny
Event sourcing – często prezentowany jako lek na wszystkie problemy związane z programowaniem. Niestety posiada też szereg wad. Samo w sobie rozwiązanie jest już pewnego rodzaju antywzorcem. Trzeba zaakceptować bardzo wysoki początkowy koszt tego podejścia do wytwarzania oprogramowania. Więcej trudnych sytuacji przy zastosowaniu Event Sourcing poznasz tutaj:
https://chriskiehl.com/article/event-sourcing-is-hard
Wzorzec projektowy DTO – kiedy, jak i po co używać?
DTO czyli Data Transfer Object – to jeden z najczęściej używanych wzorców projektowych. Podstawowym zadaniem DTO jest transfer danych pomiędzy aplikacjami, modułami, warstwami lub w każdej innej sytuacji, gdy jest potrzebny. Poznaj możliwości jego wykorzystania.
https://thoughts-on-java.org/dto-projections/
Code review checklist – wielowątkowość w Javie
Podejście do wielowątkowości w Javie jest pojęciem bardzo złożonym. Problemy pojawiające się przy wykorzystaniu tego mechanizmu są trudne do zlokalizowania, zreplikowania i naprawienia. Na szczęście dostępnych jest coraz więcej przystępnych źródeł wiedzy – jak poniższa check lista:
https://blog.usejournal.com/code-review-checklist-java-concurrency-49398c326154
Dziesięć sposobów na bezpieczną aplikację
Kluczowym wymaganiem przy budowaniu produkcyjnych aplikacji jest ich bezpieczeństwo – niekiedy banalny błąd popełniony na etapie wytwarzania oprogramowania jest tragiczny w skutkach. Może doprowadzić do upadku biznesu producenta. W poniższym artykule znajdziesz 10 dobrych rad jak zabezpieczyć swoją aplikację.
https://blog.heroku.com/ten-ways-to-secure-your-apps
Architektura aplikacji
Współdzielona baza danych w architekturze Microserwisów – antywzorzec?
Architektura Microservice zdobyła w ciągu ostatnich kilku lat ekstremalną popularność. W niektórych kręgach uchodzi nawet za kolejny buzzword w IT. Jednak dobrze zaprojektowana architektura niesie za sobą wiele korzyści.
Poczytaj o rozwiązaniu współdzielonej bazy danych dla Microservices i poznaj odpowiedź na pytanie: czy to na pewno antypattern?
https://hackernoon.com/is-shared-database-in-microservices-actually-anti-pattern-8cc2536adfe4
Podział aplikacji monolitycznej
Aplikacje jako monolit mają swoje zalety – szybkość rozwoju, łatwiejszy proces deploymentu i releasu. Posiadają również wady. Przy znacznym wzroście rozmiaru projektu szybkość rozwoju dramatycznie spada, a także pojawiają się też problemy z wydajnością.
Poznaj, w jaki sposób “pociąć” aplikacje monolityczną?
Bazy danych & Big data
Cykl życia zapytania SQL
Co się dzieje, gdy wykonujesz zapytanie SQL? Jest na pewno niewidocznie dla oka, natomiastpod spodem wykonywanych jest wiele operacji:) Zapytanie jest parsowane i wstępnie transponowane. Następnie przygotowany jest plan wykonania takiego zapytania. Dopiero po tym zapytanie może zostać wykonane. W poniższym artykule znajdziesz szczegółowo opisany każdy z poszczególnych etapów.
https://numeracy.co/blog/life-of-a-sql-query
Shardowanie baz danych
Każda aplikacja, która odnotowuje szybki wzrost ruchu potrzebuje optymalizacji, nie tylko w obrębie kodu źródłowego aplikacji. Bardzo istotną kwestią są oparcie oparte o rozwiązania pewne, szybkie i bezpieczne. Sharding to wzorzec architektury baz danych związany z poziomym partycjonowaniem – praktyka rozdzielania wierszy jednej tabeli na wiele różnych tabel, znanych jako partycje.
https://www.digitalocean.com/community/tutorials/understanding-database-sharding
Machine Learning & AI
Jak rozpocząć przygodę z Machine Learning?
Machine Learning jest jak temat seksu w liceum – każdy o nim mówi, niewielu wie jak to robić, a faktycznie robią tylko nauczyciele :)
Poniższy przewodnik pokaże tematykę od podstaw – popartą konkretnymi, użytecznymi przykładami:
https://vas3k.com/blog/machine_learning