Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
Дайджест ololo событий на эту неделю 2.12.-8.12
📚ololo BOOK CLUB (при поддержке книжного магазина Janmates)
Книга: «Токсичные мудаки. Как поставить на место людей с завышенным чувством собственной важности и сохранить рассудок» – Рамани Дурвасула
Спикер: Ирина Тен
🗓 5 декабря, четверг, 18:30, ololoPlanet, конференц-зал
🆓Регистрация
—
🎤Клуб ораторов: «Импровизация»
Модератор: Ирина Гертц
🗓 5 декабря, четверг, 19:00, ololoErkindik, конференц-зал
🎟 500с. Регистрация
—
🇯🇵 Клуб Аниме и японской культуры
«Навсикая из Долины ветров» (1984), реж. Хаяо Мядзаки
🗓 6 декабря, 19:00, ololoYurt, конференц-зал (цоколь)
🆓Регистрация
—
📽 Клуб любителей кино: месяц магического реализма
Счастливый Лазарь (2018), реж. Аличе Рорвахер
🗓 6 декабря, 19:00, ololoOrmonKhan, офис 15
🆓Регистрация
—
👨💻Фестиваль вакансий и карьерного роста “Workland day”
🗓 7 декабря, с 10:00, ololoPlanet
🆓Регистрация
—
🎲 Вечер настольных игр вместе с @boardgameskg
🗓 7 декабря, 18:30, ololoPlanet
🎟 300с. Регистрация
—
🔥 Открытый микрофон ololo×Огонёк
🗓 7 декабря, суббота, 19:00, Огонёк (Юнусалиева, 58В)
🎟 Если вы готовы выступить, то просим заполнить форму: Регистрация. Для слушателей вход свободный
__
@BishDvizh#ololo
Дайджест ololo событий на эту неделю
📚ololo BOOK CLUB (при поддержке книжного магазина Janmates)
Спикер: Сейталиева Гульмиза представит книгу-исследование Мишеле Коммерсио о полигамных браках в Кыргызстане.
🗓 14 ноября, 18:30, ololoPlanet
🎟 Free+Регистрация
—
🎲 Вечер настольных игр
🗓 16 ноября, 18:30, ololoPlanet
🎟 Вход: 300с+Регистрация
—
🎤 Клуб ораторов: «Дебаты. Мастерство убеждения»
Модератор: Ирина Гертц
🗓 14 ноября, 19:00, ololoErkindik
🎟 Вход: 500/1200с.+Регистрация
—
📽 Клуб любителей кино. Тема месяца: «Смешно и одиноко».
«Маги и странники» (2003), реж. Кхьенце Норбу
🗓 15 ноября, 19:00, ololoOrmonKhan, офис 15
🎟 Free+Регистрация
—
📚ololo English BOOK CLUB: Karim Hammou, «A History of Rap Music in France»
Registration and more
🗓 Novemmber 16, 18:00, ololoYurt
🎟 Free+Registration
—
📽 Открытый микрофон ololo×Огонёк
🗓 16 ноября, суббота, 19:00, Юнусалиева, 58В
🎟 Free+Регистрация
@BishDvizh#ololo
Дайджест событий ololo:
WEB 3.0: Как работают криптоциклы?
🗓 6 ноября, 19:00, ololoPlanet
🎟 Free + Регистрация
—
📚ololo BOOK CLUB (при поддержке книжного магазина Janmates)
Спикер: Дмитрий Веремеенко, «Бонусные годы»
🗓 7 ноября, 18:30, ololoPlanet
🎟 Free + Регистрация
—
🎲 Вечер настольных игр вместе с @boardgameskg
🗓 9 ноября, 18:30, ololoPlanet
🎟Регистрация 300с
—
🎤 Клуб ораторов: «Как презентовать себя и свой продукт»
Модератор: Ирина Гертц
🗓 7 ноября, 19:00, ololoErkindik
🎟Регистрация 500с
—
📽 Клуб любителей кино - месяц культовых фильмов ужасов
«Зомби по имени Шон» (2004), реж. Эдгар Райт
🗓 8 ноября, 19:00, ololoOrmonKhan, офис 15
🎟 Free + Регистрация
—
🇯🇵 Клуб любителей аниме и японской культуры: «Волчьи дети Амэ и Юки» (2012), реж. Мамору Хосода
🗓 8 ноября, 19:00, ololoYurt
🎟 Free + Регистрация
@BishDvizh#ololo#нетворкинг
ololo движ с 30 октября по 2 ноября 2024 года 👾
__
📈Marketing Club: Как маркетологу найти работу за рубежом?
Спикер: Канторо Токушев
Подробнее и регистрация
🗓 30 октября, среда, 19:00, ololoPlanet, конференц-зал
🎟 Вход: 300 с
__
🙋🏻Purpose-driven подход в построении бренда
Подробнее и регистрация
🗓 1 ноября, пятница, 11:00 -14:00, ololoPlanet, конференц-зал
🎟 Вход: 700 с
__
🎲 Вечер настольных игр вместе с @boardgameskg
Подробнее и регистрация
🗓 2 ноября, суббота, 18:30, ololoPlanet, гибкая зона
🎟 Вход: 300 с
__
🚀 ololoSpaceClub
Просмотр документального фильма «Последний Планетарий»
Подробнее и регистрация
🗓 2 ноября, суббота, 19:00, ololoPlanet
🎟 Вход свободный по предварительной регистрации
__
🎤 Клуб ораторов
Тема встречи: "Инстаграм и его грани"
Модератор: Ирина Гертц
Подробнее и регистрация
🗓 31 октября, четверг, 19:00, ololoErkindik, конференц-зал
🎟 Вход: 300 с
__
@BishDvizh#ololo#нетворкинг
ololo движ с 23 по 29 октября 2024 года 👾
__
🚗Is a self-driving car with AI possible in Kyrgyzstan in 2025?
Подробнее и регистрация
🌐 Встреча пройдёт на англ яз
🗓 23 октября, среда, 18:00, ololoPlanet, конференц-зал
🎟 Free после регистрации
__
📚ololo BOOK CLUB
Спикер: Антон Ходелка, «Очаровательный кишечник»
Подробнее и регистрация
🗓 24 октября, четверг, 18:30, ololoPlanet, конференц-зал
🎟 Free после регистрации
__
🎲 Вечер настольных игр вместе с “boardgames”
Подробнее и регистрация
🗓 26 октября, суббота, 18:30, ololoErkindik, конференц-зал
🎟 Вход: 300 с
__
📽 Клуб кино - «Хэлоуин» (1978), реж. Джон Карпентер
Регистрация
🗓 25 октября, пятница, 19:00, ololoOrmonKhan, офис 15
🎟 Free после регистрации
__
@BishDvizh#ololo#нетворкинг
«Workland Day» возвращается 🎉
Тот самый шанс найти наконец-то работу, которая идеально подходит под ваше виденье, встретившись с ведущими работодателями.
Сохраняем себе в календарь:
— 7 декабря с 10:00 масштабный Фестиваль вакансий и карьерного роста!
💼 «Workland Day» объединяет компании из самых разных сфер, готовые предложить интересные вакансии.
Нам обещают:
🔸 Интересные выступления от профессионалов.
🔸 Возможность познакомиться с представителями компаний.
🔸 Советы экспертов по успешному поиску работы.
| ЗАРЕГИСТРИРОВАТЬСЯ |
_
📍 7 декабря, с 10:00 до 17:00,
ул. Юнусалиева, 80 (ololoPlanet)
_
@BishDvizh#айти#возможности#ololo
🎨 CREATORS MEETUP | CREATIVE CENTRAL ASIA NETWORK 2025 🎨
Собираем креаторов, продюсеров и всех, кто двигает творческую экономику вперёд.
Выбирай свой город и присоединяйся к движению!👇
⸻
📍 АСТАНА – 14.06 | 11:00–15:00
Creative art hub Ónergy, просп. Кабанбай батыра 53, блок 32
📍 АЛМАТЫ – 15.06 | 14:00–17:00
Egin Art Space, ул. Нурмакова 79
📍 БИШКЕК – 19.06 | 10:00–14:00
ololoYourt, ул. Кулатова 61
📍 ТАШКЕНТ – 27.06 | 17:00–21:00
moc hub, ул. Буюк Турон 77
📍 ДУШАНБЕ – 28.06 | 14:00–17:00
SANO Creative Hub, просп. Рудаки 86
⸻
Что будет?
✨ Лекция «Инновационные инструменты креатора: дизайн-мышление, сервис-дизайн, AI»
✨ Нетворкинг + коллаборации с креаторами пяти столиц
✨ Питч-сессия проектов
Спикер: @david_tuganov – член правления Альянса креативных индустрий (CIAQ), эксперт по инновационному менеджменту и human-centered технологиям в государстве, бизнесе и обществе.
⸻
🔗 Регистрация обязательна: ссылка в био https://forms.gle/KFq9hksZcaa4MfDJ8
Бесплатно, мест немного – бронируй быстро! 🚀
Организатор – CIAQ при поддержке British Council и партнёров Ónergy, Egin, ololo, moc hub, SANO.
#CreativeAsia#CIAQ#CCAN#kzbritish#Onergy#Egin, #ololo, #mochub, #SANO