Про TypeScript и про нас

Содержание

Слайд 2

Кто мы

ИТСК

Системный интегратор

Дочернее предприятие ПАО «Газпром нефть»

Пишем софт, много софта

Кто мы ИТСК Системный интегратор Дочернее предприятие ПАО «Газпром нефть» Пишем софт, много софта

Слайд 3

Наши проекты (количество строк кода)

Наши проекты (количество строк кода)

Слайд 4

Что это такое

Объектно-ориентированный язык

Представлен Microsoft в 2012 году

Является расширением JavaScript

Добавляет типизацию

Добавляет модификаторы

Что это такое Объектно-ориентированный язык Представлен Microsoft в 2012 году Является расширением
доступа членам классов

Добавляет синтаксические конструкции

Компилируется в JavaScript

Слайд 5

Кому может пригодиться?

Кому может пригодиться?

Слайд 6

Сфера применения

Везде где можно исполнять javascript код

Сфера применения Везде где можно исполнять javascript код

Слайд 7

При разработке приложений для браузеров

Сфера применения

При разработке приложений для браузеров Сфера применения

Слайд 8

Если вы наркоман fullstack developer и пишете бэк на ноде, то код

Если вы наркоман fullstack developer и пишете бэк на ноде, то код
скомпилированный из TS может исполняться в node.js

Сфера применения

Слайд 9

Deno – новая технология от создателя node, обещает исполнять TypeScript

Сфера применения

Deno – новая технология от создателя node, обещает исполнять TypeScript Сфера применения

Слайд 10

Динамика популярности языков со времени релиза typescript (по мнению stackoverflow)

Динамика популярности языков со времени релиза typescript (по мнению stackoverflow)

Слайд 11

Знакомство

Наше знакомство с typescript – 2016 год
Причины:
Строгая типизация
Выразительная система типов
Framework который мы

Знакомство Наше знакомство с typescript – 2016 год Причины: Строгая типизация Выразительная
выбрали для enterprise разработки пропагандирует ts

Слайд 12

Что делают разработчики, когда встречают что-то незнакомое?

Сопротивляются!

Что делают разработчики, когда встречают что-то незнакомое? Сопротивляются!

Слайд 13

Стадии принятия

Отрицание – да кому это только пришло в голову, типы в

Стадии принятия Отрицание – да кому это только пришло в голову, типы в JS???
JS???

Слайд 14

Гнев – *»№%::* эту строгую типизацию, это сколько надо dto наваять

Стадии принятия

Гнев – *»№%::* эту строгую типизацию, это сколько надо dto наваять Стадии принятия

Слайд 15

Торг – ок, типы. Any – тоже вполне себе тип

Стадии принятия

Торг – ок, типы. Any – тоже вполне себе тип Стадии принятия

Слайд 16

Депрессия – ее мы, кажется, пропустили

Стадии принятия

Депрессия – ее мы, кажется, пропустили Стадии принятия

Слайд 17

Принятие – осознание плюсов типизации, кропотливое прорабатывание типов, избавление от any

Стадии принятия

Принятие – осознание плюсов типизации, кропотливое прорабатывание типов, избавление от any Стадии принятия

Слайд 18

Что он нам дает

Привычно выглядящие ООП конструкции
Статическую типизацию
Классы
Интерфейсы
Обобщенные типы
Типы перечисления
Модификаторы доступа
Декораторы

Что он нам дает Привычно выглядящие ООП конструкции Статическую типизацию Классы Интерфейсы

Слайд 19

Система типов TypeScript

Статическая

Система типов TypeScript Статическая

Слайд 20

Сильная (строгая)

Система типов TypeScript

Сильная (строгая) Система типов TypeScript

Слайд 21

Структурная

Система типов TypeScript

Структурная Система типов TypeScript

Слайд 22

Номинативная типизация

C#

Номинативная типизация C#

Слайд 23

Структурная типизация

Структурная типизация

Слайд 24

Откуда берутся типы в TypeScript

Откуда берутся типы в TypeScript

Слайд 25

Откуда берутся типы в TypeScript

Откуда берутся типы в TypeScript

Слайд 26

Откуда берутся типы в TypeScript

Откуда берутся типы в TypeScript

Слайд 27

Откуда берутся типы в TypeScript

Откуда берутся типы в TypeScript

Слайд 28

Откуда берутся типы в TypeScript

Откуда берутся типы в TypeScript

Слайд 29

Откуда берутся типы в TypeScript

Откуда берутся типы в TypeScript

Слайд 30

Откуда берутся типы в TypeScript

