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 подобни публикации

Търсене: #appleproapps

当前筛选 #appleproapps清除筛选
AppPie

@AppPie · Post #1588 · 24.05.2023 г., 12:02

Apple Pro Apps 更新 Final Cut Pro — v10.6.6 • 导入来自 iPad 版 Final Cut Pro 的项目,并利用超凡性能和高级色彩校正工具等等。 • 使用自动颜色管理在同一项目中轻松编辑 HDR 和 SDR 片段,并通过视频智能色调映射以符合你的色彩空间。 • 选取一系列经专业设计的全新字幕、效果、转场和发生器,以优化视频的外观。 • 通过颜色调整效果改进色彩校正工作流程,还可应用全新颜色预置为片段带来独特外观。 Logic Pro — v10.7.8 • 增加与 iPad 版 Logic Pro 的项目往返功能 • 包括稳定性提升和错误修复 Motion — v5.6.4 • 使用自动颜色处理创建动态适应 Final Cut Pro HDR 或 SDR 时间线的 Motion 项目。 • 通过针对 HDR 优化并用于曝光、对比度、高光、中间调和阴影等的颜色处理滑块,以精确控制图像外观。 • 使用已更新并针对 HDR 优化的绿屏抠像器和亮度抠像器滤镜隔离前景主体。 • 在基于 Apple 芯片和 Intel 的 Mac 电脑上体验改进的实时播放和导出速度。 Motion 还包括以下额外修复和优化: • 改进了片区缩放滤镜,以防止在调整“展开”参数时发生对象偏移。 • 提高了在检查器中存储文本样式时的稳定性。 • 提高了使用“防抖动”行为时的稳定性。 Compressor — v4.6.4 • 自动将视频居中裁剪为正方形、竖向或自定大小,同时保持原始高度。 • 使用标准键盘快捷键从“访达”拷贝文件并粘贴到批处理窗口。 • 使用额外音轨创建补充 IMF 项目包,或者在标准批处理中使用来自 IMF 项目包的 CPL。 • 使用命令行配置批处理时,自动为环绕声通道添加标签。 *MainStage 无更新。 #AppUpdates#AppleProApps 📮 频道 @AppPie