Marco Codes
Marco Codes
  • Видео 32
  • Просмотров 639 257
Building Docker Images - Best Practices
You'll learn how to build Docker images as fast as possible, with the smallest file size possible.
► Previous Episode
GraalVM & Spring Boot: Building a Native Executable - ruclips.net/video/soqw1cPHMEE/видео.html
htmx Tutorial - 2 Real-Life Use Cases - ruclips.net/video/uLUMM1Y-dd8/видео.html
Why JUnit's Dynamic Tests ARE SO GOOD - ruclips.net/video/cgnrB5PkaBo/видео.html
How to Approach Java, Databases & SQL - ruclips.net/video/dhKRBzFzg3Q/видео.htmlfeature=shared
► Source Repository
-None-
► Timestamps
00:00 Intro
00:22 Docker Image Basics
01:39 Docker Image Layers
03:35 Layers Are Additive
05:54 Layer Order Matters
07:10 Golden Dockerfile Rules
07:44 Layer Caching Rules
08:31 .dockerignore
09:53 Cache ...
Просмотров: 2 002

Видео

GraalVM & Spring Boot: Building a Native Executable | Marco Reacts
Просмотров 7 тыс.7 месяцев назад
You heard about GraalVM? You want to turn your Java webapp into a native executable to benefit from massive startup time speedups and little memory footprint? Well, let's try this out with our Google Photos clone, see what problems we encounter along the way and then come up with a fair and balanced view on where GraalVM stands today. ► Previous Episode htmx Tutorial - 2 Real-Life Use Cases - r...
htmx Tutorial - 2 Real-Life Use Cases
Просмотров 10 тыс.8 месяцев назад
Learn what htmx is and how it works by implementing two features in a real-world project: Infinite Scrolling and an asynchronous download button, which displays a progress bar while the download is being prepared on the backend. Afterwards you'll know if you want to replace your react or angular frontend with htmx :) ► Previous Episode Why JUnit's Dynamic Tests ARE SO GOOD - ruclips.net/video/c...
Why JUnit's Dynamic Tests ARE SO GOOD
Просмотров 3,7 тыс.8 месяцев назад
We want to extract dimensions, dates and locations from image metadata, to display in our Google Photos Clone. But how on earth are we supposed to write tests for that, considering there are a huge variety of different cameras and mobile phones and they all store image metadata in different ways? JUnit's Dynamic Tests to the rescue, which will give us a nice confidence baseline for our metadata...
Spring Boot & Kotlin Tutorial - Crash Course For Java Devs
Просмотров 11 тыс.9 месяцев назад
Let's write a Spring Boot application in Kotlin. We'll start from scratch with an empty skeleton project and then go about building a tiny CRUD REST service. Along the way we'll cover all important Kotlin language basics & concepts, as well as more advanced topics like, for example, Kotlin & JPA support. ► Timestamps 00:00 Intro 00:22 Spring Initializr 03:44 Gradle & Kotlin 05:13 Project Struct...
How To Learn Any Programming Topic
Просмотров 5 тыс.10 месяцев назад
As the title says. Want to learn a specific programming topic? In this video I'll show you my personal approach to that. ► Timestamps 00:00 Intro 01:15 How To Find Good Books 02:59 React Example 06:13 The Importance of Drilling 08:47 How Much To Read 10:15 Algorithms Example 12:05 Compiler Example 12:59 Practical Challenges 15:03 Thoughts on Video Courses 15:52 Consistency 16:47 How Do I Know I...
How To Approach Dependency Management in Java
Просмотров 6 тыс.10 месяцев назад
Real-Life considerations when working with dependencies in Java: - How to find & trust the right dependencies? - How to consistently keep them updated? - How to protect against vulnerabilities? - How to handle team backlash against adding new dependencies? And more :) ► Timestamps 00:00 Intro 01:01 Old-school Dependency Management 02:49 BOM Approach 05:40 How to keep your dependencies up-to-dat...
Text Editor E05 - How To Implement Text Editing Features for a Text Editor
Просмотров 2,1 тыс.Год назад
It's finally time to turn our text-viewer into a full-blown text editor. This is Part 5 of the "Implementing a Text Editor" series and we will cover: * Inserting Characters and new lines * Handling the Enter Key to split lines * Deleting Characters and Lines * Saving Files You're going to be in for a ride! ► Source Repository github.com/marcobehlerjetbrains/text-editor.git - Branch: Episode 5 ►...
How to Approach Java, Databases & SQL (for My Google Photos Clone)
Просмотров 4,1 тыс.Год назад
Part 4: We want to save our thumbnail data to a database, so that we can render our pictures to a nice HTML gallery page and finish the proof of concept for our Google Photos clone! Which database should we use and why? Which Java database API? What database tools will make our lives easier along the way? Find out in this episode of Marco Codes! ► Previous Episodes Part 3 - Multithreading: rucl...
How To REALLY Do Code Reviews
Просмотров 10 тыс.Год назад
Follow-Up to ruclips.net/video/EhEESITArnE/видео.html with many moooooore details on code reviews. Scenario: A user sent in a GitHub pull request for our Google Photos clone. Which means we have to do a code review. How should you do such review? What is or isn't important? Learn all about my "every line of code is a liability"-philosophy when reviewing pull requests in this episode! ► Timestam...
Solving Java Multithreading Challenges in My Google Photos Clone
Просмотров 4,4 тыс.Год назад
Part 3: We want to turn our Google Photos clone from single-threaded to multi-threaded, to generate thumbnails much faster than before. But there are a couple of challenges along the way. We'll learn that using Java's Parallel File Streams seems to be a buggy endeavor, so we'll fall back on good, old ExecutorServices. But how many threads should we use to generate thumbnails? How can threads ge...
How To Do Code Reviews
Просмотров 11 тыс.Год назад
How To Do Code Reviews
I don't TDD. Writing Pragmatic Tests With Java.
Просмотров 6 тыс.Год назад
I don't TDD. Writing Pragmatic Tests With Java.
Text Editor E04 - How to Implement Full-Text Search
Просмотров 1,7 тыс.Год назад
Text Editor E04 - How to Implement Full-Text Search
7 Awesome Libraries for Java Unit & Integration Testing
Просмотров 8 тыс.Год назад
7 Awesome Libraries for Java Unit & Integration Testing
How to Build a Google Photos Clone in Java - Pilot
Просмотров 9 тыс.Год назад
How to Build a Google Photos Clone in Java - Pilot
Text Editor E03 - Advanced Keyboard Navigation & Windows/macOS Compatibility
Просмотров 2,8 тыс.Год назад
Text Editor E03 - Advanced Keyboard Navigation & Windows/macOS Compatibility
Why you don't need to worry about scaling your Java webapp
Просмотров 4 тыс.Год назад
Why you don't need to worry about scaling your Java webapp
Text Editor E02 - Keypresses & Implementing Scrolling
Просмотров 4,5 тыс.Год назад
Text Editor E02 - Keypresses & Implementing Scrolling
Text Editor E01 - How to use ANSI Escape Codes & Call Native APIs with Java
Просмотров 12 тыс.Год назад
Text Editor E01 - How to use ANSI Escape Codes & Call Native APIs with Java
Hibernate & JPA Tutorial - Crash Course
Просмотров 87 тыс.Год назад
Hibernate & JPA Tutorial - Crash Course
5 great Git & IntelliJ IDEA tricks
Просмотров 12 тыс.Год назад
5 great Git & IntelliJ IDEA tricks
7 great Terminal/CLI tools not everyone knows
Просмотров 9 тыс.Год назад
7 great Terminal/CLI tools not everyone knows
Gradle Tutorial - Crash Course
Просмотров 58 тыс.Год назад
Gradle Tutorial - Crash Course
SSH Tutorial - Crash Course
Просмотров 15 тыс.2 года назад
SSH Tutorial - Crash Course
JDBC Tutorial - Crash Course
Просмотров 24 тыс.2 года назад
JDBC Tutorial - Crash Course
JUnit 5 Tutorial - Crash Course
Просмотров 21 тыс.2 года назад
JUnit 5 Tutorial - Crash Course
Maven Tutorial - Crash Course
Просмотров 146 тыс.2 года назад
Maven Tutorial - Crash Course
Spring Boot Tutorial - Crash Course
Просмотров 138 тыс.2 года назад
Spring Boot Tutorial - Crash Course

