- 118
- 468 995
DevMentors
Poland
เข้าร่วมเมื่อ 16 มิ.ย. 2022
Nasz nowy, dedykowany kanał dla polskich odbiorców :)
Oryginalny kanał anglojęzyczny th-cam.com/users/devmentors
Kursy online, szkolenia, konsulting i dodatkowe informacje dostępne na devmentors.io
Oryginalny kanał anglojęzyczny th-cam.com/users/devmentors
Kursy online, szkolenia, konsulting i dodatkowe informacje dostępne na devmentors.io
Trump i GWIEZDNE WROTA, agent AI napisze Ci CRUDA, a StackOverflow...umiera? 🤖💥| IT News #14
W najnowszym odcinku przedstawiamy najgorętsze wydarzenia ze świata technologii i IT! 🔥
🇺🇸 Polityczne zamieszanie wokół AI - Donald Trump anuluje rozporządzenie Bidena dotyczące sztucznej inteligencji. Jakie będą skutki tej decyzji?
🦾 DeepSeek-R1 kontra o1 - Wyścig w AI trwa! Czy DeepSeek-R1 pokona swojego rywala?
💵 FluentAssertions zmienia zasady gry - Nowa licencja popularnego narzędzia do testów jednostkowych, to skok na kasę?
🔥 Prometheus 3.0 - Nowe UI i diagramy, wsparcie da UTF-8 czy może coś więcej?
🤖 Junie - nowy agent kodowania od JetBrains. Czy będzie lepszy od Cursora, który usuwa połowę kodu?
🫣 I czy to już koniec StackOverflow?
Nie przegap żadnego newsa! Subskrybuj i bądź na bieżąco z najnowszymi wydarzeniami w świecie IT! 💻✨
✉️✉️✉️
OSTATNI DZIEŃ PROMOCJI na nasz kurs, który lada moment będzie dostępny!
Nie przegap okazji by zgarnąć go w niższej cenie i zajrzyj na stronę messaging-pragmatycznie.pl 😎
🎞️ Premiera już na początku marca 2025 - odliczamy dni!
✉️✉️✉️
💬 Zapraszamy również na:
⚡️ Discord: devmentors.io/discord-pl
⚡️ Instagram: devmentors_pl
⚡️ TikTok: www.tiktok.com/@devmentors
⚡️ X: dev_mentors_pl
TIMESTAMPS:
00:00:00 - Intro
00:00:27 - Donald Trump anuluje rozporządzenie Bidena w sprawie AI
00:07:36 - DeepSeek-R1 kontra o1
00:10:14 - Prometheus 3.0
00:17:45 - Koniec StackOverflow?
00:29:20 - Junie, nowy agent kodowania od JetBrains
00:35:36 - FluentAssertions zmienia zasady gry
00:49:58 - Outro
---
Utwór News Theme 2 (autor: Audionautix) jest dostępny na licencji Licencja Creative Commons - uznanie autorstwa 4.0. creativecommons.org/licenses/by/4.0/
Wykonawca: audionautix.com/
🇺🇸 Polityczne zamieszanie wokół AI - Donald Trump anuluje rozporządzenie Bidena dotyczące sztucznej inteligencji. Jakie będą skutki tej decyzji?
🦾 DeepSeek-R1 kontra o1 - Wyścig w AI trwa! Czy DeepSeek-R1 pokona swojego rywala?
💵 FluentAssertions zmienia zasady gry - Nowa licencja popularnego narzędzia do testów jednostkowych, to skok na kasę?
🔥 Prometheus 3.0 - Nowe UI i diagramy, wsparcie da UTF-8 czy może coś więcej?
🤖 Junie - nowy agent kodowania od JetBrains. Czy będzie lepszy od Cursora, który usuwa połowę kodu?
🫣 I czy to już koniec StackOverflow?
Nie przegap żadnego newsa! Subskrybuj i bądź na bieżąco z najnowszymi wydarzeniami w świecie IT! 💻✨
✉️✉️✉️
OSTATNI DZIEŃ PROMOCJI na nasz kurs, który lada moment będzie dostępny!
Nie przegap okazji by zgarnąć go w niższej cenie i zajrzyj na stronę messaging-pragmatycznie.pl 😎
🎞️ Premiera już na początku marca 2025 - odliczamy dni!
✉️✉️✉️
💬 Zapraszamy również na:
⚡️ Discord: devmentors.io/discord-pl
⚡️ Instagram: devmentors_pl
⚡️ TikTok: www.tiktok.com/@devmentors
⚡️ X: dev_mentors_pl
TIMESTAMPS:
00:00:00 - Intro
00:00:27 - Donald Trump anuluje rozporządzenie Bidena w sprawie AI
00:07:36 - DeepSeek-R1 kontra o1
00:10:14 - Prometheus 3.0
00:17:45 - Koniec StackOverflow?
00:29:20 - Junie, nowy agent kodowania od JetBrains
00:35:36 - FluentAssertions zmienia zasady gry
00:49:58 - Outro
---
Utwór News Theme 2 (autor: Audionautix) jest dostępny na licencji Licencja Creative Commons - uznanie autorstwa 4.0. creativecommons.org/licenses/by/4.0/
Wykonawca: audionautix.com/
มุมมอง: 3 164
วีดีโอ
MASSTRANSIT, czyli jak daleko zajedziemy na gotowcach do messagingu?
มุมมอง 1.9K14 วันที่ผ่านมา
MassTransit czy czyste RabbitMQ? 🔄 W tym odcinku przyglądamy się temu, jak popularny framework MassTransit może uprościć tworzenie aplikacji opartych na komunikacji asynchronicznej. 🤔 Porównując go z tym, co dotychczas nalepiliśmy w naszej sadze messagingowej, nie da się ukryć, że dostępne funkcjonalności pozwalają łatwo i skutecznie wkroczyć "do akcji".🧐 Pozostaje jednak jedno zasadnicze pytan...
CZY SOFTWARE ROBI SIĘ CORAZ WOLNIEJSZY?🤔
มุมมอง 3.7K21 วันที่ผ่านมา
Z roku na rok każde z nas dokłada swoją cegiełkę do kolejnych funkcjonalności i kolejnych wersji softu, które wychodzą na światło dzienne. Oceniając tempo zmian i nie zawsze podążającą za nim jakość nasuwa się jedno zasadnicze pytanie - CZY SOFTWARE ROBI SIĘ CORAZ GORSZY?🤔 W dzisiejszym materiale pozwolimy sobie na... komentarz do rozmowy z Caseyem Muratori, gdzie pokazuje on mało atrakcyjną pr...
ZWIJANIE Open Source, Google i WIELOŚWIATY, 200$ za LLM oraz podsumowanie 2024 | IT News #13
มุมมอง 4.6Kหลายเดือนก่อน
🎉 Witajcie w kolejnym, wyjątkowym odcinku IT News, gdzie podsumowujemy cztery główne kategorie minionego roku! 🎉 🌐 Open Source Obserwujemy postępujący trend "zwijania" projektów OSS. Czy Puppet wytrzyma biurokrację? A może to tylko kolejny rozdział w jego historii? I co się stało ze SpecFlow, że zniknął jak kod na Friday deployu? 🤔 🔒 Bezpieczeństwo Z raportu bezpieczeństwa wynika, że ponad 40 t...
🥊 Vernon vs. Young, czyli słowne "MMA" w IT - a wszystkiemu winna ARCHITEKTURA?
มุมมอง 2.4Kหลายเดือนก่อน
💸 Bierzemy po 500 zł z konta każdej drużyny i słuchamy Państwa. Pytanie z kategorii “INTERNET” - Jak dać znać, że nie lubisz kogoś w sieci? otóż… ZABLOKOWAĆ!⛔️ 😏 Tak mogłoby wyglądać pytanie w popularnym programie rozrywkowym po tym jak w ostatnim czasie wybuchła imba pomiędzy Greg Youngiem a Vaughn Vernonem, o której pogadamy w tym odcinku. 🥊 Omówimy “dyskusję” pomiędzy dwoma guru IT, która do...
PULL REQUESTY - A na co to komu?!!
มุมมอง 3.2K2 หลายเดือนก่อน
🤔 Czy Pull Requesty to naprawdę rozwiązanie, które ułatwia życie programistów, czy może tylko zbędna formalność? Ziarno niepewności co do tej kwestii, zasiała w nas pewna dyskusja z LinkedIna. 🔥 Dołącz do nas w rozkminie - jakie były założenia i zalety PR przy ich wprowadzaniu Vs. jak wygląda rzeczywistość codziennej pracy. 🚀 Nie obiecujemy co prawda, że nasza analiza nie będzie okraszona śmies...
.NET 9 i EMULATOR Azure Service Bus, Strava zamyka API, sprzęt D-Link do kosza | IT News #12
มุมมอง 4.1K2 หลายเดือนก่อน
Dwunasty odcinek IT News powstawał dwukrotnie... ale nie ze stratą dla Was, drodzy widzowie. 🫡 Dzisiejszy materiał dedykujemy przede wszyskim naszej .NETowej braci, gdyż będziemy oceniać nowe ficzery w .NET 9 i C# 13. ✉️ Nie mniej ciekawym (acz trochę zabawnym) newsem jest wielce wyczekiwany (nie przez Microsoft... 👀) emulator Azure Service Bus. 🚴 Na dokładkę przedstawimy Wam kolejny przykład ...
CLAUDE już umie "klikać w kąkuter", NASI górą w TECHNOLOGY RADAR a Qualcomm traci ARM || IT News #11
มุมมอง 3.5K3 หลายเดือนก่อน
Okej, wiemy, że newsy o AI wyskakują Wam już nawet z lodówki, ale… znowu mamy kilka ciekawostek, które naprawdę warto ogarnąć! 🤖️ 🤔️ Tym razem przegadamy, jak sztuczna inteligencja rzekomo „kradnie” ludziom pracę - czy mamy się pakować i szukać nowej kariery, czy może jednak nie jest tak strasznie, jak to malują? 🚫️ Przyjrzymy się temu, jak ARM zabiera licencję Qualcommowi i co to znaczy dla na...
Akcelerator szwindla i Grucha AI, Nobel z fizyki za ML, IMBA w świecie WordPress | IT News #10
มุมมอง 2.9K3 หลายเดือนก่อน
🚨Dziś kończymy PRESALE nowego kursu - Messaging: Pragmatycznie!🚨 💵 Skorzystaj z oferty i odbierz swój dostęp w NIŻSZEJ cenie! 🔗 Szczegóły na messaging-pragmatycznie.pl ✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️ 🧨 Dzisiejszy odcinek będzie iście wybuchowy! Zapnijcie pasy i przygotujcie się na kolejne imby z podwórka IT! 🍐 Zaczynamy od PearAI (a.k.a Grucha AI), czyli startupu, który pod egidą Y Combina...
PARTYCJONOWANIE, czyli jak zapewnić kolejność przetwarzania wiadomości? | ORDERING cz. 2
มุมมอง 1.2K3 หลายเดือนก่อน
📩 Witajcie w czwartym i już ostatnim filmie z serii messagingowej, gdzie odpowiemy sobie na pytanie: czy naprawdę nie da się szybko i bezpiecznie przetwarzać wiadomości w systemach rozproszonych? 🤔 👉 Przeanalizujemy, dlaczego do tej pory jedynie sekwencyjne przetwarzanie wiadomości przynosiło nam porządane efekty. 💡 W oparciu o wyciagniete wnioski zbudujemy, topologię opartą o partycjonowanie w...
ORDERING, czyli dlaczego KOLEJNOŚĆ komunikatów nie jest oczywista?
มุมมอง 1.9K4 หลายเดือนก่อน
📩Witajcie w kolejnym filmie z serii messagingowej! Nie zwalniamy tempa bowiem łatwe rzeczy już się skończyły... teraz zaczyna się zabawa 😎 😈 Zobaczymy w nim, że w przypadku komunikacji asynchronicznej… diabeł tkwi w szczegółach. 🤯Pokażemy jak na pozór drobne różnice w projektowaniu topologii mogą całkowicie zmienić zachowanie naszego systemu. 🧐Omówimy dwa podejścia: topologia z osobnymi kolejka...
AMAZON kończy z WFH, nowości w PSQL, publiczne API KIA oraz IMBA na GitHubie z Winampem | IT News #9
มุมมอง 3.7K4 หลายเดือนก่อน
🚨PRESALE nowego kursu - Messaging: Pragmatycznie!🚨 💵 Skorzystaj z oferty do 15 października i odbierz swój dostęp w NIŻSZEJ cenie! 🔗 Szczegóły na messaging-pragmatycznie.pl ✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️✉️ 🪦 Podobno statystycznie podcast (w tym przypadku seria na YT) kończy się po ok. 8 odcinkach! Oznacza to, że oficjalnie najcięższy etap mamy za sobą :V 🌎 W dzisiejszym, dziewiątym odcinku ...
COUPLING - powiązania i zależności w systemach rozproszonych
มุมมอง 2.2K4 หลายเดือนก่อน
COUPLING - powiązania i zależności w systemach rozproszonych
RUST nie dla LINUXA, MS gotowy na kwantowe komputery oraz AI które, pomyśli zanim zrobi | IT News #8
มุมมอง 4.8K4 หลายเดือนก่อน
RUST nie dla LINUXA, MS gotowy na kwantowe komputery oraz AI które, pomyśli zanim zrobi | IT News #8
Messaging, czyli po co nam komunikacja asynchroniczna?
มุมมอง 4.9K4 หลายเดือนก่อน
Messaging, czyli po co nam komunikacja asynchroniczna?
Bolączki OPEN SOURCE, algebra w LLM do PIACHU, Swiift robi to dobrze, czy znasz UUID? | IT NEWS #7
มุมมอง 5K6 หลายเดือนก่อน
Bolączki OPEN SOURCE, algebra w LLM do PIACHU, Swiift robi to dobrze, czy znasz UUID? | IT NEWS #7
UE idzie po nasze wiadomości, Adobe sięga do naszych plików a testerzy w końcu mają IDE | IT News #6
มุมมอง 3K7 หลายเดือนก่อน
UE idzie po nasze wiadomości, Adobe sięga do naszych plików a testerzy w końcu mają IDE | IT News #6
LICZBY ZMIENNOPRZECINKOWE czyli jak zmieścić ułamek w komputerze
มุมมอง 1.7K7 หลายเดือนก่อน
LICZBY ZMIENNOPRZECINKOWE czyli jak zmieścić ułamek w komputerze
Podsumowanie WWDC 2024 | IT News Extra #1
มุมมอง 1.8K7 หลายเดือนก่อน
Podsumowanie WWDC 2024 | IT News Extra #1
Google majaczy, GitHub znów rośnie w siłę, a Ty - czy dobrze wykorzystasz przerwę? | IT News #5
มุมมอง 4.5K7 หลายเดือนก่อน
Google majaczy, GitHub znów rośnie w siłę, a Ty - czy dobrze wykorzystasz przerwę? | IT News #5
YOU DID IT! Podsumowanie "100 commitów"!
มุมมอง 1.4K7 หลายเดือนก่อน
YOU DID IT! Podsumowanie "100 commitów"!
WINDOWS widzi, AIRPODSY słyszą, a OpenAI i Stack Overflow milczą | IT News #4
มุมมอง 3.3K8 หลายเดือนก่อน
WINDOWS widzi, AIRPODSY słyszą, a OpenAI i Stack Overflow milczą | IT News #4
60 LAT BASICa, IBM przejmuje Hashicorp a StackOverflow układa się z OpenAI | IT News #3
มุมมอง 3.3K8 หลายเดือนก่อน
60 LAT BASICa, IBM przejmuje Hashicorp a StackOverflow układa się z OpenAI | IT News #3
JAK PROMOWAĆ WŁASNY PROJEKT OSS? *60 dni wyzwania 100 commitów*
มุมมอง 1.2K8 หลายเดือนก่อน
JAK PROMOWAĆ WŁASNY PROJEKT OSS? *60 dni wyzwania 100 commitów*
ZUS W 2025, Qualcomm VS. Apple, Nowa Java, .NET i Node.JS | IT News #2
มุมมอง 3.5K9 หลายเดือนก่อน
ZUS W 2025, Qualcomm VS. Apple, Nowa Java, .NET i Node.JS | IT News #2
PIRAMIDA TESTÓW vs RZECZYWISTOŚĆ - gdzie, kiedy i czy to w ogóle ma sens?
มุมมอง 2.4K9 หลายเดือนก่อน
PIRAMIDA TESTÓW vs RZECZYWISTOŚĆ - gdzie, kiedy i czy to w ogóle ma sens?
HINDUSKIE AI AMAZONA, PIVOT REDISA, EPICKI SZWINDEL W XZ | IT News #1
มุมมอง 3.4K9 หลายเดือนก่อน
HINDUSKIE AI AMAZONA, PIVOT REDISA, EPICKI SZWINDEL W XZ | IT News #1
PROJEKT vs 30 DNI - wystarczy na zalążek ciekawej aplikacji?
มุมมอง 2.3K10 หลายเดือนก่อน
PROJEKT vs 30 DNI - wystarczy na zalążek ciekawej aplikacji?
Jak działa „losowość” w programowaniu?
มุมมอง 2.7K10 หลายเดือนก่อน
Jak działa „losowość” w programowaniu?
Kod z 01:00:00 z Dequeue z miejsca łamie LSP :D Przynajmniej w takiej formie jaką podaliście. Dequeue jest kolejką dwukierunkową a queue jest jednokierunkowe. Nie da się użyć Queue w przypadku gdybyśmy chcieli ją użyć w kontekście Dequeue (nie da się podmienić bez efektów ubocznych).
Ok, dosłuchałem dalej. To miał być przypadek na potrzeby wykazanai problemu właśnie z LSP. Sorki.
Szacun za wyszczególnienie typów i dziedziczenia. Właśnie tu chyba tkwi moim zdaniem nieporozumienie. Meyer propagując żywo i dyskutując publicznie o dziedziczeniu dużo pisze o warunkach jego używania (artykuł how to not use inheritance ze strony archive eiffel). Napisał tam: -------------------------------------------------------------------- "Is-a" rule of inheritance Do not make a class B inherit from a class A unless you can somehow make the argument that one can view every instance of B also as an instance of A. -------------------------------------------------------------------- In other words, we must be able to convince someone --- if only ourselves to start with --- that "every B is an A" (hence the name: "is-a"). Dodatkowo w pracy "Genericity versus Inheritance" z 1986 już w samym abstrakcie pisał, że generyczność i dziedziczenie to DWIE RÓŻNE/alternatywne techniki do osiągnięcia reużywalności, rozszerzalności i kompatybilności w tworzeniu komponentów oprogramowania. Dziś w językach udostępniających obie techniki często łączy się je. Programiści często tworzą sztuczne abstrakcyjne byty widmo, które nie tworzą żadnych pojęć (nie reprezentują żadnego rzeczywistego pojęcia). I to jest błąd bo takie uogólnianie ma sens jak poświęci się czas na stworzenie solidnego ADT (czy polskie ATD) w którym wyodrębnia się te pojęcia a następnie opakowuje się je w język programowania. Samo stosowanie reguły "is-a" czyli semantycznej zgodności nie wystarczy do zrobienia dobrego dziedziczenia (przykład z kwadratem dziedziczącym po prostokącie). Dlatego stosować powinno się też LSP. Meyer dodatkowo uzupełnia w swoich pracach koncepcję LSP od Liskov wprowadzając DbC które wprowadza warunki wstępne, końcowe i inwarianty wzmacniające lub utrzymujące kontrakty bazowe.
Z LSP sprawa jest banalna: Barbara Liskov sformułowała zasadę, zgodnie z którą obiekty klasy bazowej powinny móc być zastąpione obiektami klasy pochodnej bez skutków ubocznych. Częste nieporozumienie polega na tworzeniu hierarchii, w której podklasa formalnie jest podtypem, ale nie spełnia kontraktu nadklasy. Klasyczny przykład: dziedziczenie Square (kwadrat) po Rectangle (prostokąt). Matematycznie kwadrat jest szczególnym prostokątem, jednak w kodzie narusza LSP - jeśli klasa Rectangle pozwala ustawić niezależnie wysokość i szerokość, to obiekt Square zmuszony do zachowania równości boków będzie działał niezgodnie z oczekiwaniami klienta. Taki kod sprawi niespodzianki: class Rectangle { protected int width, height; public void setWidth(int w) { width = w; } public void setHeight(int h) { height = h; } public int area() { return width * height; } } class Square extends Rectangle { @Override public void setWidth(int w) { super.setWidth(w); super.setHeight(w); } @Override public void setHeight(int h) { super.setWidth(h); super.setHeight(h); } } // ... gdzieś w kodzie klienckim: Rectangle rect = new Square(); rect.setWidth(5); rect.setHeight(4); System.out.println(rect.area()); // oczekiwane 5*4=20, otrzymane 4*4=16 - niespodzianka! Mimo że Square „jest” prostokątem z punktu widzenia dziedziczenia, nie zachowuje się jak prostokąt w użyciu. To złamanie LSP. Wniosek: Dziedziczenie musi zachowywać kontrakt nadklasy. Jeśli podklasa potrzebuje zmienić podstawowe założenia działania klasy bazowej, to znak, że hierarchia jest błędna. Należy wtedy przeprojektować relacje - np. uczynić obie klasy osobnymi bytami implementującymi wspólny interfejs (np. Shape z metodą area()), albo wykorzystać inne mechanizmy (np. Decorator lub parametryzację zamiast dziedziczenia).
Pierwszy problem nie dotyka w ogóle problematyki dziedziczenia tylko złego zastosowania tegoż. Otóż w 8:54 mamy kod który ma odwrotną i nielogiczną hierarchię dziedziczenia. W tym kodzie AccountRetrieveModel dziedziczy po AccountCreateModel, a ta z kolei dziedziczy po AccountUpdateModel. Taka hierarchia jest nielogiczna z perspektywy semantyki: Model do odczytu (Retrieve) przejmuje cechy modelu do tworzenia (Create) i aktualizacji (Update). Model do tworzenia (Create) przejmuje cechy modelu do aktualizacji (Update). W praktyce to wymusza posiadanie w klasie Retrieve pól i logiki, które tak naprawdę służą do innego celu (lub w ogóle nie powinny tam być). To narusza SRP, porządek semantyczny i utrudnia rozbudowę, ale to nie jest problem wynikający z dziedziczenia, tylko z złego jego stosowania. Dodatkowo tu jest problem z wykorzystaniem dziedziczenia w niewłaściwej warstwie.
Takie rozwiązanie byłoby lepsze jeśli wykorzystywać dziedziczenie. ``` namespace Inheritance.LayeredArchitecture.Models { public abstract class AccountBaseModel { public Guid OwnerId { get; init; } public string AccountCurrency { get; set; } } public class AccountCreateModel : AccountBaseModel { } public abstract class AccountBaseWithIdModel : AccountBaseModel { public Guid Id { get; set; } } public class AccountUpdateModel : AccountBaseWithIdModel { public IEnumerable<TransactionDto> Transactions { get; set; } } public class AccountRetrieveModel : AccountBaseWithIdModel { public decimal CurrentBalance { get; set; } public IEnumerable<TransactionDto> Transactions { get; set; } } } ``` Z dziedziczeniem jest taki problem, że programiści nie rozumują na takiej abstrakcji jaką mają na myśli akademicy, którzy przez abstrakcję rozumieją pewne matematyczne uogólnienia. To właśnie na poziomie domeny, gdzie operuje się na abstrakcyjnych typach danych (których swoją drogą bazując na pracy B. Meyera można matematycznie udowodnić czy wykazać zupełność typu) można korzystać z dziedziczenia. Ale wydaje mi się to ogólnie zbyt trudne dla wielu praktyków programowania, nawet DDD nie operuje na modelach które są oparte o specyfikacje ATD (w której wydziela się typy, funkcje, aksjomaty, preconditions). A warto o tym wspominać, bo Evans był grubo zainspirowany Meyerem w swojej pracy chociaż był na mniej abstrakcyjnym poziomie niż Meyer postulował.
Czemu koszyk ma swoją tożsamość - w sensie Guid? Czy koszyki są wyszukiwane w tej domenie jakoś? Nie powinien to być VO?
Tak samo CheckoutCart - co ktoś już wcześniej zauważył. Przecież te klasy spokojnie mogą być rozumiane jako VO
Dobrze się Was słucha! PS. Chętnie zobaczę porównanie narzędzi AI pomagających w wytwarzaniu oprogramowania w waszym wydaniu. Sam robiłem już kilka porównań u siebie, ale np. Cursor AI się nie bawiłem, a ufam waszej opinii, więc zaoszczędziłoby mi to czasu :D Więc +1 dla takiego materiału :D
super forma, fajnie ze za mały grosz dajecie tyle info dla AI. Jednak to człowiek wilkiem był dla człowieka, ale na szczęście szybszego wilka tresujecie.
95% migracji z FluentAssertion do Shouldly to Find: Should(). Replace with: Should i to za 130$ miesięcznie :D
Fajna była dyskusja gdy próbowaliście trochę określić "samych siebie", czyli wasz kanał. O czym tak naprawdę jest i dla kogo, i jaką wartość niesie, np w kontraście do Nick Chapsas (btw jego kanał też lubię i oglądam). Ale dlaczego piszę.... ZACHOWAJCIE SWOJĄ FORMĘ proszę :) To jedyny wartościowy kanał do którego mam zaufanie i sympatię gdzie mogę posłuchać, zastanowić się, dowiedzieć tych wszystkich rzeczy dookoła, które tak naprawdę są źródłem do wszystkiego co dalej się robi podczas pracy jako developer. Wg mnie Wasze dygresje są super, niosą wartość i trochę humoru. Pokazują.. "o jednak nie tylko ja się z tym zmagam". Macie kanał z materiałem który bym opisał jako KLEJ (te wszystkie "szczegóły implementacyjne" nabierają sensu, poco ale i Skąd się wzięły) i SMAR (dobrze usłyszeć od innych, doświadczonych, że kompromisy w developmencie są normalne) do pracy developera. Tak Trzymać! Pozdro! ;)
Odnośnie migracji z FluentMigration -> u nas w firmie ktoś puścił stosowne zapytanie na AI, który wygenerował odpowiedni skrypt migrujący. Szybka piłka i po zabawie.
Jak ta Specyfikacja ma się z Ardalis Specification nugget package?
Rozwiązywanie problemów > techniczne fapanie 🫶
I niech sie baza dla AI konczy, AI ma byc tylko dodatkowym narzedziem :D
Super format. Dobrze się słucha! :) Fajnie, że robicie content!
Idziemy w złym kierunku :) Wszystko rośnie a XP maleje :/ Wymagania Windows 95/XP/Vista czy 11 :) no tu mówimy o kilku rządach wielkości… Apka na srajfona czy andruty no ja rozumiem kilkanascie czy kilkadziesiąt MB ale nie 300-500MB za jakąś prosta apke…
Jak dla mnie DeepSeek to jest tajna inicjatywa rządu chińskiego. Skoro im się udało to opublikowali, co od razu spowodowała znaczące zawirowania na giełdach i spadki akcji amerykańskich firm jak Nvidia, która jak można przeczytać w mediach z dnia na dzień traci pół biliona dolarów
Panowie, myślę że żyjecie trochę w bańce, że wszyscy używają AI. Jest całkiem sporo instytucji gdzie jest to poblokowane, a nawet Reddit i sporo blogów techniczny. Wtedy zostaje SO. Jeszcze spora grupa ludzi jest która z AI nie może skorzystać....
w korpo którym pracuje nie można bo IP itp
Tu się zgadzamy, bardziej wskazaliśmy AI jako jeden z możliwych przyczyn tego trendu. Nie zmienia to jednak faktu, że z jakiegoś powodu liczba nowych pytań jest na poziomie z 2009 roku :/ Sam Stack raczej nie "umrze", a przynajmniej nie szybko :P /D
@ Tu się zgadzam raczej zamrze
Testy AI - dobry pomysł :D
Co stało się z Piotrkiem? Czy już definitywnie zakończyliście współpracę?
Póki co ma przerwę od YT :/ Czy wróci? Nie wiemy, fajnie by było, choć to musi być decyzja Piotrka i nie będziemy go o to cisnąć. Trzeba też sobie uczciwe powiedzieć, że ciężej mu się nagrywało niż nam, bo jednak mamy studio. Może z paleciokiem na ścianą, ale zawsze. To jednak inny komfort nagrywania niż trzymanie tego bajzlu w domu i wyciąganie pod nagrywki. Kiedyś pewnie mniej nas to ruszało, ale im człowiek starszy, tym mniej ma ochoty na takie zabawy :V Liczę, że jeszcze wróci czynnie na kanał, bo nam średnia bica poszybowała mocno w dół :( /D EDIT: Żeby też był jasny kontekst - ja i Michau jesteśmy z Wawy, a Pjoter z Krakowa :D
indeed.
W większości przypadków nie ma potrzeby przepisywania z FluentAssertions na Shoudly, która zmusiłaby firmy to kupowania licencji. Mogą po prostu zostać przy wersji siódmej. Jakie nowe killer ficzery mogą pojawić się w "bibliotece opakowującej ifa"? Ok, powiedzieliście to 3 minuty później, ale zostawiam dla zasięgów!
Cześć, aktualnie dostępny jest Prometheus 3.1.
🔗 Linki do newsów: devmentors.io/it-news/ep-14/
Ale uprościłeś mi życie z tymi search w repository! Fajny jest ten pomysł, źe po co mi ten domen w query który nie powinen zawierać biznesowej logiki?! ❤
tym wróżbitą kodu zostanie SonarQube 😆
Dopóki biznes nie chce za takie rzeczy płacić to nikogo to nie interesuje :D
Jest mega! Dzięki ❤
Tam gdzie wydajnoac nie jest istotna, tam nie trzeba potrafic takich rzeczy. Ale gdyby nie osoby znajace assemblera i c to python by nie istniał xD
Wg mnie warto nauczyć się jak działa masstransit choćby po to żeby zobaczyć czego będzie brakować jak już trzeba będzie zrobić własny ulep (i wtedy zobaczymy że jest tego w c… i nie warto). Moje podejście to zawsze startować z masstransit i zmienić tylko jeśli faktycznie nie będzie się dało obejść jakiejś abstrakcji.
"takim białkowym" 😂❤
Jeśli chodzi o scheduling to MassTransit wspiera też natywne mechanizmy Rabbita/Azure Service Busa itd
Fajne, przystępne i dowiedziałem się czegoś nowego. Dzięki Panowie!
MassTransit można skonfigurować tak, żeby nie opakowywał wiadomości w kopertę.
Tak, mozna iść w RawJson, powylaczac tworzenie topologii (zaleznie czy to producent czy konsument) plus wiedziec czego sie spodziewac w payloadzie. Anyway nie zmienia to myślę naszego podsumowania - narzedzie swietne i regularnie rozwijane i utrzymywane. Warto uzywac byle swiadomie. Nie zmienia to faktu, ze mechanical sympathy i tak jest co najmniej wskazane. 😉
@@DevMentorsPL Jakby tu napisać, żeby nie był cały elaborat :D. 1. Kontrakty - jak zmienisz to niezależnie czy MT czy raw mocno ryzykujesz. Jedynie przyrostowe zmiany są bezpieczne. Cała reszta zmian - i tak musisz wiedzieć co robisz - MT czy nie. 2. Wiele zespołów - różne technologie. a) Kto narzuca kontrakt? W MT to konsumer - bo on tworzy topologię. Więc argument, że konsumerowi nie spodoba się własny kontrakt jest trochę trudny do przełnięcia. Chyba, że mówimy o tym, że MT tworzy topologie (bo gdzieś jest konsumer, który ma ustowionego prefetch na 0??), ale chyba to już wysoki poziom kopania samego siebie tam gdzie boli.... b) Producent - tu wchodzi RawJson i znowu pytanie - kto dyktuje kontrakt? Zwykle to nie producent tylko konsumer więc jakiekolwiek zmiany i tak muszą być syncowane z teamem od consumera. W MT można publikować bezpośrednio na exchange albo queue. W środowiskach wielozespołowych i wielu technologii branie MT czy raw na pałę zawsze będzie bolało. Są scenariusze, gdzie w MT będą bolały trochę mniej. Ale prawdą jest, że w MT jest troche gotcha. Jak i w rabbicie (inaczej byście nie robili kursu ;)). No i nie słyszałem nic o całym resiliency (albo niewiele), które MT daje out-of-the box - retry, redelivery (no tak, z Hangfire lub Quartz), circuit breaker, kill switch, inbox/outbox pattern, reconnect do klastra on failure. Dawno z rabbit driverem nie pracowałem, ale jak ostatnio miałem tą przyjemnosć to nie umiał zmienić sobie noda i trzeba było samemu pisać handling na to. MT daje takie resiliency out of the box. Z drugiej strony to pewnie zamierzchłe czasy pracowania z kolejkami typu classic...więc może bullshit - don't know. Może zrobicie taki scenariusz w kursie? Nie chcę brzmieć jak fanboy MT, ale mam wrażenie, że nie wszystkie zarzuty i scenariusze były fair... Poza tym zajebistą robotę robicie, dzięki! Kursik wpadł, czekam na marzec.
Super materiał - pozdrawiam Panowie BTW wyciągnijcie Piotrka z szafy :)
czapka LP, masz u mnie +1000 do respektu :D
Dlatego ja odszedłem od webówki. Webówka poszła w złym kierunku. Jest masa gotowców, ludzie nawet nie wiedzą jak to działa, często nawet nie znają podstaw, ale są w stanie robić jakieś strony szybciej i taniej, więc zgarniają klientów. Kod zajmuje 10 razy tyle ile powinien zajmować, bo zawiera w sobie biblioteki, które zawieraja pierdyliard zbędnych funkcji, ale klient nie jest tego świadomy, a gdy się coś wykrzaczy to bida... Biblioteki w każdym języku mają sens, kiedy przygotowuje się je samemu i zawierają tylko to, co realnie dany programista używa. Obecnie ogarniam mikrokontrolery i nawet głupia funkcja zmieniajaca stan na wyjściu zawiera jakieś pierdoły, które zbędnie zajmuja kilkadziesiąt bajtów cennej pamięci. Dlatego lepiej zrobić to w asemblerze i zmieścić sie w jednym bajcie...
To idź do porządnej firmy, zatrudnij się w netflixie to będzie pracował nad poważnym systemem, a nie polskich januszexach które klepią wordpressy.
czapke z daszkiem jeszcze jakos zrozumiem, ale wytlumaczy mi ktos o co chodzi tym youtuberom z siedzeniem w domu w zimowej czapce?
Zimno
@DevMentors w jakim hackathonie braliście udział?
timeline zwiększy oglądalność...
Patrzymy też na wydajność rzeczy w kontekście ich funkcjonalności. Wystarczy logicznie potrzeć co było oferowane na sprzęcie w dawnych latach i co było możliwe (przecież jak komputery były ziemniakami to jednak powstawały dobre gry, a programy miały dalej dużo funkcji) a jak jest teraz. Mamy sprzęt z kosmosu, można na nim często stawiać LLM, robić cuda, tymczasem coś tak prostego (w porównaniu do faktycznie złożonych obliczeniowo rzeczy) jak wyświetlenie IDE zajmuje zdecydowanie za długo. Już nawet nie chcę się silić na porównanie szybkości procków z dawnych lat do obecnych i o ile tysięcy % są szybsze, a nie potrafimy (jako programiści) tego wykorzystać, tylko staramy się zrobić wszystko aby było łatwiej programowalne.
Format jest świetny a pogadanki naprawdę wartościowe, brakowało mi takiego kanału jak wasz w polskim języku. Robicie świetną robotę :)
Od kiedy ilość funkcjonalności i jakość produktu ucina się na rzecz terminów i pieniędzy, a nie na rzecz performance dzieje się to o czym była mowa w podcaście z Casey. Przez większe pieniądze w branży obniżyliśmy próg wejścia do branży aby móc przerobić zapotrzebowanie, często kosztem jakości. Póki klientem jest zwykły człowiek to można nie dbać o wydajność, niezawodności, byle żeby być pierwszym na rynku z funkcjonalnością X. Jak klient jest przyzwyczajony do słabej jakości za kwotę X to po co to polepszać (patrz cały Microsoft, ludzie płacą bo alternatywy nie są popularne/dużo lepsze). Trochę patrzycie jednostkowo na ten cały problem. "Ja robię x w pracy i tam nie ma problemów, że nie znam tego czy tamtego". No trochę tego nie wiesz, bo właśnie nie znasz. Dalej są branże gdzie dba się o jakość takich rzeczy i pieniądze nie są jedynym wyznacznikiem (np. lotnictwo). To jest trochę tak, że Casey jest na tym rynku dużo dłużej, widział sytuację przed wielkim otwarciem progu wejścia do IT i po. Widział jak coś robione z chęci i pasji przerodziło się w pogoń za terminami.
Chyba pomyliliście Hip-hop z IT
Sry ziom, następnym razem będzie koszula w krate, flanelowa.
Nie wiem skąd ta niechęć i oburzenie programistów jak usłyszą że muszą poznać budowę sprzętu. W materiale i w komentarzach przewija się coś w stylu „pisze crudy więc po co mi to a wgl biznes tego nie chce i płacą mi za feature”, tutaj jest trochę nieporozumienie bo to że optymalizacja nie jest najważniejsza nie znaczy że można pisać jakkolwiek. Casey mówi tyle że warto wiedzieć jak działa cpu jak działa cachowanie jak kosztowne jest uderzanie do ramu itp. Kiedy programista jest tego świadomy to może czasem zamiast class użyć struct, zamiast list użyć array, czasem uprości jakieś obliczenia biznesowe żeby było mniej dzielenia itp. Sumarycznie ilość kodu i czasu jest taka sama ale wydajność zauważalnie lepsze. A zgodnie z zasadą 80/20 nie trzeba poświęcać kilku lat żeby studiować budowę pamięci żeby w tym samym czasie pisać wydajniejszy kod. No i też nie płacą nam za wydajniejszy kod o 30% ale chyba na tym polega rozwój że w podobnym czasie potrafimy napisać lepszy kod.
Z tego co wiem to Casey pisze w C, więc tam jest zdecydowanie więcej możliwości na ewentualną poprawe wydajności chociażby pod względem zarządzania pamięci. W aplikacjach webowych/biznesowych i tak przeważnie bottleneckiem jest baza danych, więc największy zwrot pod kątem wydajności by był z lepszej znajomości SQL/bazy danych.
Nie no zdecydowanie nie twierdzimy, że biznesówki == "nie musi działać szybko, byle była wartość" :D Myślę, że tutaj jednak sporo zależy od skali projektu oraz ilość ludzi, którzy nad nim pracują. Więcej osób to jednak często utrata pełnej kontroli nad tym co wpada na produkcję. Zdecydowanie powinniśmy pisać kod możliwe dobry jakościowo (choć często też clean code != fast code i wspominaliśmy o tym przy DDD trilemma) i celować w jego poprawę nawet zaczynając od tak małych rzeczy jak "boy scout rule". Pełna zgoda co do tego o czym napisałeś " Kiedy programista jest tego świadomy to może czasem zamiast class użyć struct, zamiast list użyć array, czasem uprości jakieś obliczenia biznesowe żeby było mniej dzielenia itp. Sumarycznie ilość kodu i czasu jest taka sama ale wydajność zauważalnie lepsze. " Problem z naszych obserwacji jest taki, że szczególnie w dużych systemach problemy wydajnościowe zaczynają się dużo wyżej. A to ktoś zrobi Task.Result i zrobi sync-over-async co doprowadzi na IIS do thread-starvation, a to ktoś napisze zapytanie, które powoduje N+1 i rezultat pobiera się 30s itd. Takie problemy paradoksalnie dużo łatwiej wykryć i poprawić (bo często są customer-facing), a pozostawione stanowią realne problemy dla firm, które za swoje rozwiązania kasują słono :D My oczywiście komentujemy to z punktu web dev, który nijak się ma do innych odnóg programowania, gdzie często wydajność jest "first-level citizen". Czy w aplikacjach webowych tak jest? Ja śmiem wątpić, co nie znaczy, że jest mi z tym dobrze ;) /D
@@DevMentorsPL Też cięzko sie nie zgodzić, generalnie to kazdy mógłby wymienić jakiś kawałek systemu i powiedziec że jest ważny i kazdy bedzie miał racje. Problem który ja chciałem zaadresowac w komentarzu byl taki że programisci czestą usprawiedliwiaja ignorancje własnie zdaniem ze "wydajnosc nie jest kluczowa". A moim zdaniem to własnie nie oznacza ze mozna położyć lache na kod. Moim zdaniem to oznacza tyle że skoro optymalizacja nie jest na pierwszym miejscu to zamiast C moge sobie wybrać Jave, Pythona czy nawet JS i w technologi którą wybiorę i tak staram sie pisac najbardziej wydajny kod jaki moge. "Takie problemy paradoksalnie dużo łatwiej wykryć i poprawić...", "Czy w aplikacjach webowych tak jest? Ja śmiem wątpić, co nie znaczy, że jest mi z tym dobrze ;)" - absolutnie nie dyskutuje z priorytetami, bardziej z podejsciem do produktu który wytwarzamy. (pisze z perspektywy nerda który lubi programowanie i niestety osoby która gasi pozary wydajnosciowe w apkach webowych zeby było smieszniej) Czy jeśli bierzemy 150-200 zł/h to czy kod który piszemy moze miec tak trywialne błędy? "..dużo łatwiej wykryć i poprawić.." tylko po co? Czy nie powinnismy dazyć w zespole zeby nie było takiej potrzeby? (mówie tu o takich trywialnych problemach np. jak wyzej wspomniałeś n+1). "często też clean code != fast code" - paradoksalnie jak czasem musze cos poprawić to doprowadzenie kodu do clean code jest połową sukcesu :D
40 minuta - w wyniku badań Dunninga i Krugera nie było wniosku, że początkujący myślą, że to wszystko jest proste i wiedzą wszystko, tak jak pokazuje to popularny wykres. Prawdziwy wykres można znaleźć np na wikipedii en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect i pokazuje że początkujący rzeczywiście troche zawyżają swoje wyobrażenie o siebie a eksperci zaniżają... ale to nie jest tak ktoś słaby wyobraża sobie siebie jako geniusza. Wykres pokazuje bardziej, że uczeń mający szanse na maksymalnie 1 lub 2, myśli że ma szanse na 3, uczeń mający duże szanse na 5, akceptuje że może dostać 5-, a uczniowie którzy zazwyczaj dostają 3 i 4, tacy średniacy, będą troche zawyżać oczekiwane wyniki, ale mało.
Dlatego nigdy nikt nie był w stanie zachęcić mnie do tego edytora, a wszystkie zajęcia z c#/c++ na studiach i kursach sprawiały, że chciałem rozwalić monitor.
Zacząłem oglądać ten odcinek debugując Terraforma do Grafany. Wersja 10.4 ma Buga przy notification policy. Trzeba zaktualizować całą Grafanę do wersji 11.0.
Co do gamedevu to widać ostatnio bunt ludzi jeśli chodzi o kiepską optymalizację i niską jakość premierowych gier więc to nie jest tak że ludzie wolą mieć "szybko" dostarczoną wartość nawet kosztem innych rzeczy. Kto nie narzekał na slacka albo teamsy, które się zawieszają, wiadomości nie potrafią dochodzić i jeszcze wszystko koszmarnie muli i żre dużą ilość ramu? Wy prowadzicie dyskusje z perspektywy webdevu, a nie oprogramowania jako takiego. Webdev jest specyficzny, dużo problemów można "ukryć" chmurą i po prostu dobrymi serwerami. Natomiast zwykłe oprogramowanie użytkowe instalowane na komputerach ludzi to trochę inna para kaloszy. Bo kiepsko napisane oprogramowanie przyczynia się do postarzania sprzętu i generowania elektrośmieci ale też po prostu powoduje, że komfort użytkowania spada. Dlaczego ludzie lubią apple? Bo wszystko działa, jest całkiem wydajne i stabilne. Casey nie mówił o webdevie, dla webdevu rzeczywiście nie ma znaczenia optymalizacja algorytmiczna czy nawet pamięciowa bo wszystko można wrzucić na jakaś szybką chmurę z xeonami i nie wiem 64-128gb ramu na maszynie, problemy wydajnościowe można wyskalować horyzontalnie. Taniej jest kupić dobry sprzęt niż płacić specjalistom za dobrze zoptymalizowane oprogramowanie a w webdevie kluczowa jest szybkość działania usługi a nie jej wymagania sprzętowe. Co innego cała reszta; gry, aplikacje systemowe, systemy operacyjne, aplikacje użytkowe instalowane na urządzeniach, iot i tak dalej.
Bo nikt nie optymalizuje,tylko robi z klocków.Nie ma już nowego oprogramowania.Oprogramowanie jest pisane w C,C++,albo C#.Biznes chce mieć szybko,Nikt nie bawi się w przepisywanie głównych procedur w assemblerze,bo nikt za to nie zapłaci.
fajnie dla programistow byloby sie bawic z performancem, unsafe c#, assemblery etc ale skoro biznes nie da na to zgody (czyli nikt za to nie zaplaci) to nikomu sie nie oplaca poswiecac czasu na takie rzeczy, skoro moze przyjac dawke wiedzy ktora moze mu zapewnic benefity w pracy
Pytanie czy ma to sens w ogóle, skoro meta oficjalnie ogłosiła, że pod koniec 2025 będą zwalniać programistów, bo AI radzi sobie już na tyle dobrze.
@@Distx87 xD