Christopher Okhravi

@ChristopherOkhravi - 222 本の動画

チャンネル登録者数 16.2万人

I’m on a mission to answer a simple question: Which abstractions should be used when? From the moment I learned my first abstraction, I was hooked. This fasc...

最近の動画

Test Don't Ask 0:59

Test Don't Ask

Works VS Valuable 0:33

Works VS Valuable

Working Software Is Not The Primary Measure of Progress 14:09

Working Software Is Not The Primary Measure of Progress

Subtypes Must Replace Conditionals 0:59

Subtypes Must Replace Conditionals

Overloading Must Improve Readability 0:31

Overloading Must Improve Readability

Too Many New Programmers? 0:55

Too Many New Programmers?

Hierarchical Problems Are Rare 0:18

Hierarchical Problems Are Rare

Exhaustive Type Testing Or Polymorphism? 0:50

Exhaustive Type Testing Or Polymorphism?

Duplication Is Cheaper Than The Wrong Abstraction 0:41

Duplication Is Cheaper Than The Wrong Abstraction

Impossible Is Better 1:00

Impossible Is Better

Conditionals Breed (Why Replace Conditionals With Polymorphism) 0:55

Conditionals Breed (Why Replace Conditionals With Polymorphism)

Rules Have Reasons (Always Ask Why) 11:49

Rules Have Reasons (Always Ask Why)

When Microsoft Violated Liskov Substitution Principle in .NET 18:16

When Microsoft Violated Liskov Substitution Principle in .NET

Liskov Substitution Principle 20:16

Liskov Substitution Principle

8 Wastes of Lean (for Software Developers) 10:54

8 Wastes of Lean (for Software Developers)

Only Use Inheritance If You Want Both of These 9:10

Only Use Inheritance If You Want Both of These

7 Tips to Grow as a Developer 7:25

7 Tips to Grow as a Developer

Depend on Abstractions not Concretions (Framework) 11:56

Depend on Abstractions not Concretions (Framework)

3 Reasons WHY Waterfall Doesn't Work 11:30

3 Reasons WHY Waterfall Doesn't Work

They Knew Waterfall Didn't Work 6:36

They Knew Waterfall Didn't Work

Always Use Interfaces #shorts 0:50

Always Use Interfaces #shorts

Always Use Interfaces 8:08

Always Use Interfaces

3 Ideas on Refactoring 0:59

3 Ideas on Refactoring

Variance and Fruits 0:59

Variance and Fruits

Covariance and Contravariance 13:31

Covariance and Contravariance

Should I use polymorphism? #shorts 0:50

Should I use polymorphism? #shorts

Three strikes, then refactor #shorts 0:09

Three strikes, then refactor #shorts

3 Ideas on Refactoring by Martin Fowler 5:50

3 Ideas on Refactoring by Martin Fowler

The Square-Rectangle Problem 9:59

The Square-Rectangle Problem

The Only Time You Should Use Polymorphism 13:55

The Only Time You Should Use Polymorphism

Object Oriented Programming – Lecture 2 – Paradigms, Types, Compilation, Purity, Programs 1:04:01

Object Oriented Programming – Lecture 2 – Paradigms, Types, Compilation, Purity, Programs

Object Oriented Programming – Lecture 1 – Overview of contents 6:14

Object Oriented Programming – Lecture 1 – Overview of contents

My Vim Setup #2 (Mappings / Custom shortcuts) 1:21:43

My Vim Setup #2 (Mappings / Custom shortcuts)

My Vim Setup #1 (Job Control) 43:27

My Vim Setup #1 (Job Control)

Reactive Programming from Scratch (JavaScript) - Ep3 44:21

Reactive Programming from Scratch (JavaScript) - Ep3

Reactive Programming from Scratch (JavaScript) - Ep2 33:17

Reactive Programming from Scratch (JavaScript) - Ep2

Reactive Programming from Scratch (JavaScript) - Ep1 38:26

Reactive Programming from Scratch (JavaScript) - Ep1

(Ep2) Mandala Maker in JavaScript (functional style) 47:49

(Ep2) Mandala Maker in JavaScript (functional style)

(Ep1) Mandala Maker in JavaScript (functional style) 1:07:14

(Ep1) Mandala Maker in JavaScript (functional style)

Ramda JS Tutorial – Part 40 (filter) 57:55

Ramda JS Tutorial – Part 40 (filter)

Todo App in Vue.js – The Hard Way (Ep18) 1:07:11

Todo App in Vue.js – The Hard Way (Ep18)

Todo App in Vue.js – The Hard Way (Ep17) 54:56

Todo App in Vue.js – The Hard Way (Ep17)

Vue.js – The Hard Way (Ep16) 1:00:12

Vue.js – The Hard Way (Ep16)

Vue.js – The Hard Way (Ep15) 51:46

