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

Търсене: #edicion

当前筛选 #edicion清除筛选
BotsGram®

@botsgram_cu · Post #4960 · 02.04.2024 г., 19:00

¿Qué puede hacer este bot? @botifyai_bot TRANSFORMA TUS SELFIES EN MIRADAS CAUTIVADORAS Crea estilos diversos con una sola foto cargada. Explora peinados, géneros y tonos de piel sin esfuerzo. Pruébate atuendos inspirados en personajes populares o tendencias de moda. Sumérgete en diferentes escenarios y ubicaciones 👇 CÓMO 👇 ✅ Ejecuta el bot 👩 Sube una foto de primer plano de tu cara ✏️ Elige de una galería estándar o escribe tu propia descripción 🔥 ¡Disfruta de los resultados y compártelos en las redes sociales! Idioma: Inglés #fotos#edicion#ia (Visto en @BotsGram_Cu)

BotsGram®

@botsgram_cu · Post #4996 · 05.05.2024 г., 03:17

¿Qué puede hacer este bot? @screenshotit_bot Éste es un robot generador de capturas de pantalla. Puede proporcionar capturas de pantalla o clips de muestra de sus archivos de video. Idioma: Inglés #videos#edicion#capturas#watermark (Visto en @BotsGram_Cu)

BotsGram®

@botsgram_cu · Post #4972 · 10.04.2024 г., 22:41

¿Qué puede hacer este bot? @MultiUsageBot Este es un bot multifunción con una amplia variedad de opciones para videos, audio, documentos, enlaces, miniaturas y más, los cuales por problemas de espacio no podemos mencionar en esta descripción pero les aseguro que vale la pena probarlos todos. Idioma: Inglés #subtitulo#enlaces#edicion#videos#gif#compresor#capturas#conversor#audio#recortador#renombrar#etiquetas#volumen#descarga#mediafire#googledrive#spotify#administracion (Visto en @BotsGram_Cu) Nota: Lastimosamente pusieron éste bot de pago para todas sus funciones, no así a la fecha de crear esta publicación, de todas formas lo dejamos publicado por la gran utilidad que pueda tener para muchos.