Submit Search
Upload
«Typescript: кому нужна строгая типизация?», Григорий Петров, MoscowJS 21
•
3 likes
•
1,501 views
MoscowJS
Follow
«Typescript: кому нужна строгая типизация?», Григорий Петров, MoscowJS 21
Read less
Read more
Software
Report
Share
Report
Share
1 of 18
Download now
Download to read offline
Recommended
Между дизайнером и программистом: инструментарий в «Аллодах Онлайн».
Между дизайнером и программистом: инструментарий в «Аллодах Онлайн».
Андрей Бростовский
Kranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burma
Krivoy Rog IT Community
Git and Github for Beginners
Git and Github for Beginners
Mad Devs
Хипстеры в энтерпрайзе
Хипстеры в энтерпрайзе
Aleksandr Tarasov
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
Aleksandr Tarasov
Так говорят программисты
Так говорят программисты
prigarov
Демократизация машинного обучения
Демократизация машинного обучения
Дмитрий Колодезев
Расширь границы возможного вместе с Gradle
Расширь границы возможного вместе с Gradle
Aleksandr Tarasov
Recommended
Между дизайнером и программистом: инструментарий в «Аллодах Онлайн».
Между дизайнером и программистом: инструментарий в «Аллодах Онлайн».
Андрей Бростовский
Kranonit s16 (python). sergey burma
Kranonit s16 (python). sergey burma
Krivoy Rog IT Community
Git and Github for Beginners
Git and Github for Beginners
Mad Devs
Хипстеры в энтерпрайзе
Хипстеры в энтерпрайзе
Aleksandr Tarasov
Jbreak 2016: Твой личный Spring Boot Starter
Jbreak 2016: Твой личный Spring Boot Starter
Aleksandr Tarasov
Так говорят программисты
Так говорят программисты
prigarov
Демократизация машинного обучения
Демократизация машинного обучения
Дмитрий Колодезев
Расширь границы возможного вместе с Gradle
Расширь границы возможного вместе с Gradle
Aleksandr Tarasov
Андрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
Андрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
Yandex
Фреймворк для регрессионного тестирования на основе WebDriver
Фреймворк для регрессионного тестирования на основе WebDriver
automated-testing.info
Илья Климов "О драконах ни слова"
Илья Климов "О драконах ни слова"
Fwdays
BDD. Gherkin+Ruby или автотесты для гуманитариев
BDD. Gherkin+Ruby или автотесты для гуманитариев
SQALab
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Dmytro Zharii
Ruby exceptions
Ruby exceptions
Андрей Колешко
“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектах
automated-testing.info
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
Roman Dvornov
Как писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодером
Kirill Kovalchuk
Чем Python плох для стартапа?
Чем Python плох для стартапа?
PyNSK
Проблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestComplete
automated-testing.info
Modules and assembling of JavaScript (in russian)
Modules and assembling of JavaScript (in russian)
Mikhail Davydov
Повышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кода
Aleksandr Makhomet
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack Developers
Rutenis Turcinas
Typescript
Typescript
Nikhil Thomas
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
Laurent Duveau
TypeScript Overview
TypeScript Overview
Aniruddha Chakrabarti
TypeScript
TypeScript
Udaiappa Ramachandran
002. Introducere in type script
002. Introducere in type script
Dmitrii Stoian
Introducing type script
Introducing type script
Remo Jansen
Typescript + Graphql = <3
Typescript + Graphql = <3
felixbillon
TypeScript Seminar
TypeScript Seminar
Haim Michael
More Related Content
What's hot
Андрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
Андрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
Yandex
Фреймворк для регрессионного тестирования на основе WebDriver
Фреймворк для регрессионного тестирования на основе WebDriver
automated-testing.info
Илья Климов "О драконах ни слова"
Илья Климов "О драконах ни слова"
Fwdays
BDD. Gherkin+Ruby или автотесты для гуманитариев
BDD. Gherkin+Ruby или автотесты для гуманитариев
SQALab
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Dmytro Zharii
Ruby exceptions
Ruby exceptions
Андрей Колешко
“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектах
automated-testing.info
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
Roman Dvornov
Как писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодером
Kirill Kovalchuk
Чем Python плох для стартапа?
Чем Python плох для стартапа?
PyNSK
Проблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestComplete
automated-testing.info
Modules and assembling of JavaScript (in russian)
Modules and assembling of JavaScript (in russian)
Mikhail Davydov
Повышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кода
Aleksandr Makhomet
What's hot
(13)
Андрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
Андрей Рохилько – J-meter внутри и снаружи Яндекс.Танка
Фреймворк для регрессионного тестирования на основе WebDriver
Фреймворк для регрессионного тестирования на основе WebDriver
Илья Климов "О драконах ни слова"
Илья Климов "О драконах ни слова"
BDD. Gherkin+Ruby или автотесты для гуманитариев
BDD. Gherkin+Ruby или автотесты для гуманитариев
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Тесты в стиле BDD на C# (Подходы и инструменты; SpecFlow, BDDfy)
Ruby exceptions
Ruby exceptions
“Обезьянье тестирование” в мобильных проектах
“Обезьянье тестирование” в мобильных проектах
Инструменты разные нужны, инструменты разные важны
Инструменты разные нужны, инструменты разные важны
Как писать на PHP и не стать быдло-кодером
Как писать на PHP и не стать быдло-кодером
Чем Python плох для стартапа?
Чем Python плох для стартапа?
Проблемы автоматизации крупных проектов: TestComplete
Проблемы автоматизации крупных проектов: TestComplete
Modules and assembling of JavaScript (in russian)
Modules and assembling of JavaScript (in russian)
Повышаем и следим за качеством PHP кода
Повышаем и следим за качеством PHP кода
Viewers also liked
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack Developers
Rutenis Turcinas
Typescript
Typescript
Nikhil Thomas
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
Laurent Duveau
TypeScript Overview
TypeScript Overview
Aniruddha Chakrabarti
TypeScript
TypeScript
Udaiappa Ramachandran
002. Introducere in type script
002. Introducere in type script
Dmitrii Stoian
Introducing type script
Introducing type script
Remo Jansen
Typescript + Graphql = <3
Typescript + Graphql = <3
felixbillon
TypeScript Seminar
TypeScript Seminar
Haim Michael
Angular 2 - Typescript
Angular 2 - Typescript
Nathan Krasney
Typescript tips & tricks
Typescript tips & tricks
Ori Calvo
Power Leveling your TypeScript
Power Leveling your TypeScript
Offirmo
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)
Ontico
TypeScript
TypeScript
GetDev.NET
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
Micael Gallego
Typescript Fundamentals
Typescript Fundamentals
Sunny Sharma
TypeScript - An Introduction
TypeScript - An Introduction
NexThoughts Technologies
Getting started with typescript
Getting started with typescript
C...L, NESPRESSO, WAFAASSURANCE, SOFRECOM ORANGE
TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the pain
Sander Mak (@Sander_Mak)
Typescript ppt
Typescript ppt
akhilsreyas
Viewers also liked
(20)
TypeScript - Silver Bullet for the Full-stack Developers
TypeScript - Silver Bullet for the Full-stack Developers
Typescript
Typescript
TypeScript: Angular's Secret Weapon
TypeScript: Angular's Secret Weapon
TypeScript Overview
TypeScript Overview
TypeScript
TypeScript
002. Introducere in type script
002. Introducere in type script
Introducing type script
Introducing type script
Typescript + Graphql = <3
Typescript + Graphql = <3
TypeScript Seminar
TypeScript Seminar
Angular 2 - Typescript
Angular 2 - Typescript
Typescript tips & tricks
Typescript tips & tricks
Power Leveling your TypeScript
Power Leveling your TypeScript
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)
TypeScript: особенности разработки / Александр Майоров (Tutu.ru)
TypeScript
TypeScript
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
TypeScript: Un lenguaje aburrido para programadores torpes y tristes
Typescript Fundamentals
Typescript Fundamentals
TypeScript - An Introduction
TypeScript - An Introduction
Getting started with typescript
Getting started with typescript
TypeScript: coding JavaScript without the pain
TypeScript: coding JavaScript without the pain
Typescript ppt
Typescript ppt
Similar to «Typescript: кому нужна строгая типизация?», Григорий Петров, MoscowJS 21
Kicking Off A Scrum Startup
Kicking Off A Scrum Startup
Agile Base Camp
Methods for building dialog agents and the technologies we used
Methods for building dialog agents and the technologies we used
Grid Dynamics
Kак продать Scrum команде
Kак продать Scrum команде
Mykola Mytko
Agile\scrum: все что необходимо знать
Agile\scrum: все что необходимо знать
Yuri Navruzov
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
Vladislav Morgun
Практика внедрения Scrum
Практика внедрения Scrum
Andrey Bibichev
2015 Secon. Как сделать сервис не для программистов
2015 Secon. Как сделать сервис не для программистов
Olga Samarina
Как сделать сервис не для программистов, или О роли слов в проекте
Как сделать сервис не для программистов, или О роли слов в проекте
Собака Павлова
IDM - это непросто!
IDM - это непросто!
Sergey Soldatov
Deadline management
Deadline management
Agile Base Camp
Deadline management
Deadline management
Eugene Sheretov
Использование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестирования
SQALab
Ladutko - Gamification in Quality Assurance
Ladutko - Gamification in Quality Assurance
Andrey Ladutko
hse{sun} Как НЕ надо работать с hardware проектами или как частный бизнес-инк...
hse{sun} Как НЕ надо работать с hardware проектами или как частный бизнес-инк...
Business incubator HSE
Agile transformation_keynote
Agile transformation_keynote
Provectus
Дизайн мобильных приложений: обо всем понемножку
Дизайн мобильных приложений: обо всем понемножку
Andrasz Husti
Работа с Usability
Работа с Usability
Нарижный Денис
Вебинар: Как научить команду работать по Скраму?
Вебинар: Как научить команду работать по Скраму?
LuxoftAgilePractice
Вебинар: Как научить команду работать по Скраму?
Вебинар: Как научить команду работать по Скраму?
Svetlana Mukhina ICP, -ATF, -BVA, - ACC, PSM I, CSPO
DaKiRy_PMWeekend2016_Микола Митько "Як «продати» Scrum команді?"
DaKiRy_PMWeekend2016_Микола Митько "Як «продати» Scrum команді?"
Dakiry
Similar to «Typescript: кому нужна строгая типизация?», Григорий Петров, MoscowJS 21
(20)
Kicking Off A Scrum Startup
Kicking Off A Scrum Startup
Methods for building dialog agents and the technologies we used
Methods for building dialog agents and the technologies we used
Kак продать Scrum команде
Kак продать Scrum команде
Agile\scrum: все что необходимо знать
Agile\scrum: все что необходимо знать
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серый
Практика внедрения Scrum
Практика внедрения Scrum
2015 Secon. Как сделать сервис не для программистов
2015 Secon. Как сделать сервис не для программистов
Как сделать сервис не для программистов, или О роли слов в проекте
Как сделать сервис не для программистов, или О роли слов в проекте
IDM - это непросто!
IDM - это непросто!
Deadline management
Deadline management
Deadline management
Deadline management
Использование игровых элементов и методов в процессе тестирования
Использование игровых элементов и методов в процессе тестирования
Ladutko - Gamification in Quality Assurance
Ladutko - Gamification in Quality Assurance
hse{sun} Как НЕ надо работать с hardware проектами или как частный бизнес-инк...
hse{sun} Как НЕ надо работать с hardware проектами или как частный бизнес-инк...
Agile transformation_keynote
Agile transformation_keynote
Дизайн мобильных приложений: обо всем понемножку
Дизайн мобильных приложений: обо всем понемножку
Работа с Usability
Работа с Usability
Вебинар: Как научить команду работать по Скраму?
Вебинар: Как научить команду работать по Скраму?
Вебинар: Как научить команду работать по Скраму?
Вебинар: Как научить команду работать по Скраму?
DaKiRy_PMWeekend2016_Микола Митько "Як «продати» Scrum команді?"
DaKiRy_PMWeekend2016_Микола Митько "Як «продати» Scrum команді?"
More from MoscowJS
Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in action
MoscowJS
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
MoscowJS
Favicon на стероидах
Favicon на стероидах
MoscowJS
E2E-тестирование мобильных приложений
E2E-тестирование мобильных приложений
MoscowJS
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkey
MoscowJS
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA Framework
MoscowJS
Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31
MoscowJS
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31
MoscowJS
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
MoscowJS
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
MoscowJS
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
MoscowJS
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
MoscowJS
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
MoscowJS
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
MoscowJS
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
MoscowJS
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
MoscowJS
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
MoscowJS
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
MoscowJS
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
MoscowJS
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27
MoscowJS
More from MoscowJS
(20)
Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in action
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
Favicon на стероидах
Favicon на стероидах
E2E-тестирование мобильных приложений
E2E-тестирование мобильных приложений
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkey
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA Framework
Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27
«Typescript: кому нужна строгая типизация?», Григорий Петров, MoscowJS 21
1.
Григорий Петров TypeScript Кому нужна
строгая типизация?
2.
Что сейчас будет? Рассказывает
Григорий Петров Специализация Руководство разработкой Чем занимается Частный консультант Опыт Более 15 лет Время выступления 15 минут Вопросы В конце выступления, 5 минут 2
3.
Кошелек Миллера 3
4.
Картина пишется мазками 4
5.
Проблема сложности - Набрали
технического долга - Не угадали с архитектурой - Не нашли время на рефакторинг - ... 5
6.
Статическая типизация Защита на
этапе отдельных мазков. 6
7.
Статическая типизация Защита на
этапе отдельных мазков. Пока мы держим в голове, как оно работает. 7
8.
Например Users.prototype.isUsersActive = function()
{ return this._isActive && this._usersCount > 0; } Core.prototype.isBusy = function() { var conditions = [ … {flag: Users.isUsersActive(), info: "active users"}, ]; return _.any(conditions, {flag: true}); } 8
9.
Например Users.prototype.isUsersActive = function()
{ + return this._isActive && this._usersCount > 0; - return _.find(this._users, (user) => { return user.isActive(); }); } Core.prototype.isBusy = function() { var conditions = [ … {flag: Users.isUsersActive(), info: "active users"}, ]; return _.any(conditions, {flag: true}); } 9
10.
Например Users.prototype.isUsersActive = function()
{ return _.find(this._users, (user) => { return user.isActive(); }); } Core.prototype.isBusy = function() { var conditions = [ … {flag: Users.isUsersActive(), info: "active users"}, ]; return _.any(conditions, {flag: true}); } 10
11.
Например Users.prototype.isUsersActive = function():
boolean { return _.find(this._users, (user) => { return user.isActive(); }); } Core.prototype.isBusy = function() { var conditions = [ … {flag: Users.isUsersActive(), info: "active users"}, ]; return _.any(conditions, {flag: true}); } 11
12.
Как это ловит
TypeScript 12
13.
Все имеет свою
цену - Обучение разработчиков - Избыточная защита - больше кода - Замедляет начальную разработку 13
14.
Опциональная типизация Лучшее из
двух миров: накладываем защиту только там, где она нужна. 14
15.
Опциональная типизация - Быстрая
фаза разработки: защита только в уязвимых местах - Стабильный модуль - больше защиты 15
16.
Что защищать в
первую очередь? - сигнатуры публичных методов - .d.ts для библиотек 16
17.
Вывод Замечательный инструмент, если
без фанатизма 17
18.
Это все на
сегодня Теперь можно задавать вопросы. Рассказывал и показывал Григорий Петров grigory.v.p@gmail.com http://facebook.com/grigoryvp 18
Download now