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ą?

https://engineering.shopify.com/blogs/engineering/deconstructing-monolith-designing-software-maximizes-developer-productivity
 

 

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