Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Григорий Петров
TypeScript
Кому нужна строгая типизация?
Что сейчас будет?
Рассказывает Григорий Петров
Специализация Руководство разработкой
Чем занимается Частный консультант
Оп...
Кошелек Миллера
3
Картина пишется мазками
4
Проблема сложности
- Набрали технического долга
- Не угадали с архитектурой
- Не нашли время на рефакторинг
- ...
5
Статическая типизация
Защита на этапе отдельных мазков.
6
Статическая типизация
Защита на этапе отдельных мазков.
Пока мы держим в голове, как оно работает.
7
Например
Users.prototype.isUsersActive = function() {
return this._isActive && this._usersCount > 0;
}
Core.prototype.isBu...
Например
Users.prototype.isUsersActive = function() {
+ return this._isActive && this._usersCount > 0;
- return _.find(thi...
Например
Users.prototype.isUsersActive = function() {
return _.find(this._users, (user) => { return user.isActive(); });
}...
Например
Users.prototype.isUsersActive = function(): boolean {
return _.find(this._users, (user) => { return user.isActive...
Как это ловит TypeScript
12
Все имеет свою цену
- Обучение разработчиков
- Избыточная защита - больше кода
- Замедляет начальную разработку
13
Опциональная типизация
Лучшее из двух миров: накладываем защиту
только там, где она нужна.
14
Опциональная типизация
- Быстрая фаза разработки: защита только
в уязвимых местах
- Стабильный модуль - больше защиты
15
Что защищать в первую очередь?
- сигнатуры публичных методов
- .d.ts для библиотек
16
Вывод
Замечательный инструмент, если без
фанатизма
17
Это все на сегодня
Теперь можно задавать вопросы.
Рассказывал и показывал Григорий Петров
grigory.v.p@gmail.com
http://fac...
Upcoming SlideShare
Loading in …5
×

«Typescript: кому нужна строгая типизация?», Григорий Петров, MoscowJS 21

1,243 views

Published on

«Typescript: кому нужна строгая типизация?», Григорий Петров, MoscowJS 21

Published in: Software
  • Be the first to comment

«Typescript: кому нужна строгая типизация?», Григорий Петров, MoscowJS 21

  1. 1. Григорий Петров TypeScript Кому нужна строгая типизация?
  2. 2. Что сейчас будет? Рассказывает Григорий Петров Специализация Руководство разработкой Чем занимается Частный консультант Опыт Более 15 лет Время выступления 15 минут Вопросы В конце выступления, 5 минут 2
  3. 3. Кошелек Миллера 3
  4. 4. Картина пишется мазками 4
  5. 5. Проблема сложности - Набрали технического долга - Не угадали с архитектурой - Не нашли время на рефакторинг - ... 5
  6. 6. Статическая типизация Защита на этапе отдельных мазков. 6
  7. 7. Статическая типизация Защита на этапе отдельных мазков. Пока мы держим в голове, как оно работает. 7
  8. 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. 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. 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. 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. 12. Как это ловит TypeScript 12
  13. 13. Все имеет свою цену - Обучение разработчиков - Избыточная защита - больше кода - Замедляет начальную разработку 13
  14. 14. Опциональная типизация Лучшее из двух миров: накладываем защиту только там, где она нужна. 14
  15. 15. Опциональная типизация - Быстрая фаза разработки: защита только в уязвимых местах - Стабильный модуль - больше защиты 15
  16. 16. Что защищать в первую очередь? - сигнатуры публичных методов - .d.ts для библиотек 16
  17. 17. Вывод Замечательный инструмент, если без фанатизма 17
  18. 18. Это все на сегодня Теперь можно задавать вопросы. Рассказывал и показывал Григорий Петров grigory.v.p@gmail.com http://facebook.com/grigoryvp 18

×