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 подобни публикации

Търсене: #concours

当前筛选 #concours清除筛选
PiaNinoNotovna

@ninonotovna · Post #211 · 07.05.2025 г., 13:12

#Concours #Bach #Chopin #QueenElizabeth #Rakhmaninov Внеконкурсное и предконкурсное (О конкурсах и не только) Опыт у меня так себе с музыкальными конкурсами. Участвовала лишь однажды в Конкурсе И.С. БАХА в Лейпциге в 90х. Семья собирала деньги на мой конкурс аж целых два года. Отборов на конкурсы с последующим гособеспечением поездки на них тогда уже почти не было. Товарищи мои из других городов и весей, жившие в консерваторской общаге, зарабатывали на жизнь кто как умел. Один разгружал по ночам вагоны, другой «халтурил» в Домжуре или ЦДЛе (это привилегированная работа была, но некоторых она затянула полностью и отвадила от учебы в Консерватории навсегда), третий - ныне известный пианист, в годы учебы работал ночным сторожем на каком-то складе, как я слышала. Однажды на склад пришли рэкетиры. Но они не знали, что скромный ночной сторож отслужил в недавнем прошлом в спецназе… его туда загребли до этого прямо после музыкальной спецшколы. В общем, возвращаясь к БАХУ и Лейпцигу, вылетела я сразу после 1 тура. Там был такой сервис - после каждого тура члены жюри рассказывали тебе, почему ты вылетел и над чем тебе надо поработать и т.п. Я пошла. Были все члены жюри - я подошла к сидевшему в углу Великому немецкому органисту, выигравшему этот конкурс - самый первый после войны вместе с Татьяной Петровной НИКОЛАЕВОЙ - Амадеусу ВЕБЕРЗИНКЕ. Он мне на немецком, который я неплохо знала, очень подробно рассказал об орнаментике у Баха. Я все подробно записала. Недостатки свои поняла. После Второго тура была такая же встреча. А я оставалась в городе до конца конкурса, поскольку отель был оплачен и обратный билет был взят на дату после окончания конкурса. Тогда я подошла к Малколму БИЛСОНУ - прекрасному американскому пианисту-аутентисту. Я на английском задала ему вопрос - почему некоторые коллеги, прошедшие на второй тур играли по нотам всю программу, хотя в условиях конкурса я такой возможности не увидела? На это он с чисто британско-американской учтивостью ответил: «Вы думаете конкурсы устраиваются для участников? Они устраиваются для членов жюри!» - сказал он мне с игривой улыбкой… Я не поняла в тот момент, что он имеет ввиду. Решила, шутит. После Третьего тура и объявления результатов я подошла к другому члену жюри - израильскому пианисту (вот не помню, как его звали), и спросила опять же на английском, почему Рагна Ширмер получила первую премию этого конкурса во второй раз? Я не знала тогда, что такое бывает, и что можно дважды в одном конкурсе участвовать и первую оба раза премию выиграть. Я также повторила свой вопрос про игру по нотам концерта Баха другими коллегами уже в финальном туре. Тот не сказал ничего. Промолчал. Я ему сказала, помнится, что-то вроде «как Вам не стыдно…». Наивная была очень. С тех пор в конкурсах я никогда не участвовала. Но зато я побывала в Thomaskirche, где много лет работал Бах, и написал в это время Хорошо темперированный клавир (2й том), посмотрела на Nikolaus Kirche, куда его не приняли на работу на место умершего Телемана, а у памятника самому БАХУ, которому возложила цветы, познакомилась с моей любимой подругой Ирой Потапенко, которая тогда училась в Лейпциге в вокальной аспирантуре. Резюме: конкурсы ужасны все. Относиться к ним излишне серьезно не стоит, но это единственная для большинства из музыкантов возможность что-то узнать о себе, о жизни, и чтобы тебя хоть кто-то узнал или услышал. Давно уже нет в жюри ни ГИЛЕЛЬСА, ни ШОСТАКОВИЧА, ни НИКОЛАЕВОЙ или ВЕБЕРЗИНКЕ. Так что расчитывать на успех при хорошей игре не стоит. Но любви к профессии из-за этого терять не надо:). В конце концов, и без конкурсов и премий на них можно спокойно жить и работать. Желаю нашим участникам всех текущих конкурсов грандиозного успеха! Они этого вполне заслуживают. Ваша PiaNinoNotovna