Building a real-world Clojure application from SCRATCH, part 1: deps.edn, aero, component, pedestal

Поділитися
Вставка
  • Опубліковано 29 гру 2024

КОМЕНТАРІ • 43

  • @andrey.fadeev
    @andrey.fadeev  Рік тому +3

    If you liked this video and want to support my channel, please consider buying me a coffee ☕. Your contribution helps me create more content like this. You can donate at:
    👉 Ko-fi: ko-fi.com/andreyfadeev
    👉 Buy Me a Coffee: www.buymeacoffee.com/andrey.fadeev
    I'm truly grateful for your support, and thank you for watching! 🙏

  • @DeneSimpson
    @DeneSimpson Рік тому +7

    Excellent series for new (and old) Clojure developers wanting to build high quality apps with a great selection of core dependencies! 😎

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

    Спасибо за полезные видео, много уложил в голове по ним для себя. Я еще удивлялся почему такой стек похожий на мое текущее место работы, а потому увидел ваши коммиты в приватном корпоративном репозитории от 2019 года и все на свои места встало. Успехов в развитии канала, настоящая находка для clojure сообщества.

    • @andrey.fadeev
      @andrey.fadeev  Рік тому +1

      Спасибо 🙌 Это было мое первое место работы на кложе, до этого как хобби учил :)

  • @rorycawley
    @rorycawley 10 місяців тому +1

    Excellent video, full of amazing tips and advice for production grade dev.

  • @jessicatarra9
    @jessicatarra9 7 місяців тому +1

    Really great content. Clojure it’s the kind of language that shifts your mindset as a programmer and this video has been incredibly helpful in clarify some concepts for me. Thanks and keep up with the good work

    • @andrey.fadeev
      @andrey.fadeev  7 місяців тому

      Hi, thanks, glad it's useful and I'm totally agree with the shift of the mindset from core Clojure ideas!

  • @tomnext70
    @tomnext70 Рік тому +8

    I'm completely new to Clojure and the IntelliJ Cursive plugin and I kept getting "Unable to resolve symbol: -main" errors when trying to follow along in the video. Then I realised that I needed to use the "CMD-SHIFT-N" in IntelliJ to switch the REPL namespace to the namespace of the loaded file. Then I had to use "CMD-SHIFT-L" to load the current file into the REPL.
    Hope this helps out any other newbies out there.

    • @andrey.fadeev
      @andrey.fadeev  Рік тому

      Hi, thanks for the comment, yeah, those two commands are most useful commands from Cursive, it's already a muscle memory 😂 in bottom corner of repl it is showing current NS so it's handy, plus even if you in correct NS and you add new code in the file you have to load it to repl manually.

  • @vinicioswentz
    @vinicioswentz 6 місяців тому +1

    Awesome series

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

    Thank you! This is exactly what i was looking for

  • @RomuloMartins-so1cr
    @RomuloMartins-so1cr 11 місяців тому +1

    Nice!

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

    Thanks!

    • @andrey.fadeev
      @andrey.fadeev  Рік тому

      Thanks for the comments :) I hope you find this useful!

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

    Really good!

  • @Menuiii123456
    @Menuiii123456 Рік тому +4

    I really love this series! Thank you! If it is possible, could you make the editor font more bigger? Because it is dark and small, it is slightly difficult to see with my eyesight.

    • @andrey.fadeev
      @andrey.fadeev  Рік тому +1

      Hi, yeah sure, I know it's not ideal, will try a different layout in the next video!

  • @stretch8390
    @stretch8390 8 місяців тому +1

    Anyone know how to add the environment variable to the clojure repl if not using Intellij? Getting stuck there as I've been using vscode + Calva

    • @andrey.fadeev
      @andrey.fadeev  8 місяців тому +2

      Hi, search for `Environment Variables Are Not Readable From REPL` in Calva docs, it's slightly different in VSCode compared to IDEA

    • @stretch8390
      @stretch8390 8 місяців тому +1

      @@andrey.fadeev Too kind! Great videos on clojure by the way, these are very helpful.

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

    Hi Andrey,
    Thank you for this series of videos; they are very useful for someone like me who is starting to use Clojure professionally.
    ps: I encountered an issue when setting up the reloading using component.repl. I had the exact same configuration in deps and the dev namespace, but it still kept saying that the namespace component-repl was not found. I found a solution by renaming the dev namespace to user. In this case, the namespace is automatically loaded on REPL start without any configuration, but it still bothers me that I couldn't solve the previous error (I am using Neovim + Conjure and have Cider nREPL as a dependency in deps.edn). Anyway...
    Great videos, keep up the good work!

    • @andrey.fadeev
      @andrey.fadeev  Рік тому

      Hi, yeah, I don't have too much experience with anything except Cursive+Intellij, I start the REPL with option: -A:dev and in my REPL command binding I configure it to run in dev namespace + my deps.edn config, hope that will help!

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

    Thank you, really helpful! One question: in JS world, tools like nodemon provide you this hot reloading functionality out of the box. Is the component system in Clojure only used for hot reloading, or are there other advantages as well?

    • @andrey.fadeev
      @andrey.fadeev  Рік тому +2

      Hi, the system reload from the component library is just a useful (for the development) side effect :) The component library is a backbone of the app. It is handy if you need to combine stateful components (web server, DB pools, caches, kafka consumers, etc) that required start/stop into a system (and define dependencies between them) - in the opposite case without library like that you'll need to define start/stop order manually in the main fn (which is hard to manage when the app is growing)
      I recommend this talk to learn more: ua-cam.com/video/13cmHf_kt-Q/v-deo.html

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

    Hi! Thanks for your very valuable content. Is there any way to create that kind of shortcut (Reload system) in Vscode with Calva? Thanks!.

    • @andrey.fadeev
      @andrey.fadeev  Рік тому

      Hi, thanks for the comment :) I'm not a VSCode + Calva user, so not 100% sure, but looks like it should be possible: calva.io/custom-commands/

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

      @@andrey.fadeev Really thanks!!

  • @rorycawley
    @rorycawley 10 місяців тому +1

    I had an issue with the aliases but this minor update fixed it:
    :aliases {:dev {:main-opts ["-e" "(require 'dev)"
    "-e" "(in-ns 'dev)"]}}

    • @believelody5531
      @believelody5531 Місяць тому

      It still doesn't work me :(
      Calva exit without telling exactly what's wrong !

  • @Surf_Cat
    @Surf_Cat Рік тому +2

    Loving the content, one thing though. You aren't capturing your mouse, so when you say just click here (for example for deps); we don't see anything. I was looking real hard 😂

    • @andrey.fadeev
      @andrey.fadeev  Рік тому

      😅 yeah, true, I usually tend to move the mouse chaotically, so I've decided not to capture, but I can try. Also trying to highlight with selecting when possible, but it's always a possibility of failure like what you've mentioned 😹

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

      @@andrey.fadeev Got it, do what feels best for you. 👍

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

    Is there any plan to make content about jwt?

    • @andrey.fadeev
      @andrey.fadeev  Рік тому +2

      Hi, no plans really for JWT right now, but I'm going to cover cookies and session in Ring soon (with different session-stores) and how to implement authentication (user login).

  • @ΘΕΑΣΙΣ
    @ΘΕΑΣΙΣ Рік тому

    I commented on my other account, but my comments don't show up! Why?

    • @andrey.fadeev
      @andrey.fadeev  Рік тому +2

      Hi, I was wondering as well, I can see the number of comments going up in the UA-cam Studio, but I cannot read them :(
      I've tried to search for any permissions or settings but no luck so far...

    • @ΘΕΑΣΙΣ
      @ΘΕΑΣΙΣ Рік тому

      @@andrey.fadeev Same here.