Shiv Kumar
Shiv Kumar
  • Видео 132
  • Просмотров 917 710
Unit Testing Strategy
In this video I attempt to make a case for Test. In particular Acceptance or Integration Testing rather than Mocking or Testing in Isolation.
Movie Service Repo
github.com/matlus/MovieServiceRUclips
The Art of Unit Testing • Roy Osherove & Dave Farley • GOTO 2021
ruclips.net/video/6ndAWzc2F-I/видео.html
00:00 Intro
01:19 Experience Multiple Techniques
02:36 Compare the Best Practice of Each
05:18 The Case for Writing Automated Tests
08:32 What is a Unit
13:24 Purpose of Unit Testing
14:00 Transitioning from Testing Classes to Systems
16:46 Confidence To Deploy
18:16 The Value of Regression Tests
21:22 No Drift
23:01 The Problem With Mocking
23:56 TDD is Dead. Long Live Testing
29:09 I don't Subscribe to T...
Просмотров: 3 059

Видео

Service Interface Layer Pattern
Просмотров 3,4 тыс.2 года назад
The Service Interface Layer Pattern is probably the unsung hero of patterns. I think it is one of the most important patterns, given that it should be used in practically every application you build. In this video, I talked about how I was introduced to it and where and how I use it, as well of the advantages of using this pattern. Link to the Source Code used in this video: github.com/matlus/M...
Let's Talk - Null Conditional Operator. No Thank you!
Просмотров 2,2 тыс.2 года назад
The Null Conditional Operator was introduced in C#6. It seemed like a good addition to the language at the time. However, very quickly I discovered that this is NOT a feature I’d like to use and in fact anytime I see it being used a Red Flag goes up. In this video, I talk about the reasons for why I don’t use this feature and if I do, there on only one specific reason for it. My VS Editor Fonts...
IDisposable Exposed
Просмотров 3,3 тыс.2 года назад
Why do we need to Dispose things, when we're in a Managed Runtime? When should be be disposing? How to correctly dispose of things? All these and many more question discussed and answered in this video. We look at a number of complicated scenarios in this video by way of code examples and go about fixing the issues to make all work as it is supposed to. Source Code for the Completed VS Solution...
Prefer Composition Over Inheritance - A Real-World Example
Просмотров 4,8 тыс.2 года назад
Prefer Composition Over Inheritance is an important tenet of Object oriented programming, but what's so bad about Inheritance? In this video, we'll explore some of these problem with an example of a real-word scenario and then also look at a solution to the problem using Composition. Source for the Visual Studio Solution discussed in this video: github.com/matlus/PreferCompositionOverInheritanc...
Custom Loggers. Importance of Logging Off Application Servers
Просмотров 1,2 тыс.2 года назад
In this video I talk about the importance of Disposing the Logger Provider, the Importance of Logging Off the Application Servers such as to Splunk and Application Insights. Finally I go on to introduce the custom In-Memory Logger, and how to register this logger with the Logging Bootstrapper the LoggingBuilder. Source Code for the Project Discussed in this video: github.com/matlus/HighPerforma...
Fireside Chat Series
Просмотров 5342 года назад
The idea with this series is to have 10-15 minute videos (like VLOG of sorts) where I talk about some software related idea, experience, conversation etc.) This series is quite informal. I could be at home, on a walk, cycle or mortor cycle ride or on a hike etc. Would you be interested in this short form content?
High Performance Logging and Custom Objects
Просмотров 1,6 тыс.2 года назад
In this video, we'll talk about a Feature in C#9 .NET 5 that allows for easy High Performance Logging. However, there are some unfortunate drawbacks and a bug that render this feature (that's implemented using Source Generators) somewhat useless. But I show you how you can do this correctly in .NET Core as well as .NET 5. I also show you how to log custom objects in the most efficient and perfo...
Logging And Application Insights in Non-ASP.NET Applications
Просмотров 1,8 тыс.2 года назад
Trying to get Logging to work correctly in non-ASP.NET Applications working is quite a feat. Same goes for Configuration. In this video I present a simple class that does all of this for you and I also talk about some of the issue with logging in general as well as issues with the ILogger. I also present a solution for some of these issues. Source Code for the Project github.com/matlus/ConsoleA...
To LINQ Or Not To LINQ - That is the Question
Просмотров 3,3 тыс.3 года назад
LINQ introduces inefficiencies in the form of hidden allocations. The C# Team's coding guidelines say: 1. Avoid LINQ 2. Avoid using foreach over collections that do not have a struct enumerator 3. Consider using an object pool. There are many usages of object pools in the compiler to see an example Having a good understanding what LINQ is does internally should yield enough information to know ...
gRPC - Real-World .NET Core/.NET 5 Applications
Просмотров 3,1 тыс.3 года назад
gRPC is a high performance Remote Procedure Call framework that can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. In this video, we talk about how to combine regular ASP.NET Core Web API endpoints with gRPC. How to design and implement your applications insofar as gRPC code generated classes and ho...
gRPC - Getting Started .NET 5/ .NET Core 3.x
Просмотров 3,8 тыс.3 года назад
gRPC is a high performance Remote Procedure Call framework that can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. This video I show you how to get started with gRPC in .NET 5/ .NET Core 3.x using Unary and streaming calls. The source code for the project developed during this video can be found her...
Introduction To gRPC
Просмотров 6 тыс.3 года назад
gRPC is a high performance Remote Procedure Call framework that can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking and authentication. The main benefits of gRPC are: Modern, high-performance, lightweight RPC framework. Contract-first API development, using Protocol Buffers by default, allowing for language agnostic imp...
Abstraction In Software Design - With Examples
Просмотров 2,6 тыс.3 года назад
Abstractions are the most fundamental elements and the most important tenet of Software Design. Yet, most of us can't explain it, or can't recognize good from bad abstractions. In this video I attempt to explain how to design abstractions as well as how to recognize weak and strong abstractions and when to even attempt to abstract. Encapsulation vs Abstraction www.tonymarston.co.uk/php-mysql/ab...
SOLID IS OLD!! - Dependency Inversion Principle
Просмотров 4,8 тыс.3 года назад
SOLID Principles are the core principles of Object-Oriented Design. Buy SOLID is OLD! Get it? O, L, D are essentially Polymorphism. I’ve removed S and I and used it as “IS”. But SOLID is fact OLD, in that not only is this not new. But I think we need to move past SOLID, primarily because of the issues with SOLID. In this video, I tell you why I think that is, and the issues I have with SOLID. B...
Abstraction in Software Design
Просмотров 6 тыс.3 года назад
Abstraction in Software Design
C# 9 Record Types
Просмотров 3,1 тыс.3 года назад
C# 9 Record Types
Improve Your Communication Skills
Просмотров 6 тыс.3 года назад
Improve Your Communication Skills
Let's Talk - Always use the "as" operator - No Thank you
Просмотров 1,4 тыс.3 года назад
Let's Talk - Always use the "as" operator - No Thank you
Programming Destination for 2021
Просмотров 1,5 тыс.3 года назад
Programming Destination for 2021
Let's Talk - Validating Formal Arguments - No Thank you!
Просмотров 2 тыс.3 года назад
Let's Talk - Validating Formal Arguments - No Thank you!
Let's Talk - Creating Instances, Using Inheritance - No Thank you!
Просмотров 2 тыс.3 года назад
Let's Talk - Creating Instances, Using Inheritance - No Thank you!
Let's Talk - Separate State from Behavior - Yes PLEASE!
Просмотров 2,4 тыс.3 года назад
Let's Talk - Separate State from Behavior - Yes PLEASE!
ASP.NET Core SignalR & Worker Service - Part 3
Просмотров 2,4 тыс.3 года назад
ASP.NET Core SignalR & Worker Service - Part 3
ASP.NET Core SignalR & Worker Services - Part 2
Просмотров 4,1 тыс.3 года назад
ASP.NET Core SignalR & Worker Services - Part 2
ASP.NET Core SignalR & Worker Services - Getting Started
Просмотров 15 тыс.3 года назад
ASP.NET Core SignalR & Worker Services - Getting Started
WebSockets an Introduction and Deep Dive
Просмотров 3,8 тыс.3 года назад
WebSockets an Introduction and Deep Dive
So You Want To Be A Code Reviewer? #8
Просмотров 5683 года назад
So You Want To Be A Code Reviewer? #8
So You Want To Be A Code Reviewer ? #7
Просмотров 5273 года назад
So You Want To Be A Code Reviewer ? #7
So You Want To Be A Code Reviewer? #6
Просмотров 6393 года назад
So You Want To Be A Code Reviewer? #6

