Lazar Nikolov
Lazar Nikolov
  • 61
  • 323 597
Fundamentals of Software Architecture - Chapter 1 Summary | Book Club
We're officially starting the book club with "Fundamentals of Software Architecture"! In this episode we're summarizing the preface and the introduction chapter. The repo of the summary: bife.sh/WbJjq5UV
Book Club happens every Wednesday at 9 AM EST on UA-cam!
▬▬▬▬▬▬▬▬
💬 A bunch of us are hanging out at discord.creatures.sh/. Join us!
🦋 Find me on Bluesky: bsky.app/profile/nikolovlazar.com
🎥 What I use for coding and making videos: nikolovlazar.com/uses
▬▬▬▬▬▬▬▬
Chapters:
00:00 - Preface
06:52 - Chapter 1 - Introduction
12:25 - Defining Software Architecture
22:39 - Expectations of an Architect
39:47 - Intersection of Architecture and other fields
50:00 - Laws of Software Architecture
▬▬▬▬▬▬▬▬
#BookClub #FundamentalsOfSoftwareArchitecture #SoftwareArchitecture
Переглядів: 2 346

Відео

Setting Up My Terminal from Scratch
Переглядів 4,8 тис.14 днів тому
WezTerm has become my personal preference when it comes to terminals. In this video I'm configuring WezTerm to match my Kitty configuration, and I'm also creating a custom command that toggles WezTerm's transparency. ▬▬▬▬ Links ▬▬▬▬ 👉 All links for this video: bife.sh/djCOzMl9 ▬▬▬▬▬▬▬▬▬▬▬▬▬ 🤝 Become a friend of the channel! Start your membership today and get extra benefits: youtube.com/@nikolo...
The Perfect Monitor for Coding!! The BenQ RD280UA
Переглядів 4 тис.Місяць тому
I found the perfect monitor for programming - the BenQ RD280UA! This has become my favorite monitor in a matter of a few days. In this video we're going to check out the monitor itself and see why it's the perfect monitor for coding. A small correction: I mention that the B.I. Gen 2 features adjusts the contrast and brightness - it actually just adjusts the brightness. ▬▬▬▬ Links ▬▬▬▬ 👉 BenQ RD...
Desk Setup for 2025 & Room Tour | Software Engineer Workspace in Toronto
Переглядів 4,5 тис.Місяць тому
Desk Setup for 2025 & Room Tour | Software Engineer Workspace in Toronto
The Vercel Edge Runtime issue that made me ditch Inversify and switch to Ioctopus
Переглядів 2 тис.2 місяці тому
The Vercel Edge Runtime issue that made me ditch Inversify and switch to Ioctopus
Clean Architecture & Repository Pattern in JavaScript
Переглядів 4,6 тис.3 місяці тому
Clean Architecture & Repository Pattern in JavaScript
Clean Architecture in Next.js: A Complete Implementation Guide
Переглядів 42 тис.4 місяці тому
Clean Architecture in Next.js: A Complete Implementation Guide
Neovim Setup for Web Dev (JavaScript, Next.js)
Переглядів 58 тис.5 місяців тому
Neovim Setup for Web Dev (JavaScript, Next.js)
How to mock an npm package with Vitest/Jest
Переглядів 1,6 тис.5 місяців тому
How to mock an npm package with Vitest/Jest
Clean Architecture made simple: My version of the dartboard diagram
Переглядів 5 тис.5 місяців тому
Clean Architecture made simple: My version of the dartboard diagram
The missing piece for Clean Architecture in Next.js: What Inversify is & how to use it (Quick guide)
Переглядів 4,3 тис.5 місяців тому
The missing piece for Clean Architecture in Next.js: What Inversify is & how to use it (Quick guide)
Best way to write Next.js Server Actions ✨
Переглядів 7 тис.6 місяців тому
Best way to write Next.js Server Actions ✨
One of my coolest Neovim plugins
Переглядів 2,4 тис.6 місяців тому
One of my coolest Neovim plugins
The biggest mistake with Next.js Server Actions (And how to fix It)
Переглядів 2,9 тис.6 місяців тому
The biggest mistake with Next.js Server Actions (And how to fix It)
🐱 Kitty Terminal - change profiles and transparency
Переглядів 12 тис.7 місяців тому
🐱 Kitty Terminal - change profiles and transparency
Setup VSCode Like Neovim
Переглядів 23 тис.8 місяців тому
Setup VSCode Like Neovim
Validate your environment variables with Zod
Переглядів 1,7 тис.8 місяців тому
Validate your environment variables with Zod
A must-have VSCode feature for Next.js developers
Переглядів 5 тис.9 місяців тому
A must-have VSCode feature for Next.js developers
Quick and easy way to auto sort your imports in TypeScript
Переглядів 3,2 тис.9 місяців тому
Quick and easy way to auto sort your imports in TypeScript
The easiest way to write blogs in Astro without VS Code
Переглядів 2,4 тис.11 місяців тому
The easiest way to write blogs in Astro without VS Code
Simple way to integrate Astro with Obsidian
Переглядів 6 тис.Рік тому
Simple way to integrate Astro with Obsidian
How I configured nvim-dap to Debug Node.js Apps
Переглядів 19 тис.Рік тому
How I configured nvim-dap to Debug Node.js Apps
Neovim Plugin: Best way to update npm packages
Переглядів 2,5 тис.Рік тому
Neovim Plugin: Best way to update npm packages
CSS Container Queries in 5 minutes
Переглядів 2,7 тис.Рік тому
CSS Container Queries in 5 minutes
CSS Nesting in 5 minutes
Переглядів 2,2 тис.Рік тому
CSS Nesting in 5 minutes

