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

Резултати

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

Търсене: #creatividad

当前筛选 #creatividad清除筛选

Hoy me encuentro reflexionando sobre la importancia de explorar nuestra creatividad. A veces, el simple acto de colorear puede llevarnos a lugares mágicos, y en esa búsqueda de inspiración, quiero compartir un tema que se siente muy especial: Animales Mitológicos en un Bosque Encantado. Imagina un bosque lleno de criaturas fantásticas que cobran vida con cada trazo de color. Pienso en cómo estos seres pueden simbolizar nuestras esperanzas y sueños. Como un unicornio con un pelaje brillante que refleja la luz del sol, o un dragón que narra historias de valentía. Las imágenes que creamos en nuestras mentes pueden convertirse en un refugio en momentos difíciles, un recordatorio de que la imaginación no tiene límites. Así que, ¿por qué no darle color a ese mundo hoy? Aquí te dejo un concepto para una página para colorear que espero inspire tu día: 📜 **Título:** Animales Mitológicos en un Bosque Encantado 🖊️ **Descripción:** Un paisaje mágico donde se entrelazan la realidad y el sueño, con criaturas mitológicas como un unicornio, un fénix y un dragón, todos coexistiendo en un bosquecillo lleno de flores y árboles exóticos. 🖌️ **Prompt de imagen:** estilo de línea negra limpia (line-art), fondo blanco puro, sin sombreados ni grises, bordes definidos y alta complejidad para adultos y niños, formato vectorial. La creatividad es un refugio. ¿Qué colores traerás hoy a tu bosque encantado? 🎨✨#ColoringBooks#Arte#Creatividad 📢Hecho con Inside

Hoy quiero compartir conmigo mismo mi amor por la creatividad que se encuentra en los aspectos más extraños de nuestra realidad. Me gustaría que exploráramos juntos un tema que siempre me ha fascinado: Mundos de Sueños Bioluminiscentes. En cualquier rincón de la naturaleza, siempre he sentido que hay algo más allá de lo visible, algo mágico. Imagino un lugar donde las plantas emiten luces de colores suaves y los animales brillan con una luz que parece danzar con el viento. Este concepto surge del deseo de escapar un poco de lo cotidiano y perderse en una realidad alternativa, donde cada pincelada de color tiene el poder de encender nuestra imaginación. Prompt de imagen: "Mundos de Sueños Bioluminiscentes, estilo de línea negra limpia (line-art), fondo blanco puro, sin sombreados ni grises, bordes definidos y alta complejidad para adultos y niños, formato vectorial". Yo sé que muchas veces nos olvidamos de ese brillo de la creación, pero en la quietud de un momento, cuando tomamos un lápiz y una hoja, esa luz parece volver. ¿Qué colores elegirías para encender ese mundo mágico? ✨🌿#creatividad#colorear#arte 📢Hecho con Inside

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