Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области.
Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него.
"Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!"
Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее.
Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то.
С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше.
Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс.
В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков.
#dev
Больше информации о вузе, нужно ещё больше!Part 1
Итак, вы решили погрузиться в атмосферу одного (или не одного) из вузов в своём списке. Как то сделать?
Самое банальное - инстаграм вуза. Вбиваем в поисковике соцсети X college и подписываемся. Чаще всего там будут анонсы мероприятий, какие-то торжества, daily routine и все что может рассказать о себе вуз. Например, сейчас идёт Black History Month и многие вузы устраивают кино-марафоны, лекции и праздничные вечера на эту тему.
Вариант номер 2 (и один из моих любимых) - страничка Admissions в инстаграме. Адмишн департмент стенфорда, например, летом публиковал там информацию о классе, который они хотят набрать на fall 2023 и советы по заполнению заявки к ним. Так же следует помнить многие вузы не присылают на почту дату и время релиза решений по вашей заявке. А ограничиваться обычным mid-месяц бывает нервно и неудобно. Так вот, многие Admissions публикуют на своих аккаунтах и дату, и время релиза. При этом, нигде, кроме их аккаунта этой информации может не быть. Поэтому, мотаем на ус.
Тик ток, о милый тик ток. Не скажу, что сильно полезный источник, но все же. Как минимум поглазеть на кампус и day from X college student там точно можно.
Минус: не у всех вузов есть аккаунт в тик токе.
#application
Для подачи заявки в вузы США Вам в любом случае нужно будет минимум три рекомендационных письма: два от учителей (чаще всего берутся учитель английского языка, учитель математики или классный руководитель) и одно от директора/завуча вашей школы.
Процесс сбора писем не всегда проходит гладко, так как многие учителя могут попросту отказать из-за отсутствия времени/желания/понимания как писать эти самые письма.
Можно ли написать их самому? В теории - да, на практике - не советую. Колледжу важно узнать как можно больше о вас, в том числе и со стороны школьных учителей. А студенты, зачастую, не могут объективно оценить и правильно себя преподнести. Поэтому постарайтесь все же договориться со своими учителями. Как минимум рекомендацию от школьного психолога или методиста вы точно сможете получить.
Если же учителя (а иногда и вы сами) понятия не имеют, что нужно писать в рекомендациях на вас, вот вам несколько статей об этом)
Как писать рекомендации школьным учителям
Как писать рекомендации завучам/директору
Советы по написанию рекомендационных писем от MIT
Несколько советов по написанию рекомендационных писем на финансирование от Yale university
У кого из учителей попросить рекомендации (MIT)
Как правильно попросить о написании рекомендаций
#application
Hybrid nanophotonic-microfluidic sensor integrated with machine learning for operando state-of-charge monitoring in vanadium flow batteries
https://doi.org/10.1016/j.est.2025.115349
При нашем скромном участии вчера вышла работа, в которой представлен усовершенствованный метод измерения степени заряда (SoC) ванадиевых проточных батарей (VRFB) с использованием показателя преломления и машинного обучения.
Основной акцент сделан на использовании изменения показателя преломления (RI) электролитов для оценки концентрации ионов ванадия.
Разработанный сенсор основан на фотонных интегральных схемах (PIC) и микрофлюидных каналах, что обеспечивает высокую чувствительность. Система прошла тестирование на рабочих условиях батареи, показав устойчивую корреляцию между спектральными характеристиками и данными о заряде.
Используя экспериментальные данные, ML модель была обучена точно предсказывать степень заряда проточной ванадиевой батареи путем анализа спектральных характеристик.
🔗По этой ссылке статья будет доступна бесплатно в течение первых 50 дней: https://authors.elsevier.com/c/1kSYB,rUrFxfAl
📕Journal of Energy Storage (IF=8.9)
#application
Common Application opens tomorrow 🙂
The day when you really feel the flow ... and it seems that there is no time at all☠️
Even if you end up getting rejected - either you didn’t put in enough effort, or fate itself saved you from this university🖇📓
But don't worry, I'm sure YOU WILL SUCCESS!
Those who enroll this year… respond in the comments and may good luck always be with you 😍
Sincerely,
#application
#motivation
@ninjasblog
🔖 Home | Mihon #pinboard#manga#application
Discover and read manga, webtoons, comics, and more – easier than ever on your Android device.
改朝换代了
https://mihon.app/