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

Резултати

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

Търсене: #chdbits

当前筛选 #chdbits清除筛选
PT资讯频道

@PrivateTrackerNews · Post #529 · 27.05.2019 г., 15:43

#CHDBits 彩虹岛 招聘 为了创造更好的优质资源优化人员小组 经管理层讨论决定,进行一轮人事招聘 CHD字幕组 WEB-DL组 压制组 录制组 DIY原盘组正式招聘 本次招聘特招有经验的 新手暂时不考虑,有意加入CHD制作小组大家庭 可回复站内信或发信至管理组信箱咨询,期待着您的加入:) Recruitment In order to create a better quality resource optimization team, after a management discussion decision, a round of personnel recruitment CHD subtitle group WEB-DL group suppression group recording group DIY original group officially recruited this recruitment special recruit experienced novice temporarily not considered, interested in joining the CHD production team big family can reply to the station letter or send a letter to the management group mailbox consultation, Looking forward to your joining :)

Hashtags

PT风向旗

@Ptfxq · Post #734 · 22.09.2024 г., 04:01

#CHDBits#CHD 因为遭受攻击,CHD 开启了 CF 盾。 根据群友反馈,也有部分其他站点遭到了攻击并开启了盾。希望出现站点访问困难,tracker 无法连接的各位用户知悉这一情况。

Hashtags

PT风向旗

@Ptfxq · Post #712 · 24.08.2024 г., 15:00

#CHDBits#CHD HR规则恢复以及调整补充公告 1、三级置顶,标有H3、H5字样的种子均为HR种子。 2、HR种子下载大于等于50%时需要完成规定的保种时间,H3要求下载后20天内保种时间必须达到72小时,H5为20天内保种必须达到120小时。 3、HR种子未达标即扣除一个HP点,HP点数为0账号进入下载受限模式,失去下载权限。 4、HP初始值即封顶值为5,HP值为0或小于0的账号将失去下载权限 超过20天未转正将自动被系统封禁。 5、凡带有黄星标志及VIP会员(有效期内)均免除HR统计。 6. HP为负值,可使用做种积分进行兑换 https://chdbits.co/hnr.php?id=1 捐赠VIP将直接恢复原始值5。 PS: hr已正式上线,请注意rss,种子状态等。特别注意HP兑换未作记录,无法恢复请谨慎操。有条件的请截图保存各项数据,否则发生bug时只能按统一规格䃼偿。任何问题请在站点论坛上报,紧急情况请pm站内10000管理。

Hashtags

ПредишнаСтр. 1 от 4Следваща