Антихрупкий TypeScript | Odessa Frontend Meetup #17

OdessaFrontend
OdessaFrontendOdessaFrontend
Antifragile< >
Philipp Sapronov

philipp.sapronov@gmail.com
Antifragility is a property of systems in
which they increase in capability to thrive as
a result of stressors, shocks, volatility, noise,
mistakes, faults, attacks, or failures.
Антихрупкий TypeScript | Odessa Frontend Meetup #17
Developers
Strict

Structural

Turing Complete

Type system is:
Strict
" ": ,
strict  

// "noImplicitAny": true, 

// "strictNullChecks": true,  

// "strictFunctionTypes": true,  

// "strictBindCallApply": true,  

// "strictPropertyInitialization": true,  

// "noImplicitThis": true,  

// "alwaysStrict": true,
true
Strict
A Note on Soundness


TypeScript’s type system allows certain operations that can’t be known at
compile-time to be safe. When a type system has this property, it is said to not be
“sound”. {...}


https://www.typescriptlang.org/docs/handbook/type-compatibility.html
Strict
Strict
any
Strict
unknown
ts before


try
catch
{}

( : ) {}


e any
ts v4.0+


try
catch
{}

( : ) {}
e unknown
Strict
const : [] = []


[ ]. ()
arr
arr
string
0 split // error


Strict
/* tsconfig.json */


// v4.1+

" ": ,
noUncheckedIndexedAccess true
Strict
// "noUncheckedIndexedAccess": true,


// string | undefined



const : [] = []

[ ]
arr
arr
string
0
Strict
A
B
|
Union
type T1 =

| 

string
number
T1: string | number
type T2 = 

| 

{a: string}
{b: number}
T2: {a: string} | {b: number}
Strict
interface
const
return
User
User
user
{

?: ;

}


= ( : ) => {

.email. ();

}


email string | null
getEmail
toLowerCase
user
Strict
( .email ). ();



user as string toLowerCase
Strict
Casting
( ).method()
null as any
A as
B
(( ...) ...)

null as as
Strict
About narrowing (guards)


typescriptlang.org/docs/handbook/2/narrowing.html


Strict
Strict
// typeof type guards

/*...*/
// instanceof narrowing 

/*...*/
// The “in” operator narrowing 

/*...*/
// Using type predicates

if
if instanceof
if in
function is
(typeof “ ”) { }


( ) { }


(“ ” ) { }


( : ):
str
x Date
x
Shape Circle
=== string
property
isCircle shape shape
Structural
interface
const
const =>
{

: ;

: ;

};


= : , : ;


= ( : ) {};


( );
( : , : );
Point
point: Point
fn point Point
fn point
fn
x
y
x y
x y
number
number
100 100
100 100
{ }
{ }
// OK

// OK

Structural
const =>
const
= ( : : , : ) {};


= : , : ;


( );
fn point
point
fn point
{ }
{ }
x y
x y z
number number
1.5 2.4, : 999999
// OK



Structural
const
const
: , : ;


. ( ). (( ) => {

= [ ];

});


point
point
value point
= x y
Object
{ }
1.5 2.4
keys forEach key
key
/**

* Element implicitly has an 'any' type because expression of type 'string'

* can't be used to index type '{ x: number; y: number; }'.

*/


Structural
// lib.es5.d.ts

// proposal

< >
keys
keys
( : ): []


( : T): ( )[]







o
o
object string
object
T T
extends keyof
Structural
type
function
for const of
if === === return
throw new
const
= : ; :
( : ) {

( . ) {
( " " || " ") ;


(" ");


}

}


= : , : ,
( );
Point
Point
key
key key
Error
point
point
{ }
{ }

x y
Object ( )
x y z
number number ;


x y
This is impossible
0.5 2.4 : 999999999
fn
keys
fn
point
point // (x | y)[]

// Throws an exception


https://stackoverflow.com/questions/55012174/why-doesnt-object-keys-return-a-keyof-type-in-typescript
Structural
Branding and Type-Tagging



Structural
const bar
bar bar bar bar bar
=
Object
{ }
foo “ ”
: ;


. ( , , , , )
bar
assign // any
Structural
// lib.es5.d.ts

assign
assign
assign
assign
< , >( : , : ): & ;

< , , >( : , : , : ): & & ;

< , , , >( : , : , : , : ): & & & ;

( : , : []): ;




