Functional Programming Patterns with Java8 by Victor Rentea

Поділитися
Вставка
  • Опубліковано 28 чер 2024
  • Subscribe to Devoxx on UA-cam @ bit.ly/devoxx-youtube
    Like Devoxx on Facebook @ / devoxxcom
    Follow Devoxx on Twitter @ / devoxx
    After leading 2 projects making heavy use of Lambdas and Streams, counseling many others at IBM, and teaching hundreds of developers at University and as an Independent Trainer, Victor will prove several best practices, patterns and anti-patterns he distilled over the years. All via a series of live coding exercises, like you've probably never saw in your life!
    You will hear about: Bloated Lambdas, A Happy Predicate, Stream Wrecks, How to Kill The Biggest Bug, Monads, Passing-a-block, The Loan Pattern, and 5 Ways to Implement Type-Specific Logic. Of course, as a Clean Code Maniac, Victor will always strive for maintainable, readable, elegant code. So you'll see a lot of refactoring.
    PS: You know, some Joe will maintain your Java8 code at some point. So let's just hope Joe would be a nice safe guy...
    Victor Rentea
    From Independent Trainer
    Victor is one of the top Independent Technical Trainers of his country (victorrentea.ro) - he mentored, trained and coached almost 1000 developers of top companies. At IBM, even though they call him a Lead Architect, he loves to write code each day: he's maniac about Clean Code, so prepare for some hard-core refactoring. Victor is Associate Professor of Politehnica University of Bucharest and an active Java community member: organized the largest 3 JUG meetups in Romania. He's a regular conference speaker. His live-coding sessions are insane, lightning-fast but well crafted, full of enthusiasm, insights and take-away tips. Things that he learned the hard way during his 14 years of experience. You'll love his sessions!
  • Наука та технологія