Vue.js – The Hard Way (Ep15)

Vue.js – The Hard Way (Ep14) 34:00

Vue.js – The Hard Way (Ep14)

Vue.js – The Hard Way (Ep13) 41:29

Vue.js – The Hard Way (Ep13)

Ramda JS Tutorial – Part 39 (T, F) 23:45

Ramda JS Tutorial – Part 39 (T, F)

Vue.js – The Hard Way (Ep12) 46:38

Vue.js – The Hard Way (Ep12)

Vue.js – The Hard Way (Ep11) 52:13

Vue.js – The Hard Way (Ep11)

Ramda JS Tutorial – Part 39 (evolve) 35:51

Ramda JS Tutorial – Part 39 (evolve)

How To Read Function Type Signatures 1:12:49

How To Read Function Type Signatures

Vue.js – The Hard Way (Ep10) 38:16

Vue.js – The Hard Way (Ep10)

Ramda JS Tutorial – Part 38 (equality) 58:24

Ramda JS Tutorial – Part 38 (equality)

Ramda JS Tutorial – Part 37 (endsWith + startsWith) 48:41

Ramda JS Tutorial – Part 37 (endsWith + startsWith)

Vue.js – The Hard Way (Ep9) 59:44

Vue.js – The Hard Way (Ep9)

Vue.js – The Hard Way (Ep8) 43:48

Vue.js – The Hard Way (Ep8)

Kilimanjaro Packing List 29:39

Kilimanjaro Packing List

Ramda JS Tutorial – Part 36 (empty + Monoid + Semigroup) 1:11:06

Ramda JS Tutorial – Part 36 (empty + Monoid + Semigroup)

