Joshua Morony
Joshua Morony
  • 335
  • 7 355 642
How billionaire Charles Munger fixed my Angular app
My Angular course: angularstart.com/
19th century mathematician Carl Jacobi is often cited for his (roughly translated) "Invert, always invert" quote. In this video we take a look at how applying this advice to state management in Angular yielded fantastic results for me recently
Video on folder structure: ua-cam.com/video/7SDpTOLeqHE/v-deo.html
Get weekly content and tips exclusive to my newsletter: mobirony.ck.page/4a331b9076
Want to build mobile apps with Angular?: ionicstart.com
0:00 Introduction
0:19 Always invert
1:03 Application architecture
1:40 The problem
3:02 Inverting the problem
#angular
- More tutorials: modernangular.com
- Follow me on Twitter: joshuamorony
Переглядів: 6 294

Відео

Observables are WAY easier than they seem
Переглядів 7 тис.День тому
My Angular course: angularstart.com/ Observables can seem like some sort of complex magical constructs that "stream" data, and perhaps it invokes thoughts of managing scenarios like streaming video data or web sockets. But... the fundamental concept is not all that complex, and can be built with some pretty simple functions. What is an Observable (free lesson): angularstart.com/modules/intro-to...
How Angular plans to survive the next 10 years
Переглядів 13 тис.14 днів тому
My Angular course: angularstart.com/ Angular v18 has been released which makes further progress towards the overall goal of making Angular viable for the next 10 years or web applications. Perhaps the most important part of this is signals, the new reactivity system, and zoneless change detection. v18 announcement video: ua-cam.com/video/DK8M-ZFjaMw/v-deo.html v18 blog post: blog.angular.dev/an...
How Electron jailbreaks your web application
Переглядів 5 тис.21 день тому
My Angular course: angularstart.com/ Electron not only allows you to distribute your web application as a native desktop application, it also allows your web application to access native APIs... but how exactly does it do that? Get weekly content and tips exclusive to my newsletter: mobirony.ck.page/4a331b9076 Want to build mobile apps with Angular?: ionicstart.com 0:00 Introduction 0:50 Inter-...
How I code in Angular when nobody is watching
Переглядів 10 тис.Місяць тому
My Angular course: angularstart.com/ I get surprisingly few opportunities to code Angular applications specifically the way I want to without needing to carefully consider risks and weigh trade offs. This video covers how I'm using the Analog component format, createInjectable, and signalSlice in a situation where I *do* get to code however I want. More on Analog SFC: ua-cam.com/video/15vHXCMhl...
Creating DESKTOP apps with Angular is easier than you think
Переглядів 16 тис.Місяць тому
My Angular course: angularstart.com/ Getting a native desktop application up and running with Electron and Angular is surprisingly quick. In this video, we make use of these frameworks, in conjunction with Nx, to create the basic scaffolding required to create desktop applications with web tech Get weekly content and tips exclusive to my newsletter: mobirony.ck.page/4a331b9076 Want to build mob...
Here's what I've figured out about Angular signals
Переглядів 12 тис.Місяць тому
My Angular course: angularstart.com/ I've been using and experimenting with signals in Angular since they came out around a year ago. This video covers some key ideas I've arrived at when using signals for state management. Get weekly content and tips exclusive to my newsletter: mobirony.ck.page/4a331b9076 Want to build mobile apps with Angular?: ionicstart.com Source code (toSignal version in ...
A 7 minute guide to SESSIONS and COOKIES for authentication in Angular
Переглядів 8 тис.Місяць тому
My Angular course: angularstart.com/ If we want our applications to be secure then we need to make sure our backend is secure. Before we send any data to a user, we want to make sure that they are authorised to receive that data. Sessions and cookies are a great way to facilitate this and has been the backbone of many authentication approaches for a long time. Previous video: ua-cam.com/video/1...
This made me NOT hate note taking (as a developer)
Переглядів 8 тис.Місяць тому
My Angular course: angularstart.com/ Zettelkasten made me completely change the way I approach note taking, and it's the first time I've ever actually enjoyed note taking. This video shows how I use a Zettelkasten system inside of neovim for note taking/learning. More on Zettelkasten: ua-cam.com/video/L9SLlxaEEXY/v-deo.html Article from video: medium.com/@eugeniyoz/angular-signals-reactive-cont...
What happened to Analog's experimental ".ng" format?
Переглядів 5 тис.2 місяці тому
My Angular course: angularstart.com/ A little while ago we talked about Analog's experimental .ng format that allowed creating Angular components with a component authoring experience that more closely resembles something like Svelte or Vue This video is a follow up to cover what ended up happening with the format. 3 months of WebStorm free: www.jetbrains.com/store/redeem/ (use code: K4UQV-BPUN...
Full stack reactive CRUD in Angular with Go (or any REST API)
Переглядів 9 тис.2 місяці тому
My Angular course: angularstart.com/ I've received quite a few requests for guidance on how to integrate the reactive/declarative RxJS and Signals approach I often talk about with a typical REST API backend. In this video, we walk through what it would take to swap out a local storage solution for a REST API in the Quicklists application from my course. Frontend: github.com/joshuamorony/angular...
A workflow for complex open source contributions
Переглядів 3,8 тис.2 місяці тому
My Angular course: angularstart.com/ Once you move past the basics, the process for getting a pull request for some more complex contribution can be quite intimidating. This video aims to show what the entire process might look like from the idea to getting your pull request merged. Get weekly content and tips exclusive to my newsletter: mobirony.ck.page/4a331b9076 Want to build mobile apps wit...
Don't make my toSignal mistake in Angular
Переглядів 7 тис.2 місяці тому
My Angular course: angularstart.com/ I was trying to use toSignal in Angular with a global error handler service when I ran into some weird behaviour: when a single error occurred, I was getting tons of error messages spammed on the screen. It turns out that this was due to the way toSignal handles errors from observable streams, that results in an error being thrown every time a signal is read...
Refactoring my ugliest code with signal view queries
Переглядів 9 тис.3 місяці тому
My Angular course: angularstart.com/ The new signal based view queries in Angular make it far easier to write reactive and declarative code. In this video, we take a look at how I refactored a feature that relies on accessing a video element in the DOM to access its loadstart event. Get weekly content and tips exclusive to my newsletter: mobirony.ck.page/4a331b9076 Want to build mobile apps wit...
The mindset you need for a DECLARATIVE code refactor
Переглядів 11 тис.3 місяці тому
My Angular course: angularstart.com/ Why thinking like a Karen can help you get in a declarative frame of mind for refactoring a codebase from an imperative style More on declarative code: ua-cam.com/video/skOTEbGwncE/v-deo.html Get weekly content and tips exclusive to my newsletter: mobirony.ck.page/4a331b9076 0:00 Introduction 0:39 Typical imperative approach 1:06 Rule 1: Never change things ...
I didn't know snapshot testing was a thing
Переглядів 4,4 тис.3 місяці тому
I didn't know snapshot testing was a thing
Why Neovim nerds are so obsessed with the terminal
Переглядів 76 тис.3 місяці тому
Why Neovim nerds are so obsessed with the terminal
A cautionary tale about ChatGPT for advanced developers
Переглядів 317 тис.4 місяці тому
A cautionary tale about ChatGPT for advanced developers
Watch this BEFORE updating to signal inputs in Angular
Переглядів 10 тис.4 місяці тому
Watch this BEFORE updating to signal inputs in Angular
SIGNALS can make Angular "REACTIVE" forms more reactive
Переглядів 14 тис.4 місяці тому
SIGNALS can make Angular "REACTIVE" forms more reactive
Should this be the future of Angular applications?
Переглядів 11 тис.4 місяці тому
Should this be the future of Angular applications?
Why signal INPUTS in Angular are such a big deal
Переглядів 14 тис.4 місяці тому
Why signal INPUTS in Angular are such a big deal
How to casually change the entire way Angular components work
Переглядів 10 тис.5 місяців тому
How to casually change the entire way Angular components work
A "simplified" approach to Angular components?
Переглядів 14 тис.5 місяців тому
A "simplified" approach to Angular components?
The inject function in Angular is not just a toy
Переглядів 15 тис.5 місяців тому
The inject function in Angular is not just a toy
Things are getting serious with AnalogJS (Angular SSG)
Переглядів 14 тис.5 місяців тому
Things are getting serious with AnalogJS (Angular SSG)
This taught me so much about advanced TypeScript
Переглядів 10 тис.6 місяців тому
This taught me so much about advanced TypeScript
Why does building an Angular app with INJECTION TOKENS feel so good?!
Переглядів 16 тис.6 місяців тому
Why does building an Angular app with INJECTION TOKENS feel so good?!
I tried to build my dream (simple) state management for Angular
Переглядів 11 тис.6 місяців тому
I tried to build my dream (simple) state management for Angular
Server rendered Angular websites in literal minutes...
Переглядів 24 тис.6 місяців тому
Server rendered Angular websites in literal minutes...

КОМЕНТАРІ

  • @RuslanSendecky
    @RuslanSendecky 49 хвилин тому

    I'd been using neovim for many years and recently I got swayed.😅 My life balance was heavily disrupted by Helix. OMG, it's so good. Been testing and using Helix for about 2 months now and I don't think I am going back. For all the Neovim lovers, I recommend trying it out. I feel like "object -> verb" model does make sense in a way that you clearly see what you act on before you actually act.

  • @pavelczhmeliew
    @pavelczhmeliew 19 годин тому

    Great video! I've been working with Angular for the past 7 years, and your case only confirms how overengineered, complicated, and boilerplated Angular development has become. In my opinion, trying to apply back-end development practices to a front-end app driven by user actions and dynamic UI changes only makes the development more complex and overpriced. I can't tell you how many times I've wasted time just solving irrelevant problems like where to put this feature/service, how to connect different parts of a large enterprise application using NgRx without circular dependency, without breaking patterns, and without using workarounds. Initially, the reason we use JavaScript on the front end is to create flexible solutions that can easily adapt to dynamic UI changes. On the other hand, back-end development uses more strict rules and patterns. This is because back-end systems need to ensure data integrity, security, and consistency, often dealing with complex business logic, transactions, and concurrency. Adhering to strict rules and patterns helps maintain stability, scalability, and reliability in these systems. Angular encourages the use of concepts which are common in back-end development. However, these practices can sometimes be overapplied, leading to front-end code that mimics back-end structures unnecessarily, increasing complexity without clear benefits.

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

    How did you switch your file explorer to the right side, sir?

    • @JoshuaMorony
      @JoshuaMorony 23 години тому

      you can see my neotree config here: github.com/joshuamorony/lazyvim/blob/main/lua/plugins/neo-tree.lua (note the window position = "right" config specifically)

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

    is this guy flexing?

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

    im pretty sure asking an ai plugin inside in vscode can build vim in 10 seconds

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

    Cool! A lot of our mindset is implicit so it's hard to explain why some patterns are better. It's great you were able to explain this soon after you realized it. I was lucky enough in 2017 to work with a super computer science geek who explained something like this to me. Basically that dependencies can look like a diamond instead of a tree, where there's the root of the application that's extremely light, and then you can have other stuff that's common for all features that isn't in the root, but rather a tiny standalone thing that gets imported into other things. So small, focused things get imported into bigger features that combine features, like dashboards. When he explained it, it felt like my brain became untangled, and like you said it became obvious in hindsight. So obvious that I quickly forgot the mental model I used to have so I can't even explain the realization anymore! And I can't immediately tell who doesn't think of things this way either. But I see weird import patterns all the time. For example: importing routing modules into feature modules. It seemed like the whole community was doing that before standalone components.

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

      I think the idea about a lot of our mindset being implicit is interesting. I feel like I can even use an idea or pattern quite effectively for a long time before some final piece clicks into place that allows me to think about it in a more concrete way (and a way that I could explain without vaguery and hand waving). Declarative code was very much like this for me - for a long time I used the concepts and benefited from them, but then at some point it's like some final little piece of the puzzle clicks in that reveals everything with much more clarity. I often get the sense that my subconscious mind knows these things better than I do (which leads to those ah-ha! moments in the shower), the trick I feel is getting to the point where I can think about it clearly in my conscious mind. Feels a bit woo-woo but I've wondered if there are ways to better or more intentionally leverage our subconscious mind or if there has been much research done in that area.

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

      Definitely not woo woo . I've read a few psychology books and I think most people underestimate how much of who they are and what they think is subconscious.

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

      ​@@mfpears have you read The Master and His Emissary? It's been on my reading list for years now, if I remember correctly it covers the idea of our conscious mind sort of being like a dumb king that thinks it's in control/thinking of all these great plans, but most of it is coming from our subconscious mind (think it touches on implications of the split brain experiments). Curious to know if you think it's worthwhile if you have read it.

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

    You could coin this as the Dependency Inversion principle!

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

      It's funny because this is quite literally a dependency inversion, but I've never really though about DI from SOLID in that way (maybe I should), but I think about it more in the context of depending on abstractions instead of concretions (not changing the direction of a dependency)

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

    OoOor, you could just pick the state service out of word/dashboard service to be its own shared service and both word/dashboard service could be dependent on it... if you could that easily move those states to another service, then it probably can be service on its own

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

    Well I unsubscribed since that was inverting the state. /s Just make sure the part you are inverting needs to be done.

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

    Invert dislike 😅

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

    why do you always need "as const" in your signalSlice fun for the status prop in your state?

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

      Because its supposed to be a specific union type or strings (e.g. "a" | "b" | "c"), without "as const" the type will just be a generic "string" not a specific string

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

      @@JoshuaMorony that makes sense, thank you. I was creating specific types but I like your const approach most. Thank you Josh, been trying the signalslice and I find it awesome :)

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

    Hi Josh, this is really a great video, but I do have a question about it the architecture that I haven't seen in any of your other videos wherever you talk about, how do you deal with shared features (features that depends on other features)? In the context of your video, let's say your "notes" feature can be associated with one or more clients, so somewhere in your "notes add" feature you'd have to show a list of clients from which the user can select from. How would that look like? Should there be a "client list" smart component for each feature that needs to use it? Should there be a shared service specific for loading data for this?

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

    Nice ending!!! lol!!!

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

    Great mantra. Thanks!

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

    That actually makes a lot of sense. Regarding folder structure - I have all my data fetching services in one place, kinda like this: core/inventory/products/ product.service.ts and product.types.ts. My core is kinda like your shared as the services can be injected by anyone and don't hold any state, and then I have my pages: pages/inventory/products/products.ts and products.store.ts (ngrx component store) which then holds all the state of that component.

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

      And to not unnecessarily fetch data multiple times I have implemented a caching service using cashew using cache buckets and a cache bucket gets cleared by my backend when someone changes something -> a cache clearing event with the specific bucket name is sent to all clients connected via SignalR. Don't know how well that will scale though but it works very well and I have made it so that if you fetch lets say all products it also caches the keys of each entity and if you fetch a single product it won't have to go to the server if said product has already been fetched with the "get all" request (or paginated request in my case)

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

      @@MrBloodWoork Wow, neat idea. I used to cache manually some standalone bits of state that were fetched often, but never implemented scaleable solution. I m just wondering. How exactly backend clears cached data? You receive some kind of array key with changed objects or something?

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

      @@loko1944 No, in the frontend I have so called cache buckets. With cashew you can decide for every request which cache bucket the data should be stored in. I used a string backed enum to assign the names to the buckets. Let's assume we have the products cache bucket and we use it for the GET /products request in the frontend. Now in my backend I just call my cache invalidation service with the products enum value right after code that changes or deletes a product. So when POST /products is called then a message is broadcasted to all connected clients to clear their cache with the cache bucket name "products". However I did have to create a dependency map and clear all other buckets which depend on products because e.g. an asset has a product and so assets have to be cleared too because I have joined assets and products when fetching assets to be able to display the assets product name.

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

      @loko1944 No, in the frontend I have so called cache buckets. With cashew you can decide for every request which cache bucket the data should be stored in. I used a string backed enum to assign the names to the buckets. Let's assume we have the products cache bucket and use it for the GET /products request in the frontend. Now in the backend I just call my cache invalidation service with the products enum value right after code that changes or deletes a product. So when POST /products is called then a message is broadcasted to all connected clients to clear their cache with the cache bucket name "products".

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

      @@loko1944 However I did have to create a dependency map because e.g. an asset has a product and so assets have to be cleared too because I have joined assets and products when fetching assets so I can display their product names.

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

    I use charlies estate management framework.

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

      I'm sure I'll be reading more from Charlie, I picked the book up on a whim but I don't think I've taken so many notes from a book in my life

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

    Hello Joshua, thanks for sharing the video. What your thoughts about creating a specific lib/module to expose that dependecy like a "contracts"? When i have composable features, like "customers", "sales" to build a "dashboarad". I expose 2 new from "customers" and "sales" called "dashboard-api-claim" and manage what would be exposed to dashboard feature, commonly data-access/some-api-service.

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

      If I'm following you correctly then I think that makes sense for having more granular control over what is exposed (I haven't personally done something like it though)

    • @g-luu
      @g-luu 3 дні тому

      Yes this is mostly what is recommended and i think Manfred Styer and the angular architect team started it. Inverting is good but it ends up ugly as time pass cause you end up having a shared service that has trivial APIs cause of some small dependency.

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

      @@g-luu Interesting to know. I never did large projects that way thats why i probably never notice that

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

    I loved the video! A great mindset to have. And, as requested, I unsubscribed.

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

      I've decided always invert is terrible advice now

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

      @@JoshuaMorony thinking in takeUntilDestroyed() terms no one should unsubscribe as long as your chanel is available 😅

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

    Join my newsletter for more content: mobirony.ck.page/4a331b9076

  • @ShivamKumar-jj6ln
    @ShivamKumar-jj6ln 4 дні тому

    export const JobHandler: Handler = async () => { const module = await import(`@nova/components`); const viewContainer = inject(ViewContainerRef); viewContainer.createComponent(module['LoaderComponent']); console.log('JobHandler is working'); return true; }; Error: NG0203: inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext`

  • @nomadshiba
    @nomadshiba 5 днів тому

    you know you can just return promise and convert Signal<Promise<Then>> into a Signal<Until | Then | Error>. also adding retries to promise doesn't require rxjs, you can have your own retry wrapper that can also return a promise which doesn't have to be aware of signals are a thing

  • @swapnilpatel5743
    @swapnilpatel5743 5 днів тому

    haha, I see you've used 'firebase' and not '@angular/fire' as the later still doesn't have zoneless support. 😢

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

    Would a strong grasp of the material in this course be enough to get an entry level role using Angular? I use Java Spring backend, MySql, Html, Css, JS, and some TS with Angular on frontend. I'm just not sure when I'll ever be good enough. I have a portfolio site, 5 apps deployed to AWS EC2. I have a 6 month window before moving back to the States with my family and want to find work ASAP.

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

      I don't know your situation, nor do I really know the current job market first hand as I have not had to deal with it any time recently, but my guess is that it sounds like you already would "qualify" for an entry level role (maybe beyond that), and maybe the issue lies somewhere other than needing to know more stuff to land a role (likely a big part of the problem is that from what I have heard the market for entry level positions is very competitive/difficult at the moment). This isn't particularly useful advice, because I don't think I have good advice to give on how to land a job in today's market, but I did want to make it clear that I don't think going through my course is necessarily going to help you land a job. That said, at least from my perspective, someone who has a strong grasp of all the topics covered in the course would be among the best Angular developers (but also, that would come through repeated application of these concepts over a period of time to develop that "strong grasp"). But ultimately, even if you have all these skills, it still might be difficult to land a job without prior positions/network.

  • @willmoorby9781
    @willmoorby9781 7 днів тому

    Do you have any videos of your Neovim/tmix config? I love your Monokai like theme!

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

      I don't have a video, and my tmux config isn't public, but my neovim config is available here: github.com/joshuamorony/lazyvim/

  • @ihateidiots9484
    @ihateidiots9484 7 днів тому

    Redux and NgRx popularity is the sign that modern front-end developers became stupid

  • @MartinMikulaPrespic
    @MartinMikulaPrespic 7 днів тому

    What is the point of calling toSignal? What is the benefit? Why not to use just selector with rxjs pipe(map) and bind with async pipe?

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

    Arf, just bought it yesterday 😢

  • @Joao.Costa.5504
    @Joao.Costa.5504 9 днів тому

    Basdasdas

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

    @JoshuaMorony I have used signals but prefer to just carry on using rxjs alone since I don't feel I gain anything. A reactive system needs to support asynchronous operations, which signals do not do. Combining signals feels like jamming a square peg into a round hole. It feels like a pointless change to an already perfect way of front-end programming. I think the only reason signals were introduced was because the Angular team see that most people don't want to learn rxjs. Great; instead of improving, lets all adopt an inferior system. There's even talk that Angular are aiming to remove rxjs completely from the core Angular packages. I am really disappointed that this is the direction the Angular team are taking this direction as I was so happy with Angular the way it was. What are your thoughts on this?

    • @valcron-1000
      @valcron-1000 10 днів тому

      100% agree. I shared the same opinion back when signals were introduced. They don't solve anything that rxjs doesn't already solve (except maybe for "glitches" but those can be worked around in rxjs) but now you have a fractured ecosystem where every Angular app becomes a mess of mutation with zonejs + signals + rxjs. Unfortunately the Angular team will keep adding changes to the point where it will become a mix of React/Vue/Svelte instead of having its own identity.

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

      I got into some thoughts around this in this video: ua-cam.com/video/iA6iyoantuo/v-deo.html but my general opinion is that signals are a better way to represent state, and observables are a better way to handle events, and the flow I've landed on in my apps of starting with observables which flow through to signals to be consumed by the components I quite like/am happy with. But if you do go the pure RxJS approach I don't think there's anything wrong with that (generally speaking, a pure RxJS approach is going to be fine, a pure signals approach might be questionable)

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

      @@JoshuaMorony thanks man

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

      @@valcron-1000 Signals may become an integral part of Javascript, FYI, so there's not running away from it. It looks like they're here to stay.

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

    WOW 1 THOUSAND MEMBERS of the course 👏👏👏👏👏 that's wonderful 😃 very cool video, thank you, great to have as a reference as I will be returning to re-watch it from time to time

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

    you should take a bit look to Effect ts to give typescript beyond

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

    I'm picking up build errors. Have there been updates since the video was made? The video seems newer than the timestamp of the repo. Another discrepancy I've noticed is that the VSC project title is not the same as the repo. The package.json seems outdated as well. I enjoy your YT presentations that take developers to the next level.

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

    Can you please add release notes with what you updated in angularstart? It will be helpful in case you update the article that I have already read and I can read it again 😁

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

      Ah yes this is a good point I'll add this, but for v18 the only entirely new lesson is this one which covers signal APIs that were not present previously: angularstart.com/modules/basic-angular-concepts/7 The rest of the updates have mostly been updating all the code to make use of the new signal based APIs where they were previously using the old APIs (e.g. @Input, @ViewChild etc)

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

    Get 20% off my Angular course: angularstart.com/ (expires 48 hours from time of this comment)

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

      Coupon doesn't apply

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

      @@biovawan there isn't any coupon code required, the price is just reduced by default during the sale

  • @djsargex7777
    @djsargex7777 13 днів тому

    Everything cool here cept for lame drake memes

  • @lorenzozapaton4031
    @lorenzozapaton4031 13 днів тому

    Oh boy, I wonder what video you will gonna do after you transition to Emacs.

  • @MonaCodeLisa
    @MonaCodeLisa 13 днів тому

    cool video, thank you for sharing but yeah why not just going with - Analog ?

    • @JoshuaMorony
      @JoshuaMorony 13 днів тому

      This video was published just after v17 and I think before I started getting more seriously involved in Analog - personally today I'd use Analog, but I still think it's useful to cover what Angular can do alone

    • @MonaCodeLisa
      @MonaCodeLisa 13 днів тому

      @@JoshuaMorony I agree completely :) I was only surprised because I think you mentioned Svelte-kit which is also nice... but not as nice :) but true that was 6m ago, time flies

  • @hohohodrigues
    @hohohodrigues 14 днів тому

    I'm dumb and i like being dumb, I'll stick to vscode thank you

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

    form events is much more impressive new feature if you ask me

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

    How would you handle a shared component with a standalone component? Previously, with modules, creating a shared module and importing it into other modules worked seamlessly. How do you manage shared components now?

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

    Btw, how do you manage typescript types with this folder structure?

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

    I could not even comprehend typing a simple utility; what could be worse?

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

    here's too many layers and too much abstraction, Angular jobs are much fewer than React and if they keep adding all this Angular only sh!t it's going to put off even more devs. Relearning everything ever few years to get same result is poitless jerking off. Love your vids!

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

    Why does this make Angular a "modern" framework? To the developer ecosystem that is in charge of choosing and supporting Angular, it's juts another different OnPush overhead but with more complexity and more to onboard

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

      The way I see it, these changes are what the Angular team think are necessary to make Angular congruent with where frontend/the web is heading, and it is heading in a direction that requires a shift. But Angular is also committed to not pulling the rug out from under people (which you could argue happened with Angular 2), and so we get this slow/somewhat awkward course correction that hopefully finds a nice balance between evolving but also maintaining stability. The changes feel like the right move to me, but you could also argue that the Angular team have the direction wrong and that things like signals and zoneless aren't needed, or that Angular should just focus on keeping what we already have stable rather than evolving - but, as I hint at in the video, I see that as a path toward Angular becoming a "legacy" framework which is something I personally wouldn't want to see happen. So to address your question more directly, it makes Angular "modern" because it's what the Angular team thinks is required to make it modern - you could debate whether they are right about that or not though.

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

      @@JoshuaMorony It would be interesting if in the future after this change, "modern" is decided to be (or more capable of being) automatic no overhead optimistic change detection triggers and it all comes back around

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

    in what ways its gonna convince us not use react , already people are not ready to move from react , these updates have caused hate on angular among developers ( who is not ready to get the extra work done with same or lesser pay) , I personally don't think making it zoneless, using signals are gonna make any change in the existing apps. Right now the trend for recruitment in angular is just for maintenance and no active development hence they are not paying much .

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

      It's always going to be the case that a tool/framework/whatever is going to have to "adapt or die" especially in the web space - it's just not going to be the case, especially for something that Google is heavily relying on for their own apps, that something is going to go on existing in the frontend space for 20 years and not make changes/course corrections. Certainly you can have the view that Angular is moving/evolving in the wrong direction, but to expect things not to change/not need to update things over time is not realistic imo

  • @user-rr1ve8jx5e
    @user-rr1ve8jx5e 16 днів тому

    Hey bro localhost:3000/upload How you defined upload at the end?

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

    Lost it at "you're so much better than the last guy" 🤣

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

    One thing to remember: zoneless !=== fine grained reactivity

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

    After seeing the thumbnail, I was ready for some multi-track drifting :)

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

    We already went full zoneless and signals everywhere. Amazing, simply amazing

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

      @CesarLP96We moved from one of our projects. It has some DX improvements due to no Zone js patching but the performance was already fine so can't really notice any changes.