Venkat Subramaniam

Bio:

Dr Venkat Subramaniam jest założycielem Agile Developer Inc. i wykładowcą kontraktowym na Uniwersytecie w Houston. Venkat pomaga swoim klientom w przyjęciu praktyk agile i ostrożnych technologii. Trenował i był mentorem tysięcy programistów na całym świecie, jest też częstym gościem na międzynarodowych konferencjach. Co więcej, jest autorem: „. NET Gotchas”, współautorem wielokrotnie nagradzanego ” Practices of an Agile Developer „, autorem książki „Programming Groovy” i „Programing Scala”. Jego najnowsza książka nosi tytłuł: ” Programming Concurrency on the JVM—Mastering Synchronization, STM, and Actors (Pragmatic Bookshelf)”.

Prezentacja 1:

Multicore Complexity na JVM

Coraz większa popularność procesorów multi-core obudziła pytanie: Jak skutecznie wdrożyć aplikacje wielowątkowe na platformie Java? Znane podejście opiera się na tworzeniu wątków i zarządzaniu dostępem do nich za pomocą zsynchronizowanych semaforów. Takie podejście jednak wymaga dużego nakładu pracy, wiąże się też z niepewnością. Czy oznaczyłeś odpowiednio metody jako zsynchronizowane? Czy zaznaczyłeś odpowiednie pola jako podatne? Czy odpowiednio zbudowałeś nawzajem się wykluczające fragmenty kodu? Czy jest możliwość wkradnięcia się do kodu miejsc, w których aplikacja się zakleszcza? Podczas tego wykładu dowiesz się o alternatywnych sposobach walki ze współbieżnościami w JVM. Pierwszy sposób oparty jest na podejściu funkcjonalnym, inny na oparciu o model aktorów, w celu uniknięcia martwych stanów. To pozwala na usunięcie problemu u samego dna ponieważ skoro dane nie mogą się zmienić nie ma problemu rywaizacji z którym normalnie trzeba się zmierzyć. Kolejnym podejściem do problemu jest wykorzystanie metod z Clojure, w których kluczem jest zabezpieczenie dostępu do zmiennych danych bez wykorzystania semaforów,lecz poprzez wykorzystanie ograniczeń tranzakcji. STM (Software Transactional Memory) pozwala na wykorzystanie modelu tranzakcji przypominającego bazę danych w blokach pamięci. Podczas tej prezentacji omówimy wady I zalety każdego z tych podejść, oraz zastanowimy się, jak skutecznie je wdrażać.

Talk 2:

Efektywna Java

Java jest dobrze ugruntowanym językiem, który funkcjonuje już od ponad dekady. Nie mnie jednak, programowanie nadal bywa wyzwaniem. Niektóre koncepty i funkcje są zdradliwe, a kiedy na nie natrafisz, nie ma kompilatora, który mógłby ci pomóc. Podczas tej prezentacji przyjrzymy się różnym koncepcjom, które możesz używać programując w Javie. Omówimy związane z nimi problemy oraz jak możesz poprawić jakość swojego kodu. Skupimy się też na koncepcjach, których zdecydowanie powinieneś unikać.

Warsztaty:

Myśleć i programować funkcjonalnie

Programowanie funkjconalne pojawiło się już jakiś czas temu, jednak na JVM urosły w siłę wraz z pojawieniem się języków takich jak Scala, Clojure, Groovy i JRuby. Programowanie w funkjconalnym stylu nie polega na wybieraniu zestawu składni, jest to myślenie w danym idiomatycznym stylu, przy użyciu zestawu konstrukcji. Najlepszym sposobem, by się tego nauczyć, jest praktyka. Na tych warsztatach podejmiemy się 10 różnych zadań, omówimy sposób, w jaki je wykonać za pomocą wszystkim znanego stylu, potem natomiast, jak zrobić to w stylu funkcjonalnym. Następnie wdrożymy nasz projekt dla każdego z zadań przy użyciu języka, który zapewnia funkcjonalny styl programowania na JMV.

Dodatkowe informacje:

Uczestnicy będą pracować w parach. Na parę potrzebny jest jeden laptop.

Wymagane jest następujące oprogramowanie:
JDK, języki takie jak: Scala, Groovy, Clojure, a najlepiej IDEs.

Limit uczestników: 30



  • jdd

Organizator

Złoci sponsorzy

  • e-point
  • j-labs

Srebrni sponsorzy

  • Lumesse
  • Luxoft
  • SII

Sponsorzy

  • Redhat
  • WITS

Sponsor Afterparty

  • WITS

Patroni medialni

  • helion
  • Polish JUG
  • Poznan JUG
  • SDJ