Комментарии

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

    awesome!

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

    Hi Shiv, Thanks for creating this channel and posting extremely helpful and eye-opening videos. I recently came to this channel and feel I should here years ago.

  • @user-pm7kt8tm1s
    @user-pm7kt8tm1s 3 месяца назад

    Show the code! Another talking head.

  • @user-ij5sy5fc2i
    @user-ij5sy5fc2i 3 месяца назад

    Great job, Awesome video!

  • @RineezAhmed
    @RineezAhmed 3 месяца назад

    Thanks for the deep explanation. That's exactly what I was looking for!

  • @nathannyawaya
    @nathannyawaya 4 месяца назад

    I have gained clarity today, I have been coding for 2 years now, and take me back 2 years ago, I couldn't wrap my head around anything close to this video, I agree with you, Experience makes this fall in place.

  • @rahulsalinskee7685
    @rahulsalinskee7685 4 месяца назад

    Hi Shiv, Thanks for a healthy talk on dependency injection from your prospect. I am equally curious on knowing - How you will come up with something to achieve the goal using without dependency injection. Also, I am equally curious to know the solution for all the topics you talked about on "Let's Talk - ... - No Thanks". Is it possible for you to share the light of your thought highlighting more on the solution part. I will be waiting for you to uploading videos on that! Thanks again Shiv for the content!

  • @Rahu619
    @Rahu619 5 месяцев назад

    Looking forward to your tidbit/ fireside series

  • @KarthikS30712
    @KarthikS30712 6 месяцев назад

    I just discovered your channel. Greatly appreciate your insight.

  • @kvelez
    @kvelez 6 месяцев назад

    22:53 Amen.

  • @M0ns1gn0r
    @M0ns1gn0r 7 месяцев назад

    Great explanation! Would be even better if you'd condense it like x3 :)

  • @kevinwright2229
    @kevinwright2229 7 месяцев назад

    Excellent information. I appreciate the way to walked through the problems you encountered and your thought processes to resolve those.

  • @ismaildieri7052
    @ismaildieri7052 8 месяцев назад

    You are just the mentor I have been searching for. Thank you for all your efforts. I have watched many of your content and still thirsty!

  • @maxlin2905
    @maxlin2905 8 месяцев назад

    I will watch all of your 132 videos, I love your presentation style and the topics you covered. It feels like having a face-to-face discussion with a very knowledgeable professor!

  • @topunixfan5501
    @topunixfan5501 9 месяцев назад

    Thank you so much! Last May I redefined my goals to become a .NET Developer. Probably something very unusual for a 64 year old, but it was that long it took me to realize that was what I really wanted to accomplish. I'm learning C# .NET MAUI using the Visual Studio for Mac 2022 IDE. I'm orienting my learning by developing an App that requires speech recognition. After researching and experimentation I came to the conclusion that I should use the Google streaming Speech-to-Text in its asynchronous processing modality. I know I have to use gRPC, Protobuf, Google.Cloud.Speech.V1, and that my C# business logic has to be multi-thread. That is a lot to handle simultaneously for a newbie like me. Therefore, your presentation has been extremely helpful. Right now all modules of my app are ready and functional. I only have to make speech recognition work. But is has been much more difficult to me than any other of the modules so far. To the point that I'm considering hiring someone to help me with this module. But I'm giving it a last try before hiring someone. Thanks again ❤. Subscribed!

  • @sarbanjeet
    @sarbanjeet 9 месяцев назад

    Thank you so much, I never know the difference between static object and allocation before.

  • @RiversJ
    @RiversJ 10 месяцев назад

    I've always interpreted the null conditional invokes to mean that it's an optional call if the thing it refers to exists but it's fine to skip. And got that purpose it's fantastic. Using it for "safety" is an antipattern. If it's not fine to skip then your code already has a built in bug with it.

  • @oggyoggy3033
    @oggyoggy3033 10 месяцев назад

    Hey sir my code works on local machine,But publish on IIS is not sending data to database and swagger view is also showing What can do for this any Help @ShivKumar,#ShivKumar

  • @hpeterh
    @hpeterh 10 месяцев назад

    "string" is a special type. It is a reference type, but it behaves like an object where all operators, copy, assignment and so on are overloaded, so that it behaves similar to a value type. However, "String" (with capital "S") is not an inbuilt data type, it is a class and it behaves somewhat different.

  • @matthewparker7789
    @matthewparker7789 11 месяцев назад

    Great video: only 13k subs ? :-(

  • @karamjeetpadam4719
    @karamjeetpadam4719 Год назад

    excellent explanation .thanks much

  • @prateekbhardwaj9943
    @prateekbhardwaj9943 Год назад

    no, i think to become a good communicator, you should have that deep Sylvester Stallone like of tone...

  • @prateekbhardwaj9943
    @prateekbhardwaj9943 Год назад

    waht a great deep voice....

  • @AMITPAUL-ty1hk
    @AMITPAUL-ty1hk Год назад

    Well explained Shiv. SOAP, Rest, GraphQL and gRPC APIs are been selected based on the business use case. Does it comes on design analysis (Decision Making) phase?

  • @Crosfake
    @Crosfake Год назад

    Shiv! Come back! Your content is huge! Hope you doing fine.

  • @mxmxmzmz
    @mxmxmzmz Год назад

    Thank you for video

  • @EliteCycleWalkWindsorCanada
    @EliteCycleWalkWindsorCanada Год назад

    Shiv.. thats a very good tutorial.. greetings from Pakistan 😀😀

  • @practicise
    @practicise Год назад

    Sir have you pdf notes also

  • @user-sy5fd7kn8w
    @user-sy5fd7kn8w Год назад

    Fantastic tut! Reminds me my own time 8 years ago when I integrated MVC app with Win Forms app via SignalR, and it blue my own mind with capabilities. Brings up memories. You have perfect voice for narration work.

  • @m.b.3488
    @m.b.3488 Год назад

    What an incredible fucking video... god bless you

  • @vahidrashidli5551
    @vahidrashidli5551 Год назад

    Shiv, your content is really the best it is so sad to see you not recording videos anymore! Hope you are doing well!

  • @nivethaa.e.s2939
    @nivethaa.e.s2939 Год назад

    Sir Thank you so much for this beautiful content, I am beginner with maternity and depression gaps. You are being humble with the content you come up with. This content and this key points which is not available on Google most reached pages.

  • @ijeanpierrebp
    @ijeanpierrebp Год назад

    Great explanation ⭐⭐⭐⭐⭐

  • @user-ts3zr5kr3b
    @user-ts3zr5kr3b Год назад

    Hallo, and thank you for this presentation. First sorry for bad english and second I am new in C#. I have a question. For me the listener is a new thread. And channel is from the UI-Thread. Why it its possible to use channel in the listener. What I have done, is EventingBasicConsumer basicConsumer = (EventingBasicConsumer)sender; IModel _channel = basicConsumer.Model; Is this wrong?

  • @vishnupv2008
    @vishnupv2008 Год назад

    Sir, where are you these days. We need you to contribute nee videos. Azure and edge computing and IoT Please

  • @dannyroy8571
    @dannyroy8571 Год назад

    In Azure DevOps how do i extract the pipeline status for each stage or task and forward each pipeline stage status to google chat hangout ??

  • @Anderson.Schmitt
    @Anderson.Schmitt Год назад

    what camera do you use?

  • @yoga.timenow
    @yoga.timenow Год назад

    Best content Shiv. Learned so much from you. To bad no more content coming.

  • @vanderpina_yt
    @vanderpina_yt Год назад

    It is a very nice explanation thanks for taking your time to explain. Yield return exists from .net 2.0. Streams have applications BUT, a big BUT here. If you are iteration over a database with a reader take care. Use this only if it is needed. Think about what will happen in your database: it will need to stream the data to you. your database have to execute your query, allocate resources to fill the result set and stream to you the first line, wait you process, return the second line, wait. This steps will execute till you process all your data and the resource will be locked till you finish. Imagine if you have 10k lines and you have to process everyone and it takes 1 seconds each iteration. lets imagine each row with 2kb of memory it will consume 19MB +-. Why dont take all data to the software and process instead of let this in the database memory for 2 hours and 30 min? your software will be closer the data and less process is needed to read the data. It will be faster. you could use sqladapter class with a datatable and fill all data in one step. But if you have a big dataset lets say 2 million row, it will be 3.82GB then a reader would work better, or not...depends on the scenario... But the idea is: always think about what is best, fuck the DBA or the USER... it's in production, it's a support problem, not a developer problem...

  • @Karen-mj9kk
    @Karen-mj9kk Год назад

    Best explanation I've found about IDisposable. Thank you!

  • @mnaveen24
    @mnaveen24 Год назад

    Sir, would you recommend using the method of creating a task from TPL as a subscriber to rabbitmq instead of creating many processes as a subscriber

  • @bprasad140
    @bprasad140 Год назад

    Hello @shiv kumar... Thank you for the explanation. I have a question. What happens to the previous Background Worker Service Instance when a new instance of it starts?

  • @skarabei2303
    @skarabei2303 Год назад

    What happens with you Shiv. Are you ok?

  • @Mytthewx
    @Mytthewx Год назад

    Thanks for this video, your solution about 307 is awesome.

  • @rodrigo6459
    @rodrigo6459 Год назад

    This is SO AWESOME!!! thank you a lot for this valuable info!!! just when I ended up creating a BackgroundService for email sending!

  • @olliveraira6122
    @olliveraira6122 Год назад

    In the case of "searchCustomer", what do you do if the customer doesnt exist? Return None? Im also curious, in the context of asking for an entire customer object or an ID for a costumer (where you said you favor the later to let the user of the API feel safe you dont access data you arent supposed to), what difference would that make in practice? How would asking for an ID of an object you need to modify differ from asking for an entire object from a security standpoint? Or did you mean that you would ask for an ID specific to the data on the costumer & not the customer object itself?

  • @saurabhchauhan232
    @saurabhchauhan232 Год назад

    Superb explanation with examples, hoping you continue making such content please 😀

  • @col89808880809
    @col89808880809 Год назад

    Excellent!!! Thanks for taking the time out to make a video for us to not have so much trouble. Will try this out now

  • @hansrudolf5849
    @hansrudolf5849 Год назад

    Just came across this video again :) Any reason why you first encrypt and only afterwards compress? Generally I would assume compressing first and encrypting after would yield you smaller request sizes. Still secretly hope that one day you will upload some new videos ;)

  • @rahulganga3274
    @rahulganga3274 Год назад

    Great sir👍