Откуда берутся типы в TypeScript

Слайд 31

Куда деваются типы в TypeScript

Куда деваются типы в TypeScript

Слайд 32

ES5

Куда деваются типы в TypeScript

ES5 Куда деваются типы в TypeScript

Слайд 33

ES5

Куда деваются типы в TypeScript

ES5 Куда деваются типы в TypeScript

Слайд 34

Анонимный тип

Compile-time тип

Анонимный тип Compile-time тип

Слайд 35

Именованный тип, Интерфейс

Compile-time тип

Compile-time ID

Именованный тип, Интерфейс Compile-time тип Compile-time ID

Слайд 36

Класс Typescript

Функция-конструктор, или es6 класс

Compile-time тип

Compile-time ID

Класс Typescript Функция-конструктор, или es6 класс Compile-time тип Compile-time ID

Слайд 37

Рассмотрим такой вариант

Рассмотрим такой вариант

Слайд 38

Ответ сервера

Ответ сервера

Слайд 39

И вот что мы получим

И вот что мы получим

Слайд 40

Результирующий js

Результирующий js

Слайд 41

Еще про интерфейсы

Еще про интерфейсы

Слайд 42

Еще про интерфейсы

Еще про интерфейсы

Слайд 43

Еще немного про интерфейсы

A

B

Еще немного про интерфейсы A B

Слайд 44

Еще немного про интерфейсы

Еще немного про интерфейсы

Слайд 45

Модификаторы доступа, все что о них нужно знать

Модификаторы доступа, все что о них нужно знать

Слайд 46

Модификаторы доступа, все что о них нужно знать

Модификаторы доступа, все что о них нужно знать

Слайд 47

Более того, даже в ts

Более того, даже в ts

Слайд 50

C#

Generic

C# Generic

Слайд 54

Контекст

Контекст

Слайд 55

Контекст

Контекст

Слайд 56

Декораторы

Для использования нужно включить --experimentalDecorators

Декораторы Для использования нужно включить --experimentalDecorators

Слайд 57

Декораторы

Декораторы

Слайд 58

Декораторы

Декораторы

Слайд 59

Декораторы

Декораторы

Слайд 60

Хорошо подойдет людям с опытом backend разработки на строго типизированных языках

Выводы

Хорошо подойдет людям с опытом backend разработки на строго типизированных языках Выводы

Слайд 61

Расширяет возможности JavaScript, добавляя фишки, которые еще не вошли в стандарт, но

Расширяет возможности JavaScript, добавляя фишки, которые еще не вошли в стандарт, но ожидаются в будущем Выводы
ожидаются в будущем

Выводы

Слайд 62

Добавляет статическую типизацию

Выводы

Добавляет статическую типизацию Выводы

Слайд 63

Более удобная навигация по проекту и более точные подсказки IDE.

Выводы

Более удобная навигация по проекту и более точные подсказки IDE. Выводы

Слайд 64

Описание предметной области с помощью типов в крупных проектах позволяет лучше понимать

Описание предметной области с помощью типов в крупных проектах позволяет лучше понимать чужой код Выводы
чужой код

Выводы

Слайд 65

Обещает корректность типов в вашем приложении

Выводы

Обещает корректность типов в вашем приложении Выводы

Слайд 66

Он выглядит как C# или Java, но ими не является, вводя в

Он выглядит как C# или Java, но ими не является, вводя в заблуждение Выводы
заблуждение

Выводы

Слайд 67

Это все еще JavaScript с прототипным наследованием
Из этого следует, что TS опасен

Это все еще JavaScript с прототипным наследованием Из этого следует, что TS
для людей, которые плохо знают JavaScript

Выводы

Слайд 68

Большая часть конструкций исчезает после компиляции

Выводы

Большая часть конструкций исчезает после компиляции Выводы

Слайд 69

Все что вошло в программу из нетипизированной среды может вам все поломать

Все что вошло в программу из нетипизированной среды может вам все поломать
(json с бэка, например)

Выводы

Слайд 70

Сторонние библиотеки с коллбэками, которые применяют свой контекст могут нам все поломать

Выводы

Сторонние библиотеки с коллбэками, которые применяют свой контекст могут нам все поломать Выводы

Слайд 71

Проверка типов полностью отсутствует в рантайме

Выводы

Проверка типов полностью отсутствует в рантайме Выводы

Слайд 72

Добавляется обязательный этап сборки проекта

Выводы

Добавляется обязательный этап сборки проекта Выводы

Слайд 73

Не гарантирует корректность программы)

Выводы

Не гарантирует корректность программы) Выводы