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

Резултати

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

Търсене: #gstar

当前筛选 #gstar清除筛选
跑跑資訊站 KartInfo

@KartInfoTW · Post #158 · 29.11.2020 г., 11:01

韓服跑跑、泡泡、爆爆和台服跑跑 RUSH+ 通用獎勵序號,人人皆可兌換,使用期限即將截止啦,還沒兌換的玩家們把握機會!😎 ℹ️ 詳細資訊:https://kartinfo.me/thread-7819-1-1.html ▶️ 追蹤 Google 新聞:https://kinf.cc/gn ▶️ 立即加入 Discord:https://kinf.cc/dc #GStar#序號#COUPON#泡泡大亂鬥#爆爆王#跑跑卡丁車RushPlus

跑跑資訊站 KartInfo

@KartInfoTW · Post #450 · 17.11.2022 г., 13:00

NEXON 今天釋出了旗下遊戲(韓服)通用獎勵序號,所有玩家皆可自由兌換,其中跑跑 RUSH+ 在台服也能兌換相同獎勵! 🔥 活動詳情:https://kinf.cc/5MPmd ▶️ 追蹤 Google 新聞:https://kinf.cc/gn ▶️ 立即加入 Discord:https://kinf.cc/dc #跑跑卡丁車#KartRider#NEXON#GSTAR#序號#泡泡大亂鬥#BubbleFighter#跑跑卡丁車RushPlus#KartRiderRushPlus

跑跑資訊站 KartInfo

@KartInfoTW · Post #586 · 14.11.2024 г., 10:03

飄移本周推出彩虹藍寶/睏寶收集活動、魔法學校蒂雅應援活動,還有 G-STAR 2024 序號,可以使用在 NEXON 旗下所有遊戲,飄移獎勵為「30,000 LUCCI」。 🎯 11/14 更新詳情:https://kinf.cc/QchnV ‍ ▶️ 加入 Discord 交流群:https://kinf.cc/dc◀️ ‍ #跑跑卡丁車#KartRider#飄移#KartDrift#卡丁車#魔法學校#畢業考#OnTime#簽到#連續遊戲時間#魔法學校#蒂雅#應援#彩虹#藍寶#睏寶#變身#達羅#貝爾奇#商城#復刻#GSTAR#序號#LUCCI