Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
🤔Как Agile ускоряет цифровую трансформацию Российских железных дорог?
Гибкий подход к управлению проектами (Agile) помогает разработчикам создавать продукты быстрее, качественнее, и с меньшими затратами. Прямо как «Быстрее, выше, сильнее», только в мире ИТ-индустрии. 💪
Впервые эту философию и набор методик в РЖД применили при создании Карьерного портала холдинга. Объемный проект удалось реализовать всего за полгода. Получился отличный продукт, который высоко оценили и внутри компании, и отраслевое сообщество – он получил медаль 26-го салона изобретений и инновационных технологий «Архимед».
В основе Agile лежат 4 принципа:
✔️взаимодействие людей важнее процессов и инструментов;
✔️работающий продукт приоритетнее документации;
✔️сотрудничество с заказчиком стоит выше согласования условий контракта;
✔️готовность к изменениям важнее следования первоначальному плану.
Подробнее – в нашем интервью с Алексеем Урусовым, директором ПКТБ-ЦЦТ ОАО «РЖД».
⏱Время на прочтение – 10 минут.
#РЖД#agile#интервью
http://index-of.es/Python/Foundations.of.Agile.Python.Development.Jeff.Younker.2008.pdf
What Is Agile Development?
#Agile development is a term given to an entire class of iterative development methodologies. Their unifying characteristic is a focus on short development cycles, on the scale of weeks rather than months. Each development cycle, referred to as an iteration or sprint, produces a working product. #TDD#test
Подводя итоги 2017... Он был сложным, быстро менялись картинки происходящего, было много нового опыта, и все это в стиле #agile#games#positive#engineofemotions
RT @mariamchec: Automate your #retrospectives Get to the next level of retrospecting with this🎥step-by-step tutorial for #remote#retros with @parabol tool! Stop wasting time on retro prep, templates, warmups, etc. Sit back n click "next" #agilestateofmind#agilehttps://t.co/bhDHXCZybK
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) May 6, 2022
I want to re-learn everything inside @RoamResearch, to be problem-solving oriented. Roam Research #React.js Again Roam Research #Coding Again Roam Research #Agile Again Roam Research #Psychology Again Roam Research #CognitiveScience Again Roam Research Learning Again #roamculthttps://t.co/ljfRdF2KVw
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Jul 28, 2022
#вакансия#hadoop#sql#java#hive#spark#python#scrum#agile
🚀 Вакансия: Старший разработчик Hadoop🚀
Локация: Санкт-Петербург/Москва (гибридный формат)
Вилка: 250 - 350К
✈️ Готовы обсудить релокационный пакет для кандидата не из Санкт-Петербурга и Москвы.
О нас:
Мы — ведущий банк России, активно развивающий свои цифровые продукты и услуги. Сейчас мы ищем опытного и амбициозного Старшего разработчика Hadoop, который присоединится к нашей команде для работы над инновационными проектами в области данных и аналитики.
Что вам предстоит делать:
- 🤝 Взаимодействовать с бизнес-заказчиками, понимать и структурировать их требования.
- ✍️ Разрабатывать функциональные требования для построения витрин данных.
- 🛠 Создавать прототипы витрин с использованием SQL, Java, Python, Spark.
- 🧪 Разрабатывать алгоритмы тестирования.
- 📑 Документировать разрабатываемые компоненты ПО.
- 🔧 Устранять дефекты, анализировать и исправлять инциденты в рамках 3-й линии поддержки.
- 🏃♂️ Работать в SCRUM спринтах.
Наши ожидания:
- ✅ Знание SQL (подтверждается прохождением теста).
- 📈 Опыт в бизнес и системном анализе не менее 2 лет: выявление, фиксация, согласование требований, постановка задач разработке, разработка проектной и сопроводительной системной документации.
- 👥 Опыт командной разработки с использованием Jira и Confluence; знание BitBucket будет плюсом.
- 🧩 Умение формализовывать задачи в виде четких и понятных алгоритмов.
- 🎓 Высшее образование.
- 💬 Отличные коммуникативные навыки, самостоятельность, внимательность к деталям, обязательность, ответственность.
Будет преимуществом:
- 📚 Опыт работы с Hadoop и знания его архитектуры.
- 🖥 Знание Hive, Java, Python, Spark.
- 🏃 Опыт работы в Agile.
- 📜 Знание и умение работы с wiki-системой Confluence и трекинговыми системами (Jira, Redmine и т.д.).
- 🏦 Знание банковской предметной области.
Мы предлагаем:
- 📄 Официальное оформление и стабильный, прозрачный доход.
- 🏆 Все льготы и преимущества работы в аккредитованной ИТ-компании.
- 🎁 Партнерские программы и скидки для сотрудников.
- 🏢 Гибридный формат работы.
Если вы хотите развиваться в динамичной компании и работать над интересными проектами в сфере больших данных, мы будем рады видеть вас в нашей команде!
🙋🏼♀️По всем вопросам к @BekhterevaElena
🎓АлтГПУ: от идеи — до реального проекта!
Третий день курсов повышения квалификации для педагогов Кванториумов российско-таджикских школ был посвящён методикам организации и сопровождения проектных команд школьников.
Участники познакомились с практиками выявления и развития у учеников 4К-компетенций — креативности, критического мышления, коммуникации и коллаборации, а также с примерами реальных проектных работ по изготовлению прототипов на цифровом оборудовании.
Все это — основа для сквозных учебных проектов, которые педагоги уже в этом учебном году начнут реализовывать со своими учениками.
💡Слушатели курсов освоили основы управления БПЛА и работы со станками с ЧПУ,
🖥 обсудили, как использовать генеративные нейронные сети для повышения эффективности образовательного процесса,
🤝 поработали в командах, протестировав Agile-подход в управлении проектной деятельностью.
🎯 В завершение дня педагоги поделились идеями будущих учебных проектов, впечатлениями от трёх дней плодотворной работы и предложениями по тематикам следующих курсов, способных вывести деятельность школьных Кванториумов на новый уровень.
👏Благодарим Алтайский государственный педагогический университет за возможность погрузиться в практические аспекты работы с инновационным оборудованием и цифровыми инструментами!
Мы готовы к новым образовательным инициативам и совместным проектам!
#АлтГПУ#Кванториум#РоссийскоТаджикскиеШколы#ПовышениеКвалификации#Образование#ЦифровыеТехнологии#Инновации#4ККомпетенции#Agile#ПроектнаяДеятельность#РоссияТаджикистан
🔥 Сегодня
🔥 Angular Meetup SPB
📅 22 марта / 19:00 — 21:00 (время МСК) / Санкт-Петербург, Херсонская ул., 12
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/d18SXb
Мы решили привезти Angular Meetup в Питер! Уже готовим докладчиков.
Как всегда будет много Angular — расскажем об опыте использования, обсудим актуальные проблемы и попробуем разобраться, какие тренды ожидают нас в ближайшем будущем.
🔗 Программа: https://goo.gl/d18SXb
#frontend#Angular#JavaScript#СанктПетербург
🔥#большечемденьги: деньги в блогах
📅 22 марта / 19:20–20:30 (время МСК) / Москва, ул. Льва Толстого, 16, офис Яндекса + онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/Lnx1B8
В четверг, 22 марта, обсудим деньги в блогах: сколько стоит популярность, как зарабатывают успешные видеоблогеры и можно ли прожить на донаты.
🔗 Программа: https://goo.gl/QKmw6a
#blog#cash#Москва#онлайн
🔥 Agile Smart Talk
📅 22 марта / 18:30–22:00 (время МСК) / Санкт-Петербург, Пулковское шоссе, 40/4
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/92eaGV
Agile Smart Talk — встреча для тех, кто готов по-новому взглянуть на рабочий процесс и повысить эффективность работы своей команды, используя новейшие тенденции Agile.
🔗 Программа: https://goo.gl/92eaGV
#agile#WorkingProcess#СанктПетербург
✅ Через неделю
✅ OpenHack: контейнеры и микросервисы
📅 22–24 марта / 09:00–17:00 (время МСК) / Москва, ул. Крылатская 17/1
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/fMq5BG
Присоединяйтесь к нам на три дня заполненных практическим изучением микросервисных и/или контейнероориентированных сценариев для Azure Container Services (AKS), Azure Container Instances и Service Fabric в командах с другими разработчиками.
🔗 Программа: https://goo.gl/fMq5BG
#hackathon#backend#microservices#containers#kubernetes#Москва
✅ BIT-2018
📅 22 марта / 09:30–17:00 (время МСК) / Москва, Олимпийский проспект, 18/1
💵 Платно
📝 Регистрация тут: https://goo.gl/4zn3te
В рамках формума BIT-2018 вы сможете узнать и обсудить с коллегами и представителями ведущих вендоров актуальные вопросы и тенденции, связанные с ИТ в бизнесе, созданием и эксплуатацией ЦОД, использованием облачных и IP-технологий, инфраструктурой и использованием данных, а также открыть для себя «Интернет вещей».
🔗 Программа: https://goo.gl/3xFCkn
#cloudtechnologies#informationsecurity#InternetOfThings#Москва
✅ Agile Smart Talk
📅 22 марта / 18:30–22:00 (время МСК) / Санкт-Петербург, Пулковское шоссе, 40/4
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/92eaGV
Agile Smart Talk — встреча для тех, кто готов по-новому взглянуть на рабочий процесс и повысить эффективность работы своей команды, используя новейшие тенденции Agile.
🔗 Программа: https://goo.gl/92eaGV
#agile#WorkingProcess#СанктПетербург
✅ ShortTrack — конференция для ИТ-бизнесов
📅 23–25 марта / 17:00–18:00 (время МСК) / Санкт-Петербург, Льва Толстого 1-3
💵 Платно
📝 Регистрация тут: https://goo.gl/bqVvek
C 23 по 25 марта в Санкт-Петербурге команда ФРИИ проведёт интенсив ShortTrack — программу для тех, кто хочет привести в порядок свой бизнес всего за 3 дня!
🔗 Программа: https://goo.gl/RPdnoF
#business#startup#СанктПетербург
✅ Завтра
✅Angular Meetup SPB
📅 22 марта / 19:00 — 21:00 (время МСК) / Санкт-Петербург, , Херсонская ул., 12
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/d18SXb
Мы решили привезти Angular Meetup в Питер! Уже готовим докладчиков.
Как всегда будет много Angular — расскажем об опыте использования, обсудим актуальные проблемы и попробуем разобраться, какие тренды ожидают нас в ближайшем будущем.
🔗 Программа: https://goo.gl/d18SXb
#frontend#Angular#JavaScript#СанктПетербург
✅#большечемденьги: деньги в блогах
📅 22 марта / 19:20–20:30 (время МСК) / Москва, ул. Льва Толстого, 16, офис Яндекса + онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/Lnx1B8
В четверг, 22 марта, обсудим деньги в блогах: сколько стоит популярность, как зарабатывают успешные видеоблогеры и можно ли прожить на донаты.
🔗 Программа: https://goo.gl/QKmw6a
#blog#cash#Москва#онлайн
✅ OpenHack: контейнеры и микросервисы
📅 22–24 марта / 09:00–17:00 (время МСК) / Москва, ул. Крылатская 17/1
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/fMq5BG
Присоединяйтесь к нам на три дня заполненных практическим изучением микросервисных и/или контейнероориентированных сценариев для Azure Container Services (AKS), Azure Container Instances и Service Fabric в командах с другими разработчиками.
🔗 Программа: https://goo.gl/fMq5BG
#hackathon#backend#microservices#containers#kubernetes#Москва
✅ BIT-2018
📅 22 марта / 09:30–17:00 (время МСК) / Москва, Олимпийский проспект, 18/1
💵 Платно
📝 Регистрация тут: https://goo.gl/4zn3te
В рамках формума BIT-2018 вы сможете узнать и обсудить с коллегами и представителями ведущих вендоров актуальные вопросы и тенденции, связанные с ИТ в бизнесе, созданием и эксплуатацией ЦОД, использованием облачных и IP-технологий, инфраструктурой и использованием данных, а также открыть для себя «Интернет вещей».
🔗 Программа: https://goo.gl/3xFCkn
#cloudtechnologies#informationsecurity#InternetOfThings#Москва
✅ Agile Smart Talk
📅 22 марта / 18:30–22:00 (время МСК) / Санкт-Петербург, Пулковское шоссе, 40/4
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/92eaGV
Agile Smart Talk — встреча для тех, кто готов по-новому взглянуть на рабочий процесс и повысить эффективность работы своей команды, используя новейшие тенденции Agile.
🔗 Программа: https://goo.gl/92eaGV
#agile#WorkingProcess#СанктПетербург