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

Резултати

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

Търсене: #agridulce

当前筛选 #agridulce清除筛选
Recetas Deliciosas a lo González

@recetasdeliciosas · Post #639 · 10.03.2025 г., 00:29

Sellar el pollo 3. En una sartén grande o una olla de fondo grueso, calienta el aceite de oliva a fuego medio-alto. 4. Retira el pollo de la marinada (reservando el líquido) y dóralo por ambos lados hasta que la piel esté crujiente, aproximadamente 4 minutos por lado. Cocinar y glasear 5. Reduce el fuego a medio-bajo y vierte la marinada sobre el pollo. Cocina a fuego lento, girando el pollo ocasionalmente, hasta que la salsa espese y caramelice, unos 15-20 minutos. 6. Si la salsa se reduce demasiado rápido, puedes añadir un chorrito de agua o más jugo de naranja. 7. Retira el pollo del fuego y deja reposar 5 minutos. 8. Sirve con la salsa glaseada por encima y acompaña con puré de papas, arroz o una ensalada fresca. ❕Consejos para un resultado espectacular❕ Para un extra de sabor: Agrega unas rodajas finas de naranja a la sartén en los últimos minutos de cocción. Si lo prefieres más crujiente: Puedes terminar la cocción en el horno a 200°C por 10 minutos. Opcional: Añade un toque de picante con una pizca de hojuelas de chile o pimienta cayena. Este pollo es jugoso, dulce, con un toque cítrico y un aroma increíble a romero. ¡Una receta que seguro sorprenderá a todos! #Carnes🥩#PlatosFuertes🍽️#Agridulce🍯🍊#Casera🏡

Recetas Deliciosas a lo González

@recetasdeliciosas · Post #650 · 11.03.2025 г., 23:26

🍚 Arroz Frito Chino con Camarones Glaseados en Miel y Limón🍚 Ingredientes (4 porciones) Para el arroz frito: 2 tazas de arroz de grano largo (puede ser jazmín o regular) 4 tazas de agua 2 cdas. de aceite vegetal ½ cebolla picada en cubos pequeños 1 zanahoria rallada 2 huevos batidos 2 cdas. de salsa de soya 1 cda. de miel ½ cdita. de jengibre rallado 2 cebollines picados (parte blanca y verde separadas) Para los camarones glaseados: 12 camarones medianos, pelados y desvenados 1 cda. de maicena 1 cda. de mantequilla 1 cda. de miel Jugo de 1 limón 1 cda. de salsa de soya 1 diente de ajo rallado Para decorar: Semillas de ajonjolí tostado Rodajas finas de pepino o zanahoria (opcional) Preparación Cocina el arroz 1. Lava el arroz bajo el chorro de agua fría hasta que el agua salga clara. 2. En una olla, hierve 4 tazas de agua con una pizca de sal. Agrega el arroz, tapa y cocina a fuego bajo durante 15 minutos o hasta que el agua se absorba por completo. 3. Retira del fuego, deja reposar 5 minutos y esponja con un tenedor. Prepara los camarones glaseados 1. En un tazón, mezcla la maicena con los camarones y revuelve para cubrirlos ligeramente. 2. En una sartén grande, derrite la mantequilla y agrega los camarones. Cocina por 2 minutos por cada lado hasta que cambien de color. 3. Añade la miel, el jugo de limón, la salsa de soya y el ajo rallado. Cocina a fuego medio por 2 minutos más hasta que los camarones estén brillantes y bien glaseados. Haz el arroz frito 1. En la misma sartén (sin lavar), calienta el aceite y sofríe la cebolla con la parte blanca del cebollín y la zanahoria rallada. Cocina por 2 minutos hasta que se ablanden. 2. Agrega los huevos batidos y remueve rápidamente con una espátula hasta que estén cocidos. 3. Incorpora el arroz cocido y mezcla bien. 4. Añade la salsa de soya, la miel y el jengibre rallado. Sofríe por 3 minutos más hasta que el arroz esté bien impregnado de los sabores. Sirve y decora 1. Sirve el arroz en platos o tazones hondos. 2. Coloca los camarones glaseados encima y espolvorea con la parte verde del cebollín y semillas de ajonjolí. 3. Opcionalmente, decora con rodajas finas de pepino o zanahoria para un toque fresco. Este arroz chino con camarones es una opción perfecta para una cena rápida y sabrosa sin perder el encanto de la cocina asiática. ¡Pruébalo y disfruta! #Asiática🍜#Mariscos🦐#PlatosFuertes🍽️#Agridulce🍋🍯