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

Търсене: #sape

当前筛选 #sape清除筛选
TASTE OF AFRICA🌞

@taste_of_africa · Post #279 · 06.04.2026 г., 04:49

TASTE OF AFRICA: Rumba Congolese Год Африки 65 лет назад, вошедший в историю деколонизации Африки, как год, во время которого появилось 17 суверенных государств, звучал под свой особый ритм -конголезской румбы 🎶. Румба выросла на стыке трёх потоков: Первый - местные традиции бассейна Конго (включая ритмы maringa у баконго) 🥁. Второй - афро кубинские пластинки, которые в 1930–1940 е пришли в Африку и прозвучали «очень знакомо»: тот же африканский ритмический пульс, вернувшийся через Атлантику 🌊. Третий - новый городской контекст: клубы, радио, студии, молодёжь, которой нужен был собственный ЗВУК!🎙️. Так появилась rumba lingala музыка, где кубинская форма переплавилась в конголезскую энергию и тексты на лингала. В 1960 е румба стала частью политического движения - настоящим саундтреком независимости ✊. Символ эпохи - «Indépendance Cha Cha» (1960) Жозефа Кабаселе (Grand Kallé) и African Jazz: песня, которая звучит как праздник, но работает как документ времени по традиции гриотов. Дальше румба ускорилась и «электрифицировалась» ⚡: гитары стали главными рассказчиками, а кульминационный танцевальный разгон – один из самых знаменитых африканских ритмом sebene, превратили конголезкую музыку в мощнейший танцевальный двигатель. Из этой логики вырос стиль soukous, а затем целая индустрия африканского поп звука охватившая весь континент. Влияние Конго на пан африканское движение🌍: от Центральной и Южной Африки до Восточной. Румба научила континент строить песню так, чтобы она «поднимала зал», дала стандарт ансамбля с несколькими гитарами и плотной ритм секцией, и доказала: танцевальная музыка может быть одновременно массовой и смысловой. И да у румбы есть ещё один яркий культурный «побочный эффект»: SAPE, где стиль одежды становится перформансом и заявлением (следите о постах про Afro Fashion Show) ✨. Музыка, танец, образ - всё связано в единый неповторимый Taste of Africa! В 2021 году конголезская румба вошла в список нематериального культурного наследия ЮНЕСКО 🏛️ - как признание её роли в культурной и социальной истории региона. 🎧 Рекомендация: чтобы услышать, как всё начиналось, включите сборник Roots of Rumba Rock: Congo Classics 1953–55: crammed-discs.bandcamp.com А про знаковых музыкантов этого направления мы еще поговорим, потому-что 🌟Ритмическое путешествие продолжается – Rumba Congolese 🌟 #TasteOfAfrica#Congo#DRC#Конго#CongoleseRumba#Rumba#Soukous#AfricanMusic#музыкаАфрики#культураАфрики#ИсторияАфрики#UNESCO#SAPE#АфрикаПлейлист#АфрикаЗвучит