Тёмный
DevTernity Conference
DevTernity Conference
DevTernity Conference
Подписаться
DevTernity is the main developer conference of the year. Turning developers into architects and engineering leaders since 2015.


🚀 "Good Enough" Architecture (Stefan Tilkov)
50:15
6 месяцев назад
Decremental Development (Kevlin Henney)
1:03:06
6 месяцев назад
Domain-Driven Refactoring (Jimmy Bogard)
1:02:01
6 месяцев назад
From Legacy to Solid Code (Bartłomiej Słota)
50:50
6 месяцев назад
Unit Testing Done Right (Jakub Pilimon)
1:07:20
6 месяцев назад
The Effective Developer (Sven Peters)
54:50
6 месяцев назад
Functional Programming in Kotlin - Hadi Hariri
56:20
6 месяцев назад
The 7 Pillar Developer - Cory House
40:51
6 месяцев назад
Clean Code: Eternal Practices - Jakub Pilimon
57:30
6 месяцев назад
Code? - Kevlin Henney
58:58
6 месяцев назад
Clean Architecture - Robert (Uncle Bob) Martin
1:00:52
6 месяцев назад
Комментарии
@Brian-ro7st
@Brian-ro7st 5 дней назад
Good tidbits here, but much of this amounts to “don’t write bad or fragile tests” and “don’t do testing wrong,” which is about as helpful as “well, don’t write tightly coupled or fragile code.” The overarching narrative I just don’t think is particularly valuable.
@jayoolong279
@jayoolong279 10 дней назад
Such a good talk, I am sad that there wasn't enough time!!
@tactics40
@tactics40 10 дней назад
Cute move to use "inclusion" to mean something other than its usual meaning of discriminating against straight white men.
@JDogB-tc3lx
@JDogB-tc3lx 20 дней назад
long winded blow hard. geez I wonder if he ever gets anything done...
@PaulSebastianM
@PaulSebastianM 21 день назад
I think it's ironical that OO was invented to properly model domains and the real world and has been the main approach for doing that for decades, yet FP has been doing a better job of this for equally the same amount of time, but almost nobody uses it.
@eukaryote0
@eukaryote0 27 дней назад
They didn't teach to do it fullscreen back in 60s
@AI-took-my-job
@AI-took-my-job 29 дней назад
Great talk! Direct, honest and from experience! Thanks a lot Sandro!
@monsieurwieselle
@monsieurwieselle Месяц назад
Good talk. But the buzzing sound of the recording was almost unbearable. Please filter it out before uploading such a bad recording.
@Joe333Smith
@Joe333Smith Месяц назад
He's absolutely right about not testing one class or function in isolation. You test a functionality. This was always super obvious to me. But he spelled out the reasons in a little bit more detail whereas I kind of just implicitly felt it.
@this-is-bioman
@this-is-bioman Месяц назад
I hadn't expected any real world examples and you didn't disappoint me 😊 there's nothing practical in this presentation. Lots of claims and big words and absolutely no solutions to anything. That's why nobody is doing TDD. It's just impractical and a huge waste of time.
@user-ri5lw8qy5k
@user-ri5lw8qy5k Месяц назад
I literally treat this guy as my UNCLE! It's always a pleasure to listen to Uncle Bob - thanks for publishing this talk :)
@7th_CAV_Trooper
@7th_CAV_Trooper Месяц назад
There's no way you're slower with TDD. You can spend your time writing tests or you can spend your time fixing your crappy code and supporting your pissed off customers. Also, making changes rippling through tests sounds like bad design. AKA skill issue.
@Sammysapphira
@Sammysapphira 20 дней назад
You don't seem to understand what TDD is if you think not doing it means you don't write tests for your code.
@7th_CAV_Trooper
@7th_CAV_Trooper 20 дней назад
@@Sammysapphira you have a reading comprehension problem. I said you can spend time debugging code like a noob, or you can write tests like an adult and not waste time debugging.
@SeanJung-rx1vo
@SeanJung-rx1vo 2 месяца назад
I applied a valid type by referring to the video. The code has become more readable. thank you
@alexandreg3933
@alexandreg3933 2 месяца назад
Excellent and insightful talk
@htx80nerd
@htx80nerd 2 месяца назад
Thought this was about Terry Davis, never mind.
@bgseenivasababu7191
@bgseenivasababu7191 2 месяца назад
Is there any project which is easily maintained by others without TDD. I don't think so. Robert clearly told that without TDD approach programmer will encounter lack of productivity within a day. I don't think you can ignore TDD easily unless the project is not already done by someone.
@Baelrog666
@Baelrog666 2 месяца назад
Footsteps sounds are very annoying.
@cezartorescu
@cezartorescu 2 месяца назад
60 mins of bullshit. Get a life 😂😂😂😂
@mozhdehnouri
@mozhdehnouri 2 месяца назад
The one of the best I ever seen
@victorserranobargues
@victorserranobargues 3 месяца назад
Amazing I have learned many new things
@harikrishification
@harikrishification 3 месяца назад
Thank you for sharing this fantastic presentation! I'm thoroughly intrigued by the scientific process involved in developing mental models for predicting the future. Dave adeptly linked this science with effective leadership and decision-making, which was truly impressive.
@denniszhz
@denniszhz 3 месяца назад
This is mind-blowing. Simple logic yet super powerful! This video should be viewed by millions! Dave should be teaching this at larger platforms. I would sacrifice a lot to work for such a true leader!
@XeonProductions
@XeonProductions 3 месяца назад
Maybe the reason I hate TDD so much is that I've always been on projects that are rapidly changing with poorly defined requirements. I very seldom encounter a project where I have good enough requirements to write tests BEFORE writing the code. I've also worked on projects where the leads are obsessed with code coverage and code smells, even though the code was still a bug ridden mess. I've spent more time writing tests, refactoring tests, debugging tests, and researching how to write tests than I ever did writing any of the code. The time and cost savings just wasn't there, and still isn't there. In my experience my untested code has been no more buggy than my tested code. You then have the massive bloat that comes along with making every single dependency in a class injectable (interface hell) so that it can be "easily testable", even though most of the dependencies you are injecting will NEVER need to have an alternative implementation during the lifetime of the code. You then have the problem of poorly written tests by inexperienced or low skilled developers, which will throw up false positives or falsely show that something is passing giving you a false sense of security.
@Salantor
@Salantor 3 месяца назад
I am waiting for a day that someone will convince me that TDD is a good way of wriring web FE code, especially dor frameworks. From my perapective it is a royal pain in the ass.
@Kenbomp
@Kenbomp 3 месяца назад
Ivar Jacobson
@Kenbomp
@Kenbomp 3 месяца назад
14:29
@Kenbomp
@Kenbomp 3 месяца назад
It's not that humans are bad at making it fast it's that they are bad at it in 7billion different ways
@TheJimNicholson
@TheJimNicholson 3 месяца назад
I have a vision in my head of having Alan speak to the IT leadership in my organization, but I always end up thinking it would have to look like that scene from Kubrick's "A Clockwork Orange" where they have the protagonist tied to a chair with devices that force him to keep his eyes open and watch the re-programming.
@hasan0770816268
@hasan0770816268 3 месяца назад
notes to self books: programmer anarchy, spike and stabilize, lean software development (all do away with tdd) test driven development by example kent beck refactoring by martin fowler refactoring to patterns by kerievesky ------ TLDR do not bake implementation details into tests as this makes refactoring difficult. refactoring is changing the internals of code not the public interface. the majority of tests must be unit tests as they are fast and automatic. 58:58
@natanloterio
@natanloterio 4 месяца назад
valid points, others not so valid. For instance, the use of `Either` results chained to a `fold` function seems an unnecessary overhead since you already have the conditional operator `when`. Besides being counterintuitive when reading from left to right, it makes it harder to read the code.
@96merluzzo
@96merluzzo 4 месяца назад
yeah this talk was a wonderful discovery.
@ryanhewitt9902
@ryanhewitt9902 4 месяца назад
There are not enough comments here - this was a well put together presentation! My question is: Can I use this technique in a Lisp-like language? I like the idea of thinking with algebraic types in order to get a birds' eye view, and wonder if I can apply this sort of thinking to languages lacking algebraic union types and compilers.
@lukaszkalnik
@lukaszkalnik 9 дней назад
In pure Lisp not really, but there seem to be libraries for this, e.g. cl-algebraic-data-type
@user-wr4jm5og3b
@user-wr4jm5og3b 4 месяца назад
Very commendable presentation given it was held during an earthquake... Even the cameraman was holding it together (barely)
@arunmarapally6969
@arunmarapally6969 4 месяца назад
Thank you guys for recording it.
@danielbartley516
@danielbartley516 4 месяца назад
The sniffling m’kay. FFS
@core2extremist368
@core2extremist368 4 месяца назад
The suggestion to "just go read Kent Beck's Test-Driven Development: By Example" is amazing. GOAT suggestion. READ IT. It explains what the tests are *actually* for, and has full examples of how to use the process. And, surprise surprise, it's TOTALLY different than what my team was doing. Short summary: *start by writing tests from the client's perspective:* like `assert(Currency.dollars(5).times(2) == Currency.dollars(10))`. Then write the code to implement the tests. That's it! It's hard to write the tests? Refactor the code so they're easy to write. Writing tests is really annoying because there's lots of duplication? Refactor. Spending lots of time making elaborate mocks to test internals? Stop! You're doing it wrong. *Good tests == getting the right answer means your implementation is right.* THIS is what lets you refactor easily - if your refactored code passes all the tests, then it's right. In Gang of Four terms: do NOT peek behind the public facade! Just test the facade. Leave the details where they belong: as hidden details. It's not the details you care about: it's whether you get the right answer!
@alerya100
@alerya100 5 месяцев назад
Scott Wlaschin is a god tier teacher !
@jacmkno5019
@jacmkno5019 5 месяцев назад
If the trigger is a requirement, those come in very different shapes and flavors. "I need a software that makes some money for me online". What test would you start writing for that?. Prototype driven development is what really happens. All those other philosophies are only childs of particular situations that arise during development. Impossible to generalize as far as their followers usually try to do...
@jacmkno5019
@jacmkno5019 5 месяцев назад
There is no way to do tests without establishing an interface between the testing system and the system being tested. This interface then has to be maintained. And then it becomes impossible to say if it is true that in most cases this extra maintenance cost is lower or higher than just manually testing the code for relevant cases or all the other intermediate uses of automated testing. Too many variables to explore. Is the same as asking is religion is good or bad. Who knows, but surely you would not want to say something that is likely to offend most religious people in front of an audience that you don't know...
@HiddenUsename
@HiddenUsename 5 месяцев назад
And what were the user stories when IBM was writing DB2? All this "user stories" is crap that Web brought upon us. What's really needed is a smart guy who talks to the users and specs out the features. What you rally need is smart guys. And this is the crux of the issue: all this BS about respect, etc comes from an assumption that you have high quality people on your team. The kind of ppl who signed the Manifesto for Agile Development. Smart and passionate. The reality is far from it. you have to deal with mediocre lazy developers. Which is also doable but the Agile is not the way to make them deliver a decent product. You need a rigid process for that. You need to do it the way the Army does it. And I saw it done in 1990s
@nuvotion-live
@nuvotion-live 5 месяцев назад
Assume you have really smart capable people on a project. What resources do you recommend reading on software development process?
@HiddenUsename
@HiddenUsename 5 месяцев назад
@@nuvotion-live Simon Brown C4 stuff and everything by Coplien. Anything that's not TDD bs push. But thing is, you never have a team of really smart capable ppl, except in rare cases like some startup or Google Go lang team. U need to be able to make average, often mediocre ppl deliver decent product. And it's done with leadership, mentoring, discipline. I saw it done at IBM. The army like approach.
@HiddenUsename
@HiddenUsename 4 месяца назад
@@nuvotion-live the whole point is that there is no single magic process. the process is established by the senior people on the team, just like a lead surgeon set the process for his team. Read Fred Brooks, he wrote a lot about it. Same goes for the coding standards. No BS like TDD or some other crap like that.
@alexanderpodkopaev6691
@alexanderpodkopaev6691 3 месяца назад
​@avsync-live anything published before 2010 should work if uou have real professionals, as they would be capable to choose approach and adjust it to needs. As one ex-M$ project manager wrote, all software development books describe dancing around developers while they wrote code. And yes, it does much more sense if all you've got is mediocrity.
@HiddenUsename
@HiddenUsename 3 месяца назад
@@alexanderpodkopaev6691 if uou have real professionals, And this is the key! What the last 10 years have been is an attempt to make mediocre ppl deliver something via a process rooted in maximizing FUN for those mediocrities.
@rogerdeutsch5883
@rogerdeutsch5883 5 месяцев назад
“The most effective organizations are learning organizations. Learning is The Work.” 38:35 Wish more orgs knew this and understood the truth of it. Fantastic talk
@edgeeffect
@edgeeffect 5 месяцев назад
I'm a pathetic Kevin Henney fanboy and I understand that I **DO** have issues in this particular area... but I find myself wishing he actually did do that 50 hour version. ;)
@gzoechi
@gzoechi 5 месяцев назад
For me the biggest advantage is that wtiting tests pushes me into the view of the user (caller) of the code. This helps to get it right the first time.
@edwardlloyd1655
@edwardlloyd1655 5 месяцев назад
Promo sm
@JitendraAanadani
@JitendraAanadani 5 месяцев назад
👍
@PaulSebastianM
@PaulSebastianM 5 месяцев назад
6 years and we've not made any progress. And how many years since those books were written?
@foobarz-coding
@foobarz-coding 5 месяцев назад
I was doing unit test for the last 2 weeks in my current job for the first time . I was mocking to dependecies of the class and also spying on the implemntation . I knew that I'm doing something wrong . Nice Lecture Now I understand how to go . what do you thing guy about mocking repositories with in Memory database for Unit test ?
@PaulSebastianM
@PaulSebastianM 5 месяцев назад
What do you do if other devs complain that your refactorings "keep changing" the code they have to work with, directly or indirectly?
@edgeeffect
@edgeeffect 5 месяцев назад
Or it's too hard to review your code because you do too much.
@PaulSebastianM
@PaulSebastianM 5 месяцев назад
@@edgeeffect yes! Exactly! Or there's too much to test manually because there's not (enough) automated testing. Even though you have improved the code a lot and fixed some really bad design, allowing faster and safer development in the near future.
@ChrisB_Crisps
@ChrisB_Crisps 4 месяца назад
That's when one looks for another team/company/project. If these best practices are for, whatever valid reason, seen like that, the one is seen as an unfit cog in the organization. I have seen similar things happen in healthcare systems in eu in conjunction with php and .net
@ForgottenKnight1
@ForgottenKnight1 4 месяца назад
If the changes are a lot and devs can't follow the thought process, do pair programming or even mob programming. Integrate them in the process so they can digest all the steps, not just the end result.
@PaulSebastianM
@PaulSebastianM 4 месяца назад
@@ForgottenKnight1 fair and it worked. Problem is only one or two developers were willing to do pair programming.
@PaulSebastianM
@PaulSebastianM 5 месяцев назад
Oh how the world is broken in so many ways. It's astounding that there are still people that try to fix it. Especially knowing how hard it is and how everything and everyone is against you, against learning, against good...
@rupture007
@rupture007 6 месяцев назад
That lanyard rubbing on the mic irritates me just about as much as doing TDD, TDD still wins. I do agree your tests should only test the behavior of a feature, not each method or function in your code.
@vorpae
@vorpae 6 месяцев назад
Great stuff. Very insightful, thank you.
@rursus8354
@rursus8354 6 месяцев назад
Wow! I formulated my own scratch hacking method (for script writing) and tought it to my pupils, and Phase 1 and 2 sounds very similar to the Q'n'D phase of and the refactor phase of TDD. Thank you! That was interesting indeed..