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

Резултати

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

Търсене: #spaghetti

当前筛选 #spaghetti清除筛选

Веревка и кольт / Une corde, un Colt... (Cemetery Without Crosses) — Робер Оссейн спагетти-вестерн | драма | триллер | евровестерн Несмотря на очевидное первенство среди итальянцев, этот по большей части французский спагетти-вестерн один из лучших и недооцененных фильмов своего жанра. Он довольно сильно выбивается из тех сотен боевичков в дикозападном сеттинге, что вышли на свет в то время. Дело в том, что это очень драматичное кино, что для жанровых лент чаще всего минус. Однако тут все настолько трагично и пессимистично, что даже поздний Иствуд курит в сторонке. Мрачный визуал, шикарный саундтрек и частое предпочтение спокойной динамике только украшают реально классный сценарий, который по слухам частично писал Дарио Ардженто. Но по слухам тут и Леоне один эпизод режиссировал. В остальном же это абсолютно французское кино тонкой души, для которого подобрали популярный и внезапно удачный в плане сочетания сеттинг. Лента начинается с задающей тон сцены, где на глазах главной героини вешают ее мужа, а ферму сжигают. Вдова в отчаянии обращается к одинокому стрелку с просьбой отомстить. Все это оборачивается в очень трагичный замес. И хотя сквозная линия бессмысленности мести может показаться банальной, это очень мощное кино, нехарактерное для жанра. #плотнаябишечка #spaghetti

Напарники / Vamos a matar, compañeros [1970] — Серджио Корбуччи спагетти-вестерн | комедия Корбуччи с течением времени остался в истории кинематографа в качестве одного из режиссеров спагетти-вестернов. Иными словами есть Леоне, а есть все остальные, включая Корбуччи. Это не совсем справедливо, потому что по части драматургии и действительно ярких и уникальных фильмов жанра (а это непросто) он совершенно ничем не уступает признанному маэстро. И если «Джанго» или «Наемник» вас в этом не убедили, то советую попробовать с «Напарниками». Сюжет разворачивается традиционно во время очередной революции, но если часто в спагетти-вестернах этот сеттинг используется лишь чтобы накинуть претенциозного подтекста к довольно типовому сценарию, то здесь Корбуччи использует его на полную. Революция тут не просто фон, но и двигатель всего происходящего, практически главный герой. Режиссер очень круто вырисовывает контраст между наивным крестьянином, попавшим в переплет (его играет Томас Миллиан), и расчётливым торговцем смертью (его играет естественно Франко Неро). Они вынуждены действовать сообща, пробиваясь через предательство и откровенно нелепые ситуации. Идейно кино сильно близко к «Наемнику», но Корбуччи удалось еще круче сделать экшен, еще ярче драму и еще смешнее юмор. Фильм местами неплохо иронизирует над штампами жанра, а саундтрек, традиционно написанный Морриконе, только усиливает впечатления. #плотнаябишечка #spaghetti

Il mercenario / Наемник [1968] — Серджио Корбуччи спагетти-вестерн Корбуччи — легенда режиссуры спагетти-вестернов, Неро — легенда среди актеров спагетти-вестернов. Морриконе и Николаи — легенды композиторов для спагетти-вестернов. А потому стоит ли удивляться, что «Наемник» настолько хорош? Будучи снятым на самом пике бесконечной штамповки пистолетно-шляпного кино в Италии, этот фильм сильно выделяется среди общей массы. Я очень люблю этот жанр и пересмотрел сотни его представителей, но отличить многие из них друг от друга весьма сложно, это скорее хорошее развлечение на вечер. Корбуччи же всегда удавалось добавить изюминку. И речь не только про сатиру или какой-то социальный подтекст, но и про аудиовизуальный стиль. Недаром «Наемника» неоднократно цитировал Тарантино в своих лентах. По сюжету герой Франко Неро перевозит серебро для богатых мужичков и попадает в эпицентр революции, предлагает бунтарям свои услуги и, конечно, же впечатляюще убивает злодеев. На антагонисте тут Джек Пэланс, тоже знаковая фигура. По итогу все это работает как дико стильная, динамичная и местами смешная смесь, которую можно смело смотреть, даже если это не совсем ваш жанр #плотнаябишечка #spaghetti

Dishes.Cooking.Food

@cookingdish · Post #617 · 19.12.2024 г., 17:01

Pesto Spaghetti Ingredients for Pesto: - 80g Fresh Basil - 1 clove Garlic - 30g Pine Nuts - 60g Extra Virgin Olive Oil - 2g Salt - 40g Parmesan Cheese Additional: - Your choice of Spaghetti - Extra Parmesan for garnish Instructions: 1. In a blender or food processor, combine basil, garlic, pine nuts, salt, and parmesan. 2. Gradually add olive oil, blending until smooth. 3. Cook spaghetti in salted water according to package instructions. 4. Drain pasta, saving a bit of pasta water. 5. Toss spaghetti with pesto, adding pasta water if needed to thin the sauce. 6. Serve with extra parmesan for garnish. #PestoSpaghetti#FreshBasil#Garlic#PineNuts#ExtraVirginOliveOil#Parmesan#Spaghetti#ItalianCuisine#PastaLovers#EasyRecipes#HomeCooking @dishes