Dwa lata temu napisałem podobnego posta o NDC 2011. Rok temu głowy do tego nie miałem, ale teraz ponownie podzielę się wrażeniami z kilkunastu obejrzanych sesji z NDC, które to wydarzenie generuje wystarczająco dużo treści aby wypełnić sobie w interesujący sposób wakacyjne wieczory.
Paul Stack – Having its ass kicked by Puppet and PowerShell since 2012 (http://vimeo.com/68226718)
Fajna sesja o ciekawym narzędziu starającym się (z powodzeniem) wyeliminować tzw. “run book”, czyli wielostronicowe instrukcje mówiące “jak przygotować system aby nasz projekt na nim zadziałał”. Puppet, bo o nim mowa, jest w stanie zautomatyzować przerażającą liczbę ręcznych kroków wykonywanych przez wielu z nas na każdej nowej maszynie, a szczególnie tyczy się to osób mogących się pochwalić stanowiskiem “release managera”, czy innym adminowym dziwactwem. Lepsze to niż baty, z powershell się integruje, a jednocześnie potrzebuje o wiele mniej (czystszego) kodu niż goły PS.
Ciekawostka: będzie można obejrzeć to na żywo na nadchodzącym wielkimi krokami DevDay:).
Ocena: 4/6 (bo narzędzie fajne, ale sesja momentami trochę nudna)
Scott Allen – The Abstractions of AngularJS (http://vimeo.com/68215604)
Od jakiegoś czasu intensywnie konsumuję dość namiętny związek z Angularem i miałem nadzieję, że ta sesja pomoże mi w stawianiu pierwszych kroków. I szczerze mówiąc – zawiodłem się. Liźniemy tu trochę podstaw, zobaczymy co to kontrolery i widoki, jak działa dependency injection oraz usłyszymy kilka słów o dyrektywach, ale jakieś to takie… zamotane. Moim zdaniem dla początkujących będzie to zbyt trudne, a dla zaawansowanych – zbyt nudne.
Ocena: 3/6
Anthony van der Hoorn – Web diagnostics with a Glimpse in ASP.NET (http://vimeo.com/68383351)
Ni mniej ni więcej tylko demonstracja naprawdę niesamowitej biblioteki jaką jest Glimpse. Zainstalowanie paru nugetów daje w aplikacji webowej połączone możliwości zarówno Fiddlera jak i UberProfilera czy MiniProfilera oraz masę innych rzeczy. A jak się okazuje – dopisanie własnych zakładek diagnostycznych do wysuwanego panelu jest banalnie proste. Po prostu: nie ma powodu, aby nie używać.
Trochę zabawne jest podejście prelegenta do samego siebie, który auto-uwielbieniem momentami przebija chyba nawet Torvaldsa:). Mimo to:
Ocena: 6/6
Jimmy Bogard – Holistic testing (http://vimeo.com/68390508)
Dla niezaznajomionych z testami – potencjalna perełka. Ciekawe zastosowania xUnit i Autofixture. Nie znajdziecie tam nic “mind-blowing”, ale dla paru interesujących spostrzeżeń odnośnie testów warto obejrzeć.
Ocena: 4/6
David Fowler, Damian Edwards – Under the covers with ASP.NET SignalR (http://vimeo.com/68383353)
Jeśli ktoś nie zna jeszcze SignalR – to niech pozna. Ale nie ma to większego znaczenia w kontekście tej prezentacji. Zobaczenie ile kodu robiącego jakie niesamowite rzeczy można napisać w ciągu jednej godziny na żywo na scenie powoduje dosłownie opad szczęki. Podczas tego seansu aż się na twitterze trochę za mocno zachwycałem, ale po prostu żadna techniczna sesja jaką w życiu widziałem nie zrobiła na mnie tak wielkiego wrażenia. Zdecydowane “must-watch”.
Ocena: 6/6
Venkat Subramaniam – Succeeding with TDD: Pragmatic Techniques for effective mocking (http://vimeo.com/68383352)
Chciałem zobaczyć jakieś porady mówiące “jak pozbyć się z kodu mocków”. Zobaczyłem użycie Rhino Mocks (ktoś tego jeszcze w 2013 roku używa?) i Fakes (którego nie akceptuję, o czym już parokrotnie pisałem) w połączeniu z MS Test (bleh). Wszystko to po to, aby zademonstrować baaaardzo “podstawowe podstawy” pisania mocków.
Większość przewijałem, strata czasu.
Ocena: 2/6 (nie 1 bo jednak nie wyłączyłem po 5 minutach)
Christian Horsdal – Test Driving Nancy (http://vimeo.com/68378951)
Akurat jestem w temacie, bo w testach Nancy babram się od paru miesięcy. “Babram” to co prawda złe słowo, ponieważ jest to tam rozwiązane bardzo fajne, ale też dzięki temu nie potrzeba zbyt wiele czasu aby to zagadnienie ogarnąć. Może też z tego powodu nie dowiedziałem się praktycznie niczego nowego. Wszystkiego tego można nauczyć się po prostu czytając dokumentację i zajmie to mniej niż godzinę
Ocena: 2/6 (dla znających Nancy) lub 4/6 (dla reszty)
Joel Spolsky – The Science of Communities Behind Software (http://vimeo.com/68200924)
Całkiem niezła luźna sesja o tym, jak budowano Stack Overflow i na czym skupiano się podczas tego procesu. Można posłuchać jak ważne jest odpowiednie zidentyfikowanie odbiorców naszego systemu. Jednak z powodu wielu rekomendacji tego właśnie wystąpienia spodziewałem się po nim trochę więcej. Tak naprawdę nie ma tu żadnych rewelacji. Oglądało się całkiem przyjemnie, ale w głowie nic nie zostało… i nie wiem co można z tego wynieść. Spora część to po prostu omówienie działania SO.
Ocena: 3/6
James Shore – Test-Driven JavaScript Master Class (http://vimeo.com/68383288)
Testy JavaScript to kolejny z poznawanych właśnie przeze mnie tematów, ale niestety i tym razem wybrana sesja nie pomogła mi zbyt wiele. Przez prawie cały czas miałem wrażenie, że wszystko jakoś mi się… dłuży. Ile można słuchać o tym, jak przetestować rysowanie linii w JS? Przestałem oglądać po 40 minutach.
Ocena: 2/6
Hadi Hariri – Being an Anti-social Geek is harmful (http://vimeo.com/68327405)
W skrócie: Hadi mówi samą prawdę i tylko prawdę:). O nas, programistach. Ciekawe spostrzeżenie które pozostało mi w głowie: “nie jest tak, że nie umiemy się komunikować, my po prostu nienawidzimy ‘small talk'”.
Mimo wielu fajnych refleksji zabrakło mi tutaj jakiegoś “bigger picture”, motywu przewodniego. Przez większość czasu obserwujemy dość chaotyczne skakanie po tematach. W sumie całkiem ciekawe wystąpienie, ale rewelacji nie dostrzegłem. Chociaż po obejrzeniu przeszło mi przez myśl usunięcie konta na facebooku:).
Ocena: 4/6
Ian Cooper – TDD, where did it all go wrong (http://vimeo.com/68375232)
Klepię i klepię ten temat testów na wszelkie możliwe sposoby, oglądając wszystko co wpadnie mi w ręce. Efektem jest to, że coraz trudniej jest mi zaoferować coś ciekawego. I tym razem autorowi również się to nie udało. Ot, przedstawione zostały dobrze znane problemy jakie w dzisiejszych czasach mamy z testami… ale nie dopatrzyłem się porad jak sobie z nimi radzić. Właściwie nic nie pozostało mi w głowie oprócz dość kontrowersyjnej tezy, że BDD > TDD.
Ocena: 3/6
James Shore – Rigorous, Professional JavaScript (http://vimeo.com/68334907)
Jest to druga sesja tego prelegenta, którą oglądałem. Pierwsza zupełnie mi nie podeszła, ale dałem szansę… i nie żałowałem. To jest właściwie to co chciałem zobaczyć: jak podchodzić do pisania JavaScript, ale wychodząc nawet poza kwestie samego kodowania. Jak zautomatyzować build? Narzędziem Jake (czyli Javascript Make), które ma nawet swoje helpery dla .NET (podobnie jak Rake ma albacore). Jak przeprowadzać statyczną analizę kkodu? A jslintem i jshintem, które to kroki można dodać do automatycznego builda. Jak testować JS w różnych przeglądarkach? A zapoznać się trzeba z Karmą (wcześniej Testacular), które to narzędzie zrobiło na mniej największe wrażenie ze wszystkich przedstawianych projektów. Na koniec dostajemy skróconą wersję drugiej sesji, czyli TDD w JS.
W skrócie: sam miód. Dodatkowo warto pewnie zerknąć na screencast tworzony przez Jamesa: http://letscodejavascript.com/.
Ocena: 5/6
Rob Conery – The Javascript Inferno – A Decent Into the Client-side MVC Netherworld (http://vimeo.com/68327248)
Wraz z Robem możemy wybrać się w podróż po frameworkach javascript obiecujących żywot mlekiem i miodem płynący. A konkretnie poznać jego doświadczenia z pracy z trzema z nich: Knockout, Backbone i Angular. Rob wykona parę prostych zadań w każdym z tych frameworków zwracając uwagę na ilość koniecznego do napisania kodu oraz różnice w podejściu do rozwiązania tego samego problemu.
Finalnie: jestem bardzo kontent, że stając przed dylematem wyboru biblioteki dla siebie postawiłem właśnie na Angulara. A Backbone… to wygląda po prostu szalenie. Jeśli kompetencje Roba w tym zakresie stoją faktycznie na jakimś sensownym poziomie to nie wiem jak ktokolwiek o zdrowych zmysłach może tego używać?
Ocena: 5/6
Jon Skeet – C# 5 (http://vimeo.com/m/68390480)
Szczerze mówiąc nie używałem jeszcze async/await z C# 5.0 więc to była moja teoretyczna utrata asynchronicznej błony. Na samym początku Jon powiada: async != parallel! Asynchroniczność wcale nie polega na wystartowaniu miliarda wątków, wręcznie przeciwnie. Poprawnie zaimplementowana asynchroniczność pozwala na na “lots of concurrency with very few threads”.
Generalnie jeśli ktoś nie wie nic o async to można obejrzeć, ale też nie jest to nic specjalnego. Dużo kodu, który – o dziwo – nie został moim zdaniem wystarczająco dobrze wytłumaczony. Albo to ja po prostu rdzewieję:).
Ocena: 3/6
Kevlin Henney – The Architecture of Uncertainty (http://vimeo.com/68331684)
Ot, luźne refleksje o pragmatycznym i świadomym podejściu do architektury systemów. Plus trochę treści o tym jak zmieniało się (i ciągle się zmienia) postrzeganie metodyk zaprzągniętych w proces wytwarzania oprogramowania. Jeden cytat został mi w głowie: “walking on water and developing software from a specification are easy if both are frozen”. Bardzo fajny, ale Kevlin wszystko potem psuje polemizując z nim:). Na szczęście podaje sensowne argumenty.
Ocena: 4/6
Kevlin Henney – Functional Programming You Already Know (http://vimeo.com/68327245)
“to iterate is human, to recurse is divine” – i wszystko jasne:). Niestety całość nie podobała mi się tak bardzo jak ten cytat. Parę historycznych ciekawostek, ale tak naprawdę nic na tyle interesującego, żeby zostało w głowie czy choćby w najmniejszym stopniu zmieniło moje postrzeganie programowania.
Ocena: 2/6
Robert C. Martin – Principles of Component Design (http://vimeo.com/68236438)
To chyba największe dla mnie zaskoczenie jeśli chodzi o tegoroczne NDC, ponieważ sesja Uncle Boba mi się bardziej nie podobała niż podobała! Oczywiście można posłuchać sporo interesujących historycznych anegdotek, ale ogólnie… nie znalazłem tam raczej niczego, co dla kogoś z odrobiną zdrowego rozsądku byłoby odkrywcze.
Ocena: 3/6
Ot i do końca mojej przygody z NDC żeśmy dotarli. Jak widać – ładne parę wieczorów przed TV spędziłem, ale też niestety kilka z nich chętnie bym odzyskał, bo większość sesji, jak to mawiają, zada nie urywa. Mam nadzieję że ten miniprzewodnik pomoże komuś odfiltrować to co oglądania niewarte i skupić się na rzeczach ciekawszych, czyli… innych sesjach z NDC! A spieszyć się trzeba bo Oredev z kolejną porcją widełonagrań już niebawem:).
Zacna lista! Dzięki za namiary na SignalR – nie widziałem tego wcześniej, a faktycznie dają czadu chłopaki. Venkat słabo tym razem, dużo lepiej w zeszłym roku: http://vimeo.com/43612851 (dałbym 4/5). Dorzucę jeszcze b. zabawne, choć średnio edukacyjne “Tom Dale, Peter Cooper and Rob Conery; Cage Match – EmberJS vs. Angular” (http://vimeo.com/68215606). Ciekawostki dla starych pierników jak ja “Olve Maudal: Deep C++” (http://vimeo.com/68390478). Ja widziałem inne wcielenie Uncle Boba, chyba lepsze (daję 4+ na 5): “Clean Architecture and Design” -> http://vimeo.com/68215570. Poza tym: “Paul Betts: Effective GitHubbing: The GitHub Flow” 4/5