Mentionsy Mentionsy
Better Software Design
Better Software Design

69. O wydajności systemu, optymalizacjach i trade-offach z Tomaszem Lelkiem

11.09.2023 ·58 min 13 s · 11 rozdziałów · 2 sponsorów

Czy nieczytelny, trudno nierozszerzalny i na dodatek zduplikowany kod może być dobry? Co więcej, nawet pożądany? Tak, jeśli w projekcie istotne są zupełnie inne drivery, np. w postaci oczekiwanej dużej wydajności systemu. Wówczas poświęcenie pewnych cech kodu na cześć innych wydaje się mieć dużo sensu.Dziś zapraszam na rozmowę z Tomaszem Lelkiem, współautorem wydanej w ubiegłym roku w wydawnictwiem Manning książki "Software Mistakes and Tradeoffs: How to make good programming decisions". A rozmawiać będziemy właśnie o świadomym podejmowaniu decyzji, zwłaszcza w kontekście wydajności i optymalizacji systemu. Nie od dziś przecież wiadomo, że zbyt wczesna optymalizacja jest źródłem całego zła. Niestety wykonana zbyt późno też źródłem wszystkich kosztów...Dzięki uprzejmości wydawnictwa Manning mam 2 kody uprawniające do darmowego pobrania książki Tomka "Software Mistakes and Tradeoffs: How to make good programming decisions" w formie ebooka. Zapraszam więc do podzielenia się historiami o optymalizacjach waszych systemów. Kody te trafią do dwóch osób, których zgłoszenia zostały wybrane przeze mnie jako najciekawsze i najbardziej pouczające dla Ciebie i/lub zespołu.Termin przesyłania zgłoszeń mija z końcem 30 września 2023 roku, nadsyłać je można z użyciem formularza dostępnego na stronie https://forms.gle/o2rVAQHmwZuyP7y66

Wprowadzenie i motywacja

Mariusz Gil przedstawia temat o wydajności systemu i rozmawia z gościem, Tomaszem Lelkiem, o decyzjach i trade-offach w programowaniu.

2:32
Reklama Better Software Design

Better Software Design to podcast o projektowaniu oprogramowania.

0:39
Tomasz Lelkiem przedstawia się i swoje doświadczenie

Tomasz Lelkiem opisuje swoje doświadczenie w branży, pracując w Allegro, DataStacks i Dreamio, oraz opisuje swoją książkę o decyzjach programistycznych.

5:09
Kwestia trade-offów w programowaniu

Tomasz Lelkiem opisuje zainteresowanie trade-offami i jak to wpływa na jego pracę, opierając się na doświadczeniach z różnych projektów.

4:59
Przykłady trade-offów i decyzji programistycznych

Tomasz Lelkiem omawia różne trade-offy, takie jak duplikacja kodu i optymalizacja przedwczesna, podkreślając potrzebę balansowania decyzji.

3:44
Optymalizacja przedwczesna i jej konsekwencje

Tomasz Lelkiem omawia zagadnienie optymalizacji przedwczesnej, podkreślając konsekwencje i potrzebę zbierania odpowiednich danych.

6:14
Reklama Dynatrace

Tutaj wspomniałeś Dynatrace'a, tutaj można też oczywiście rozważyć New Relic'a czy jakiekolwiek inne narzędzie tej klasy i tą informację, jak to się zachowuje na produkcji, bardzo szybko pozyskać.

0:59
Zbieranie danych i optymalizacja hot path

Tomasz Lelkiem opisuje proces zbierania danych i identyfikowania hot path w systemie, aby zaimplementować optymalizacje.

23:49
Monitorowanie i kontynuacja testów wydajnościowych

Tomasz omawia znalezienie złotego środka między optymalizacją a skalowalnością, podkreślając znaczenie metryk i monitorowania wydajności. Rzadko zastanawiamy się nad złożonością obliczeniową kodu, co może prowadzić do klęski systemu. Podkreśla znaczenie budowy pętli feedbacku i wersjonowania API.

4:10
Budowa pętli feedbacku

Tomasz podkreśla istotność budowy pętli feedbacku, która pozwala na efektywniejsze podejmowanie decyzji. Omawia korzyści z korzystania z narzędzi takich jak co-pilot i chat GPT, które zwiększają szybkość otrzymania feedbacku. Rzadko zastanawiamy się o kompatybilności API i danych.

5:29
Kompatybilność i wersjonowanie API

Tomasz podkreśla znaczenie wersjonowania API i danych, co ułatwia przyszłe ewolucje systemów i analitykę. Podziękowania za rozmowę.

1:52

Rozdziały i streszczenia generowane automatycznie. Pełna transkrypcja nie jest publikowana — wyszukaj frazę, aby zobaczyć dopasowane fragmenty.