- 61
- 323 597
Lazar Nikolov
Canada
Приєднався 13 січ 2015
Hey there, friends! I’m Lazar - a software engineer, educator, and speaker. I currently work at Sentry.io, and on this channel, I share tutorials and courses on topics such as good dev habits, software architecture, Neovim, AI, and more.
Subscribe and join the creatures.sh community! 🐙
Subscribe and join the creatures.sh community! 🐙
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
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 ✨
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
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
Implemented this in all of my projects, big or small. It made everything faster and easier from development, testing and deployment. Thank you!
Bro what could be the simple definition of Architecture and architectural pattern.
Brilliant 🎉
The folks at CodeCrafters gave me a 40% OFF discount for you all: app.codecrafters.io/join?via=nikolovlazar
Great!!! Please share more on this subject
Will do! We'll continue reading this book every Wednesday at 9 AM EST on this channel. Tune in!
Great content Lazar!
Thanks
Thank you so much for this "clip" from your live stream! I could not watch it earlier. 😢
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!
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!
@@nikolovlazar Thanks <3
wow, muchas gracias!
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 ?
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.
@@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
@@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"?
@@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
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.
Interesting! I'll check out Frank's channel. Thanks for sharing!
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
I wanna buy it, but the low contrast ratio is bad, and the lack of RJ45
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!
Great video, however you've coupled your whole application layer to sentry. Is there a convenient way to decouple it?
Thank you! Yes I should've created an "ErrorTrackingService" or "PerformanceMonitoringService", implement Sentry in them, use the services instead of directly using Sentry.
Awesome 🥰
font ?
Dank Mono
Production level is fantastic, but zoom in the terminal window.
starts at 4:53
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
Just tried out Wezterm after switching from kitty and loved it, your timing was perfect. Thanks!!😁
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.
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!
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.
tomorrow ghostty is going to release
Do you think it’s going to be better than WezTerm?
@@nikolovlazar i am not sure but i love WezTerm , i am using it for last 3mon
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
I'm confused, if Dank Mono is a monospaced font, why is it not fixed width? I thought that was the definition of monospace.
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.
cool video like learning stuff like this a
when you hover on fucntion it highlight other parts which plugin does that? in 13:30
What do you mean by highlighting other parts?
Ah you mean when you hover on a function or variable it highlights its occurrences. I think that’s the LSP.
@@nikolovlazar yeah I mean that haha. I have LSP but it doesnt do that for me :(
@@wolfie8748not 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.
@@nikolovlazar thanks sir let me check
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), }, }
Yeah that’s what I’m doing as well. Nifty!
uhh I've been loving to use Rio
Rio?
Zooming in on your terminal would greatly help people watching on mobile
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!
Lesson Learnt: Updates are bad
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!
Can you share what mounts you are using for the Voyager?
I got the UGREEN magnetic phone stands from Amazon. They were around $30 CAD each.
@ thanks! Will buy if they go on sale for Boxing Day. Any cons with the setup?
Nice one! Have you ever thought about using Nix to manage the programs/configs?
Loving the new style, beard & hair looks great!
Min Browser is there ✨
You should also checkout wezterm plugins! :D there are some great ones out there which can improve UI or session management
bruh the beard, i thought i clicked on someone else's video
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.
Ghostty launches in like 2 days, you’re gonna have to redo it all again!
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 😁
fr 2 days?
yeah they said 26-31st December in their Discord server
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
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 😁
I'm so impressed by the results in the video. So proud of you, baby. You are so talented! 💖
when use react-query for implement clean architecture same with video or no sir ?
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.
@@nikolovlazar no i ask for use react query possible to implement with clean arch sir ?
@@DifaDeveloper-e3fyes there isn’t anything preventing you from using react query
which font you are using?
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.
awesome man!!