Emily Bache
Emily Bache
  • Видео 71
  • Просмотров 419 000
Design Better Code with Preparatory Refactoring in TDD | Demo
This video is sponsored by Tuple ➡️ tuple.app/emily
Refactoring is an essential part of new code development with TDD. A lot of your design work actually happens in the Refactoring step. In this video I show a demo using Java.
▬ Links ▬▬▬▬▬▬▬▬▬▬
Martin Fowler's article about Preparatory Refactoring ➡️ martinfowler.com/articles/preparatory-refactoring-example.html
If you liked this video you might also enjoy my self-paced video course ➡️
www.oreilly.com/videos/coding-interview-challenge/0790145800350/
If you would like to support my work, please join my Patreon ➡️
www.patreon.com/EmilyBache
Emily on social media
LinkedIn ➡️ www.linkedin.com/in/emilybache
Bluesky ➡️ bsky.app/profile/emilybache.com
Ma...
Просмотров: 1 250

Видео

4 Steps to Ace a Coding Interview Challenge | Advice from Refactoring Kata Expert
Просмотров 75421 день назад
This video is sponsored by Tuple ➡️ tuple.app/emily In order to get a job as a developer, many people have to complete a take-home coding challenge, and a lot of people get given Gilded Rose or another refactoring kata from my collection. In this video I’ll explain a 4 step process for how to approach these kinds of problems. ▬ Links ▬▬▬▬▬▬▬▬▬▬ If you liked this video you might also enjoy my se...
Mock Objects: the Police Enforcer of Unit Testing | Team Learning
Просмотров 887Месяц назад
This video is sponsored by Tuple ➡️ tuple.app/emily Are you familiar with the true, original intention behind mock objects? It turns out that tests using them aren’t primarily about finding bugs, although they do that too. Mock objects are a design tool, to enforce or police a particular interaction between classes. In this guided learning hour we’ll go through the theory and use mocks in a han...
Refactor Like a Pro: Improve Tennis 5 Java Code Design (Demo)
Просмотров 1,1 тыс.Месяц назад
This video is sponsored by Tuple ➡️ tuple.app/emily Tennis is one of my Top Code Katas, a refactoring exercise to help you to improve your coding skills and better be able to deal with legacy code. In this video I'll show a demo of the 5th variant of it, in Java. ▬ Links ▬▬▬▬▬▬▬▬▬▬ This demo is taken from my course "Coding Interview Challenge Practice" ➡️ www.oreilly.com/videos/coding-interview...
You AREN’T Gonna Need It: in TDD Design is SIMPLE | Team Learning
Просмотров 1,7 тыс.2 месяца назад
This video is sponsored by Tuple ➡️ tuple.app/emily You wouldn’t use a sledgehammer to crack a nut, yet over-engineering - building more complexity than you need - is commonplace in software. In Test Driven Development we do things a little differently. In this Team learning session we’ll talk about getting your priorities right in software design. ▬ Links ▬▬▬▬▬▬▬▬▬▬ The FizzBuzz code samples a...
From Rubik’s Cube to Code: A Step-by-Step Guide to TDD Skill Mastery
Просмотров 2,4 тыс.2 месяца назад
This video is sponsored by Tuple ➡️ tuple.app/emily A lot of training courses on Test-Driven Development aren’t very good. How can you tell in advance what will actually work? In this video I explain a skill acquisition model from Marian Hartman using a Rubik's cube, and how it can help you to find good TDD training. ▬ Links ▬▬▬▬▬▬▬▬▬▬ Learn more about Marian Hartman's skill acquisition models ...
Prepare a Code Paragraph for Extraction with Split Variable | Team Learning
Просмотров 8733 месяца назад
This video is sponsored by Tuple ➡️ tuple.app/emily ⬅️ In this guided learning hour we will learn to do a refactoring that helps you prepare a section of code for extraction: Split Variable. ▬ Links ▬▬▬▬▬▬▬▬▬▬ If you like this content and want access activity boards and related content, please join my Patreon ➡️ www.patreon.com/EmilyBache Emily on social media LinkedIn ➡️ www.linkedin.com/in/em...
Technical Coaching: Software Team Training in TDD, Refactoring and more
Просмотров 6693 месяца назад
This video is sponsored by Tuple ➡️ tuple.app/emily ⬅️ As a Tech lead or senior developer, coaching others is already part of your job. How about if I could give you many of the benefits of a training session you design and lead yourself, without taking as much prep time? That’s the premise of a Guided Learning Hour. This video explains how you and your team can use the materials I make and pub...
Reduce Method Sprawl with Code Paragraphs | Software Team Learning
Просмотров 10 тыс.4 месяца назад
▬▬▬▬▬▬▬▬▬▬ This video is sponsored by Tuple: tuple.app/emily ▬▬▬▬▬▬▬▬▬▬ Learn about step three in Naming as a Process - Split into Chunks. We'll use code reading techniques to identify then extract paragraphs. This session is designed to be done together with your development team, although you can watch for yourself too. The last part of the video is the session briefing. Watch this part to he...
You can’t Grow a Software Team with Code Reviews
Просмотров 19 тыс.4 месяца назад
▬▬▬▬▬▬▬▬▬▬ This video is sponsored by Tuple: tuple.app/emily ▬▬▬▬▬▬▬▬▬▬ Often code review is the only mechanism a team has to align on a direction for the design of the code, and it’s not a great forum for that. What else can we do? ▬ Links ▬▬▬▬▬▬▬▬▬▬ Article about code reviews by Trisha Gee ➡️ trishagee.com/2019/07/03/code-review-best-practices/ If you like this content and would like to suppo...
Trustworthy Code with Naming as a Process | Team Learning Session
Просмотров 50 тыс.4 месяца назад
▬▬▬▬▬▬▬▬▬▬ This video is sponsored by Tuple: tuple.app/emily ▬▬▬▬▬▬▬▬▬▬ Naming as a Process is a technique to improve names and readability in legacy code. The last part of the video is the session briefing. Watch this part to help you prepare to lead this session with your team. You can also find out more in my "Guided Learning Hour: How-to" video. You can also purchase a Java version of the s...
What Would Martin Fowler Do? Javascript Code Refactoring Demo
Просмотров 88 тыс.5 месяцев назад
▬▬▬▬▬▬▬▬▬▬ This video is sponsored by Tuple: tuple.app/emily ▬▬▬▬▬▬▬▬▬▬ So, What Would Martin Fowler Do? I’m going to show you, with code, using his "Theatrical Players" example, in Javascript. ▬ Links ▬▬▬▬▬▬▬▬▬▬ You can find the code on my Github, in the 'demo_javascript' branch ➡️ github.com/emilybache/Theatrical-Players-Refactoring-Kata/tree/demo_javascript If you like this content and would...
The Fake Designer Handbag of Unit Testing | Coding Technique Training
Просмотров 140 тыс.5 месяцев назад
▬▬▬▬▬▬▬▬▬▬ This video is sponsored by Tuple: tuple.app/emily ▬▬▬▬▬▬▬▬▬▬ In this Guided Learning Hour we’ll learn about Fake test doubles. It's designed to be done together with your development team, although you can watch for yourself too. The last part of the video is the session briefing. Watch this part to help you prepare to lead this session with your team. You can also find out more in m...
Smooth Python OO design and coding success | Parrot Refactoring Kata
Просмотров 8236 месяцев назад
I'm a big fan of Python and the Parrot Refactoring Kata is a good exercise for demonstrating the capabilities of the language and its refactoring tools. How do you think this compares with my previous videos doing the same exercise in Java and C#? Leave me a comment with your thoughts. ▬ Links ▬▬▬▬▬▬▬▬▬▬ Previous video explaining the Parrot Refactoring Kata ➡️ ruclips.net/video/UxNEHKg_2eA/виде...
Can you even refactor in Javascript? Or Python? | Everyday Coding Expertise
Просмотров 8836 месяцев назад
Many developers aren’t even really aware of the power of refactoring to improve design, particularly if they’re using languages like Javascript or Python. Refactoring is such an important everyday design skill for enhancing and extending existing code in any language. In this video I’m going to do the same design transformation in several programming languages including Javascript and Python. ▬...
Unlock the Power of Refactoring in Everyday OO Design | Team Learning
Просмотров 1,1 тыс.6 месяцев назад
Unlock the Power of Refactoring in Everyday OO Design | Team Learning
Power Up Your Java OO Design Skills | Parrot Refactoring Kata
Просмотров 1,8 тыс.7 месяцев назад
Power Up Your Java OO Design Skills | Parrot Refactoring Kata
Effective Code Reading With Paragraphs | Train your Brain AI-style
Просмотров 8017 месяцев назад
Effective Code Reading With Paragraphs | Train your Brain AI-style
How SOLID & TDD Paved the Way to Success at Ferrari | Racing Car Katas
Просмотров 2 тыс.7 месяцев назад
How SOLID & TDD Paved the Way to Success at Ferrari | Racing Car Katas
Incremental Coding for Continuous Delivery | Guided Learning Hour
Просмотров 9747 месяцев назад
Incremental Coding for Continuous Delivery | Guided Learning Hour
Best Tests for Gilded Rose Kata | Kent Beck’s Desiderata
Просмотров 2,8 тыс.8 месяцев назад
Best Tests for Gilded Rose Kata | Kent Beck’s Desiderata
Level-Up Your Team's TDD Practice with Cyber-Dojo
Просмотров 1,2 тыс.8 месяцев назад
Level-Up Your Team's TDD Practice with Cyber-Dojo
Who Should Enable TDD? - Scrum Master | Line Manager | Tech Lead
Просмотров 7688 месяцев назад
Who Should Enable TDD? - Scrum Master | Line Manager | Tech Lead
Everyday Design Improvements in OO Code | Guided Learning Hour
Просмотров 1,4 тыс.8 месяцев назад
Everyday Design Improvements in OO Code | Guided Learning Hour
Happy Coding | My Channel for Developers & Technical Coaches
Просмотров 1,8 тыс.8 месяцев назад
Happy Coding | My Channel for Developers & Technical Coaches
The BEST way to find BUGS in an API | Contract vs Approval Testing
Просмотров 1,5 тыс.9 месяцев назад
The BEST way to find BUGS in an API | Contract vs Approval Testing
Fast-track Your Coding Skills Right Now, AI-style | Deep Nesting
Просмотров 9319 месяцев назад
Fast-track Your Coding Skills Right Now, AI-style | Deep Nesting
Refactoring with Martin Fowler | Theatrical Players Code Kata
Просмотров 6 тыс.9 месяцев назад
Refactoring with Martin Fowler | Theatrical Players Code Kata
The Undercover Agent in Unit Testing: Spy Test Doubles | Guided Learning Hour
Просмотров 7949 месяцев назад
The Undercover Agent in Unit Testing: Spy Test Doubles | Guided Learning Hour
Master Coding with Cyber-Dojo: Step-by-Step TDD Practice
Просмотров 2,8 тыс.10 месяцев назад
Master Coding with Cyber-Dojo: Step-by-Step TDD Practice

