Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Игорь Алексеенко

FrontFest
November 21, 2017

Игорь Алексеенко

FrontFest

November 21, 2017
Tweet

More Decks by FrontFest

Other Decks in Programming

Transcript

  1. Ада Лавлейс в свете алгоритма Луна не разделяет взглядов Анатолия

    Вассермана на понимание бизнес-задачи нахождения расстояния между двумя точками Игорь Алексеенко,
 училка в Академии HTML "
  2. Решение задачи • понимание задачи с точки зрения бизнеса (понимание

    цели) • нахождение способа решения задачи бизнеса в реальном мире (как достичь цели без кода)
  3. Решение задачи • понимание задачи с точки зрения бизнеса (понимание

    цели) • нахождение способа решения задачи бизнеса в реальном мире (как достичь цели без кода) • перевод решения в язык программирования
  4. Решение задачи • понимание задачи с точки зрения бизнеса (понимание

    цели) • нахождение способа решения задачи бизнеса в реальном мире (как достичь цели без кода) • перевод решения в язык программирования
  5. Накопительный 100€ Накопительный 100$ Накопительный 100₽ На кармане 1000₽ Накопительный

    100€ На кармане 1000₽ Перевести ❌
 Ошибка в ответе сервера.
 Попробуйте повторить позднее.
 
 Ладно
  6. Накопительный 100€ Накопительный 100$ Накопительный 100₽ На кармане 1000₽ Накопительный

    100€ На кармане 1000₽ Перевести 
 
 **3456 поступление 1€. Остаток на счете 1070₽.
  7. Накопительный 100€ Накопительный 100$ Накопительный 100₽ На кармане 1000₽ Накопительный

    100€ На кармане 1000₽ Перевести 
 
 **3456 поступление 1€. Остаток на счете 1070₽. fetch('/pay', {method: 'POST', body: new FormData(form)})
  8. Накопительный 100€ Накопительный 100$ Накопительный 100₽ На кармане 1000₽ Накопительный

    100€ На кармане 1000₽ Перевести 
 
 **3456 поступление 1€. Остаток на счете 1070₽. fetch('/pay', {method: 'POST', body: new FormData(form)}) .then(checkResponseStatus)
  9. Накопительный 100€ Накопительный 100$ Накопительный 100₽ На кармане 1000₽ Накопительный

    100€ На кармане 1000₽ Перевести 
 
 **3456 поступление 1€. Остаток на счете 1070₽. fetch('/pay', {method: 'POST', body: new FormData(form)}) .then(checkResponseStatus) .then(parseResponse)
  10. Накопительный 100€ Накопительный 100$ Накопительный 100₽ На кармане 1000₽ Накопительный

    100€ На кармане 1000₽ Перевести 
 
 **3456 поступление 1€. Остаток на счете 1070₽. fetch('/pay', {method: 'POST', body: new FormData(form)}) .then(checkResponseStatus) .then(parseResponse) .then(() => history.pushState(null, null, '/'))
  11. Накопительный 100€ Накопительный 100$ Накопительный 100₽ На кармане 1000₽ Накопительный

    100€ На кармане 1000₽ Перевести 
 
 **3456 поступление 1€. Остаток на счете 1070₽. fetch('/pay', {method: 'POST', body: new FormData(form)}) .then(checkResponseStatus) .then(parseResponse) .then(() => history.pushState(null, null, '/')) .catch(() => console.error('Ошибка в ответе сервера…'));
  12. Накопительный 100€ Накопительный 100$ Накопительный 100₽ На кармане 1000₽ Накопительный

    100€ На кармане 1000₽ Перевести 
 
 **3456 поступление 1€. Остаток на счете 1070₽. fetch('/pay', {method: 'POST', body: new FormData(form)}) .then(checkResponseStatus) .then(parseResponse) .then(() => history.pushState(null, null, '/')) .catch(() => console.error('Ошибка в ответе сервера…'));
  13. Как сделать курс курильщика по программированию ❌ • подумать что

    всех студентов сделать версией себя • попытаться за короткий срок рассказать всё, что знаешь
  14. Как сделать курс курильщика по программированию ❌ • подумать что

    всех студентов сделать версией себя • попытаться за короткий срок рассказать всё, что знаешь • почитать отзывы, понять что не все хотят быть тобой
  15. Как сделать курс здорового человека по программированию ✅ • понять

    что нужно от курса людям, которые на него идут
  16. Как сделать курс здорового человека по программированию ✅ • понять

    что нужно от курса людям, которые на него идут • подготовить программу, отталкиваясь от их целей и задач, не обращая внимания на стереотипы
  17. Как сделать курс здорового человека по программированию ✅ • понять

    что нужно от курса людям, которые на него идут • подготовить программу, отталкиваясь от их целей и задач, не обращая внимания на стереотипы • прочитать отзывы, учесть, повторить
  18. Быстро запустить сайт для бизнеса • долго изучать, быстро затухает

    интерес • много рутинной подкапотной работы Изучить Angular 15.3.1b Страница VK
  19. Быстро запустить сайт для бизнеса • долго изучать, быстро затухает

    интерес • много рутинной подкапотной работы • тяжело (скучно) поддерживать Изучить Angular 15.3.1b Страница VK
  20. Быстро запустить сайт для бизнеса • долго изучать, быстро затухает

    интерес • много рутинной подкапотной работы • тяжело (скучно) поддерживать • быстрый результат Изучить Angular 15.3.1b Страница VK
  21. Быстро запустить сайт для бизнеса • долго изучать, быстро затухает

    интерес • много рутинной подкапотной работы • тяжело (скучно) поддерживать • быстрый результат • не нужно думать об оптимизации в поисковиках и прочих сложных вещах Изучить Angular 15.3.1b Страница VK
  22. Быстро запустить сайт для бизнеса • долго изучать, быстро затухает

    интерес • много рутинной подкапотной работы • тяжело (скучно) поддерживать • быстрый результат • не нужно думать об оптимизации в поисковиках и прочих сложных вещах • не нужно поддерживать Изучить Angular 15.3.1b Страница VK
  23. Как решить квадратное уравнение в общем виде? • ax2 +

    bx + c = 0 • D = √b2 - 4ac • x1 = (b + √D) / 2a • x2 = (b – √D) / 2a
  24. Как решить квадратное уравнение в общем виде? • ax2 +

    bx + c = 0 • D = √b2 - 4ac • x1 = (b + √D) / 2a • x2 = (b – √D) / 2a • больше о решении ничего сказать нельзя — в задаче слишком мало исходной информации, слишком мало ограничений
  25. Как решить квадратное уравнение в частном виде? • 2x2 +

    5x – 3 = 0 • D = √b2 - 4ac = √25 + 24 = √49 = 7 • x1 = (b + √D) / 2a = 3
  26. Как решить квадратное уравнение в частном виде? • 2x2 +

    5x – 3 = 0 • D = √b2 - 4ac = √25 + 24 = √49 = 7 • x1 = (b + √D) / 2a = 3 • x2 = (b – √D) / 2a = –1/2
  27. Как решить квадратное уравнение в частном виде? • 2x2 +

    5x – 3 = 0 • D = √b2 - 4ac = √25 + 24 = √49 = 7 • x1 = (b + √D) / 2a = 3 • x2 = (b – √D) / 2a = –1/2 • решение задачи известно, потому что известны ограничения — точные значения a, b и c
  28. • создать несколько HTML-страниц • создать несколько CSS-файлов • может

    быть написать немного скриптов Как сделать сайт в общем виде
  29. • узнать для какой компании этот сайт • определить какие

    задачи должны решаться с помощью этого сайта Как сделать сайт в частном виде
  30. • узнать для какой компании этот сайт • определить какие

    задачи должны решаться с помощью этого сайта • выяснить какие пользователи будут ходить на сайт Как сделать сайт в частном виде
  31. • узнать для какой компании этот сайт • определить какие

    задачи должны решаться с помощью этого сайта • выяснить какие пользователи будут ходить на сайт • предположить какими устройствами они будут пользоваться Как сделать сайт в частном виде
  32. • узнать для какой компании этот сайт • определить какие

    задачи должны решаться с помощью этого сайта • выяснить какие пользователи будут ходить на сайт • предположить какими устройствами они будут пользоваться • придумать сценарии поведения пользователей на сайте Как сделать сайт в частном виде
  33. — Иваныч, у меня 
 железо слабое Диалог двух древних

    друидов — Придумай что-нибудь, 
 тыжпрограммист
  34. Решение задачи • понимание задачи с точки зрения бизнеса (понимание

    цели) • нахождение способа решения задачи бизнеса в реальном мире (как достичь цели без кода) • перевод решения в язык программирования
  35. Как продать дверь? • получить оплату по банковской карте •

    выбрать склад, с которого нужно осуществить доставку
  36. Как продать дверь? • получить оплату по банковской карте •

    выбрать склад, с которого нужно осуществить доставку • проложить маршрут с учетом пробок
  37. Как продать дверь? • получить оплату по банковской карте •

    выбрать склад, с которого нужно осуществить доставку • проложить маршрут с учетом пробок
  38. Форма ввода банковской карты • знакомая форма карты — психология

    • четыре группы цифр по четыре цифры в каждой — физиология
  39. Форма ввода банковской карты • знакомая форма карты — психология

    • четыре группы цифр по четыре цифры в каждой — физиология • проверка правильности номера карты — теория кодирования
  40. Алгоритм Луна • номера банковских кард • IMEI-коды телефонов •

    некоторые штрих-коды • номера вагонов РЖД
  41. Алгоритм Луна • умножить цифры номера на нечетных позициях на

    два • если полученное число больше десяти, сложить его цифры между собой
  42. Алгоритм Луна • умножить цифры номера на нечетных позициях на

    два • если полученное число больше десяти, сложить его цифры между собой • сложить полученные числа: удвоенные нечетные и исходные четные
  43. Алгоритм Луна • умножить цифры номера на нечетных позициях на

    два • если полученное число больше десяти, сложить его цифры между собой • сложить полученные числа: удвоенные нечетные и исходные четные • если сумма кратна 10, значит номер правильный
  44. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 6
  45. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 6 2 6 10 14 18 2 6 10
  46. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 6 2 6 10 14 18 2 6 10 2 6 1 5 9 2 6 1
  47. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 6 2 6 10 14 18 2 6 10 2 6 1 5 9 2 6 1 2+2+6+4 +1+6+5+8 +9+0+2+2 +6+4+1+6
  48. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 6 2 6 10 14 18 2 6 10 2 6 1 5 9 2 6 1 2+2+6+4 +1+6+5+8 +9+0+2+2 +6+4+1+6 ==64
  49. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 6 2 6 10 14 18 2 6 10 2 6 1 5 9 2 6 1 2+2+6+4 +1+6+5+8 +9+0+2+2 +6+4+1+6 ==64
  50. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 2
  51. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 2 2 6 10 14 18 2 6 10
  52. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 2 2 6 10 14 18 2 6 10 2 6 1 5 9 2 6 1
  53. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 2 2 6 10 14 18 2 6 10 2 6 1 5 9 2 6 1 2+2+6+4 +1+6+5+8 +9+0+2+2 +6+4+1+2
  54. 1 2 3 4 5 6 7 8 9 0

    1 2 3 4 5 2 2 6 10 14 18 2 6 10 2 6 1 5 9 2 6 1 2+2+6+4 +1+6+5+8 +9+0+2+2 +6+4+1+2 ==60
  55. Как продать дверь? • получить оплату по банковской карте •

    выбрать склад, с которого нужно осуществить доставку • проложить маршрут с учетом пробок
  56. Выбор ближайшего склада Дверь, 1500 ₽ Третья улица Строителей, 25

    Есть на складах: ☑ Абрикосовая, 1 км ◻ Виноградная, 3 км ◻ Тенистая улица, 37 км ближайший #123
  57. Дуга большого круга • любой адрес — это точка с

    широтой и долготой • по поверхности Земли между любыми двумя точками можно проложить линию (ортодрóму)
  58. Дуга большого круга • любой адрес — это точка с

    широтой и долготой • по поверхности Земли между любыми двумя точками можно проложить линию (ортодрóму)
  59. Дуга большого круга • любой адрес — это точка с

    широтой и долготой • по поверхности Земли между любыми двумя точками можно проложить линию (ортодрóму)
  60. Дуга большого круга • любой адрес — это точка с

    широтой и долготой • по поверхности Земли между любыми двумя точками можно проложить линию (ортодрóму)
  61. Дуга большого круга • любой адрес — это точка с

    широтой и долготой • по поверхности Земли между любыми двумя точками можно проложить линию (ортодрóму) • зная радиус Земли можно измерить длину ортодромы с помощью геометрического уравнения
  62. Решение задачи • понимание задачи с точки зрения бизнеса (понимание

    цели) • нахождение способа решения задачи бизнеса в реальном мире (как достичь цели без кода) • перевод решения в язык программирования
  63. Как продать дверь? • получить оплату по банковской карте •

    выбрать склад, с которого нужно осуществить доставку • проложить маршрут с учетом пробок
  64. OSM ❤ Yandex.Maps • водитель лучше всего ориентируется по картам

    OSM • на маршрутном листе нужно напечатать слой пробок
  65. OSM ❤ Yandex.Maps • водитель лучше всего ориентируется по картам

    OSM • на маршрутном листе нужно напечатать слой пробок
  66. OSM ❤ Yandex.Maps • водитель лучше всего ориентируется по картам

    OSM • на маршрутном листе нужно напечатать слой пробок • лучшие слои с пробками у Яндекса
  67. OSM ❤ Yandex.Maps • водитель лучше всего ориентируется по картам

    OSM • на маршрутном листе нужно напечатать слой пробок • лучшие слои с пробками у Яндекса • Яндекс и OSM работают с разными проекциями
  68. • водитель лучше всего ориентируется по картам OSM • на

    маршрутном листе нужно напечатать слой пробок • лучшие слои с пробками у Яндекса • Яндекс и OSM работают с разными проекциями OSM Yandex.Maps
  69. Как продать дверь? • получить оплату по банковской карте •

    выбрать склад, с которого нужно осуществить доставку • проложить маршрут с учетом пробок
  70. Netflix и React hqps://jakearchibald.com/2017/nezlix-and-react/ — статья, в которой Джейк Арчибальд

    объясняет почему то, что Нетфликс убрал Реакт с клиентсайда хорошо и для Нетфликса и для Реакта
  71. Netflix и React 1. всё сделать на Реакте 2. понять,

    что это избыточный подход 3. убрать реакт
  72. Netflix и React 1. всё сделать на Реакте 2. понять,

    что это избыточный подход 3. убрать реакт 4. ???
  73. Netflix и React 1. всё сделать на Реакте 2. понять,

    что это избыточный подход 3. убрать реакт 4. ??? 5. PROFIT!
  74. Бизнес для программиста • библиотеки, которые решают задачу более подходящим

    способом • время загрузки сайта • скорость разработки (наличие и надежность готовых компонент)
  75. Бизнес для программиста • библиотеки, которые решают задачу более подходящим

    способом • время загрузки сайта • скорость разработки (наличие и надежность готовых компонент) • сложность поддержки и рефакторинга