Ruby Conf 12 - Boundaries by Gary Bernhardt

  Рет қаралды 50,532

Confreaks

Confreaks

Күн бұрын

Some people test in isolation, mocking everything except the class under test. We'll start with that idea, quickly examine the drawbacks, and ask how we might fix them without losing the benefits. This will send us on a trip through behavior vs. data, mutation vs. immutability, interface vs. data dependencies, how data shape affords parallelism, and what a system optimizing each of these for natural isolation might look like.
Help us caption & translate this video!
amara.org/v/FGeb/

Пікірлер: 22
@vosechu
@vosechu 2 жыл бұрын
I watch this each year and get something new every time. Each year I appreciate it more and more.
@pmarreck
@pmarreck 8 жыл бұрын
This is actually one of my favorite tech talks ever and I think it's unfortunately going to be grossly underappreciated until it's too late (years from now after a series of giant software-reliability clusterfucks illustrate the importance of some of the things discussed here) It's also part of what convinced me to check out Elixir/Erlang, which embraced Actor model and a lot of these principles already
@christhecode8153
@christhecode8153 8 жыл бұрын
+Peter Marreck I second this comment. I keep coming back to this talk. The first time I saw it I hardly understood anything, but there was something about this that just made me feel that it was important. As I've grown I've come back numerous times and I keep getting something out of it every time. The destroyallsoftware screencasts quite simply fundamentally changed the way I architecture and test applications :)
@Cumshoterdotka
@Cumshoterdotka 5 жыл бұрын
Superb speaker. Enjoyed this talk.
@tryptamigo
@tryptamigo 11 жыл бұрын
What a great talk. Nice to see Ruby community have conversation like this. You could tell the crowd was curious.
@zhandoatosl
@zhandoatosl 11 жыл бұрын
I was comparing Rich Hickey and Gary who have coded OO languages in a functional style for different motivations, Gary's for stronger, less brittle TDD/BDD (with a side effect of some improved performance) and Rich's for almost solely the desired performance gains with the side effect of hard-to-follow code. It's really funny that Rich Hickey wrote Clojure with NO TESTS (iirc) because his strong conviction that rigorous application of functional style means not needing them.
@am0e
@am0e 6 жыл бұрын
One thing that wasn't mentioned in this talk, and constitutes a slight caveat IMO, is that boundary layers do still need integration tests, and (depending on your domain & design) these may not be trivial. This is kind of related to what Hickey says, because I actually found that when you design this way your pieces of the "functional core" become so small that your unit tests become almost trivial duplications of the code. If you have complex decision logic in the domain, I can see that you'd get more value from this model. IMO, the majority of apps remain CRUD (especially with more logic moving to the frontend), with small often ad-hoc pieces of business logic spliced in around them.
@stardust6999
@stardust6999 7 жыл бұрын
"I just used a walrus to make it more concrete." (C) Gary Bernhardt
@UncleSnottie
@UncleSnottie 7 жыл бұрын
I watched this video again after recently taking an interest in learning Elixir. I vaguely remember this talk having some actor model information so I wanted a refresher on what was said. I'm very curious if Gary has done any Elixir programming. Elixir has a Ruby like syntax but is funcational and runs on the ErlangVM. It seems like this talk is trying to do some Elixir like things in Ruby. When I can, I will choose Elixir over Ruby.
@zhandoatosl
@zhandoatosl 11 жыл бұрын
I hope that doesn't come off as too snarky because I have genuine affection for all dots connected (however clumsily).. Forward!
@ivanschuetz9458
@ivanschuetz9458 5 жыл бұрын
For functions that need to load several things from async resources, the goal would be to extract each tiny piece of non-async code to pure functions and leave the "glue" in the integration shell, right?
@vosechu
@vosechu 2 жыл бұрын
Yes, correct.
@tryptamigo
@tryptamigo 11 жыл бұрын
Ah, cool insight.
@wjrasmussen666
@wjrasmussen666 6 жыл бұрын
I know nothing about Ruby. Are all those code examples 100% legit runnable Ruby?
@pmarreck
@pmarreck 6 жыл бұрын
Yes. Does this surprise you for some reason?
@mfgcertainty
@mfgcertainty 5 жыл бұрын
They're legit but it's not all 1st class language features; for instance the `actor` keyword is a method that's defined somewhere.
@zhandoatosl
@zhandoatosl 11 жыл бұрын
I loves me my Gary Bernhardt - the Fred Astaire of the Software Craft.. Shorter Gary: I loves me what Rich Hickey did with Java and C sharp in the bad old days before Clojure because I loves me my TDD and syntax. (Gots to look at the stuff, day out, day in ya know). Shorter Rich Hickey: I loves me my burning white hot multi-cores so "managing shared state" you gets out of my effing way and syntax? Real men don't needs no stinking syntax!
@tryptamigo
@tryptamigo 11 жыл бұрын
What are you even saying?
@MichaelQuad
@MichaelQuad 5 жыл бұрын
no, it will not work, sorry. abandon this fantasy idea. imperative is core, apis may be (better) functional.
Why Isn't Functional Programming the Norm? - Richard Feldman
46:09
Miracle Doctor Saves Blind Girl ❤️
00:59
Alan Chikin Chow
Рет қаралды 63 МЛН
Универ. 13 лет спустя - ВСЕ СЕРИИ ПОДРЯД
9:07:11
Комедии 2023
Рет қаралды 1,1 МЛН
WHY IS A CAR MORE EXPENSIVE THAN A GIRL?
00:37
Levsob
Рет қаралды 18 МЛН
Rails Conf 2013 The Magic Tricks of Testing by Sandi Metz
32:23
Confreaks
Рет қаралды 121 М.
FP vs OOP: Choose Two by Brian Goetz
42:59
Devoxx
Рет қаралды 31 М.
Cascadia Ruby Conf 2012 Therapeutic Refactoring by Katrina Owen
26:05
Functional Programming in 40 Minutes • Russ Olsen • GOTO 2018
41:35
GOTO Conferences
Рет қаралды 803 М.
Boundaries
30:20
Next Day Video
Рет қаралды 18 М.
The Value of Values with Rich Hickey
31:44
InfoQ
Рет қаралды 131 М.
2024's Game-Changing Robots (What Can They Do?)
17:50
ColdFusion
Рет қаралды 59 М.
How To Unlock Your iphone With Your Voice
0:34
요루퐁 yorupong
Рет қаралды 19 МЛН
wireless switch without wires part 6
0:49
DailyTech
Рет қаралды 1,5 МЛН
Xiaomi Note 13 Pro по безумной цене в России
0:43
Простые Технологии
Рет қаралды 2,1 МЛН
Очень странные дела PS 4 Pro
1:00
ТЕХНОБЛОГ ГУБАРЕВ СЕРГЕЙ
Рет қаралды 434 М.