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

Резултати

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

Търсене: #kagan

当前筛选 #kagan清除筛选
PiaNinoNotovna

@ninonotovna · Post #341 · 12.07.2025 г., 09:34

#piano #Richter #Kagan #Estonia Рихтер и рояль «Estonia» «В 1945 году состоялся Всесоюзный конкурс музыкантов-исполнителей. На первом туре выступление Рихтера в Малом зале консерватории было необычным. По каким-то обстоятельствам Слава опоздал более чем на час (все мы толпились на «пятачке» перед закрытой дверью). Наконец, Рихтер в темпе presto влетел на сцену, публика расселась, и он заиграл. После Баха – прелюдии и фуги cis-moll из первого тома, если я не ошибаюсь, – он грандиозно начал «Дикую охоту» Листа. Вдруг погас свет. Слава продолжал играть, как ни в чём не бывало. Кто-то поставил на рояль зажжённую свечу, а она, не выдержав накала страстей, рухнула. Тем не менее, Рихтер блистательно завершил выступление». Из книги Льва НАУМОВА «Под знаком Нейгауза. Беседы с Екатериной Замоториной»: Мне кажется, я знаю, почему Рихтер тогда опоздал. Много лет спустя мой друг и коллега композитор Ваня Соколов рассказывал, что была у Рихтера такая манера: перед концертом ходить на далёкие расстояния пешком чуть ли не вокруг всей Москвы. Не знаю, правильно ли я помню его слова. Не знаю также, откуда сам он узнал об этом. Возможно от своего учителя - профессора Московской консерватории Льва Николаевича Наумова. Однако в результате, картинка (или пазл) однажды увиденного в детстве, у меня сложилась. А дело было так: в музыкальную школу, где училась моя сестра Тина, приехали «обыгрываться» Святослав Рихтер и Олег Каган. По этому случаю в школе была проведена генеральная уборка. Всего лишнего. Лишним оказался рояль «Estonia», многие месяцы, если не годы, лежавший навзничь в коридоре. Из него с немым укором торчали бесхозные молоточки и клавиши. Рояль вынесли на задний двор. Приехал Рихтер. А дальше концерт никак не начинался. Мы, дети, начали бегать вокруг школы. И тут предстала перед нами картина: на заднем дворе стоят у опрокинутой «Эстонии» Рихтер и Нина Львовна Дорлиак. Рядом с ним она казалась маленькой, как птичка. Она ему что-то тихо говорит. Он непреклонно молчит и мычит в ответ. Как теперь кажется, он тогда не хотел играть. Она уговорила. Эта привычка ходить перед концертом - не только вокруг всей Москвы, из-за чего он, собственно, и опоздал, как я полагаю, тогда на конкурс - была всегда. (И его, тем не менее, больше часа прождали и зрители, и жюри, что теперь и представить невозможно!) Вот так, прогуливаясь вокруг школы он несчастную «Эстонию» на заднем дворе и обнаружил. Но концерт потом сыграл. Тоже на «Эстонии». Других инструментов в школах тогда почти не было. Впечатление было очень яркое. Играли они с Каганом Сонаты Моцарта, а Сам - Гайдна. У Кагана вокруг губ была синяя кайма. Мама сказала (она была врач), что у него цианоз, что говорило о болезни сердца. Играл он бесподобно. Но особенно интересно было видеть как постоянно менялся Звук у Рихтера - нет, не от прикосновений рук даже, а от движений его корпуса. Он сидел высоко. Крупная голова. Мощная фигура. Какой-то демонизм в нем, безусловно, присутствовал. Недаром Листа играл в кино. Но самое сильное впечатление было от пауз. Они были осязаемы. Они подчиняли. Это завораживало. От того вечера (или дня) у меня осталось фото: не то обескураженный, не то растерянный Рихтер у окна Школы. А в окне - неприглядный городской пейзаж в виде трубы известной в районе американской химчистки.