Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
Get Ready for the Hackers League Hackathon with @AEON_Community!
As a key Title Sponsor, #AEON is on a mission to simplify Web3 payments and drive mass crypto adoption through their multi-chain PayFi standard. Here's what AEON will bring to the event:
▪️Workshops and continuous developer support through GitHub
▪️Funding opportunities for innovators across its track
▪️Potential partnerships and exchange listings for standout teams
Discover more about AEON’s role in encouraging new payment models and onboarding solutions in our latest edition of the Hackathon Sponsor Series.
🫡Glad to be partnership with
@AEON_Community, a leading #WEB3 payment protocol. $UXLINK will be supported by #AEON Pay and tens of millions #UXLINKfams could use their token to make in-store payment in real world in dozens of countries especially in South East Asia.
UXLINK FujiPay/ FujiCard will also collab with AEON to build #PayFi ecosystem together and provides a seamless bridge between crypto assets and real-world applications, empowering users with secure, inclusive, and rewarding financial services. You can buy a pizza with your crypto assets by a simple swipe🥳.
Aeon: как мы передаем культуру, если ее нельзя выразить словами?
Культурные традиции часто невозможно передать через слова. Некоторые навыки требуют практического опыта и непосредственного участия, что делает их передачу сложной и хрупкой. Современные исследования изучают, как именно такие знания, как изготовление предметов искусства или ремесел, могут сохраняться и распространяться сквозь поколения. Способы передачи знаний включают не только наблюдение и обучение, но и накопление опыта через собственные ощущения и действия.
«Чтобы передать знания, нельзя просто наблюдать за кем-то или читать инструкции. Многие вещи нужно испытать на собственном опыте».
https://theidealist.ru/wordofculture/
#Aeon#общество#культура#язык
Aeon: ярость против машины
Мыслящая машина - главный злодей почти всех литературных антиутопий. Но профессор философии Университета Калифорнии Альва Ноэ считае эти опасения беспочвенными и даже нелепыми, ведь машина не обладает волей, способной нарушать правила - а это, по его мнению, одно из краеугольных условий любого познания и мышления. Соглашаться с ним или нет - выбор за вами, но мнение интересное.
«История технологий — от доисторических времен до наших дней — всегда была связана с тем, как мы подчиняем себе инструменты и системы, которые сами же и создали. Вспомните, как мы ходим по тропинкам. Каждому инструменту соответствует привычка, то есть автоматизированный способ действия и существования. От скромного карандаша до печатного станка и Интернета — наша человеческая активность частично реализуется через создание социальных и технологических ландшафтов, которые, в свою очередь, преобразуют то, что мы можем делать, и, как кажется или угрожает, управляют и контролируют нас».
https://theidealist.ru/rageagainstthemachine/
#Aeon#технологии#философия#мышление
Aeon: почему современная физика стоит на крыльях ангелов и демонов
История физики — это не только движение тел, но и движение идей. Ангелы и демоны, когда-то объяснявшие устройство мира, помогли нам выстроить фундаментальные понятия пространства, движения и меры. Текст показывает, как средневековые размышления об ангелах подготовили почву для рождения современной науки, а мысленные эксперименты с «демонами физики» продолжили традицию искать ответы на самые сложные вопросы. Когда мы говорим о пространстве-времени или гравитации, мы всё ещё опираемся на концептуальные лестницы, возведённые тогда, когда ангелы служили мостом между видимым и невидимым.
«Хотя достаточно легко высмеять предположение о том, что движение является результатом оккультных сил, мы не можем, поднявшись по лестнице знания, так легко выбить эту лестницу из-под себя.»
https://theidealist.ru/andf/
#Aeon#наука#история#физика
Aeon: нет, кот Шредингера не может быть одновременно живым и мертвым
Кот Шредингера — больше не мысленный эксперимент, а символ современного сознания, которое сомневается, наблюдает и выбирает. От ироничной идеи Эрвина Шредингера до квантовых драм в литературе и кино, парадокс «живого и мёртвого кота» превратился в способ говорить о самых хрупких точках нашего бытия: о том, как знание меняет реальность, а каждый выбор разделяет мир на множество версий. Это история не только о квантовой физике, но и о нас — наблюдателях, которые невольно становятся участниками.
«Почему мы не включаемся в систему, когда поднимаем крышку коробки?»
https://theidealist.ru/schrcat/
#Aeon#наука#философия#физика
Aeon: решение главной проблемы вселенной. Является ли жизнь сложным вычислительным процессом?
Ответ на главный вопрос жизни, вселенной и всего такого, как известно, 42. Но если попытаться раскрыть его чуть подробнее, то может оказаться, что вселенная сознательно или бессознательно (смотря каких философских и религиозных ценностей вы придерживаетесь) старается достичь термодинамического равновесия. Причем же тут жизнь? А она в этом вопросе может сыграть важную роль.
Новейшие научные гипотезы предлагают взглянуть на жизнь как на сложный вычислительный процесс, зависящий не от биологической химии, а от универсальных принципов обработки информации. Ученые выдвигают три подхода: смоделировать жизнь в программе, синтезировать её из альтернативных материалов или выявить фундаментальные законы, управляющие её адаптивными функциями. Эти исследования приближают нас к пониманию жизни и интеллекта на уровне, выходящем за пределы традиционной химии.
«Жизнь может быть результатом не столько химии, сколько глубоких информационных процессов».
https://theidealist.ru/lifeascomputeproc/
#Aeon#наука#философия#биология
Aeon: были ли ОНИ здесь?
Мы ищем внеземной разум там, где безопасно — за световые годы от Земли. Этот текст предлагает сменить фокус: если человечество уже отправляет аппараты за пределы Солнечной системы, то логично допустить, что кто-то мог сделать это раньше и оставить технологические следы здесь, рядом — на Луне, Марсе, в устойчивых орбитах и старых астрономических данных. Проблема не в отсутствии технологий, а в культурном табу: наука боится близости такого открытия и предпочитает смотреть вдаль, игнорируя уже собранные данные.
«Препятствия на пути поиска техносигнатур в пределах Солнечной системы — не технологические. Они культурные»
https://theidealist.ru/beenhere/
#Aeon#наука#космос#инопланетяне
Aeon: неопределенный контакт
Мы все привыкли представлять возможный контакт с инопланетной жизнью примерно так, как это изображено в голливудских фильмах или научно-фантастических романах: прибытие загадочных космических кораблей, или обнаружение сигнала искусственного происхождения в космосе. Но те, кто серьёзно занимается поисками внеземной жизни считают, что все будет происходить гораздо более скучно, и вообще это не "эврика!" а нудный, растянутый во времени процесс - как и научное познание в целом. Это потребует десятков лет наблюдений, споров, проверок, доказательств, анализа, новых споров - и, наконец, выводов. С другой стороны результат (если он когда-то будет достигнут) стоит того, ведь ответ на вопрос одни ли мы во вселенной человечество задаёт себе и космосу практически с момента своего появления.
«Атмосферные биосигнатуры, возможно, никогда не дадут нам окончательного ответа, но это не единственный сигнал, который следует искать. Жизнь не ограничивается метаболизмом и выделениями, она еще и производит кое-что важное: технологии. Рассмотрим проект SETI, поиск внеземного разума, или, точнее, поиск инопланетных технологий, поскольку технологии — это то, что мы сможем обнаружить. Технология — привлекательная цель, поскольку она может быть более убедительной, чем химические доказательства существования жизни».
https://theidealist.ru/alienlife/
#Aeon#наука#космос#инопланетяне
Aeon: что такое сон?
Сон — наша крупнейшая «слепая зона»: треть жизни, которая каждый день выключает нас из мира, оставаясь при этом удивительно плохо объяснённой наукой. Вязовский предлагает отказаться от привычного утилитарного взгляда («сон нужен, чтобы восстановиться») и посмотреть на сон как на планетарный процесс — форму невидимости, временный «отпуск» от взаимодействий, который влияет не только на отдельного человека, но и на экосистемы, сообщества, эволюцию.
Текст ведёт читателя через парадоксы: мозг реагирует на стимулы даже во сне и анестезии; бодрствование тоже бывает «полусном»; граница между состояниями размыта, и мы, возможно, почти никогда не бываем полностью бодрыми или полностью спящими. Отсюда — критика современной «метрики сна», трекеров и коммерциализации: нам всё чаще продают не сон, а его видимость. Финальный поворот — к идее сна как отношения: не просто одиночного ухода в себя, а состояния, где потребность в безопасности, тишине и присутствии других может быть важнее любых технологий.
«Сон — одно из самых приватных состояний, какие только можно вообразить… Спать — значит, в глубинном смысле, быть оставленным в покое».
https://theidealist.ru/whatsleepis/
#Aeon#человек#наука#мозг#сон
Aeon: почему «Бледно-голубая точка» вызывает ощущение нашей космической незначительности?
Снимок «Бледно-голубая точка», сделанный «Вояджером-1» в 1990 году, показывает Землю как крошечную пылинку, затерянную в холодной бесконечности космоса. Этот образ до сих пор будоражит воображение, заставляя нас почувствовать собственную хрупкость и ничтожность. Но действительно ли мы так незначительны, как кажется? Или это — иллюзия восприятия, результат того, что наши чувства и разум не предназначены для измерения бесконечности?
«Маленькая, — как будто говорит это изображение, — но чрезвычайно значимая»
https://theidealist.ru/bluedot/
#Aeon#человек#психология#философия#космос
Aeon: всё в семью: почему мы выбираем определённых партнеров
«Красота в глазах смотрящего» - заметил как-то Оскар Уайльд. И действительно: очень часто бывает так, что все вокруг считают девушку или парня красивыми, а вы по отношению к ним равнодушны. И наоборот: ваша муза может казаться в глазах остальных вполне заурядным, серым человеком. Почему так происходит? По мнению когнитивных психологов дело в том, что мы подсознательно выбираем партнёров похожил на наших родителей, братьев и сестёр. Склонность к инцесту тут ни при чём: просто знакомые черты нам естественно кажутся привлекательными, и чем более позитивные отношения у вас с близкими, тем больше вероятность, что ваш будущий муж или жена окажутся похожи на отца или мать.
«Несколько исследований показали, что в среднем есть некоторое физическое сходство между родителями и партнером. То есть ваша девушка вполне может немного походить на вашу маму. Это физическое сходство очевидно, когда вы просите незнакомцев сравнить фотографии лиц партнеров и родителей, или оцениваете такие вещи, как рост родителей и партнера, цвет волос или глаз, этническая принадлежность или даже волосы на теле».
https://theidealist.ru/pickpartner/
#Aeon#наука#человек#психология#семья