@gourmeturbano · Post #20620 · 03.08.2025 г., 14:24
#TECNICASDECOCINA🌿 | Cebollino fresco y perfecto: por qué cortarlo con tijeras y no con cuchillo https://ift.tt/9vgMSau August 03, 2025 at 10:00AM
Hashtags
TGINSIGHT SIMILAR POSTS
Изходен канал @clockstackwheels · Post #721 · 26.12
Почему я люблю языки с сильной системой типов, проверяемой статическим анализом кода — хорошо написанная программа является своей собственной спецификацией и позволяет выражать через язык программирования законы существования предметной области. Когда-то давно я писал на ActionScript. Там была система типов, но вот десериализация JSON'ов по-умолчанию была в какой-то общий Object, к полям которого нужно было обращаться ["по_строковому_имени"]. В один момент мне потребовалось написать что-то на C#, который я совсем не знал, я стал гуглить, как десериализовать JSON, и с удивлением обнаружил кучу советов заранее объявить класс со всеми нужными полями и десериализовать в него. "Какой ужас!", — подумал я тогда, — "Это же дико неудобно! А если я не знаю полей JSON? А если их много? Отвратительный язык!" Теперь то я прекрасно понимаю, что JSON это контракт, и что правильная десериализация только такая и должна быть, и что в хорошем API в одном поле никогда не бывает данных принципиально разных типов, и так далее. Нет, если вы набиваете вечерами пет-проект или сидите бессонную ночь на хакатоне, нет ничего плохого в том, чтобы взять простой язык с динамическими типами вроде JavaScript или Python, не требующий описывать данные. Но вот в энтерпрайзе, особенно когда над одним проектом работает много людей (а бывает это очень часто) — хорошее использование системы типов убережёт разработчиков от огромного количества ошибок, будет бить их по рукам, когда они пытаются сделать что-то не то, и будет подсказывать, когда они не уверены в чём-то. С помощью статической типизации можно на уровне кода обозначить правила, по которым ведёт себя предметная область вашей программы в реальном мире. Разработчику не только будет сложно их нарушить, но он ещё и станет узнавать какие-то вещи, которые мог не знать раньше. Например, если мы делаем медицинскую CRM, и больница заводит новых пациентов только тогда, когда знает их группу крови, мы можем объявить тип "Пациент" (или, если точнее, "Карта пациента") и запретить создавать экземпляры этого типа, не передав в конструктор группу крови (которая, в свою очередь, тоже является типом, вероятнее всего ValueObject'ом). Если новый программист пришёл в проект, он, во-первых, не сможет записать в БД некорректную карту пациента. Понятно, мы не учитываем случаи, когда новый программист переделывает модели предметной области — это будет хорошо видно на кодревью. А, во-вторых, даже если ему никто не сказал, что пациенты должны быть с группой крови, он узнает это из кода. И уже будет понимать, что в тех процессах реальной жизни, которые он описывает кодом, карта пациента создаётся только при наличии группы крови. А, значит, нужно искать какой-то способ сначала эту группу крови получить, и только потом создавать карту. Программирование моделирует реальный процесс. В настоящей работе даже на языках с типами, конечно, без должного контроля можно написать что угодно. Нужна управленческая воля, компетентность руководства, понимание опасности техдолга, в идеале отдельные должности для архитекторов, опытные лиды и старшие разработчики. Но когда всё это есть, можно отсекать много проблем ещё на старте и проще погружать новичков. #dev
Hashtags
Търсене: #tecnicasdecocina
@gourmeturbano · Post #20620 · 03.08.2025 г., 14:24
#TECNICASDECOCINA🌿 | Cebollino fresco y perfecto: por qué cortarlo con tijeras y no con cuchillo https://ift.tt/9vgMSau August 03, 2025 at 10:00AM
Hashtags
@gourmeturbano · Post #20617 · 03.08.2025 г., 08:24
#TECNICASDECOCINA❄ | Cómo descongelar como un chef ¡Sin serlo! https://ift.tt/mScisxr August 03, 2025 at 04:00AM
Hashtags
@gourmeturbano · Post #20381 · 30.03.2025 г., 20:24
#TECNICASDECOCINA👨🏻🍳🧑🏻🍳👩🏻🍳🍷 | ¿Cómo puedo sustituir la bebida alcohólica que lleva una receta de cocina? https://ift.tt/QhV7PGJ March 30, 2025 at 04:00PM
Hashtags
@gourmeturbano · Post #20372 · 29.03.2025 г., 20:24
#TECNICASDECOCINA🍟 | Cómo preparar las patatas fritas perfectas en cinco pasos https://ift.tt/xmhfLMl March 29, 2025 at 04:00PM
Hashtags
@gourmeturbano · Post #20318 · 23.03.2025 г., 20:24
#TECNICASDECOCINA👩🏻🍳🧑🏻🍳👨🏻🍳 | 3 trucos de cocina sorprendentes https://ift.tt/Ni0yHFD March 23, 2025 at 04:00PM
Hashtags
@gourmeturbano · Post #20100 · 26.01.2025 г., 08:24
#TECNICASDECOCINA🧑🏻🍳👨🏻🍳👩🏻🍳 | Por qué no se deben pinchar las salchichas antes de cocinarlas https://ift.tt/qMQiwau January 26, 2025 at 04:00AM
Hashtags
@gourmeturbano · Post #20099 · 26.01.2025 г., 06:24
#TECNICASDECOCINA👩🏻🍳👨🏻🍳🧑🏻🍳 | Quince trucos sencillos para mejorar en la cocina este año https://ift.tt/JDxsGYH January 26, 2025 at 02:00AM
Hashtags
@gourmeturbano · Post #19940 · 08.12.2024 г., 20:24
#TECNICASDECOCINA♨️ | Cómo aprovechar el horno caliente https://ift.tt/dumFUhB December 08, 2024 at 04:00PM
Hashtags
@gourmeturbano · Post #19939 · 08.12.2024 г., 18:24
#TECNICASDECOCINA | ¿Qué es napar? https://ift.tt/Xy9Fzh1 December 08, 2024 at 02:00PM
Hashtags
@gourmeturbano · Post #19736 · 03.11.2024 г., 23:24
#TECNICASDECOCINA🍟 | ‘Patatas fritas’ en freidora de aire: 10 cosas que te gustará saber https://ift.tt/qbXp86g November 03, 2024 at 06:30PM
Hashtags
@gourmeturbano · Post #19734 · 03.11.2024 г., 18:24
#TECNICASDECOCINA🧑🍳👨🍳👩🍳 Consejos útiles para comprar, conservar y cocinar hortalizas y verduras congeladas https://ift.tt/snCQXRG November 03, 2024 at 02:06PM
Hashtags
@gourmeturbano · Post #19673 · 27.10.2024 г., 14:24
#TECNICASDECOCINA🧑🍳👨🍳👩🍳 | El mejor truco para evitar que salpique el aceite al cocinar es evitar la humedad https://ift.tt/qsMaluk October 27, 2024 at 10:00AM
Hashtags