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

Търсене: #iconcomposer

当前筛选 #iconcomposer清除筛选
AppPie

@AppPie · Post #2445 · 11.06.2025 г., 07:03

#Apple Apple 发布 Icon Composer Apple 发布 了 Icon Composer,这是一款用于为 iPhone、iPad、Mac 和 Apple Watch 创建分层应用程序图标的工具。该工具支持一种新的多层图标格式,并引入了 Liquid Glass 材质,旨在与 Xcode 无缝协作。同时也可以选择导出扁平化版本的图标,以满足营销和传播需求。 主要功能 - 多平台设计: 该工具旨在简化跨 Apple 平台的设计流程。它使用新的、更圆润的外壳形状和更新的网格系统,以增强设计的一致性。用户可以基于单一设计,并可选择为每个平台进行定制。 - Liquid Glass 材质: 这是一种新的材质,其属性可响应动态光照并随图标自动缩放。用户可以导入和组织图稿图层,并调整高光、模糊、半透明度和阴影等属性,以创建具有全新深度和维度的图标。 - 渲染模式注释: Icon Composer 允许用户在单个文件中完全控制图标在不同渲染模式下的外观。支持的模式包括默认(Default)、深色(Dark)和单色(Mono)。 - 实时预览: 提供实时预览功能,用户可以查看设计在不同光照、背景和壁纸下的响应情况,并可在多种尺寸下进行审阅。 - 与 Xcode 集成: Icon Composer 生成的新图标文件类型可直接添加到 Xcode 项目中,所做的更改可以直接同步到项目内。该工具还提供了导出用于营销和传播的扁平化版本图标的选项。 系统要求 该工具需要 macOS Sequoia 或更高版本。 相关资源 WWDC25 视频: 《Say hello to the new look of app icons》 《Create icons with Icon Composer》 #AppleDeveloper#IconComposer#Design#Xcode#WWDC25 📮 频道 @AppPie