Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
🌎 The chambered nautilus, often called a “living fossil,” has survived nearly unchanged for over 500 million years. Its spiral shell and tentacled, squid-like body resemble fossils from the early Paleozoic era. Living nautiluses inhabit deep reefs in the Indo-Pacific and can have over 90 tentacles. ✨
#nautilus⚡#paleontology⚡#evolution
👉subscribe Interesting Planet
👉more Channels
🌎 The nautilus, with its beautiful spiral shell, has drifted through Earth’s oceans for over 500 million years. This ancient mollusk is a close relative of extinct ammonites and uses jet propulsion to move. Nautiluses can have up to 90 tentacles with no suckers. ✨
#nautilus⚡#livingfossil⚡#ocean
👉subscribe Interesting Planet
Nautilus: да, у нас есть свободная воля. Нет, у нас ее абсолютно нет
Друзья! Мы поздравляем Вас с наступающим Новым годом и Рождеством! Сегодня - последний в 2023 году перевод, а после праздников возвращаемся в полную силу.
Приятного отдыха!
«Эволюция, по словам Митчелла, отдает предпочтение организмам, которые обладают определенной способностью прокладывать себе путь в мире. «Им нужно знать, что происходит в мире и что с этим делать». Существа развили в себе способность чувствовать и действовать, основываясь на этих ощущениях. Они оценивали (каким-то примитивным образом), какие действия могут продлить их выживание. «Так поступают даже бактерии» — говорит Митчелл. Люди просто делают это более сложным образом».
https://theidealist.ru/freewillquestion/
#Nautilus#человек#философия#мышление
Nautilus: великое забвение
Как это ни удивительно, но у нашей планеты есть своя «память» - слои почвы, круги древних деревьев, отложения льда на шапках полюсов. С последним как раз большие проблемы: ввиду резкого изменения климата не только повышается уровень мирового океана, но и бесследно уходят целые миллионы лет планетарного прошлого. Для палеоклиматолога Саммер Преториус этот жуткий процесс соотносится с личной историей, когда в результате психического заболевания память постепенно терял её брат. Пронзительный текст о том, что уходит от нас бесследно - в сегодняшнем лонгриде «Наутилус» в переводе Идеалиста.
«Самая длинная лакуна в истории Земли известна как Великое несоответствие. Она представляет собой временной разрыв от ста миллионов лет до более миллиарда лет, в зависимости от местоположения. Она видна в Большом Каньоне как граница между докембрийским сланцем Вишну и кембрийским песчаником Тейпитс, между которыми пропущен миллиард лет примерно между 1 600 и 600 миллионами лет назад. Глядя на эту линию в пластах, трудно представить себе все, что могло случиться в течение этой огромной пропасти времени, о которой просто ничего не известно. Если вместо этого исчез бы последний миллиард лет, то это уничтожило бы всю историю сложной жизни. Не осталось бы следов ни одного животного, когда-либо ходившего по земле. Ни динозавров, ни китов, ни людей, ни пирамид».
https://theidealist.ru/greatforgetting/
#Nautilus#наука#природа#экология
Nautilus: 5 языков, которые могут изменить ваше восприятие окружающего мира
Язык - не только инструмент общения людей друг с другом, но и способ нашего мышления. Если какого-то понятия нет в языке - его нет и в голове говорящего. Удивительно, не правда ли? Сложно поверить, но существуют языки, в которых нет, например, лжи, и их носители никогда не лгут. Или, например, для жителей острова Россель в Океании не существует «цветов» и «оттенков предметов» как абстрактного понятия, а для обозначения особенностей предмета в разговоре они используют особенности окружающего их мира.
«В Нуэво-Сан-Хуане, Перу, люди из племени мацес говорят очень осторожно, следя за тем, чтобы каждая информация, которую они сообщают, была правдивой, насколько им это известно на момент разговора. Каждое произнесенное предложение следует за формой глагола в зависимости от того какую информацию вы передаете, и когда вы в последний раз знали, что это правда. Например, если у аборигена спросят: «Сколько у вас яблок?» говорящий на матесе может ответить: «В прошлый раз у меня было четыре яблока, когда я проверял свою корзину с фруктами». Независимо от того, насколько уверен говорящий, что у него все еще четыре яблока, если он не может их видеть, у него нет никаких железных доказательств того, что эта информация правдива - теоретически вор мог украсть три яблока и информация окажется неверной».
https://theidealist.ru/funnylanguage/
#Nautilus#наука#язык#мышление
Nautilus: воспоминания можно как «удалить», так и «вживить»
Как минимум - у червей, моллюсков и бабочек. Однако принцип очень интересен: судя по всему, воспоминания хранятся не в мозгу, как считалось ранее, а «закодированы» в РНК. Именно к такому выводу пришли учёные в результате экспериментов, которые проводятся ещё с 1960х годов. Потенциально новые данные дарят надежду на то, что страдающим от болезни Альцгеймера удастся вернуть воспоминания, а для научных фантастов и антиутопистов и вовсе разворачивается огромное поле для мрачных (и не очень) прогнозов.
«В 1960х шведский нейробиолог Хольгер Гиден предположил, что воспоминания хранятся в нейронных клетках, в частности в РНК, молекуле-мессенджере, которая получает инструкции от ДНК и связывается с рибосомами, делая белки строительными блоками жизни. Макконнелл, заинтересовавшись работой Гидена, пытался проверить наличие молекулы, которую он назвал «РНК памяти», привив порции обученной планарии телам необученной... В результате учёный получил шокирующий результат: неподготовленные переняли опыт съеденных собратьев. В других экспериментах он обучил планарию прохождение лабиринта и даже разработал методику извлечения РНК из обученных червей, чтобы ввести ее в нетренированных червей и передать воспоминания от одного существа другому».
https://theidealist.ru/rnamemory/
#Nautilus#наука#память#биология
Nautilus: романтика Венеры, о которой мы никогда не знали
Венера - одна из ближайших к нам планет Солнечной системы, не только по расстоянию, но и по массе и составу. И, по мнению специалистов, многие миллионы лет назад она была пригодна для жизни гораздо больше, чем Земля. Но существовала ли на ней биосфера? Какой она была? Почему исчезла? Ученые считают, что погрузившись глубже в историю Планеты Любви, мы можем увидеть будущее нашего собственного мира.
«На протяжении большей части истории Земли Венера была ближайшей планетой, пригодной для жизни, и, возможно, даже домом для процветающей биосферы. В течение миллиардов лет в нашей Солнечной системе могли существовать два соседних влажных, геологически активных, пригодных для жизни скалистых мира. Возможно, они даже иногда обменивались жизнью».
https://theidealist.ru/venusromantic/
#Nautilus#наука#космос#Венера
Nautilus: куда ушли воспоминания вашего детства
Почему мы не помним первые годы своей жизни? Все дело в феномене детской амнезии — явление, при котором взрослые не могут восстановить воспоминания о своём младенчестве. Учёные объясняют это тем, что в детском мозге активно формируются новые нейроны, и этот процесс может вытеснять уже сформированные связи, связанные с памятью. Кроме того, у маленьких детей ещё не до конца развиты язык и самосознание, что мешает сохранять воспоминания в привычной для взрослого форме. Поэтому наши самые ранние впечатления, даже если они и были значимыми, чаще всего не сохраняются в памяти.
«Мы не помним раннее детство не потому, что ничего не происходило, а потому, что наш мозг тогда ещё только учился запоминать»
https://theidealist.ru/childmem/
#Nautilus#наука#дети#память#мозг
Nautilus: голландское лекарство от стресса
«Uitwaaien» - в дословном переводе с голландского означает "проветривание". За простым термином скрывается банальная прогулка на свежем воздухе, велосипедный трип по лесу, или же наблюдение за чайками на берегу. Но не спешите закатывать глаза: оказывается, если сделать uitwaaien частью вашей жизни, то вы очень скоро почувствуете от это практике немалый профит. Это не просто слова, но данные научных исследований.
«Есть много теорий о том, почему проводить время на природе может быть так полезно для нас. Некоторые исследователи, такие как Цин Ли, врач из медицинской школы Nippon Hospital и президент Японского общества лесной медицины, полагают, что ответ может буквально заключаться в ветре. Он и его команда потратили годы на изучение воздействия фитонцидов, антибактериальных и антимикробных веществ, которые деревья и другие растения выпускают в воздух, чтобы помочь человеку бороться с болезнями и вредными организмами. Когда люди вдыхают эти вещества, обычно проводя время на природе, их здоровье может улучшиться. В нескольких исследованиях было показано, что фитонциды усиливают иммунную функцию, увеличивают выработку противоопухолевых белков, снижают уровень гормонов стресса, улучшают настроение и помогают людям расслабиться».
https://theidealist.ru/uitwaaien/
#Nautilus#человек#здоровье#психология#природа#стресс
Nautilus: как погибнет Солнечная система. Шаг за шагом
В Хэллоуин принято делиться друг с другом страшными историями, однако современников исторических событий сложно чем-то напугать. Поэтому мы подготовили для вас «страшилку» из далёкого будущего - пошаговое описание гибели нашей Солнечной системы. У неё есть отличное преимущество перед монстром под кроватью: описанные события с высокой долей вероятности произойдут неизбежно, правда застать их мы не сможем точно.
«Примерно через 5 миллиардов лет в ядре Солнца закончится водород — топливо для его термоядерного реактора. Светило продолжит плавить водород в расширяющейся оболочке, и это приведет к тому, что Солнце превратится в красного гиганта. Бетельгейзе, яркое правое плечо Ориона, является хорошим примером красного гиганта. Солнце будет красным гигантом около полумиллиарда лет. Его яркость будет увеличиваться, а зона обитаемости будет смещаться наружу и охватит Юпитер и Сатурн».
https://theidealist.ru/solardie/
#Nautilus#наука#космос#солнце#будущее
Nautilus: если бы мир был перезапущен, существовала бы ли жизнь в том виде, в каком мы ее знаем?
Эволюция: предопределённый процесс или развитие, основанное на цепочке случайностей? Разум человека: логическое следствие эволюции или уникальный эпизод? Ответ на этот вопрос может помочь нам понять насколько мы одиноки во вселенной, и даже понять вероятность распространённости жизни на других планетах. А также представить, какой может быть эта самая внеземная жизнь. И для этого, как оказалось необязательно возиться в древних окаменелостях.
«Вместо того, чтобы пытаться реконструировать историю с помощью окаменелостей, Ричард Ленски, биолог-эволюционист из Университета штата Мичиган, решил наблюдать конвергенцию и случайности эволюции в реальном времени, в контролируемой среде своей лаборатории. В 1988 году он разделил одну популяцию бактерий Escherichia coli на 12 отдельных колб с питательными веществами, и позволил каждой из них развиваться отдельно. Каждые несколько месяцев в течение последних 26 лет он или один из его учеников замораживали образец бактерий. Этот архив замороженных микробов дает Ленски возможность воспроизвести запись жизни кишечной палочки с любого момента, когда он пожелает, просто разморозив образцы. Попутно он может изучить, как бактерии изменяются генетически и внешне. Ленски говорит: «Весь эксперимент был поставлен, чтобы проверить, насколько воспроизводима эволюция».
https://theidealist.ru/evolution/
#Nautilus#наука#эволюция#биология#инопланетяне
Nautilus: шансы на существование инопланетян стали меньше
Если астрономия не может, то геология поможет - хотя бы в разрешении парадокса Ферми. Геологи Стерн и Герья утверждают, что тектоника плит, наличие континентов и океанов — важные критерии для появления развитых цивилизаций. Эти условия редко встречаются в космосе, что снижает вероятность существования других технологически развитых обществ. Важно помнить, что мы рассуждаем о гуманоподобных существах, чью логику будем в состоянии понять, что же касается разума или жизни на других принципах - увы, это пока нам неведомо.
«С учетом этих новых факторов число развитых цивилизаций в нашей галактике, которые могли бы общаться с нами, падает до… почти нуля».
https://theidealist.ru/geofermi/
#Nautilus#наука#космос#геология#инопланетяне