Комментарии

  • @lucasirondesouzacamargo1540
    @lucasirondesouzacamargo1540 3 дня назад

    please consider moving your coaching advertisement to a different point of the video next time. I respect you putting the advertisement in your free video, and I thankful for the content, but the abrupt cut to the advertisement middle speech was very disruptive. thank you

  • @marcusradell7544
    @marcusradell7544 7 дней назад

    Great video! Thank you 🙏

  • @HemalVarambhia
    @HemalVarambhia 8 дней назад

    When that test failed I would have rolled back (too dogmatic perhaps); you chose to self correct.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 8 дней назад

      Yes that would also have been a sensible option.

    • @HemalVarambhia
      @HemalVarambhia 8 дней назад

      ​@@EmilyBache-tech-coachand what would need to have happened for you to exercise that option?

  • @3bodyproblems
    @3bodyproblems 9 дней назад

    Very well explained, excellent communication skils and excellent technical content.

  • @hanlho
    @hanlho 9 дней назад

    Very clean example, thank you! The pattern then would be: Refactor-Red-Green where this video stops right before turning the test Red which will then turn green very quickly, correct? If I may ask, why not write a failing test first? This could help maintain some focus on what you are trying to make working. You can still do the preparatory refactoring to turn it green. Maybe the TDD in the title is what is throwing me off though.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 9 дней назад

      Glad you liked the video! I was showing the refactoring step of TDD and yes the next step is to write a failing test for the Red step. When you are refactoring it's better to have green tests because it makes it really obvious if you make a refactoring mistake, since the tests start to fail. If you write the next test too soon and refactor on red then it's harder to spot that. It's also easier on your brain to keep focus on one activity at a time.

    • @hanlho
      @hanlho 9 дней назад

      @@EmilyBache-tech-coach Thank you for your reply. Understood, 'only refactor while green', focus on one thing.

  • @Dorgrin
    @Dorgrin 9 дней назад

    Preparatory refactoring is the secret power of TDD. I think it’s the bit newcomers miss, which leads them to think it’s just “write some tests”. Took me a while to stop breaking existing functionality when working on the next stage of development; TDD’s refactor step was a great lesson.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 9 дней назад

      Really happy to hear about your experience! Yes refactoring safely is important in TDD.

  • @NitsanAvni
    @NitsanAvni 9 дней назад

    Super!

  • @JhanaratoBhikkhu
    @JhanaratoBhikkhu 10 дней назад

    As a hobbyist, I really appreciate the free training!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 9 дней назад

      Glad to hear you enjoy writing code on your free time. Hope doing TDD will make it even more fun for you :-)

  • @danielsteinberg4467
    @danielsteinberg4467 10 дней назад

    Great demo, bad title. This is Java, not C#.

  • @abdushakoor0099
    @abdushakoor0099 10 дней назад

    not gonna lie, the last part of inline variables after refactoring was pretty cool

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 9 дней назад

      inline is definitely an underused refactoring, happy you liked it!

  • @srinivasanrajagopal9062
    @srinivasanrajagopal9062 12 дней назад

    So good!

  • @joseangulo8168
    @joseangulo8168 16 дней назад

    Great video Emily :)

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

    Hello dear, Thank you for sharing your insights. While I agree that LLMs are not traditional refactoring tools, I'm not entirely convinced that there's a point to prove here. As a fan of refactoring tools myself, I view Copilot as an incredibly powerful assistant in this realm. For instance, here are several ways LLMs can support refactoring of a huge unmaintable god class : 1. Class Analysis: They can suggest improvements by analyzing the structure of your code. 2. Unit Test Generation: Rapidly create tests to ensure existing functionality remains intact. 3. Work Breakdown: Help plan refactoring by breaking down tasks into manageable steps. 4. Assisted Refactoring: Offer code modifications aligned with best practices. 5. Automated Review: Ensure code adheres to standards and identify potential issues. LLMs can significantly enhance the refactoring process, acting as an advanced assistant rather than a traditional tool. LLM changed the game here, refactoring time on such classes is reduced from weeks to days, with increased quality and higher confidence than never before. I get the sense that you might not have explored LLMs in this capacity yet. It could be an interesting opportunity to see how they might enhance your work.

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

    Thank you for this! Finally a description of mocks that doesn't mischaracterize the technique. Great job in describing it in relatively basic terms!

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

    Thanks Emily, I love it! In Python I use Doublex a lot and it's a life saver if you work with Doubles (Stubs, Spies and Mocks), I'll give it a try to the kata!.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach Месяц назад

      Thanks! A lot of test double frameworks make it much easier to create spies than canonical mocks. Hope you enjoy the exercise anyway!

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

      @@EmilyBache-tech-coach yes of course! I always have the same doubt about using a Mocking framework or cooking my own classes as you did. I don't like to have an extra dependency in the mocking framework, but it's so convenient 😂.

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

    Both the demo and the explanations are excellent! Thank you.

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

    Love this ❤

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

    Please, keep doing Python katas if you can <3 agg I wish you had presentation mode ON

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach Месяц назад

      What is it in particular that you are lacking? Is the code too small to see?

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

    Nice refactoring video, but wouldn't it be cleaner to store the lookupTable into an static attribute which is built only once? Why building this table each time you call the getScore method?

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

      29 / 5 000 I was going to say the same thing :)

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach Месяц назад

      Yes that is a good idea, obvious now I think about it!

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

    I would recommend to throw the error if it does not contains the normalizedPoints and return without the else if (!lookup.containsKey(normalizedPoints) throw new IllegalArgumentException("Invalid score."); return lookup.get(normalizedPoints);

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

    I would have removed the unnecessary else as well. :) Thank you for your great videos!

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

    A few good names go a long way! Thanks :)

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

    Haha!

  • @Dorgrin
    @Dorgrin 2 месяца назад

    Awesome video, thanks!

  • @abdushakoor0099
    @abdushakoor0099 2 месяца назад

    FizzBuzz implementation in incomplete or am I tripping? good video BTW

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      I'm not sure what aspect they are incomplete in? You can find the 6 solutions for comparison in this repo, (I'll also add a link in the video description) github.com/emilybache/FizzBuzzKata-Samples

    • @abdushakoor0099
      @abdushakoor0099 2 месяца назад

      @@EmilyBache-tech-coach yes, thanks, surely i was tripping.

  • @ragamuf
    @ragamuf 2 месяца назад

    All the tenets of continuous delivery should be applied to continuous learning and development, which makes the argument for having a great technical coach on hand.

  • @pragdave
    @pragdave 2 месяца назад

    Nice video. This reminds me a lot of the 5 or 6 steps in the Dreyfus module of skills acquisition from the 60s.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      Yes, it's a similar concept. I think Hartman's model is easier to understand and more actionable though.

    • @rolandfisher
      @rolandfisher 2 месяца назад

      Yeah, they are the same model simply presented slightly differently.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      @@rolandfisher actually I disagree, Hartman's model is not the same as Dreyfus. I have found it more useful and insightful.

  • @RezaMarz
    @RezaMarz 2 месяца назад

    Thanks.

  • @NextIncrement
    @NextIncrement 2 месяца назад

    I loved that you used the Rubik's Cube as the example. It also got me to think about how something like the commutators technique fits into this model. I do remember learning to solve the Rubiks cube, and it really frustrated me that if I wasn't practicing for a while I would forget one of the moves. At some point I learned a trick where you take 2 moves with certain properties and combine them by applying both and then applying both again but in reverse order. The two moves being combined are simple enough that anyone can figure it out by themselves, and once you know this trick you can basically figure out a solution for any twisty puzzle yourself. What I found interesting is that the deeper understanding of how moves are constructed allowed me to move through the stages faster. I think this is similar to how knowing the rules or practices can help you acquire a skill, but when you have the theoretical understanding you can often accelerate the learning process.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      That's a great insight. I know Marian Hartman has also done some work combining her skill acquisition model with Bloom's taxonomy which is an equivalent model for theoretical knowledge.

  • @marcusradell7544
    @marcusradell7544 2 месяца назад

    Hi Emily, I loved the model and your arguments! I do see the value of having a technical coach. But I'm still interested in finding how we can teach mob programming and TDD without technical coaches that are highly available. I think it's possible!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      I think it's possible and of course there aren't always technical coaches available. The trouble is it takes a lot longer though and is more frustrating - you can get to level 4 (conscious action) with only peer support but to get to level 5 (proficient) you need such a wide range of experience and to learn so many different recipes or approaches, that to get there without a mentor will be a lot of time spend reading, studying and learning from your own mistakes.

  • @MrDarkPage
    @MrDarkPage 2 месяца назад

    I didn't like the video the analogy doesn't work in my opinion. I'm talking as a 15years of experienced profesionnal developper who also solves rubik's cube. About the video: it's 11minute long and at the 3 minute mark you had basically said nothing, repeated 3-4 times what you intended to do in the video yet still hadn't. I almost stopped there, but I was really curious about the title so I kept going. I feel like the only goal of the whole argument is to justify that "you need someone to coach you in learning a new skills", I'm willing to bet you sell coaching/mentoring. The title states "From Rubik’s Cube to Code: A Step-by-Step Guide to TDD Skill Mastery" but nothing in the video is about TDD, it's all about a method of learning a new skills, I don't know how good this method is, it feels very broad and generic in my opinion but like I said I don't know. Maybe a title like "The Hartman method to learn a new skill: applied to learning the rubik's cube" would be more honest. A bit about my personal experience (which will not apply to everyone I know), I learned the rubik's cube on my own when I was ~10 and I developed my own method to solve it, no need for any mentor, noone needed to help me, the only thing that was required was practice and logical thinking. I'm fairly certain that writing code using any method, TDD or otherwise, is the same, it's mostly practice, no need for a mentor, you need to get your hand dirty and do it, and figure it out. Paying a mentor is basically giving money to someone to look at you while doing it.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      I'm happy to hear you have worked out the Rubik's cube for yourself. I agree that you can work out TDD for yourself too, I just think it will be a lot harder and take a lot longer than if you had a mentor. In my experience it's worth paying one. Your experience may be different.

  • @bernhardkrickl5197
    @bernhardkrickl5197 2 месяца назад

    It's been a long time since I solved a Rubik's cube. Must have been last century. But I did do some TDD recently :)

  • @KevenWebb
    @KevenWebb 2 месяца назад

    I can see where the Hartman Model will help me plan training for others outside of coding. Great reference.

  • @objarni
    @objarni 2 месяца назад

    Really nice explanation!

  • @marianhartman218
    @marianhartman218 2 месяца назад

    I so love how you use the Rubik cube to demo my skill acquisition model! I am humbled that it had a lightbulb moment for you to apply to your work 💜

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      This is a very useful way of understanding skill acquisition - thanks for explaining it to me! Very happy to see your website so more people can benefit.

  • @georgwagner5577
    @georgwagner5577 2 месяца назад

    Wait, I practice TDD but I'm too dumb for Rubiks Cube. Would you like to tell me anything? 😂 I got you on LI!!!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      I think with the right teaching materials and some practice that anyone could learn to solve a rubik's cube actually. Keep practicing the TDD though, it's probably a more useful life skill!

  • @Neppord
    @Neppord 2 месяца назад

    Awsome! Thank you for another very usefull video!

  •  2 месяца назад

    I was working this morning on preparing a workshop on refactoring the kata for theatre actors and I was just listing the techniques you use, Emily. And I'm eating, thinking I'm going to watch her latest video and then I see that you're explaining one of these techniques - variable cutting - what a coincidence!

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      Happy that this was useful! I've also got a longer workthrough of the theatrical players kata in Java in my new O'Reilly course. Good luck with your workshop!

    •  Месяц назад

      @@EmilyBache-tech-coach Thank you Emily. But I don't find the new O'Reilly course you are talking about

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach Месяц назад

      learning.oreilly.com/course/coding-interview-challenge/0790145800350/

  • @sylvain-k
    @sylvain-k 2 месяца назад

    Thanks to do it in java too with intellij, I struggled to find some non equivalency you shown previously with rider. It's weird to see intellij does not automatically update the visibility to protected when pushing down the getSpeed method and force to solve it in this conflict view (not very user friendly imho), then relaunch again the refactoring to make it works :/

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      Yes I'm also surprised that IntelliJ doesn't handle this better.

  • @ragamuf
    @ragamuf 2 месяца назад

    Hello Emily. First of all, thank you for bringing attention to this area of software development. Technical coaching is a vital component of the competency of software developers. I experienced first-hand in the past how this type of training elevated my productivity and that of my teammates. But before a problem can be solved, one must know it exists. In your encounters with HR and other decision-makers, is there an awareness that technical coaching is a thing of immense value? Have you encountered resistance from software developers themselves to the mindset shift required to make this engagement successful? Software developers are generally expected to learn independently - rightly or wrongly, and I do say wrongly. Most other professional disciplines acknowledge the need to upskill their talent and prioritize time and resources. So, how do we change this perspective and thus elevate the value proposition of onboarding a technical coach? Thanks

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 2 месяца назад

      I can only agree with your assessment - technical coaching is not widely acknowledged as important by HR and other decision makers. I'm doing my best to change this :-)

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

    I was listening to the original conversation just yesterday and was thinking during that particular exchange that it might be a great opportunity for you two to pair/ensemble on an example to provide more clarity. I’d love to see that, but this definitely helped provide me with more insight. Thanks!

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

    Is that "NN usages" provided by a standard IntelliJ plugin? Thanks

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 3 месяца назад

      I think it's part of the normal IntelliJ editor, no plugin needed.

  • @JunaidKhan-ny8tu
    @JunaidKhan-ny8tu 3 месяца назад

    This is very insightful ❤

  • @abhijit-sarkar
    @abhijit-sarkar 3 месяца назад

    Thanks for stepping through the process of solving a Kata. I came to Cyber-Dojo from Exercism, and was confused by the hiker files that had nothing to do with the problem description. Why they don't have a video on how to use the platform is beyond me. That said, since the student is writing their own tests, there is no guarantee that they solved the problem correctly, and covered all the use cases in the problem description. One can leave the initial hiker files in there, change the answer to 6 * 7, and call it good. If this is indeed the case, the session is only as good as the student's skills, which seems to be orthogonal to the goal of this platform.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 3 месяца назад

      Glad you liked the video! I think this platform is often used for group practice, where students get help and advice from one another. To a large extent that should prevent the problem you mention. I have a follow-up video on using cyber-dojo in a group :-)

    • @abhijit-sarkar
      @abhijit-sarkar 3 месяца назад

      @@EmilyBache-tech-coach I looked at some of the problems and those just don’t cut it. For instance, the anagrams problem asks the student to produce all anagrams of a word. In other words, all permutations of a list. But it doesn’t state the expected behavior when duplicates are present in the list. This has serious implications, because if I gave you a string consisting of a single character repeated 1000 times, you’d have factorial 1000 Identical permutations!! My conclusion is that for any serious coder looking to have some fun solving challenges online, the platform falls short. There are just too many loopholes.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 3 месяца назад

      ​@@abhijit-sarkar I think you've misunderstood the purpose of the tool. Cyber-dojo is not primarily about testing your ability to solve specific coding challenges, it's a tool for practicing doing TDD. Part of TDD is examining the requirements and spotting that kind of issue with them. It's what makes it software development rather than just programming. Software developers need to talk to customers and decide on requirements and what to build.

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

    - "How the heck did this code become this messy and long?" - "One if-statement at a time."

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

    Great video, I learned something again. Just a technical remark, I found it quite distracting that you micis in the frame with your face, would look much better it it was hidden

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

    Legacy Code.... brrrrr.... :D

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 4 месяца назад

      Oh I enjoy the challenge of some good legacy code!

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

      @@EmilyBache-tech-coach I wish I could gain this mindset

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

    agree, pull request are not a right way to review code. But sitting with a whole team infront of a big screen once a month for a few hours and then go deeply into the code. Not to review juniors code especialy. But giving tips can never be wrong. But more about explaining design decisions and start discussions

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

    We do code reviews for everything. Haven't had a bad experience so far. Seems like a company culture problem. We usually work in very small teams, often enough just 2 people. So it's pretty standard that even a junior reviews the CTO. Haven't encountered any ego problems, yet. If your company has toxic people, maybe start working on that or look for a different job.

  • @riccardo-964
    @riccardo-964 4 месяца назад

    Lest not forget that we're dealing here with enlarged egos and programmer divas most of the time, rendering all these "techniques" and "suggestions" useless.

    • @EmilyBache-tech-coach
      @EmilyBache-tech-coach 4 месяца назад

      Part of my job as a technical coach is helping good software developers realize they can be even better and get even more done if they work well in a team.