КОМЕНТАРІ

  • @spicy-bear
    @spicy-bear 13 годин тому

    Implemented this in all of my projects, big or small. It made everything faster and easier from development, testing and deployment. Thank you!

  • @RAVINDERSINGH-ht6pl
    @RAVINDERSINGH-ht6pl День тому

    Bro what could be the simple definition of Architecture and architectural pattern.

  • @intelpakistan
    @intelpakistan День тому

    Brilliant 🎉

  • @nikolovlazar
    @nikolovlazar 2 дні тому

    The folks at CodeCrafters gave me a 40% OFF discount for you all: app.codecrafters.io/join?via=nikolovlazar

  • @fstech.digital
    @fstech.digital 2 дні тому

    Great!!! Please share more on this subject

    • @nikolovlazar
      @nikolovlazar 2 дні тому

      Will do! We'll continue reading this book every Wednesday at 9 AM EST on this channel. Tune in!

  • @BorisJanevski-t8f
    @BorisJanevski-t8f 2 дні тому

    Great content Lazar!

  • @prashlovessamosa
    @prashlovessamosa 3 дні тому

    Thanks

  • @ThiagoVieira91
    @ThiagoVieira91 3 дні тому

    Thank you so much for this "clip" from your live stream! I could not watch it earlier. 😢

  • @Next-Js
    @Next-Js 3 дні тому

    Could you enable the new option that youtube gives for audio tracks in other languages? so I can see some explanatory videos that you have about clean arquitecture in spanish? I would appreciate it!

    • @nikolovlazar
      @nikolovlazar 3 дні тому

      I've already enabled that option, but it seems UA-cam is taking a bit of time to process my videos. That option is enabled, but grayed out in my dashboard, so I guess it's a matter of time. Thanks for this feedback though!

    • @Next-Js
      @Next-Js 2 дні тому

      @@nikolovlazar Thanks <3

  • @Next-Js
    @Next-Js 3 дні тому

    wow, muchas gracias!

  • @Beberrre
    @Beberrre 4 дні тому

    Haven't watched the whole thing, but you should really consider organizing by feature, not by layer. Also, why interfacing both repositories and services ? you should only interface one of them (either repo or services) and mock it. In the android world development, we have the notion of "module" which allows to encapsulate and isolate properly stuff, like that you can define the dependency domain<-data and isolate the domain (it should know no one). Is there something similar in the web world ?

    • @nikolovlazar
      @nikolovlazar 4 дні тому

      Oh for sure! Personally I like organizing by domain, but you can do feature too. I did layer organization here for educational purposes only - to make the "layers" more visible and obvious. Regarding interfacing both repos and services, I haven't read anything about interfacing one of them. Services implement third-party libraries therefore should be mockable. Repos implement third-party libraries too, a database, so they should be mockable as well. In both cases you'd need an interface. I'm not familiar with modules in Android and how they isolate stuff, but I'd be curious to do some reading on that.

    • @Beberrre
      @Beberrre 3 дні тому

      @@nikolovlazarhmm I see what you mean. I like to have my repo accessing one remote data source (where services are injected for network calls), and one local data source (where ORM is injected for database). Like that I only create interface/impl for the data sources, and mocking only them. Because if you put any logic in the repo, mocking it will hide the logic. I do believe it's always better to mock only the very far end of the stream. Well on android, we're using gradle to organize and manage how the app build. A bit complex honestly, but the module feature is really neat. Clean arch is really made for modular project, it looses all its power and pros otherwise

    • @nikolovlazar
      @nikolovlazar 3 дні тому

      @@Beberrre Interesting! How do you deal with services like Sentry for example? I don't show it in this video, but I refactored Sentry into two services: "CrashReportService" and "PerformanceMonitoringService" and both of them wrap specific Sentry features. Do you approach it as a "monitoring data" and create a "MonitoringRepository"?

    • @Beberrre
      @Beberrre 3 дні тому

      @@nikolovlazar Well, I always keep the same in mind, If I need a new feature/functionnality, I would create a module (like "analytics") and have 2 inside, one domain where I put the use cases (like SendEventUseCase or SendReportsUseCase), models and repository. Then a data module (or framework or infra whatever the name) with the data sources (or services whatever the name, where the sentry lib is used). Data knows domain, domain knows no one and for any module that needs the use cases, I just add the dependency to the analytics domain module and injects them to use them

  • @anilpillay2193
    @anilpillay2193 4 дні тому

    Completely agree!! For me clean architecture box diagrams were always more understandable when it comes to interaction between "layer" where as the clean architecture onion/hexagonal diagrams were more subjected to deeper interpretation, abstraction and discussion. If i may, for those looking for alternative implementation of the use case/plugin clean architecture approach, Frank Liu has some great videos on youtube where he structures and implements a blazor solution.

    • @nikolovlazar
      @nikolovlazar 3 дні тому

      Interesting! I'll check out Frank's channel. Thanks for sharing!

  • @iuliansurugiu7762
    @iuliansurugiu7762 6 днів тому

    I just discovered that if you are using the vscode integrated terminal you're going to need to add && !terminalFocus for the bindings that start with a leader

  • @leoni7649
    @leoni7649 6 днів тому

    I wanna buy it, but the low contrast ratio is bad, and the lack of RJ45

  • @Next-Js
    @Next-Js 6 днів тому

    Thank you, as always your content is very interesting, I'm studying architecture and improve my NextJs projects, so I'm grateful for your channel, I subscribe!

  • @Kraykz
    @Kraykz 6 днів тому

    Great video, however you've coupled your whole application layer to sentry. Is there a convenient way to decouple it?

    • @nikolovlazar
      @nikolovlazar 6 днів тому

      Thank you! Yes I should've created an "ErrorTrackingService" or "PerformanceMonitoringService", implement Sentry in them, use the services instead of directly using Sentry.

  • @hoangnguyenhuu1298
    @hoangnguyenhuu1298 9 днів тому

    Awesome 🥰

  • @BassirouDiaw-c7s
    @BassirouDiaw-c7s 10 днів тому

    font ?

  • @Navid7h
    @Navid7h 10 днів тому

    Production level is fantastic, but zoom in the terminal window.

  • @MDSARUPALIMONDAL-rb9om
    @MDSARUPALIMONDAL-rb9om 11 днів тому

    starts at 4:53

  • @dragon.6575
    @dragon.6575 15 днів тому

    i cannot find non sponsored video about every single new benq monitor LOL (pd ma rd all series) mabye because it's a high price compared to the performance of a product that doesn't have any merit to buy

  • @sajanghuman
    @sajanghuman 15 днів тому

    Just tried out Wezterm after switching from kitty and loved it, your timing was perfect. Thanks!!😁

    • @nikolovlazar
      @nikolovlazar 15 днів тому

      WezTerm actually rules. I really like that I can configure it with Lua, as opposed to a key=value syntax. It allows me to do more.

  • @dev-vf5fm
    @dev-vf5fm 16 днів тому

    I appreciate this helpful video but one thing to point out, I hate tutorials that doesn't include a warning for the side effects of what they are teaching in a crash course and most of them when the video got many views, they won't even correct it or change the content. Just like in this video at solution #1, but it's also great that it is corrected in solution #2. Kudos!

  • @thecuriousscroll7
    @thecuriousscroll7 16 днів тому

    how to set jk to exit insert mode i tried this { "key": "j k", "command": "extension.vim_escape", "when": "editorTextFocus && vim.active && vim.mode == 'Insert'" } but when i tried to type only the character j it's not typing it.

  • @mageshyt2550
    @mageshyt2550 16 днів тому

    tomorrow ghostty is going to release

    • @nikolovlazar
      @nikolovlazar 16 днів тому

      Do you think it’s going to be better than WezTerm?

    • @mageshyt2550
      @mageshyt2550 16 днів тому

      @@nikolovlazar i am not sure but i love WezTerm , i am using it for last 3mon

  • @strahinjavranes9731
    @strahinjavranes9731 16 днів тому

    Hello, I would like to ask if the type of the matte coating on the display, is it hard or soft, graininess of the coating? How does it compares to PD2700q or PD 3205U? Thanks @nikolovlazar

  • @echobucket
    @echobucket 16 днів тому

    I'm confused, if Dank Mono is a monospaced font, why is it not fixed width? I thought that was the definition of monospace.

    • @nikolovlazar
      @nikolovlazar 16 днів тому

      I’m not sure as well. Someone said some of its ligatures aren’t. If you open the Font Book app on MacOS and click on the “Fixed-width” collection you won’t see Dank Mono there.

  • @Swifter101
    @Swifter101 16 днів тому

    cool video like learning stuff like this a

  • @wolfie8748
    @wolfie8748 16 днів тому

    when you hover on fucntion it highlight other parts which plugin does that? in 13:30

    • @nikolovlazar
      @nikolovlazar 16 днів тому

      What do you mean by highlighting other parts?

    • @nikolovlazar
      @nikolovlazar 16 днів тому

      Ah you mean when you hover on a function or variable it highlights its occurrences. I think that’s the LSP.

    • @wolfie8748
      @wolfie8748 16 днів тому

      @@nikolovlazar yeah I mean that haha. I have LSP but it doesnt do that for me :(

    • @nikolovlazar
      @nikolovlazar 16 днів тому

      @@wolfie8748​​⁠not sure tbh. I’m using LazyVim with some minor changes and additions, but nothing around that. Check out their docs maybe you’ll find something about it.

    • @wolfie8748
      @wolfie8748 16 днів тому

      @@nikolovlazar thanks sir let me check

  • @micaelviana
    @micaelviana 17 днів тому

    Wezterm is so nice so you can toggle transparency with a shortcut. config.keys = { { key = "o", mods = "CTRL|SHIFT", -- toggling opacity action = wezterm.action_callback(function(window, _) local overrides = window:get_config_overrides() or {} if overrides.window_background_opacity == 1.0 then overrides.window_background_opacity = 0.7 else overrides.window_background_opacity = 1.0 end window:set_config_overrides(overrides) end), }, }

    • @nikolovlazar
      @nikolovlazar 17 днів тому

      Yeah that’s what I’m doing as well. Nifty!

  • @naplesnola
    @naplesnola 17 днів тому

    uhh I've been loving to use Rio

  • @DanteMishima
    @DanteMishima 17 днів тому

    Zooming in on your terminal would greatly help people watching on mobile

    • @nikolovlazar
      @nikolovlazar 17 днів тому

      I know… I was thinking about zooming in later after I change the font size and show it changing, but I completely forgot to zoom in. Thanks for the feedback!

  • @DanteMishima
    @DanteMishima 17 днів тому

    Lesson Learnt: Updates are bad

  • @jeongjehoon2
    @jeongjehoon2 17 днів тому

    I had a hard time applying Uncle Bob's Clean Architecture theory to the NextJS project in practice. This video tells you how to properly separate the business logic from the framework code (including, finally, proper testing). We can't apply everything equally, but it was very beneficial to see the theoretical concept as a real project. Thank you for making a good video!

  • @xalium
    @xalium 18 днів тому

    Can you share what mounts you are using for the Voyager?

    • @nikolovlazar
      @nikolovlazar 18 днів тому

      I got the UGREEN magnetic phone stands from Amazon. They were around $30 CAD each.

    • @xalium
      @xalium 18 днів тому

      @ thanks! Will buy if they go on sale for Boxing Day. Any cons with the setup?

  • @gryg666
    @gryg666 18 днів тому

    Nice one! Have you ever thought about using Nix to manage the programs/configs?

  • @2006Pk
    @2006Pk 18 днів тому

    Loving the new style, beard & hair looks great!

  • @thegitcoder
    @thegitcoder 18 днів тому

    Min Browser is there ✨

  • @hotdog2c
    @hotdog2c 18 днів тому

    You should also checkout wezterm plugins! :D there are some great ones out there which can improve UI or session management

  • @ypathan420
    @ypathan420 18 днів тому

    bruh the beard, i thought i clicked on someone else's video

    • @nikolovlazar
      @nikolovlazar 18 днів тому

      Yeah I cut it a few weeks ago 😅 I thought after 10 years or so it's time to cut it to an "easier-to-maintain" length.

  • @nathanlentz
    @nathanlentz 18 днів тому

    Ghostty launches in like 2 days, you’re gonna have to redo it all again!

    • @nikolovlazar
      @nikolovlazar 18 днів тому

      I’ll give it a spin, but idk… I saw some of the videos about Ghostty and I wasn’t convinced that it’s “superior”. I’m open to be positively surprised by it though 😁

    • @Thaufiq-tech
      @Thaufiq-tech 18 днів тому

      fr 2 days?

    • @nikolovlazar
      @nikolovlazar 18 днів тому

      yeah they said 26-31st December in their Discord server

  • @atilajcdefreitas
    @atilajcdefreitas 19 днів тому

    Hey really nice config, I was looking for something like this, but I don't know if I configure my WezTerm now or if I wait for Ghostty

    • @nikolovlazar
      @nikolovlazar 18 днів тому

      I had the same dilemma, but after seeing a few videos about Ghostty it didn’t convince me to wait. But I’d gladly move over to Ghostty if it’s worth it 😁

  • @ivanaslittledesignworld
    @ivanaslittledesignworld 20 днів тому

    I'm so impressed by the results in the video. So proud of you, baby. You are so talented! 💖

  • @DifaDeveloper-e3f
    @DifaDeveloper-e3f 20 днів тому

    when use react-query for implement clean architecture same with video or no sir ?

    • @nikolovlazar
      @nikolovlazar 19 днів тому

      When will I make a video on using React Query in a Clean Arch project? I probably won't, but it wouldn't matter because React Query simply sits inside of the "Frameworks" layer and it doesn't change how you would implement Clean Architecture.

    • @DifaDeveloper-e3f
      @DifaDeveloper-e3f 17 днів тому

      @@nikolovlazar no i ask for use react query possible to implement with clean arch sir ?

    • @nikolovlazar
      @nikolovlazar 17 днів тому

      @@DifaDeveloper-e3fyes there isn’t anything preventing you from using react query

  • @devss7281
    @devss7281 20 днів тому

    which font you are using?

    • @nikolovlazar
      @nikolovlazar 19 днів тому

      It's Dank Mono, but you can't use it with Kitty anymore. I literally just published a video on migrating over to WezTerm 😁 ua-cam.com/video/l5c5ucQvKOA/v-deo.html if you're not a member it'll be available tomorrow.

  • @jdcmsigma47
    @jdcmsigma47 21 день тому

    awesome man!!