SlideShare a Scribd company logo
1 of 60
Download to read offline
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.
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!

More Related Content

What's hot

FP 201 - Unit 6
FP 201 - Unit 6FP 201 - Unit 6
FP 201 - Unit 6
rohassanie
 
FP 201 - Unit 3 Part 2
FP 201 - Unit 3 Part 2FP 201 - Unit 3 Part 2
FP 201 - Unit 3 Part 2
rohassanie
 

What's hot (20)

C++11
C++11C++11
C++11
 
12. Exception Handling
12. Exception Handling 12. Exception Handling
12. Exception Handling
 
FP 201 - Unit 6
FP 201 - Unit 6FP 201 - Unit 6
FP 201 - Unit 6
 
Advanced C - Part 2
Advanced C - Part 2Advanced C - Part 2
Advanced C - Part 2
 
FP 201 - Unit 3 Part 2
FP 201 - Unit 3 Part 2FP 201 - Unit 3 Part 2
FP 201 - Unit 3 Part 2
 
C++11
C++11C++11
C++11
 
Python unit 3 and Unit 4
Python unit 3 and Unit 4Python unit 3 and Unit 4
Python unit 3 and Unit 4
 
OpenGurukul : Language : C++ Programming
OpenGurukul : Language : C++ ProgrammingOpenGurukul : Language : C++ Programming
OpenGurukul : Language : C++ Programming
 
05. Conditional Statements
05. Conditional Statements05. Conditional Statements
05. Conditional Statements
 
Fp201 unit4
Fp201 unit4Fp201 unit4
Fp201 unit4
 
C++ programming
C++ programmingC++ programming
C++ programming
 
Array strings
Array stringsArray strings
Array strings
 
06.Loops
06.Loops06.Loops
06.Loops
 
Free Monads Getting Started
Free Monads Getting StartedFree Monads Getting Started
Free Monads Getting Started
 
GE8151 Problem Solving and Python Programming
GE8151 Problem Solving and Python ProgrammingGE8151 Problem Solving and Python Programming
GE8151 Problem Solving and Python Programming
 
Python programming workshop session 1
Python programming workshop session 1Python programming workshop session 1
Python programming workshop session 1
 
03. Operators Expressions and statements
03. Operators Expressions and statements03. Operators Expressions and statements
03. Operators Expressions and statements
 
Functional programming
Functional programmingFunctional programming
Functional programming
 
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
2 BytesC++ course_2014_c9_ pointers and dynamic arrays
 
Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)Fun with Lambdas: C++14 Style (part 1)
Fun with Lambdas: C++14 Style (part 1)
 

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

So I am writing a CS code for a project and I keep getting cannot .pdf
So I am writing a CS code for a project and I keep getting cannot .pdfSo I am writing a CS code for a project and I keep getting cannot .pdf
So I am writing a CS code for a project and I keep getting cannot .pdf
ezonesolutions
 
Introduction To Csharp
Introduction To CsharpIntroduction To Csharp
Introduction To Csharp
g_hemanth17
 
Introduction to-csharp-1229579367461426-1
Introduction to-csharp-1229579367461426-1Introduction to-csharp-1229579367461426-1
Introduction to-csharp-1229579367461426-1
Sachin Singh
 
Introduction to CSharp
Introduction to CSharpIntroduction to CSharp
Introduction to CSharp
Mody Farouk
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharp
Raga Vahini
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharp
Satish Verma
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharp
singhadarsh
 

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

Introduction to typescript
Introduction to typescriptIntroduction to typescript
Introduction to typescript
 
Add an interactive command line to your C++ application
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
 
So I am writing a CS code for a project and I keep getting cannot .pdf
So I am writing a CS code for a project and I keep getting cannot .pdfSo I am writing a CS code for a project and I keep getting cannot .pdf
So I am writing a CS code for a project and I keep getting cannot .pdf
 
Lập trình C
Lập trình CLập trình C
Lập trình C
 
C++11 - STL Additions
C++11 - STL AdditionsC++11 - STL Additions
C++11 - STL Additions
 