T U target source
T U V target source1 source2
T U V W target source1 source2 source3
target sources
T U T U
T U V T U V
T U V W T U V W
object ... any any
Structural
A
B
&
Intersection
type T1 =

& 

string
number
T1: never
type T2 = 

& 

{a: string}
{b: number}
T2: {a: string, b: number}
Structural
// X | Y | Z => X & Y & Z

type =
extends ? => : extends =>
?
:
UnionToIntersection U  

U : U : I
I

;
< >
infer
( k ) (k )
any void never void

never
( )
assign< , []>( : , : ): 

& < [ ]>;




T P T P
T UnionToIntersection P
extends extends
object object
number
t sources
...
Structural
TypeScript
Structural
Turing Complete
Generic Types

Conditional Types

Recursive Types

Mapped Types




Turing complete
Cup<T>
Turing complete
< > =
T *
type
Turing complete
type < >
Identity T T
=
type < , > [ , ]
Pair T U T U
=
const =>
( )
identity t t
=
const =>
( , ) [ , ]
pair t u t u
=
function
=>
const
< >

( : | (() )): [ , < < >>];


[ , ] < | >( )

( )


useState
Dispatch SetStateAction
state setState useState
setState
S
S S S S
initialState
null
= string null
/* only string or null is allowed */
Turing complete
type
type extends
=>
const extends =>
return
{ : };


< > = {

: [];

: ( : ) ;

};


= < >( : < >) {

{ } ;

};



Row
TableProps T Row
T
T
T Row TableProps T
= id
rows
onClick void
string
row
props
Table
< > </ >
table table
/* ... */
Turing complete
interface extends
const extends =>
const
return
< . < >> {

: ;

: < >;

}


= <T . < >>( : < >) {

{ : , } ;

{ } ;

};
Props T React ComponentType
T
React.ComponentProps T
React ComponentType Props T
component Component componentProps props
componentProps
any
component
componentProps
any
=
Item props
< />
Component ...
?
Turing complete
Conditional types
Turing complete
? :
===
typeof a “ ”
boolean true false
Turing complete
? :
extends
A boolean true false
? :
===
typeof a “ ”
boolean true false
*
? :
extends
A B *
Turing complete
never
? :
extends
T U T
type Exclude<T, U> =
Exclude< | , >
'username' 'email' 'email' // username
Turing complete
infer
Turing complete
type extends ? :
type
type
< > < > ;


< []>;
<[ ]>;
ArrayType T T Array
T1 ArrayType
T2 ArrayType
= U U never
= string
= string, number
infer
// string

// string | number

Turing complete
type extends ? :
type
< > < > < > ;


< < | < < < >>>>>; 

ArrayType T T Array ArrayType
T2 ArrayType Array Array Array Array
= U U never
= string number
infer
// string | number

Turing complete
// v4.1+
type
extends keyof
extends
?
: extends keyof
?
:
<

. | < >>  

. < >

.
. [ ]

{};

ComponentProps
T JSX IntrinsicElements JSXElementConstructor
T React JSXElementConstructor
T JSX IntrinsicElements

JSX IntrinsicElements T
any =
P
P

infer
Turing complete
interface extends
const extends =>
const
return
< . < >> {

: ;

: < >;

}


= <T . < >>( : < >) {

{ : , } ;

{ } ;

};
Props T React ComponentType
T
React.ComponentProps T
React ComponentType Props T
component Component componentProps props
componentProps
any
component
componentProps
any
=
Item props
< />
Component ...
Turing complete
type keyof
type extends
type extends
Component JSX IntrinsicElements JSXElementConstructor
OptionalProps T T
Props T Component
T
React.ComponentProps T
OptionalProps T
= any
=
errorMessage
any
component
componentProps
. | < >

< > ‘ ’; 

? { : }

: {};


< < >> {

: ;

: < >;

} & < >;

input
string
Turing complete
Mapped types
Turing complete
interface
const =>
const =>
const
{

: ;

: ;

: ;

}


( : ) { };


() {

[ , ] = < >( );

};
SignUpData
SignUpData
state setState useState SignUpData
email
password
username
=
=
string
string
string
// api/auth

/* ... */
// components/auth

signUp
SignUpForm
data
{}
Turing complete
interface
const =>
const =>
const
{

: ;

: ;

: ;

}


( : ) { };


