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

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

Avatar for FrontFest FrontFest
November 21, 2017

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

Avatar for FrontFest

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. Бизнес для программиста • библиотеки, которые решают задачу более подходящим

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