TGTGInsightтелеграм анализLIVE / telegram public index
← Такты, стеки, два колеса

TGINSIGHT SIMILAR POSTS

Намери подобно съдържание

Изходен канал @clockstackwheels · Post #721 · 26.12

Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev

Hashtags

Резултати

Намерени 1 подобни публикации

Търсене: #section69

当前筛选 #section69清除筛选
English Law Report

@enlawreport · Post #1672 · 10.07.2025 г., 06:36

📘Пишу статью для Arbitration International — День 3 Дело №2: RRY v NKX [2025] EWHC 41 (Comm) Сегодня я прочитал второе дело из моего списка из 19 решений Коммерческого суда Англии, которые я анализирую для будущей статьи. Это дело технически сложное. Много уровней. И самое главное — оно заставило меня задуматься, насколько тонкая грань между “неудачным результатом” и “серьёзной юридической ошибкой”. 🔍Вкратце о деле Истец оспаривал арбитражное решение (на сумму более 1 млн долларов США) сразу по двум основаниям: – Статья 68 — серьёзное процессуальное нарушение (serious irregularity) – Статья 69 — ошибка в применении права (appeal on points of law) Основные аргументы: 👨‍🎓Арбитр несправедливо ограничил перекрёстный допрос и не дал Истцу возможности выдвинуть эстоппель в свою пользу: 1. Арбитр не допустил перекрёстный допрос по вопросу добросовестности ключевого свидетеля со стороны ответчика, ссылаясь на события, произошедшие много лет спустя после заключения договора. 2. Арбитр сам поднял вопрос об эстоппеле в пользу ответчика и не дал истцу возможности выдвинуть эстоппель в свою пользу. 👨‍🎓Арбитр неправильно истолковал условия договора займа т.е: 1. Допустил ошибочную трактовку договора как подлежащего исполнению займа; 2. Оценил отказ от процентов; Суд отклонил все доводы. Ошибки не было. Процесс был честным. В разрешении на апелляцию отказано. 🧠Что беру для статьи ✅ По статье 68: суды по-прежнему считают, что решения по управлению доказательствами — это зона дискреции арбитра, а не повод для пересмотра ✅ По статье 69: планка “явной ошибки в праве” остаётся очень высокой ✅ Арбитры вправе ограничивать допросы и интерпретировать контракты — и суды не спешат вмешиваться, если это сделано обоснованно 📎Что особенно зацепило – Судья (Andrew Baker J) признал, что истец “категорически не согласен” с решением, но несогласие — это ещё не ошибка – Даже если вы думаете, что арбитр ошибся — суд задаёт вопрос: "Это была юридическая дикость?" Если нет — решение остаётся в силе – Аргументы по эстоппелю, показаниям свидетелей и толкованию контракта были рассмотрены, но суд встал на сторону арбитра 🤔Мои сомнения как автора Включать ли такие дела, основанные на статье 69, в основной массив анализа? С одной стороны, мой фокус — статья 68. С другой — в практике я вижу, как стороны параллельно используют и статью 68, и статью 69, надеясь, что хотя бы один из выстрелов попадёт. Это не просто правовая тактика — это ещё и психологический приём давления. Наверное, в статье стоит предусмотреть короткий раздел о переплетении процессуальных и юридических оснований при оспаривании решений. 📘 Завтра — следующее дело. Там будет спор по юрисдикции. А пока — если вы сталкивались с делами по статье 69: Удалось ли вам когда-нибудь добиться отмены арбитражного решения из-за ошибки в праве? Что сыграло ключевую роль? Продолжаю писать статью. И продолжаю делиться — не только выводами, но и самим процессом. #ArbitrationInternational#МеждународныйАрбитраж#Section68#Section69#LCIA#HighCourt#АнглийскоеПраво#ЮридическаяПисанина#AybekWrites#АнализДела#СудебнаяСтратегия#ЮридическоеИсследование