() {

[ , ] = < < >>( );

};
SignUpData
SignUpData
state setState useState Partial SignUpData
email
password
username
=
=
string
string
string
// api/auth

/* ... */
// components/auth

signUp
SignUpForm
data
{}
Turing complete
{
}
email
password
username
:
, :
, :
string

string

string

{
}
email
password
username
?:
, ?:
, ?:
string

string

string

Turing complete
{ }
[ ]
in :
K * *
Turing complete
type Partial<T> =
{ }
[ ]
in ?:
K keyof T T[K]
Turing complete
type Required<T> =
{ }
[ ]-
in ?:
K keyof T T[K]
Turing complete
Exclude

Extract

Pick

Omit

Partial

ReturnType

Parameters
Challenge :)
Turing complete
Links
www.typescriptlang.org

@why_typescript_is_bad

freecodecamp.org/news/typescript-curry-ramda-types-f747e99744ab

ybogomolov.me/typesafe-typescript

github.com/type-challenges/type-challenges

github.com/millsp/ts-toolbelt
Thank s!
1 of 60

Recommended

C++ references by
C++ referencesC++ references
C++ referencescorehard_by
808 views55 slides
Functional Programming Patterns (BuildStuff '14) by
Functional Programming Patterns (BuildStuff '14)Functional Programming Patterns (BuildStuff '14)
Functional Programming Patterns (BuildStuff '14)Scott Wlaschin
175.3K views249 slides
Fun with functions by
Fun with functionsFun with functions
Fun with functionsFrank Müller
64 views46 slides
The best of AltJava is Xtend by
The best of AltJava is XtendThe best of AltJava is Xtend
The best of AltJava is Xtendtakezoe
4.6K views22 slides
Fp201 unit5 1 by
Fp201 unit5 1Fp201 unit5 1
Fp201 unit5 1rohassanie
529 views33 slides
13 Strings and Text Processing by
13 Strings and Text Processing13 Strings and Text Processing
13 Strings and Text ProcessingIntro C# Book
42.3K views33 slides

More Related Content

What's hot

C++11 by
C++11C++11
C++11Andrey Dankevich
19.5K views72 slides
12. Exception Handling by
12. Exception Handling 12. Exception Handling
12. Exception Handling Intro C# Book
27.2K views43 slides
FP 201 - Unit 6 by
FP 201 - Unit 6FP 201 - Unit 6
FP 201 - Unit 6rohassanie
776 views50 slides
FP 201 - Unit 3 Part 2 by
FP 201 - Unit 3 Part 2FP 201 - Unit 3 Part 2
FP 201 - Unit 3 Part 2rohassanie
510 views39 slides
C++11 by
C++11C++11
C++11Sasha Goldshtein
3.2K views20 slides

What's hot(20)

12. Exception Handling by Intro C# Book
12. Exception Handling 12. Exception Handling
12. Exception Handling
Intro C# Book27.2K views
FP 201 - Unit 6 by rohassanie
FP 201 - Unit 6FP 201 - Unit 6
FP 201 - Unit 6
rohassanie776 views
FP 201 - Unit 3 Part 2 by rohassanie
FP 201 - Unit 3 Part 2FP 201 - Unit 3 Part 2
FP 201 - Unit 3 Part 2
rohassanie510 views
OpenGurukul : Language : C++ Programming by Open Gurukul
OpenGurukul : Language : C++ ProgrammingOpenGurukul : Language : C++ Programming
OpenGurukul : Language : C++ Programming
Open Gurukul4.6K views
05. Conditional Statements by Intro C# Book
05. Conditional Statements05. Conditional Statements
05. Conditional Statements
Intro C# Book15.5K views
Fp201 unit4 by rohassanie
Fp201 unit4Fp201 unit4
Fp201 unit4
rohassanie1.7K views
C++ programming by viancagerone
C++ programmingC++ programming
C++ programming
viancagerone20.5K views
Array strings by Radhe Syam
Array stringsArray strings
Array strings
Radhe Syam164 views
Free Monads Getting Started by Kent Ohashi
Free Monads Getting StartedFree Monads Getting Started
Free Monads Getting Started
Kent Ohashi1K views
GE8151 Problem Solving and Python Programming by Muthu Vinayagam
GE8151 Problem Solving and Python ProgrammingGE8151 Problem Solving and Python Programming
GE8151 Problem Solving and Python Programming
Muthu Vinayagam1.8K views
Python programming workshop session 1 by Abdul Haseeb
Python programming workshop session 1Python programming workshop session 1
Python programming workshop session 1
Abdul Haseeb178 views
03. Operators Expressions and statements by Intro C# Book
03. Operators Expressions and statements03. Operators Expressions and statements
03. Operators Expressions and statements
Intro C# Book27.3K views
2 BytesC++ course_2014_c9_ pointers and dynamic arrays by kinan keshkeh
2 BytesC++ course_2014_c9_ pointers and dynamic arrays 2 BytesC++ course_2014_c9_ pointers and dynamic arrays
2 BytesC++ course_2014_c9_ pointers and dynamic arrays
kinan keshkeh321 views
Fun with Lambdas: C++14 Style (part 1) by Sumant Tambe
Fun with Lambdas: C++14 Style (part 1)Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)
Sumant Tambe6.7K views

Similar to Антихрупкий TypeScript | Odessa Frontend Meetup #17

Introduction to typescript by
Introduction to typescriptIntroduction to typescript
Introduction to typescriptMario Alexandro Santini
90 views43 slides
Add an interactive command line to your C++ application by
Add an interactive command line to your C++ applicationAdd an interactive command line to your C++ application
Add an interactive command line to your C++ applicationDaniele Pallastrelli
1.3K views63 slides
Lập trình C by
Lập trình CLập trình C
Lập trình CViet NguyenHoang
984 views11 slides
C++11 - STL Additions by
C++11 - STL AdditionsC++11 - STL Additions
C++11 - STL AdditionsGlobalLogic Ukraine
2K views32 slides
core java by
 core java core java
core javadssreenath
695 views6 slides
Introduction To Csharp by
Introduction To CsharpIntroduction To Csharp
Introduction To Csharpg_hemanth17
447 views41 slides

Similar to Антихрупкий TypeScript | Odessa Frontend Meetup #17(20)

Add an interactive command line to your C++ application by Daniele Pallastrelli
Add an interactive command line to your C++ applicationAdd an interactive command line to your C++ application
Add an interactive command line to your C++ application
Introduction To Csharp by g_hemanth17
Introduction To CsharpIntroduction To Csharp
Introduction To Csharp
g_hemanth17447 views
Introduction to csharp by singhadarsh
Introduction to csharpIntroduction to csharp
Introduction to csharp
singhadarsh466 views
Introduction to-csharp-1229579367461426-1 by Sachin Singh
Introduction to-csharp-1229579367461426-1Introduction to-csharp-1229579367461426-1
Introduction to-csharp-1229579367461426-1
Sachin Singh263 views
Introduction to CSharp by Mody Farouk
Introduction to CSharpIntroduction to CSharp
Introduction to CSharp
Mody Farouk929 views
Introduction to csharp by Raga Vahini
Introduction to csharpIntroduction to csharp
Introduction to csharp
Raga Vahini385 views
Introduction to csharp by Satish Verma
Introduction to csharpIntroduction to csharp
Introduction to csharp
Satish Verma372 views
TypeScript Best Practices by felixbillon
TypeScript Best PracticesTypeScript Best Practices
TypeScript Best Practices
felixbillon3K views
Paradigmas de Linguagens de Programacao - Aula #5 by Ismar Silveira
Paradigmas de Linguagens de Programacao - Aula #5Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5
Ismar Silveira953 views
Modern C++ Concurrency API by Seok-joon Yun
Modern C++ Concurrency APIModern C++ Concurrency API
Modern C++ Concurrency API
Seok-joon Yun1.4K views
Java fundamentals by HCMUTE
Java fundamentalsJava fundamentals
Java fundamentals
HCMUTE887 views

More from OdessaFrontend

Викторина | Odessa Frontend Meetup #19 by
Викторина | Odessa Frontend Meetup #19Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19OdessaFrontend
139 views20 slides
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee... by
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...OdessaFrontend
151 views34 slides
Великолепный Gatsby.js | Odessa Frontend Meetup #19 by
Великолепный Gatsby.js | Odessa Frontend Meetup #19Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19OdessaFrontend
122 views50 slides
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr... by
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...OdessaFrontend
214 views73 slides
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18 by
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18OdessaFrontend
82 views19 slides
Викторина | Odessa Frontend Meetup #17 by
Викторина | Odessa Frontend Meetup #17Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17OdessaFrontend
150 views23 slides

More from OdessaFrontend(20)

Викторина | Odessa Frontend Meetup #19 by OdessaFrontend
Викторина | Odessa Frontend Meetup #19Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19
OdessaFrontend139 views
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee... by OdessaFrontend
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
OdessaFrontend151 views
Великолепный Gatsby.js | Odessa Frontend Meetup #19 by OdessaFrontend
Великолепный Gatsby.js | Odessa Frontend Meetup #19Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19
OdessaFrontend122 views
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr... by OdessaFrontend
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
OdessaFrontend214 views
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18 by OdessaFrontend
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
OdessaFrontend82 views
Викторина | Odessa Frontend Meetup #17 by OdessaFrontend
Викторина | Odessa Frontend Meetup #17Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17
OdessaFrontend150 views
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17 by OdessaFrontend
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
OdessaFrontend84 views
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17 by OdessaFrontend
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OdessaFrontend254 views
Объекты в ECMAScript | Odessa Frontend Meetup #16 by OdessaFrontend
Объекты в ECMAScript | Odessa Frontend Meetup #16Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16
OdessaFrontend169 views
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16 by OdessaFrontend
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
OdessaFrontend159 views
Cлайдер на CSS | Odessa Frontend Meetup #16 by OdessaFrontend
Cлайдер на CSS | Odessa Frontend Meetup #16Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16
OdessaFrontend148 views
Современный станок верстальщика by OdessaFrontend
Современный станок верстальщикаСовременный станок верстальщика
Современный станок верстальщика
OdessaFrontend188 views
Викторина | Odessa Frontend Meetup #15 by OdessaFrontend
Викторина | Odessa Frontend Meetup #15Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15
OdessaFrontend87 views
DRY’им Vuex | Odessa Frontend Meetup #15 by OdessaFrontend
DRY’им Vuex | Odessa Frontend Meetup #15DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15
OdessaFrontend64 views
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15 by OdessaFrontend
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
OdessaFrontend109 views
Пощупать 3д в браузере | Odessa Frontend Meetup #15 by OdessaFrontend
Пощупать 3д в браузере | Odessa Frontend Meetup #15Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15
OdessaFrontend126 views
Викторина | Odessa Frontend Meetup #14 by OdessaFrontend
Викторина | Odessa Frontend Meetup #14Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14
OdessaFrontend83 views
Викторина | Odessa Frontend Meetup #13 by OdessaFrontend
Викторина | Odessa Frontend Meetup #13Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13
OdessaFrontend147 views
Структуры данных в JavaScript | Odessa Frontend Meetup #13 by OdessaFrontend
Структуры данных в JavaScript | Odessa Frontend Meetup #13Структуры данных в JavaScript | Odessa Frontend Meetup #13
Структуры данных в JavaScript | Odessa Frontend Meetup #13
OdessaFrontend1.6K views
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13 by OdessaFrontend
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
OdessaFrontend184 views

Recently uploaded

MVP and prioritization.pdf by
MVP and prioritization.pdfMVP and prioritization.pdf
MVP and prioritization.pdfrahuldharwal141
37 views8 slides
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...James Anderson
126 views32 slides
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc
72 views29 slides
Kyo - Functional Scala 2023.pdf by
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
418 views92 slides
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...Bernd Ruecker
48 views69 slides
Five Things You SHOULD Know About Postman by
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About PostmanPostman
38 views43 slides

Recently uploaded(20)

GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N... by James Anderson
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
GDG Cloud Southlake 28 Brad Taylor and Shawn Augenstein Old Problems in the N...
James Anderson126 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc72 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker48 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman38 views
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors by sugiuralab
TouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective SensorsTouchLog: Finger Micro Gesture Recognition  Using Photo-Reflective Sensors
TouchLog: Finger Micro Gesture Recognition Using Photo-Reflective Sensors
sugiuralab23 views
STPI OctaNE CoE Brochure.pdf by madhurjyapb
STPI OctaNE CoE Brochure.pdfSTPI OctaNE CoE Brochure.pdf
STPI OctaNE CoE Brochure.pdf
madhurjyapb14 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software317 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10345 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty22 views
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe by Simone Puorto
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe
2024: A Travel Odyssey The Role of Generative AI in the Tourism Universe
Simone Puorto13 views
Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec15 views

Антихрупкий TypeScript | Odessa Frontend Meetup #17