Ошибка стоимостью в миллиард
👉
🎯 Хотел бы поделиться одной
👉 Как-то довелось одному моему товарищу работать над модулем оплаты покупок в одном крупном проекте.
👉 Модуль был спроектирован достаточно классически. Оплата проходила через банковский шлюз, на который пользователь попадал из корзины. Весь процесс оплаты контролировал платежный шлюз. После успеха или неуспеха оплаты шлюз перенапралял пользователя по одной из
👉 В ссылках, на которые перенаправлялся пользователь, могла передаваться дополнительная информация, которая использовалась для дальнейшей работы.
👉 Кажется, все было хорошо, но код, который разбирал
👉 Решением проблемы было использование встроенного
👉 Когда удалось отловить ошибку и исправить ее, решили посчитать аналитику, которая собиралась при анализе работы платежного шлюза. Оказалось, что пока отлавливали ошибку, отменилось успешных покупок на 1 миллиард рублей.
👉 Для бизнеса это не было большой проблемой (относительно, конечно же), так как пользователи могли совершить такие же покупки другими способами (они так и поступали), но конкретно через это приложение недокупили на такую большую сумму.
🤔 Небольшая ошибка получилась такой дорогой. Я частенько, когда пишу код или проектирую решение задачи, вспоминаю это, каждая мелочь может обойтись дорого в перспективе.
🤔 Недопускать ошибок не получиться, это тоже надо принять. В одной компании основатель говорил, что ценит людей, способных не опускать руки в случае проблем, а брать и решать их.
#ИсторияИзЖизни
👉
Все люди допускают ошибки. Каждая ошибка имеет свою цену. 🎯 Хотел бы поделиться одной
реальной историей из жизни про ошибку, которая стоила 1 миллиард рублей.👉 Как-то довелось одному моему товарищу работать над модулем оплаты покупок в одном крупном проекте.
👉 Модуль был спроектирован достаточно классически. Оплата проходила через банковский шлюз, на который пользователь попадал из корзины. Весь процесс оплаты контролировал платежный шлюз. После успеха или неуспеха оплаты шлюз перенапралял пользователя по одной из
callback ссылок, которые приложение знало заранее. Так можно было определить, как прошла оплата. 👉 В ссылках, на которые перенаправлялся пользователь, могла передаваться дополнительная информация, которая использовалась для дальнейшей работы.
👉 Кажется, все было хорошо, но код, который разбирал
callback ссылку был написан не совсем верно, фактически, ссылка анализировалась по-простому алгоритму, основанному на сравнении строк, поиска фрагментов строк. И все казалось хорошо, но платежный шлюз иногда для своей внутренней работы дописывал в ссылку всякие служебные параметры (об этой особенности товарищ не знал). Это ломало алгоритм анализа строк, и фактически успешно совершенные покупки отменялись, пользователям возвращались деньги.👉 Решением проблемы было использование встроенного
sdk, для парсинга ссылок, и построение алгоритма анализа на его основе.👉 Когда удалось отловить ошибку и исправить ее, решили посчитать аналитику, которая собиралась при анализе работы платежного шлюза. Оказалось, что пока отлавливали ошибку, отменилось успешных покупок на 1 миллиард рублей.
👉 Для бизнеса это не было большой проблемой (относительно, конечно же), так как пользователи могли совершить такие же покупки другими способами (они так и поступали), но конкретно через это приложение недокупили на такую большую сумму.
🤔 Небольшая ошибка получилась такой дорогой. Я частенько, когда пишу код или проектирую решение задачи, вспоминаю это, каждая мелочь может обойтись дорого в перспективе.
🤔 Недопускать ошибок не получиться, это тоже надо принять. В одной компании основатель говорил, что ценит людей, способных не опускать руки в случае проблем, а брать и решать их.
#ИсторияИзЖизни
🔥2🤔1
🎬 Ген высоты, или как пройти на Эверест?
🎯 Документальный фильм о восхождении на Эверест.
👉 Много рассказывается о подготовке к подъему.
👉 Приводятся реальные историй, связанных с восхождением.
👉 Интересный факт, я слышал, что съемочная группа этого фильма решила еще раз покорить Эверест и снять новый фильм, известно, что был выбран самый сложный маршрут, который впервые прошли Советствие альпинисты
Можно посмотреть на
Также ссылка на
#ХорошееКино
🎯 Документальный фильм о восхождении на Эверест.
👉 Много рассказывается о подготовке к подъему.
👉 Приводятся реальные историй, связанных с восхождением.
👉 Интересный факт, я слышал, что съемочная группа этого фильма решила еще раз покорить Эверест и снять новый фильм, известно, что был выбран самый сложный маршрут, который впервые прошли Советствие альпинисты
Можно посмотреть на
YouTube https://youtu.be/IX4vsgbAf5g?si=P7KTyPatVQ53qx54Также ссылка на
кинопоиск https://www.kinopoisk.ru/series/1045927/#ХорошееКино
👍3🔥1
Пример того, почему не стоит скачивать что-то из непроверенных мест
🎯 Разбор случая, когда модифицированный редактор
👉 Всегда надо держать одну мысль в голове (если это не сайт официальной компании разработчика):
👉 Я, кстати, давненько пользовался таким редактором, когда начинал изучать
👉 В этом редакторе была подсветка синтаксиса, а никаких проверок не было, для меня это был один из первых опытов программирования, помню как смотрел на не работающий код и не понимал, что не так и где не так. Где-то запятую забыл или что-то еще, было весело.
👉 Работалось по принципу
#securelist
🎯 Разбор случая, когда модифицированный редактор
notepad++ , распространялся злоумышленниками https://securelist.ru/trojanized-text-editor-apps/109223/👉 Всегда надо держать одну мысль в голове (если это не сайт официальной компании разработчика):
вряд ли кто-то что-то бесплатно будет делать и распространять, скорее всего с этим не все в порядке.👉 Я, кстати, давненько пользовался таким редактором, когда начинал изучать
php , тогда товарищ помог все настроить для того, чтобы можно было писать скрипты и локально их у себя запускать. Скачивал тогда все из непонятных мест и не думал о последствиях.👉 В этом редакторе была подсветка синтаксиса, а никаких проверок не было, для меня это был один из первых опытов программирования, помню как смотрел на не работающий код и не понимал, что не так и где не так. Где-то запятую забыл или что-то еще, было весело.
👉 Работалось по принципу
смотришь в книгу, видишь фигу #securelist
🤔1
Сегодня в Roblox программируем сбор объекта для повышения здоровья игрока
🎯 Часто в играх есть объекты, собрав которые восстанавливается здоровье, добавим сегодня объект в виде крестика, сбор которого повышает здоровье.
👉 В игровом мире конструируем крестик из балок; объединяем их вместе, чтобы работать с ними как с одним объектом. Добавим скритп, как обычно напишем функцию детектора касания и заставим объект вращаться.
👉 Примеры на скриншотах.
👉 Также есть демо https://youtube.com/shorts/D6J6FJ9rVno?si=1_bKaPxlpGlpMPFf
🎯 Часто в играх есть объекты, собрав которые восстанавливается здоровье, добавим сегодня объект в виде крестика, сбор которого повышает здоровье.
👉 В игровом мире конструируем крестик из балок; объединяем их вместе, чтобы работать с ними как с одним объектом. Добавим скритп, как обычно напишем функцию детектора касания и заставим объект вращаться.
👉 Примеры на скриншотах.
👉 Также есть демо https://youtube.com/shorts/D6J6FJ9rVno?si=1_bKaPxlpGlpMPFf
👍2🔥1
Сегодня в Roblox программируем изменение размеров игрока
🎯 Часто в играх Roblox после сбора предмета у персонажа меняется размер. Сегодня запрограммируем такое поведение.
👉 У объекта
👉 Напишем пару функций, одна функция
Примеры на скриншотах.
👉 Также есть демо https://youtube.com/shorts/wqRBoVAMAM4?si=bbkeIEsNFdmF9j-p
#Roblox
🎯 Часто в играх Roblox после сбора предмета у персонажа меняется размер. Сегодня запрограммируем такое поведение.
👉 У объекта
Humanoid есть несколько параметров, которые отвечают за размер головы HeadScale , высоту BodyHeightScale , ширину BodyWidthScale и глубину BodyDepthScale тела. Их и будем использовать.👉 Напишем пару функций, одна функция
resetState(hum: Humanoid) будет сбрасывать размер персонажа до начального значения (то есть нормального), другая функция changeState(hum: Humanoid, value: IntVaalue) меняет размер персонажа в value раз.Примеры на скриншотах.
👉 Также есть демо https://youtube.com/shorts/wqRBoVAMAM4?si=bbkeIEsNFdmF9j-p
#Roblox
👍2🔥1
В продолжение прошлой темы сегодня добавим плавное изменение размеров игрока
🎯 Сегодня еще разок поэксплуатируем изученные в прошлый раз свойства объекта
👉 Напишем функцию, которая будет плавно с определенным шагом от минимального до максимального размера применять фукнцию изменения пропорций тела игрока.
👉 Изменения происходят линейно, в следующий раз сделаю изенение размера с помощью популярных интерполяторов.
👉 Пример работы на демо https://youtube.com/shorts/k6ZJjzV-lX4?si=FYxiayP1z6K0Yzgy
#Roblox
🎯 Сегодня еще разок поэксплуатируем изученные в прошлый раз свойства объекта
Humanoid для изменения пропорций тела.👉 Напишем функцию, которая будет плавно с определенным шагом от минимального до максимального размера применять фукнцию изменения пропорций тела игрока.
👉 Изменения происходят линейно, в следующий раз сделаю изенение размера с помощью популярных интерполяторов.
👉 Пример работы на демо https://youtube.com/shorts/k6ZJjzV-lX4?si=FYxiayP1z6K0Yzgy
#Roblox
👍2🔥2
В продолжение прошлой темы сегодня добавим упругое изменение размеров игрока
🎯 Для изменения размеров игрока примяем
👉 Напишем функцию, которая будет вычислять размер игрока согласно формуле
👉 Пример работы на демо https://youtube.com/shorts/7nsGW6HOabs?si=2fkf4kYPRRcPEAHR
#Roblox
🎯 Для изменения размеров игрока примяем
bounce интерполятор, который будет раздувать и сдувать персонажа с затухающей амиплитудой.👉 Напишем функцию, которая будет вычислять размер игрока согласно формуле
-e^(-time / amplitude) * cos(frequency * time) + 1.👉 Пример работы на демо https://youtube.com/shorts/7nsGW6HOabs?si=2fkf4kYPRRcPEAHR
#Roblox
👍2👏1
📖 Терапия настроения
🎯 Книга про когнитивную терапию, методы которой, кажется, должны быть рабочими.
👉 Если кому-то "взгрустнулось", и такое состояние подзатянулось, то рекомендую почитать книгу про техники работы с плавающим настроением, с перфекционизмом и прочими психологическими "недугами"
👉 Книга большая, купил ее еще прошлой осенью по рекомендации на тж, а тут, думаю, дай-ка полистаю, бац, +500 страниц прочитал и не заметил как.
#ХорошаяКнига
🎯 Книга про когнитивную терапию, методы которой, кажется, должны быть рабочими.
👉 Если кому-то "взгрустнулось", и такое состояние подзатянулось, то рекомендую почитать книгу про техники работы с плавающим настроением, с перфекционизмом и прочими психологическими "недугами"
👉 Книга большая, купил ее еще прошлой осенью по рекомендации на тж, а тут, думаю, дай-ка полистаю, бац, +500 страниц прочитал и не заметил как.
#ХорошаяКнига
🔥2👍1
Media is too big
VIEW IN TELEGRAM
Учим персонажа летать в Roblox
🎯 Во многих играх персонажи могут летать. Сегодня разбирался, как это можно реализовать.
👉 В
Скрипт начинает свою работу тогда, когда персонаж появится в игровом мире.
👉 Использовал
👉 Для полета воспользовался таким объектом, как
Если режим полета, то задаем вектор полета в направлении камеры. Не очень удобно, на демо это видно.
Потом переделаю, чтобы полетом можно было стрелками управлять с клавиатуры.
👉 Пример на демо.
#Roblox
🎯 Во многих играх персонажи могут летать. Сегодня разбирался, как это можно реализовать.
👉 В
StarterPack добавил Local Script, в котором запрограммировал всю необходимую логику.Скрипт начинает свою работу тогда, когда персонаж появится в игровом мире.
👉 Использовал
UserInputService для отслеживания нажатий на клавиатуру, по клику на пробел запускаем полет персонажа, если же он уже летит, то останавливаем полет.👉 Для полета воспользовался таким объектом, как
BodyVelocity, который прикрепил к телу персонажа.Если режим полета, то задаем вектор полета в направлении камеры. Не очень удобно, на демо это видно.
Потом переделаю, чтобы полетом можно было стрелками управлять с клавиатуры.
👉 Пример на демо.
#Roblox
🔥2👍1