КОМЕНТАРІ • 80

  • @vs4vijay
    @vs4vijay 5 років тому +40

    This guy showed us all software methodology used in real-world :p
    - IDE Driven Development
    - TERROR Driven Development
    - Copy-Paste Programming
    - Jesus Driven Development
    Great Talk!!! I left Java for Ruby few years back, now after watching this, I wanted to try Java again.

  • @MrZqkuro
    @MrZqkuro 5 років тому +63

    epic "Oh by the way, I'm using Eclipse"

  • @Moonz97
    @Moonz97 5 років тому +37

    This is an informative yet hilarious talk. Love this guys way of teaching!

  • @vladanr74
    @vladanr74 4 роки тому +4

    Extremely high energy that rubs off even through this medium. The epitome of passion. Folks from all walks of life can learn from this guy.

  • @tmustafad
    @tmustafad 5 років тому +35

    Oh my god. amazing and explanative talk. thank you my friend. maybe the best functional programming talk I have ever watched!

    • @aorusaki
      @aorusaki 4 роки тому +1

      Legit!!!!!! No bullshit mathmetical crap. No "a monad is a monoid of in the category of endofunctors" BS. Just straight, clear, legit usecases and legit solutions that so happen to be functional!

  • @jean4j_
    @jean4j_ Рік тому +1

    One of the greatest technical conferences I have ever seen!
    Not just a very skilled Java developer, but also a showman!
    Impressive typing speed as well

  • @CrapE_DM
    @CrapE_DM 5 років тому +7

    Despite learning almost nothing, I really enjoyed this talk. Very intense.

  • @manishtripathy1549
    @manishtripathy1549 5 років тому +4

    One of those best talks I have ever heard. Truly informative. Purely amazing!

  • @lucidjade
    @lucidjade 4 роки тому +2

    This dude is absolutely insane. I love it.
    The lessons here are directly applicable at my current job. Let the refactor begin.

  • @madhanganesh1
    @madhanganesh1 5 років тому +3

    Such a lively and informative talk.. so nice to learn from you.

  • @ayanSaha13291
    @ayanSaha13291 5 років тому +2

    A big thank for this talk.

  • @memoriasIT
    @memoriasIT 3 роки тому

    What an awesome talk by him, really enjoyed it!

  • @vrentea
    @vrentea 5 років тому +3

    Check out my other talks on www.victorrentea.ro/#talks

  • @sephyshen2510
    @sephyshen2510 5 років тому +5

    the presentation is very helpful. provide several ways to improve my code. thanks a lot.

  • @waqasrana7891
    @waqasrana7891 5 років тому +11

    Awesome speaker, you did a good job

  • @ckavi2647
    @ckavi2647 3 роки тому

    learned and laughed. I enjoyed this presentation. Victor's energy is amazing.

  • @michaelident8804
    @michaelident8804 5 років тому +1

    Sticker driven talk... liked it!

  • @lts8683
    @lts8683 Рік тому

    I really enjoyed watching this talk

  • @shubhkhushi3826
    @shubhkhushi3826 5 років тому

    Very inspiring programmer. I am following vids on this channel quite often but you made me subscribe to the channel. Thanks for the wonderful compilation.

  • @maycon475
    @maycon475 5 років тому +1

    Excelent. Thanks man!

  • @adilhilmi8376
    @adilhilmi8376 3 роки тому

    Great presentation combining learning and fun. Thank you :)

  • @thebrightestsun4685
    @thebrightestsun4685 5 років тому +4

    The guy is hilarious! Enjoyed the talk.

  • @jvjohn
    @jvjohn 4 роки тому +3

    Nice Job. Thanks. I'll go through it slowly again How is he doing the Auto-typing. (Noticed that the Eclipse Editor Cursor is on top but typing happening on bottom.) This will come handy for presentation.

  • @weijianduan6750
    @weijianduan6750 Рік тому

    This is just just amazing...! Great great talk

  • @samueldominguez9859
    @samueldominguez9859 Рік тому

    this is my favorite talk!

  • @gautamawekar1
    @gautamawekar1 5 років тому +2

    good tips!! At the same time have we discovered the fastest typist in the world?

  • @mrfranzose
    @mrfranzose 5 років тому +4

    That very case when I hit “like” even before the video has ended.

  • @rpiitkgpian
    @rpiitkgpian 4 роки тому

    Great presentation.

  • @jinxblaze
    @jinxblaze 4 роки тому +1

    I've seen like 4 videos of this guy of 1 hour each and I'm pretty sure I can introduce him on any stage with all his history and credentials xD

  • @lacigoldude
    @lacigoldude 5 років тому

    Great talk!

  • @JimmiJohnJunnior
    @JimmiJohnJunnior Рік тому

    That unchecked consumer is realy useful.

  • @davidgg8462
    @davidgg8462 4 роки тому

    thanks a lot , very good

  • @mariamaldonado9268
    @mariamaldonado9268 5 років тому +2

    I loved this man, so friendly talk and informative. I've learned a lot today. :D .. I want a sticker too!!

  • @andrewallbright658
    @andrewallbright658 5 років тому +5

    Excited to watch this talk. Usually I wait to post until after I watch a video but in this case, I'm the first view and I do have to declare... First!

  • @xutiTrinh
    @xutiTrinh 2 роки тому

    I think with Java 8 now it is time to work again with Legacy code!
    Soooo much experienced

  • @stephankolle9705
    @stephankolle9705 5 років тому +3

    I like your style

  • @berkk1993
    @berkk1993 5 років тому +1

    Awesome

  • @ReaktorDTR
    @ReaktorDTR 5 років тому +1

    How did he draw lines over the IDE?

  • @morkhoudia9
    @morkhoudia9 5 років тому +2

    Oh my good, I still love Eclipse forever

  • @BrianPondiGeoGeek
    @BrianPondiGeoGeek 3 роки тому

    Amazing

  • @OLApplin
    @OLApplin 4 роки тому

    I was wondering if what I was thinking about for the last few months were crazy ... I'm glad that someone else with more experience confirms that I'm not crazy. Were is the Monad interface in java ? :(

  • @andreasalme6701
    @andreasalme6701 3 роки тому

    What if the Type is being set in runtime? Add a predicate to the enum constructor and then map to the algo after?

  • @ikirachen
    @ikirachen 4 роки тому

    greate lecture by the way

  • @mohammadtorabipour5843
    @mohammadtorabipour5843 3 роки тому

    brilliant

  • @badbaboye
    @badbaboye Рік тому

    Can’t appreciate it more

  • @aorusaki
    @aorusaki 4 роки тому

    A great professor, too, I bet!!!
    Also i looove how he doesn't use any pretentious monoid/higher level math bs that has little to do with actually solving problems.

  • @UCTNX4PiSl496AhgUyGlB5wg
    @UCTNX4PiSl496AhgUyGlB5wg 3 роки тому

    I wish , Java will come with built-in alternative to Lombok. Something like case classes in scala.
    Bcoz when we think from server less point of view, adding too many dependencies causes cold start issue.

  • @Feelyourbodyallways
    @Feelyourbodyallways 4 роки тому

    How can you use that BiFunction-solution when you don't have the ability to change the enum class? Such when you use another library fo example

    • @xutiTrinh
      @xutiTrinh 2 роки тому

      Could we use adapter pattern to apply on it?

  • @mithunkumar-hs6ni
    @mithunkumar-hs6ni 5 років тому +4

    this is how we should keep audience active

  • @arunmenon7823
    @arunmenon7823 5 років тому +1

    Epic

  • @Kobayashhi
    @Kobayashhi 4 роки тому +2

    9:00 he's the Art Tatum of keyboard typing. You can`t seven see his fingers moving yet he's firing code faster than Usain Bolt on steroids.

    • @dstutz97
      @dstutz97 3 роки тому

      At first I thought the same thing...Pretty sure he backspaced the text then is CTRL+Z'ing (he loves his Z!) to get the text back, notice there's no typos for those bits?

  • @nirmalyasengupta6883
    @nirmalyasengupta6883 Рік тому

    Terror Driven Development: L-o-v-e-d it! 🤣 Thank you for a very good, entertaining and engaging presentation! Of course, lambda functions have their place under the sun but I see the point.

  • @puraniksaket
    @puraniksaket 5 років тому +1

    Wow

  • @hamza_belmellouki
    @hamza_belmellouki 5 років тому +1

    wow

  • @aorusaki
    @aorusaki 4 роки тому

    This was SUCH an energetic and charming presentatiom!
    ALSO, he's Spanish (I bet) which explains the lisp.

  • @jeffshepherd927
    @jeffshepherd927 5 років тому +4

    This guy is hilarious

  • @kennethcarvalho3684
    @kennethcarvalho3684 7 місяців тому

    For lack of a better word.. Great!!!!!

  • @newlinebraces2872
    @newlinebraces2872 2 роки тому

    Awesoem dude, should moonlight as stand-up comidian! xD

  • @spotted756
    @spotted756 5 років тому +2

    Functions become first class citizens as objects in Java 8. :)

    • @jean4j_
      @jean4j_ Рік тому

      What version of Java was used in this talk? Meaning no need to use BiFunction anymore, right?

  • @jean4j_
    @jean4j_ Рік тому

    That's too bad I would have liked to listen the Christmas story about Monads!

  • @engganeshwani
    @engganeshwani 3 роки тому

    Cameraman needs to attend photography's devoxx

  • @drdzdd
    @drdzdd 4 роки тому

    He lives in the futur

  • @neociber24
    @neociber24 5 років тому +2

    He is exactly how I think God looks like.

  • @WolfgangVullhorst
    @WolfgangVullhorst 5 років тому +1

    Nice talk but I disagree that throwing runtime exceptions instead of check exceptions is a good habit.
    In functional programming side effects (exception) should better be declared. A good example for this is vavr "Try" (see vavr.io: www.vavr.io/vavr-docs/)

    • @xutiTrinh
      @xutiTrinh 2 роки тому

      But it is a good habit if you want to play with nice feature in Java 8 as lambda.
      And IMO about treating checked/unchecked exception you can write your own Try monad for your purpose.

  • @Dragiux
    @Dragiux 5 років тому +2

    "Got away without using an if". They're still used under the hood, you're just moving the logic behind magic methods. I agree that you should be using these tools, but like every tool, it should be applied with some sanity checks.

  • @ZelenoJabko
    @ZelenoJabko 5 років тому +3

    You speak Java, but you also speak fRRRench.

  • @mehdisaffar
    @mehdisaffar 5 років тому

    not(isDeleted) is better than isNotDeleted

  • @dengan699
    @dengan699 5 років тому +1

    This guy is talking at 1.5 speed by default

  • @cccc2740
    @cccc2740 2 роки тому

    Code at 8:11 really bad. But in my recent scala gigs I have came across code which make this innocuous. It seems more functional a language is, coders tend to write really bad unreadable unmaintainable code...just my observation.

  • @ikirachen
    @ikirachen 4 роки тому

    wow C# can do this since 2008

  • @AhmetCagrSimsek
    @AhmetCagrSimsek 3 роки тому

    Borat of programming

  • @Equilibrier
    @Equilibrier 2 роки тому

    Esti cam laudaros, daca ai vorbi mai rar poate si noi am procesa informatia ceva mai usor sinu te-ai incurca nici tu in atatea silabe, frate. Oricat de mult stii programare, faptul ca incerci sa dovedesti asta, instalandu-ti artificial o gangavie care nu cred ca ti-e nativa, face ca prezentarea ta, in afara linguselii aparente, sa produca sentimente nu de admiratie, ci de usoara mila. Sa ma ierti, dar asta e adevarul, sunt la minutul 6 si mi-e de ajuns sa spun asta. Strict informativ o sa mai caut sa vad si restul filmului. PS: Esti doar un om, oricat crezi ca stii sau oricat de rapid iti merg degetele. Iti e de folos sa nu uiti asta !
    PS: M-am razgandit, nu mi se pare interesant, am sa caut ceva tutorial despre rxjs. Succes pe mai departe !