Комментарии

  • @aleyrizvi
    @aleyrizvi День назад

    Question after 1 year :D Does it still applicable? I do not need to use sessionFactory in another tutorial and it worked.

    • @MarcoCodes
      @MarcoCodes 12 часов назад

      Yes, still applicable. Hibernate still uses a SessionFactory and the JPA equivalent is the EntityManagerFactory. Hard to tell which tutorial followed, but under the hood that's what it boils down to :)

    • @aleyrizvi
      @aleyrizvi 12 часов назад

      @@MarcoCodes Thanks. I am having hard time following java coming from go and typescript. :D By having an idea of using separate read and write datasource means alot of configurations in java....

  • @AfmpJR
    @AfmpJR 3 дня назад

    Ok... I got now two new aliases 😅😅 alias ls="exa -l -T --git --level 1" alias cat="batcat"

  • @venkatvikram8241
    @venkatvikram8241 3 дня назад

    hey Marco, I'm having an error saying "settings.gradle" could not be compiled

    • @venkatvikram8241
      @venkatvikram8241 3 дня назад

      nevermind, I had a version mismatch which caused the error

  • @brownie830
    @brownie830 4 дня назад

    I got to know you from your blog where you explained how Spring transactions work. You are among the very few people who can convey an idea without any confusion to the reader/consumer. Great work, Marco. Thank you for creating these materials. 🔥🔥

  • @DanielJGallo
    @DanielJGallo 5 дней назад

    Great video :)

  • @lts8683
    @lts8683 6 дней назад

    Another tips is that we should use the image which we need, like for ex, if we need to run a java application, we need to use an image which contains just JRE, and also we can clean this image from unused packages

    • @MarcoCodes
      @MarcoCodes 5 дней назад

      Bear in mind, like mentioned in the video, that cleaning packages does not influence the previous layers.

  • @beastcombatanalysing635
    @beastcombatanalysing635 6 дней назад

    Please help mine isn't responding to the path when I key in mvn -v in the cmd prompt it doesn't do anything, I've been going in circle for 6 days now

  • @moaliyou
    @moaliyou 6 дней назад

    Where have u been bro? Missed ur valuable vidz 🔥

    • @MarcoCodes
      @MarcoCodes 5 дней назад

      Well, the truth is that my main job is being a product manager and I can only dedicate a tiny amount of.my time towards making videos. But I'm trying :)

  • @onujaar
    @onujaar 6 дней назад

    "multi stage build" and "creating non-root user for the container" next please

  • @pmorah
    @pmorah 6 дней назад

    Thank you Marco. Docker init is a great command too. It generates .dockerignore file and you can choose between different templates depending on your programming language.

  • @mars3142
    @mars3142 6 дней назад

    Best practices for multi stage builds would be nice to see or if you like, what is the most difference of buildpacks vs. dockerfile for Java (e.b. Spring Boot) applications.

    • @KevinSheppard
      @KevinSheppard 6 дней назад

      I'd like to second this. I haven't had much luck understanding buildpacks.

  • @parvezmd6455
    @parvezmd6455 6 дней назад

    which course are you going to release next on your website ?

    • @MarcoCodes
      @MarcoCodes 6 дней назад

      Nothing is planned for the moment. Are you interested in a specific topic?

    • @parvezmd6455
      @parvezmd6455 6 дней назад

      Yes, could you please create one microservice project course using spring boot, havjng spring security, docker creationwith best practices explanation. that will be good.

  • @mzalewski
    @mzalewski 6 дней назад

    RUN with mount parameter is awesome! 😍 I spent a lot of time fighting with copying deps which should be cached after build and it's my issue with multistage builds. Thanks! ♥

    • @KevinSheppard
      @KevinSheppard 6 дней назад

      This part of the video blew my mind as well. I have some builds that take quite some time because of npm install.

  • @sug_madic7683
    @sug_madic7683 6 дней назад

    Yeah bro is back as a dad.

  • @YuriyKondrashov
    @YuriyKondrashov 6 дней назад

    Marko + Docker in one sentence? Sounds like a click bait for me) It's nice to see you again!

  • @arghyamitra3281
    @arghyamitra3281 7 дней назад

    Thanks 🎉 this is really helpful

  • @hamzadabaghi
    @hamzadabaghi 7 дней назад

    straightforward, clear and precise explanation, good job @marcobehler1395

  • @meltygear5955
    @meltygear5955 7 дней назад

    You got yourself a follow from me, but the "marco codes" screen with the keyboard sound jumpscared me hahaha, love the content though

  • @igbu
    @igbu 11 дней назад

    Hi, am I missing the implementation of repository.findBySlug(slug)?

  • @saraidris9043
    @saraidris9043 18 дней назад

    Is it beginner friendly?

  • @GuestUser-vf9qe
    @GuestUser-vf9qe 20 дней назад

    Thank you, Marco, this crash course is awesome. And I'm about to become a student of your Confident Spring Pro course. It's really helpful.

  • @MarcoCarloMoriggi
    @MarcoCarloMoriggi 21 день назад

    Thanks Marco, really awesome! Just a couple of tiny suggestions (aka code review on a RUclips comment 🤓, sorry, just hoping to be helpful): You can simply use `Files.createDirectories` (plural), as from the documentation "an exception is not thrown if the directory could not be created because it already exists", and it's less code to maintain 🙂. Another point is that, based on my experience, when the effect you need is "if not exists then create", prefer the `java.nio.Files::notExists` method (which is not the exact complement of the "exists" one, but that's another story). Mainly this is because I found that in most situations where concurrency can occur on the filesystem, the `if(Files.notExits(f)) create(f)` pattern fails less frequently than it's negated opposite, especially with shared NFS or other FileSystems with higher latency. Anyway, really great work!

  • @supriyamalhotra7488
    @supriyamalhotra7488 22 дня назад

    Hi I'm having some issues when I add: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> Everything works great before that point. Has anyone else encountered tis problem/ Have ideas what i could be doing wrong

  • @chaosknight3175
    @chaosknight3175 27 дней назад

    Nice tutorial. I suggest that you could use an HTTP client to interact with the API instead of using the html/javascript shenanigans.

  • @willaugust7824
    @willaugust7824 Месяц назад

    Kindly tell me, how to resolve this error message while building android; BUILD FAILED in 2s Command failed with exit code 1: C:\Users\USER\GWLAPP2\platforms\android\tools\gradlew.bat cdvBuildDebug

    • @MarcoCodes
      @MarcoCodes 12 дней назад

      Can't help out here, sorry.

  • @Raj-sp8qq
    @Raj-sp8qq Месяц назад

    Your approach is great and practical. Thanks for sharing it. :) I'm trying to find good books on below topics, can you please give me recommendations. React Spring Boot Hibernate Docker and Kubernetes Jenkins AWS (only services required for developer but not like a devOps guy)

    • @MarcoCodes
      @MarcoCodes 12 часов назад

      I will write a blog post about this soon on my homepage @ www.marcobehler.com

  • @AayushGore-
    @AayushGore- Месяц назад

    Thank you so much for being such great to the point! :)

  • @williamtlittle
    @williamtlittle Месяц назад

    My java ee application uses an EntityManager throughout, so when I am writing unit tests I need to create an EntityManager configured to use a test database to give to my application code. I created a hibernate.cfg.xml file in src/test/resources. I have a problem though that my entities are not being scanned correctly. In the config file there is a packagesToScan property which lists the package where entities are in my application. However, those packages are in src/main/java, while my tests are in src/test/java. This is causing the problem that when I create a query with the name of my entity, I get an exception which says my entity is not mapped. How do I tell hibernate to scan a package in a different directory?

    • @MarcoCodes
      @MarcoCodes 12 часов назад

      I unfortunately cannot do a proper remote-diagnosis. Hope you could work this out.

  • @rafaelbraga3d
    @rafaelbraga3d Месяц назад

    Really awesome tutorial! Thanks a lot

  • @ThinkScienceCanada
    @ThinkScienceCanada Месяц назад

    amazing video, thank you

  • @avinashpittu8380
    @avinashpittu8380 Месяц назад

    May 2024

  • @jeremiahsprague2584
    @jeremiahsprague2584 Месяц назад

    So glad I found your channel, high quality content, compared to other channels I've seen it has so much depth. Thank you!!!

  • @NerdBotatous
    @NerdBotatous Месяц назад

    I wanna die

  • @viniciusbarbosa1901
    @viniciusbarbosa1901 Месяц назад

    It's so cool to understand how it works under the hood

  • @dan110024
    @dan110024 Месяц назад

    "But then I thought noo f.. lets forget that" - good save, sir!

  • @navidmustafa
    @navidmustafa Месяц назад

    MARHABA

  • @nisachannel7077
    @nisachannel7077 Месяц назад

    When using the “pull into <fb name> using rebase” feature, why did you choose the origin/main under remote branches and not the main branch under local branches?? A related question is, after the ‘pull’ command finishes, will “local” main be 100% in sync with origin/main under remote branches?

  • @emiresen546
    @emiresen546 2 месяца назад

    Thank you,!!! Very well explained haven't lost my attention for a second.

  • @vimalslab3398
    @vimalslab3398 2 месяца назад

    How do we implement undo/redo?

    • @MarcoCodes
      @MarcoCodes 2 месяца назад

      It's actually a fun exercise to come up with this yourself. Start with simple undos/redos, i.e. just being able to undo/redo single characters that you put in the terminal. And then, you can spice things up by going for undos of whole commands (like cut & paste etc)

  • @thomi100
    @thomi100 2 месяца назад

    Very nice, thanks 👍🏻

  • @user-ux2zl1ry6x
    @user-ux2zl1ry6x 2 месяца назад

    Very simple and easy to understand tutorial. Thank you

  • @sanskaari.24
    @sanskaari.24 2 месяца назад

    Thanks for the video

  • @popov654
    @popov654 2 месяца назад

    On 24:43 you have a little problem: your request is hanging infinitely in case the photo is found and removed. You really need to return some success message from your method, I guess.

    • @MarcoCodes
      @MarcoCodes 2 месяца назад

      Found and removed?

  • @TechWorldWithSerdar
    @TechWorldWithSerdar 2 месяца назад

    very good tutorial, which explains all the important things briefly, thank you very much

  • @machchar_qing
    @machchar_qing 2 месяца назад

    man you're funny & informative at the same time.

  • @toritsejuFO
    @toritsejuFO 2 месяца назад

    Dead simple explanations. Dunno how you do it. Thank you Marco. Love your website as well, such deep and comprehensive articles. I have one (1) ask 🙏🏿 Kindly consider reducing your paid courses for some of us here in Nigeria 😣🤲🏿 Thank you

  • @Uvi3112
    @Uvi3112 2 месяца назад

    my hello world worked!! thanks man!

  • @albinsanthosh3265
    @albinsanthosh3265 2 месяца назад

    Thanks for this course. It was helpful.

  • @EthanZitting-pg7te
    @EthanZitting-pg7te 2 месяца назад

    Thank you very much!

  • @DiegoOliveiraProf
    @DiegoOliveiraProf 2 месяца назад

    your video is AWESOME, many thanks!