Observer Pattern (in C#.NET) Screencast – OO Design Patterns Screencasts (Ep5) 1:06:03

Observer Pattern (in C#.NET) Screencast – OO Design Patterns Screencasts (Ep5)

Vue.js – The Hard Way (Ep7) 1:05:39

Vue.js – The Hard Way (Ep7)

Vue.js – The Hard Way (Ep6) 44:34

Vue.js – The Hard Way (Ep6)

Ramda JS Tutorial – Part 35 (either, or, both, and) (2/2) 42:54

Ramda JS Tutorial – Part 35 (either, or, both, and) (2/2)

Learn Programming – Questions & Answers #12 53:27

Learn Programming – Questions & Answers #12

Ramda JS Tutorial – Part 34 (either, or, both, and) (1/2) 56:59

Ramda JS Tutorial – Part 34 (either, or, both, and) (1/2)

Vue.js – The Hard Way (Ep5) 1:02:50

Vue.js – The Hard Way (Ep5)

Functional Programming, How to Start? – Questions & Answers #11 33:15

Functional Programming, How to Start? – Questions & Answers #11

What should I study at University? – Questions & Answers #10 36:39

What should I study at University? – Questions & Answers #10

Vue.js – The Hard Way (Ep4) 58:15

Vue.js – The Hard Way (Ep4)

Ramda JS Tutorial – Part 33 (dropRepeats, dropRepeatsWith) 34:16

Ramda JS Tutorial – Part 33 (dropRepeats, dropRepeatsWith)

Vue.js – The Hard Way (Ep3) 33:37

Vue.js – The Hard Way (Ep3)

Practice vs Theory? Books vs Tutorials? Become a Web Dev. Questions & Answers #9 26:52

Practice vs Theory? Books vs Tutorials? Become a Web Dev. Questions & Answers #9

Vue.js – The Hard Way (Ep2) 45:20

Vue.js – The Hard Way (Ep2)

Observer Pattern (in C#.NET) Screencast – OO Design Patterns Screencasts (ep 4) 30:01

Observer Pattern (in C#.NET) Screencast – OO Design Patterns Screencasts (ep 4)

Ramda JS Tutorial – Part 32 (drop, take) 45:08

Ramda JS Tutorial – Part 32 (drop, take)

Vue.js – The Hard Way (Ep1) 28:23

Vue.js – The Hard Way (Ep1)

Ramda JS Tutorial – Part 31 (divide, multiply) 16:33

Ramda JS Tutorial – Part 31 (divide, multiply)

Ramda JS Tutorial – Part 30 (difference, intersection, union, symmetric difference) 44:12

Ramda JS Tutorial – Part 30 (difference, intersection, union, symmetric difference)

Ramda JS Tutorial – Part 29 (defaultTo) 38:16

Ramda JS Tutorial – Part 29 (defaultTo)

Observer Pattern Screencast – OO Design Patterns Screencasts (ep 3) 1:11:26

Observer Pattern Screencast – OO Design Patterns Screencasts (ep 3)

Collaborate with Interfaces and Contracts? Questions & Answers #8 20:32

Collaborate with Interfaces and Contracts? Questions & Answers #8

Politics or Programming (for making the world better)? Questions & Answers #7 29:50

Politics or Programming (for making the world better)? Questions & Answers #7

Ramda JS Tutorial – Part 28 (inc, dec) 20:06

Ramda JS Tutorial – Part 28 (inc, dec)

Strategy Pattern (in real life) Screencast – OO Design Patterns Screencasts (ep 2) 51:05

Strategy Pattern (in real life) Screencast – OO Design Patterns Screencasts (ep 2)

Build IoT apps with OO Design Patterns? Questions & Answers #6 49:09

Build IoT apps with OO Design Patterns? Questions & Answers #6

Ramda JS Tutorial – Part 27 (curry) 28:59

Ramda JS Tutorial – Part 27 (curry)

Ramda JS Tutorial – Part 26 (countBy) 17:49

Ramda JS Tutorial – Part 26 (countBy)

Ramda JS Tutorial – Part 25 (converge) 1:00:57

Ramda JS Tutorial – Part 25 (converge)

Ramda JS Tutorial – Part 24 (contains) 21:24

Ramda JS Tutorial – Part 24 (contains)

Strategy Pattern Screencast – OO Design Patterns Screencasts (ep 1) 51:36

Strategy Pattern Screencast – OO Design Patterns Screencasts (ep 1)

No Math, No Money – Can I Become a programer? Questions & Answers #5 17:10

No Math, No Money – Can I Become a programer? Questions & Answers #5

Ramda JS Tutorial – Part 23 (construct, constructN) 30:39

Ramda JS Tutorial – Part 23 (construct, constructN)

Ramda JS Tutorial – Part 22 (cond / switch case) 27:09

Ramda JS Tutorial – Part 22 (cond / switch case)

Coding a File Uploader Library – Questions & Answers #4 1:18:55

Coding a File Uploader Library – Questions & Answers #4

Ramda JS Tutorial – Part 21 (Semigroup and Concat) 18:43

Ramda JS Tutorial – Part 21 (Semigroup and Concat)

How To Write Just Enough Tests? – Questions and Answers #3 22:26

How To Write Just Enough Tests? – Questions and Answers #3

Ramda JS Tutorial – Part 20 (composeP, pipeP) 27:20

Ramda JS Tutorial – Part 20 (composeP, pipeP)

Ramda JS Tutorial – Part 19 (compose and pipe) 28:46

Ramda JS Tutorial – Part 19 (compose and pipe)

Ramda JS Tutorial – Part 18 (complement) 10:52

Ramda JS Tutorial – Part 18 (complement)

Ramda JS Tutorial – Part 17 (comparator) 7:13

Ramda JS Tutorial – Part 17 (comparator)

Ramda JS Tutorial – Part 16 (clone) 9:33

Ramda JS Tutorial – Part 16 (clone)

人気の動画

Strategy Pattern – Design Patterns (ep 1) 35:11

Strategy Pattern – Design Patterns (ep 1)

156万 回視聴 - 8 年前

Observer Pattern – Design Patterns (ep 2) 49:47

Observer Pattern – Design Patterns (ep 2)

58万 回視聴 - 8 年前

Factory Method Pattern – Design Patterns (ep 4) 27:21

Factory Method Pattern – Design Patterns (ep 4)

57万 回視聴 - 8 年前

The absolute basics of HTML, CSS and JavaScript 24:21

The absolute basics of HTML, CSS and JavaScript

51万 回視聴 - 11 年前

Decorator Pattern – Design Patterns (ep 3) 54:35

Decorator Pattern – Design Patterns (ep 3)

50万 回視聴 - 8 年前

Abstract Factory Pattern – Design Patterns (ep 5) 25:54

Abstract Factory Pattern – Design Patterns (ep 5)

32万 回視聴 - 7 年前

Command Pattern – Design Patterns (ep 7) 39:12

Command Pattern – Design Patterns (ep 7)

28万 回視聴 - 7 年前

Singleton Pattern – Design Patterns (ep 6) 20:09

Singleton Pattern – Design Patterns (ep 6)

26万 回視聴 - 7 年前

Adapter Pattern – Design Patterns (ep 8) 26:36

Adapter Pattern – Design Patterns (ep 8)

25万 回視聴 - 7 年前

Facade Pattern – Design Patterns (ep 9) 16:19

Facade Pattern – Design Patterns (ep 9)

18万 回視聴 - 7 年前

Proxy Pattern – Design Patterns (ep 10) 37:35

Proxy Pattern – Design Patterns (ep 10)

16万 回視聴 - 7 年前

Liskov's Substitution Principle | SOLID Design Principles (ep 1 part 1) 16:08

Liskov's Substitution Principle | SOLID Design Principles (ep 1 part 1)

16万 回視聴 - 7 年前