Building Resilient Frontend Architecture • Monica Lent • GOTO 2019

Sdílet
Vložit
  • čas přidán 27. 06. 2024
  • This presentation was recorded at GOTO Berlin 2019. #GOTOcon #GOTOber
    gotober.com
    Monica Lent - Lead Frontend Engineer at SumUp
    ABSTRACT
    Change is inevitable. So is legacy. And too often, we as developers (who love to solve problems by coding) fall into the trap of believing the only way to fix it is by rewriting everything again and again. But how can we design an application architecture that is more resilient to change in the first place? How can we defend against entropy in a system where people are pushing changes every day?
    In this talk we’ll define what architecture means for the frontend, dispel some commonly-held myths, and look at specific tools and techniques on a scale from micro to macro that you [...]
    Download slides and read the full abstract here:
    gotober.com/2019/sessions/111...
    RECOMMENDED BOOKS
    Luca Mezzalira • Building Micro-Frontends • learning.oreilly.com/library/...
    Luca Mezzalira • Front-End Reactive Architectures • www.oreilly.com/library/view/...
    Noel Rappin • Modern Front-End Development for Rails • amzn.to/3v6EAYh
    Michael Geers • Micro Frontends in Action • amzn.to/3LX3v6o
    Jeremy Fairbank • Programming Elm • www.oreilly.com/library/view/...
    / gotober
    / goto-
    / gotoconferences
    #frontend #FrontendArchitecture #SoftwareArchitecture #React #UserInterface #DeveloperProductivity
    Looking for a unique learning experience?
    Attend the next GOTO Conference near you! Get your ticket at gotocon.com
    SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
    czcams.com/users/GotoConf...
  • Věda a technologie

