Тёмный

The Ultimate Coding Workflow 

Dev Mastery
Подписаться 14 тыс.
Просмотров 18 тыс.
50% 1

See the coding workflow that has significantly boosted my productivity and code quality.
Get more great tips by signing up for Dev Mastery Newsletter:
www.devmastery.com
Code Editor: VS Code
Theme: Night Owl by Sarah Drasner
Font: Dank Mono
Book: TDD By Example by Kent Beck
amzn.to/2MM0eJ0

Наука

Опубликовано:

 

3 фев 2019

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 69   
@DevMastery
@DevMastery 5 лет назад
Want more indepth TDD? Leave a comment below.
@sujeetagrahari2292
@sujeetagrahari2292 4 года назад
That would be so great. I like how you think of code and quality.
@mdsadiqurrahman9786
@mdsadiqurrahman9786 4 года назад
Enjoyed a lot. It would be great to have more TDD videos. Thank you for the content.
@TheDesvendador
@TheDesvendador 4 года назад
yep
@RealEstate3D
@RealEstate3D 4 года назад
Not so often, that I see videos not made for beginners. Interesting to see how others are working in their company. Would be a real benefit to see more of TDD. Your work is appreciated.
@bartek...
@bartek... 4 года назад
I have a difficulties to do TDD when I have ext library in my dependencies that I can't mock nor stub, it is simply to big or existing code have dependencies going both ways. After this vid I have few new tips to make my life easier. PLS DO MORE!!!
@mohamedmirghani1747
@mohamedmirghani1747 3 года назад
Why you stopped makeing those amazing videos ?! hope to see you creating content again
@leetkhan
@leetkhan 3 года назад
This channel is gold mine. I don’t why he stopped producing.
@dream_emulator
@dream_emulator 5 лет назад
You're an absolute legend Bill👌 Finally a code channel that isn't filled with wild speculation about frameworks or overly specific bleeding edge code specs in half finished languages. Here we have hands on - clear explanations of key concepts and workflow strategies born from experience. Keep it up Bill, this is really great stuff 👍
@manju4ever222
@manju4ever222 4 года назад
These are absolute pearls of wisdom. A true rarity in a content overloaded world !!!!
@misterrodger
@misterrodger 3 года назад
I came here to say the exact same thing, there are real pearls of wisdom in these videos.
@JamieNeubertPedersen
@JamieNeubertPedersen 5 лет назад
Please make a more in depth video about your way of testing both business logic but also your thoughts on testing adapters and 3rd party services
@DevMastery
@DevMastery 5 лет назад
Thanks for the feedback Jamie. I'll work on something like that for a future episode. In the meantime, when it comes to testing 3rd party stuff, you don't want to test that the third party's code is actually working (that's their job). You want to test that your code is consuming the third-party stuff properly. This is Integration testing and should be done using the real 3rd party tools (no mocks). If you find yourself needing to mock out a third-party tool in order to unit test some of your own branching logic then you might have a "seperation of concerns" problem. See my past videos "Designing a Clean REST API" (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-fy6-LSE_zjI.html) and "Freedom from Frontend Frameworks" (ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Z0Ocd8RmiWk.html) for more on how to separate concerns.
@elProdigio
@elProdigio 3 года назад
Please, you need to come back! Your videos are completely pure gold.
@hasanyahya8384
@hasanyahya8384 3 года назад
This channel is filled with absolute gems, thank you!
@jolava17
@jolava17 5 лет назад
Thanks. I use TDD too the same way as you and I confirm this is very efficient. Get your tests passing asap, then improve it! Once the test is written, it's fast.
@zeekzaak350
@zeekzaak350 3 года назад
watching it from 2021 and your videos are still amazing
2 года назад
Excellent! Thanks a lot Bill for this awesome content!!
@yousifmagdi
@yousifmagdi 4 года назад
Thank you so much for the videos you are making. You are really helping me a lot!
@firojsiddiki2207
@firojsiddiki2207 4 года назад
great Content. loving your teaching style. whatever you say, you demonstrate with live and good example which is awesome
@abneryang2102
@abneryang2102 4 года назад
Hoping you'll be able to come back and add more content! Thanks for this
@bartek...
@bartek... 4 года назад
You are definitely "real deal", tyvm for explaining best coding practices in JS. Many ppl starting from that lang.
@youtweek
@youtweek 5 лет назад
Thanks for that. Really useful!
@johnpaulbamberg8954
@johnpaulbamberg8954 4 года назад
I would love an indepth tutorial on TDD. You are the man!
@Danwald10
@Danwald10 5 лет назад
Good tips, thanks!
@asubijotaka7374
@asubijotaka7374 Год назад
Awesome, thanks
@marjaysonsanagustin
@marjaysonsanagustin 5 лет назад
will definitely wait for a complete tdd workflow workshop, have you tried making a complete course? I'm willing to purchase one!
@coffidev
@coffidev 5 лет назад
More in depth TDD please!
@ChrisWitko
@ChrisWitko 5 лет назад
great videos, more TDD, testing vidoes please! :)
@EricOmanoff
@EricOmanoff 4 года назад
Great Video
@MrOmarlive11
@MrOmarlive11 4 года назад
Very helpful we need more tdd
@MrMocyk
@MrMocyk 5 лет назад
Hi there! Thanks for great explanation and deep dive into details. I have a question about your way of doing tests in comparison to my own. For example if I need to test add method for shopping cart I will test only that db.insert was called with sufficient number of parameters (by creating spy object). Because I try to avoid unnecessary coupling between tests and in that concrete case I only interested in testing of add method behaviour. So, would You be so kind to explain in a nutshell why do You think your approach is better?
@damiangilz
@damiangilz 4 года назад
Let the code talk more! I want more!
@jacsurfing
@jacsurfing 5 лет назад
More in depth TDD please! please! please! please! please! please! please! please! please! please! please! please! please! please! please! please!
@bike4aday
@bike4aday 3 года назад
So, if the 'adds an item' test requires both .add(item) and .getItems() and for them to be implemented, then won't the 'lists items' test basically be the exact same test?
@crystalyun833
@crystalyun833 4 года назад
i miss you bill :(
@antoinelb8509
@antoinelb8509 5 лет назад
There is a lot of good TDD tutorials out there, the problem with them is that they all have cherry picked code (like this video), because they just try to explain the concept. But TDD is not failing in concept, everyone agrees that is good, it fails in real life. If you can make a tutorial that deals with edge cases of TDD, like for example when I code React I don't know what to do with; HoC, components that are just a interface for a library, a components that are very dependent on DOM listeners, or components that only render views. Those are the question that no one what's to answer because at the end of the day it just depends, but me being a noob I don't feel confident and that leads to me dropping TDD every tima I try it. It feels like every case I face in real life is just not meant to be done in TDD. Do you think you can help out with that? Thanks, great videos!
@DevMastery
@DevMastery 5 лет назад
I would love, love, love to cover exactly this. Do you have an example of some real code that you are having a hard time with and that represents the kind of edge cases you are talking about? It would be great to work through a realistic example. You can contact me at bill [at] devmastery [dot] com or DM me on Twitter @BillSourour . Thanks!
@alessandrob.g.4524
@alessandrob.g.4524 4 года назад
@@DevMastery I would like to see the outcome of this
@Tejas-zx7ie
@Tejas-zx7ie 4 года назад
Did anything happen with this. It's a legit question by op.
@antoinelb8509
@antoinelb8509 4 года назад
Dev Mastery there was a follow up, but by email. If Dev Mastery agrees I would like to post it here. But basically the answer was to ask for more precise problems I was having troubles with, and he answered independently. Maybe a good idea would be to make a list of edge cases for him to answer independently in a video
@vorandrew
@vorandrew 4 года назад
15:17 Genius!!!
@sprintwithcarlos
@sprintwithcarlos 4 года назад
Hi! How would you simulate a 500 error when testing a RESTful API using Jest and TypeScript? Thank you for all your great videos! Greetings from Madrid🇪🇸
@happysloth91
@happysloth91 4 года назад
hope u come back to post more videos.
@sansanbycas
@sansanbycas 4 года назад
Hey, thanks for the amazing content. Question: Why you are not async awaiting already in the "add" or "getItems" and just have async? Same for that Map object. There is just async on functions and no await. Sorry if this sounds noobish.
@DevMastery
@DevMastery 4 года назад
async guarantees that those functions will return a promise. I use that because I am expecting that the real db will return promises. Eventually, when my functions have more than a line or two of code, I will also make use of await.
@zdravkobeykov
@zdravkobeykov 3 года назад
What do you think about TypeScript?
@marekdano6165
@marekdano6165 5 лет назад
Thank for the tutorial! I'd like to ask about testing frontend which needs to pull data from web API. Will you recommend to build a stub which will behave like a real web API or you create a mock to cover the web API? What approach will you use, please?
@DevMastery
@DevMastery 5 лет назад
I actually just made a whole video about this exact topic. Check it out: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Hw522TDxMZk.html
@marekdano6165
@marekdano6165 5 лет назад
That's great. Thanks a lot!!!
@ipmarkpi
@ipmarkpi 5 лет назад
Did you say you haven't had good experience with BDD (Given/When/Then)? Surprised to hear that. I have had good experience and have found it a good way of capturing requirements, documentation and tests in one place. Thanks for your videos and newsletters. I'm a long-time follower and have benefitted plenty from your sharing.
@DevMastery
@DevMastery 5 лет назад
Thanks Mark! I'm strongly in favour of thinking about tests in terms of behaviour rather than implementation. The aspect of BDD I had trouble with was getting the customer to work on and directly participate in the creation and modification of those tests. I find customers are still more comfortable with user stories or use cases.
@ipmarkpi
@ipmarkpi 5 лет назад
@@DevMastery Oh, yes, I'm with you there. I've yet to work anywhere where the customer writes the Gherkin. I think that idea is aspirational, though. I like how Mike Cohn describes the role in "User Stories Applied"; he refers to the notion of the Customer Team, made up of product, user role reps, UX, and a couple of others. Granted he's not referring to this problem specifically, but if I was running a well enough funded shop I'd experiment with this organisation.
@devlust
@devlust 4 года назад
I understand that mocking is a code smell for the reason that it creates coupling in the code, and then should be treated carefully. Seeing your case, you're creating this stub of the DB, in which you're basically implementing your small version of a DB with some interface, instead of using a mocked object. But this approach is creating the exact same coupling that a mock would create because you need to know beforehand that each cart method is using specific DB methods to do specific things (otherwise you wouldn't be stubbing/mocking it), meaning that to know if an item was added to a list you could either create the stub, call `cart.getItems()` and check the result, or mock `db.list()` to return the expected item (like you're already doing in your stub) and asserting that `cart.getItems()` again returns the expected item. Both ways technically achieve the same result with the same level of coupling. So, in the end, what's the point of going through the hassle of creating this stub (which could be a lot more complicated depending on what you're stubbing) when you can simply mock the entire module interface with a single function like `jest.mock('module')`? Also another point said at 10:10 "And the trouble with that [mocks] is that then you end up really testing your mock and not testing the real thing". I believe this was probably just bad choice of words at the recording time, because it really makes no sense for me if you're doing it in the way I exemplified earlier. But I would like you to elaborate in case I'm wrong on that :) Thanks for the awesome knowledge share, and please don't take my words as any kind of offense or anything like that, I'm just trying to understand your thoughts better since we came to these conflicts in knowledge that could help everyone else to learn :)
@DevMastery
@DevMastery 4 года назад
Thanks for taking the time to watch and provide feedback. The reason I prefer stubs over mocks is explained nicely (much better than I did in this video) by Martin Fowler in an article called "Mocks Aren't Stubs" (martinfowler.com/articles/mocksArentStubs.html). Worth a read, if you haven't already. What I mean in the video when I talk about using "stubs" instead of "mocks" is that it's better to use an object whose state you can interrogate rather than using an object that has embedded assertions about how our test interacted with it. Jest unfortunately muddies the waters by calling everything a "mock" even if it's not strictly a mock in the classical sense. So, if we used jest.mock and provided implementations for the methods consumed by our cart, and then we wrote the same test as you see in the video, I would argue (per Fowler's definition) that we essentially created a Stub using a helper function from Jest. On the other hand if we write tests that assert whether or not our mock was called and what arguments we passed it, then we are using mocks in a way that I would discourage (i.e. we are testing implementation rather than behaviour).
@tossajalumen401
@tossajalumen401 3 года назад
okey TDD, but is this more like BDD (behavior-driven development) ?
@manju4ever222
@manju4ever222 4 года назад
The one(s) with the thumbs down are noobs for sure !
@varadus9151
@varadus9151 2 года назад
Your video is pretty good, but you tend to beat around the bush trying to explain obvious things. and repeating concepts. Developers looking at this kind of video have previous experience and don't need overexplanation. Anyway it was informative thanks.
@DevMastery
@DevMastery 2 года назад
Thanks for the feedback ... this was one of my first videos and it's from a live stream so it tends to be rambly and unfocused for sure. Hopefully, you still got some value out of it. Thanks for watching!
@varadus9151
@varadus9151 2 года назад
@@DevMastery Yeah it was pretty good and I really got what you said about feeling like hitting a wall when you don't think before starting to code, actually this is what made me look for this on youtube. I am now trying BDD even though you didn't have good experience with it haha. Actually I work alone on my own project so it's not mandatory but it is a skill recruiters look for (cucumber) so i'm going to give it a try.
@GagandeepSingh-op8mb
@GagandeepSingh-op8mb 4 года назад
First 18 minutes were highly unproductive.
Далее
Refactoring JavaScript with pipeline style programming
24:17
Наташа Кампуш. 3096 дней в плену.
00:58
БАТЯ И СОСЕД😂#shorts
00:59
Просмотров 2,2 млн
I spent YEARS optimising my workflow for coding
7:34
4 Programming Paradigms In 40 Minutes
41:28
Просмотров 489 тыс.
Svelte 5's Secret Weapon: Classes + Context
18:14
Просмотров 15 тыс.
I tried 10 code editors
10:28
Просмотров 2,9 млн
My Programming Workflow
13:25
Просмотров 180 тыс.
Freedom from front end frameworks (React, Vue, etc...)
20:38
TypeScript Origins: The Documentary
1:21:36
Просмотров 281 тыс.
How to Soldering wire in Factory ?
0:10
Просмотров 12 млн