core java
 core java core java
core java
 
Introduction To Csharp
Introduction To CsharpIntroduction To Csharp
Introduction To Csharp
 
Introduction to-csharp-1229579367461426-1
Introduction to-csharp-1229579367461426-1Introduction to-csharp-1229579367461426-1
Introduction to-csharp-1229579367461426-1
 
Introduction to CSharp
Introduction to CSharpIntroduction to CSharp
Introduction to CSharp
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharp
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharp
 
Introduction to csharp
Introduction to csharpIntroduction to csharp
Introduction to csharp
 
Effective Modern C++
Effective Modern C++Effective Modern C++
Effective Modern C++
 
C tutorial
C tutorialC tutorial
C tutorial
 
Welcome to Modern C++
Welcome to Modern C++Welcome to Modern C++
Welcome to Modern C++
 
TechTalk - Dotnet
TechTalk - DotnetTechTalk - Dotnet
TechTalk - Dotnet
 
IntroToCSharpcode.ppt
IntroToCSharpcode.pptIntroToCSharpcode.ppt
IntroToCSharpcode.ppt
 
TypeScript Best Practices
TypeScript Best PracticesTypeScript Best Practices
TypeScript Best Practices
 
Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5Paradigmas de Linguagens de Programacao - Aula #5
Paradigmas de Linguagens de Programacao - Aula #5
 
Modern C++ Concurrency API
Modern C++ Concurrency APIModern C++ Concurrency API
Modern C++ Concurrency API
 

More from OdessaFrontend

Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
OdessaFrontend
 

More from OdessaFrontend (20)

Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19Викторина | Odessa Frontend Meetup #19
Викторина | Odessa Frontend Meetup #19
 
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
Использование Recoil в React и React Native приложениях | Odessa Frontend Mee...
 
Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19Великолепный Gatsby.js | Odessa Frontend Meetup #19
Великолепный Gatsby.js | Odessa Frontend Meetup #19
 
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
Функциональное программирование с использованием библиотеки fp-ts | Odessa Fr...
 
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
Canvas API как инструмент для работы с графикой | Odessa Frontend Meetup #18
 
Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17Викторина | Odessa Frontend Meetup #17
Викторина | Odessa Frontend Meetup #17
 
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
Частые ошибки при разработке фронтенда | Odessa Frontend Meetup #17
 
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
OAuth2 и OpenID Connect простым языком | Odessa Frontend Meetup #17
 
Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16
 
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
Фриланс как профессиональная деградация | Odessa Frontend Meetup #16
 
Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16Cлайдер на CSS | Odessa Frontend Meetup #16
Cлайдер на CSS | Odessa Frontend Meetup #16
 
Современный станок верстальщика
Современный станок верстальщикаСовременный станок верстальщика
Современный станок верстальщика
 
Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15Викторина | Odessa Frontend Meetup #15
Викторина | Odessa Frontend Meetup #15
 
DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15DRY’им Vuex | Odessa Frontend Meetup #15
DRY’им Vuex | Odessa Frontend Meetup #15
 
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
А/Б тестирование: Что? Как? Зачем? | Odessa Frontend Meetup #15
 
Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15Пощупать 3д в браузере | Odessa Frontend Meetup #15
Пощупать 3д в браузере | Odessa Frontend Meetup #15
 
Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14Викторина | Odessa Frontend Meetup #14
Викторина | Odessa Frontend Meetup #14
 
Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13Викторина | Odessa Frontend Meetup #13
Викторина | Odessa Frontend Meetup #13
 
Структуры данных в JavaScript | Odessa Frontend Meetup #13
Структуры данных в JavaScript | Odessa Frontend Meetup #13Структуры данных в JavaScript | Odessa Frontend Meetup #13
Структуры данных в JavaScript | Odessa Frontend Meetup #13
 
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
Эффективность с большой буквы Э… или любой другой | Odessa Frontend Meetup #13
 

Recently uploaded

TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
FIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 

Recently uploaded (20)

The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
The Ultimate Prompt Engineering Guide for Generative AI: Get the Most Out of ...
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi Daparthi
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 

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