Komentáře • 121

  • @thonEtMais
    @thonEtMais Před 3 lety +30

    GOTO should make a GOBACKTO playlist with brillant talks that remain valid in time

  • @Sindoku
    @Sindoku Před 6 měsíci +4

    Monica’s presentation skills are some of the best I’ve ever seen in the tech field. This was a near flawless execution. I loved the content as well, very important and informative stuff she was talking about. I definitely took notes!

  • @matthewfehskens2327
    @matthewfehskens2327 Před 4 lety +87

    "Technical debt on a subscription model" hits far too close to home

  • @samzmann
    @samzmann Před 2 lety +13

    "Forbidden dependency test": the concept I've been dreaming about for years, but that I did not know where to look for information!!! Thanks, great talk.

    • @abdulkaderjeelani
      @abdulkaderjeelani Před rokem +1

      Do look for architectural fitness functions. That is yet another name !

  • @javascriptduniya1201
    @javascriptduniya1201 Před rokem +12

    Her presentation skills are awesome.

  • @harrypehkonen
    @harrypehkonen Před 3 lety +6

    This is the fastest 30-minute video I have ever seen! Felt like ten minutes. Tops!

  • @dorinm4653
    @dorinm4653 Před 2 lety +2

    Over-engineering is huge problem in Software Development community. Great presentation and very good way to highlight those problems

  • @HappyCheeryChap
    @HappyCheeryChap Před 4 lety +16

    For like 10+ years I had the strong belief that "copy and pasting code means you're probably doing something wrong"... but yeah over time, I've come to the same realisation that sometimes it's just more sensible than creating abstracted dependencies. A lot of the abstractions I wrote in the past never even got used a 2nd time anyway.

  • @amphibia95
    @amphibia95 Před 2 lety +1

    Fantastic talk. Still holds up to this day.

  • @DodaGarcia
    @DodaGarcia Před 8 měsíci +2

    The component having an existential crisis cracked me up 😂 "Where am I??"

  • @sirAlexander_T
    @sirAlexander_T Před 4 lety +25

    Brilliant talk Monica! and great delivery! transcends front-end. Addresses software engineering in general.

  • @johndavid3114
    @johndavid3114 Před rokem +2

    She is spot on about everything she mentions.

  • @arsenalprince4
    @arsenalprince4 Před 4 lety +11

    Oh wow, she is a good speaker. Love the talk!

  • @andreasfinke1801
    @andreasfinke1801 Před 3 lety +3

    Just before I watched this talk, I was just thinking about the folder structure of my project. Thanks for this.

  • @arpielen
    @arpielen Před 2 lety +6

    Amazing talk! I wish I was there to give her an stand ovation 👏🏼

  • @mohamedhassanwd6434
    @mohamedhassanwd6434 Před 4 lety +2

    A great presentation Monica, I really like the way you deliver the info and the way you present. Hope to see great talks for you again 😘

  • @bitbrain3468
    @bitbrain3468 Před 4 lety +3

    Argh.. I wish there was a "here's what you should watch/view/read next" to go along with this. This is EXACTLY the kind of thing I need to know right now. So thank you for a wonderful talk Ms. Lent. Just wish I could find *more* :D

  • @daniela.sorianoii2034
    @daniela.sorianoii2034 Před 6 měsíci +1

    I love this talk. Everything makes sense as an FE dev

  • @joaoforja893
    @joaoforja893 Před 4 lety +47

    Tremendous talk! All the principles presented are applicable not just to FE development, but to software development in general.

  • @musicbuff81
    @musicbuff81 Před 4 lety +3

    Very helpful, not just for front-end development. Thank you!

  • @fullc0depurple
    @fullc0depurple Před 3 lety +1

    This pragmatic approach is really touching to me.

  • @alvincrespo
    @alvincrespo Před 4 lety +4

    Fantastic talk! Thank you!

  • @gompro
    @gompro Před 4 lety +4

    such a great presentation! love it

  • @kuti1643
    @kuti1643 Před rokem +4

    Really like the part about internal dependency management, lot of people in the FE space don't think about this. I found that following a kind of modified version of domain driven architecture works very well for me. I also followed some "what can import from where" type of rules in the past, bu I wasn't aware of a tool that can actually enforce those rules in a JS project, very good to know that there is such a thing, will definitely use it next time.

  • @danielt63
    @danielt63 Před 4 lety +7

    I remember when XP first introduced DRY to the world. One reuse meant copy/paste, two reuses meant copy/paste but seriously think about making a shared component. A shared component isn't a given until you have the third reuse opportunity. Somehow over the years, it changed to making the shared component on the first reuse instead of waiting for the second or third one.

    • @lawrence-dol
      @lawrence-dol Před 4 lety +1

      DRY long predates XP. But the "third use" principle is a good one to balance things out.

  • @ranjitadhana9532
    @ranjitadhana9532 Před 4 lety +3

    Very accurate and real observations. A very interesting talk. Thanks a lot. 🙋

  • @GUIGOLA777
    @GUIGOLA777 Před 3 lety +1

    This is infotainment. Monica is brilliant!

  • @alexbennett5647
    @alexbennett5647 Před 10 měsíci +1

    Best talk I've heard in a while!

  • @lenaggar
    @lenaggar Před 4 lety +7

    this an amazing talk ❤️

  • @qwertt14
    @qwertt14 Před 2 lety +2

    amazing lecture, kudos Monica!

  • @wusaby-ush
    @wusaby-ush Před 9 měsíci +1

    This was great really

  • @kylonguyen-we5mx
    @kylonguyen-we5mx Před 4 měsíci +1

    What a brilliant lady!

  • @RajasegarChandiran
    @RajasegarChandiran Před 4 lety +5

    "Migration is the name of the game. If you are not migrating in FE you're left behind." - l love that.

  • @abdallahgamal5092
    @abdallahgamal5092 Před 3 lety +1

    Really amazing talk , monica you know really how to speak really nicely thanks I learned alot

  • @notramiras
    @notramiras Před 7 měsíci

    Nx has a very neat way of restricting dependency rules

  • @ThugLifeModafocah
    @ThugLifeModafocah Před 4 měsíci

    I agreeeeeee... As Sandi Metz use to say: Duplication is cheaper than the wrong abstraction.

  • @anonymouscoder3557
    @anonymouscoder3557 Před 2 lety +1

    Great presentation, Address a lot of issues between Decoupling > Dry, Explains when to choose what. Clearly explains that there is no silver bullet when it comes to "best practices". EOD "it depends" is the final answer.

  • @laurelineparis5407
    @laurelineparis5407 Před 3 lety +1

    I seriously loved it :) thanks

  • @barrajar
    @barrajar Před 3 lety +1

    Thanks for a great talk!

  • @LonliLokli
    @LonliLokli Před 4 lety +1

    It's really good topic, great thanks for it!

  • @detaaditya6237
    @detaaditya6237 Před 2 lety +1

    Boundary enforcement is really interesting. I never thought of it. Might try it on my next project

  • @OfferoC
    @OfferoC Před 4 lety +2

    Great talk, thank y0u.

  • @praveensg
    @praveensg Před 2 lety +1

    A+ content and A++ delivery

  • @shivankchopra8552
    @shivankchopra8552 Před 2 lety +1

    Great talk! Thanks for the video!

  • @thepetesmith
    @thepetesmith Před 3 lety +1

    She is brilliant wow

  • @QiMU01
    @QiMU01 Před rokem

    Constraining the dependency import architecture rings true to me. I made an eslint plugin for whitelisting and blacklisting dependencies for folders in the app for the company I am working for. It really is helpful.

  • @SaifUlIslam-di5xv
    @SaifUlIslam-di5xv Před 3 lety +1

    Amazing talk.

  • @coderitual_
    @coderitual_ Před 4 lety +11

    Big plus for copy & paste code if needed. Bad abstraction is worse than no abstraction.

  • @sct848
    @sct848 Před rokem +1

    Great talk! Thanks for the tips.

  • @NabeelIbrahimcp
    @NabeelIbrahimcp Před 3 lety +1

    Really awesome explanation

  • @shoaibbhimani7831
    @shoaibbhimani7831 Před rokem

    Thank you Monica very interesting Talk

  • @KevinBoosten
    @KevinBoosten Před 4 lety +1

    Great talk!

  • @greenkodex
    @greenkodex Před 3 lety +19

    I think she does herself a disservice with the "Frontend" label. Everything she's said applies to system wide architecture. Great talk!

    • @Ziviani
      @Ziviani Před rokem +2

      Exactly! I'm not into frontend development but I'm glad I have "misclicked" on this. Great presentation.

  • @forsh2966
    @forsh2966 Před rokem +1

    god damn, this was awesome

  • @nsambataufeeq1748
    @nsambataufeeq1748 Před 3 lety +1

    great talk,thanks

  • @francoisconsigny9106
    @francoisconsigny9106 Před rokem

    This was a good reminder ! Thank you Monica Lent.
    A lot of frontend developper are like "this does the same thing so i made a component folder that shares the component. I just put a condition if its in this or in this page".
    Backend are like "Dude, you are just telling me there a not doing the same thing" haha .
    And i still dont understand why in Mobile App you use Observables and stuff. Doing module app and you dont do the same in frontend. I have some doubt of the benifit of Redux on webapp for the frontend community developpers.
    Cheers guys

  • @rajdeepchandra9807
    @rajdeepchandra9807 Před 2 lety +1

    Great talk. In our React code base we use madge for circular dependency checks. It is very helpful and helped us avoid regression issues in our large codebase.

  • @daCorasla
    @daCorasla Před 4 lety +1

    Great talk! :)

  • @YBWang-pi9qq
    @YBWang-pi9qq Před 2 lety +1

    29:06 constraints for more resilient architecture
    - dependence inward
    - code reuse might not help
    - enforce boudaries

  • @illuminach8279
    @illuminach8279 Před 2 lety +1

    Great presentation!

  • @bardhan.abhirup
    @bardhan.abhirup Před rokem

    this was brilliant!

  • @quyettran424
    @quyettran424 Před 2 lety

    Shared components are not just about DRY, but also consistency and synchronization in updates. I think this is more important.

  • @shubhkarmansingh5668
    @shubhkarmansingh5668 Před 3 lety +5

    "Senior engineer or whatever it is we call 19 year olds these days"
    Killer joke 😂😂
    Now you have my attention !!!

  • @emmanuelugwuoke967
    @emmanuelugwuoke967 Před 2 lety +1

    Great talk!🎊

  • @iampervaze
    @iampervaze Před 4 lety +2

    I agree to a greater extent to what you said. My manager always insists on keeping things decoupled to such a level that the change over time does not impact other business areas.

    • @jinxblaze
      @jinxblaze Před 4 lety +2

      It is quite opposite to how my company works xD it's all a coupled mess and terrible APIs. Ui code literally has Java class names in the if blocks of javascript. Quitting soon

    • @iampervaze
      @iampervaze Před 4 lety

      Sounds like an old monolith you have been working on, but hey, software development is a complex world, no matter how much you want to steer away from this kinda stuff, you end up working on it, one time or the other :)

  • @Oswee
    @Oswee Před 4 lety

    Excelent talk! :)

  • @razik91
    @razik91 Před 2 lety +1

    Great talk! 🙂

  • @tadeoriverosk
    @tadeoriverosk Před 4 lety +1

    One of the best talks, love the ideas and the way of presenting them!

  • @edarioq
    @edarioq Před 3 lety

    Good talk thanks.

  • @rituroy6598
    @rituroy6598 Před 2 lety +1

    Great talk👍🏻

  • @ricardoferreirades
    @ricardoferreirades Před 3 lety +1

    I liked it!

  • @manishtripathy1549
    @manishtripathy1549 Před 3 lety +1

    Great talk! Wish I could hit like 10 times.

  • @lawrence-dol
    @lawrence-dol Před 4 lety +1

    Excellent talk. Both in content and presentation.

  • @akay64x2
    @akay64x2 Před 4 lety +1

    Truth has been spoken :D

  • @moraisgabas
    @moraisgabas Před rokem +1

    Great

  • @WesDoyle
    @WesDoyle Před 3 lety +3

    excellent talk. decoupled > dry is wonderfully succinct.

  • @driziiD
    @driziiD Před 4 lety +2

    nice talk

  • @Doombuggie41
    @Doombuggie41 Před 4 lety +4

    Loved this talk! However, I don't feel that monorepos are very out of reach anymore. Yarn workspaces makes things like this so easy!

    • @TheAndre2131
      @TheAndre2131 Před rokem

      now we're using Nx, and it works like a charm

  • @BryonLape
    @BryonLape Před 2 lety

    Twenty years ago, I wrote my Perl object oriented and my Javascript with prototypes. Confused the crap out of everyone else. People still try hard to avoid the prototyping aspects of Javascript.

  • @semrana1986
    @semrana1986 Před 3 lety

    existential crisis for a component behaving like a dangling pointer is so true

  • @faisalhakim5920
    @faisalhakim5920 Před 2 lety +1

    good talk

  • @ghosteng
    @ghosteng Před 6 měsíci

    Just because someone speaks so beautifuly, I does make sense all the time.

  • @kyle7n7
    @kyle7n7 Před 4 lety +6

    Monica bringin that sassy attitude while droppin insights!

  • @SamuelKarani
    @SamuelKarani Před 4 lety +1

    OOP/Functional constraints/benefits isn't always mutually exclusive

  • @uwontlikeit
    @uwontlikeit Před 3 lety

    can someone tell GOTO channel about the timecodes?

  • @tejbirring9673
    @tejbirring9673 Před 2 lety +1

    A very well thought out talk relevant to areas of software engineering beyond frontend. Takes me back to embedded days.

  • @phanvanhoa
    @phanvanhoa Před 4 lety +1

    I come here for the topic. I'm a simple developer. Everything she said is absolutely right :v

  • @PaulSebastianM
    @PaulSebastianM Před 3 lety

    She knows her stuff... can't believe she's that young.

  • @adbeats4119
    @adbeats4119 Před 4 lety

    Nice

  • @edarioq
    @edarioq Před 3 lety +2

    Angular gives us good architecture right out of the box...

    • @nishantsingh
      @nishantsingh Před 2 lety +1

      That's the comment i was looking for.

  • @owenizedd2830
    @owenizedd2830 Před 2 lety

    This actually very similar to what dan abramov was talking about in his wet codebase talk

  • @woodmelui326
    @woodmelui326 Před 3 lety +1

    Why rewrite the code? Sometimes, it is because "YOU THINK" you have a "BETTER" solution

  • @zourdy697
    @zourdy697 Před 2 lety +1

    damn she is cool, I wish I had a co-worker like her

  • @ilovegame1712
    @ilovegame1712 Před 5 měsíci

    goddamn good

  • @trunghieuhoang3839
    @trunghieuhoang3839 Před 4 lety

    Great talk and she is graceful too

  • @sergioavalos
    @sergioavalos Před rokem +1

    I like the structure of the talk and content, but I'm not a fan of the passive-agressive and bit sarcastic tone from the speaker. Small note, I did enjoy it and will recommend it

  • @psnZYKRON
    @psnZYKRON Před 3 lety +2

    This whole talk feels like a personal attack 😂

  • @alexanderdreith6794
    @alexanderdreith6794 Před 4 lety +4

    I think there are some great thoughts here from a pure code standpoint, but all the decision flow was discussed as one way. Like new business requirements fracturing a generic shared component. But I also like to look at things like that in a reverse flow of thought.
    Sometimes a designer has created a piece of UI that is complicating the code of a shared component and rather than saying "then we should split this code" you should consider if it's a smell that the designer is breaking pattern of the design system. Why should a one-off coded component be created to meet a one-off design need rather than the design using the already provided component? Sometimes it's necessary, but I think using the introduction of complexity to an architecture can be a good canary for why it's happening rather than just blind implementation.

  • @nasheomirro8102
    @nasheomirro8102 Před 2 lety

    Ironically, the way I found this video is by searching up "react architecture"