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

Резултати

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

Търсене: #chinainterference

当前筛选 #chinainterference清除筛选
Hong Kong Democracy Movement

@hkdmovement · Post #7976 · 23.04.2025 г., 03:12

Canadian Conservative candidate Joe Tay has become the target of a transnational repression operation linked to Hong Kong authorities, with allegations of China's interference in Canada adding to the controversy. The campaign includes mock wanted posters, manipulated search engine results, & disparaging headlines aimed at discrediting Tay, who is known for his opposition to Hong Kong's autocratic laws. Canadian security officials have confirmed that this operation is part of a broader effort to silence criticism and dissent while influencing voter perceptions. Reports also highlight China's covert influence campaigns targeting diaspora communities & political candidates, raising serious concerns about China’s interference. #CanadaElection#JoeTay#ChinaInterference 加拿大保守黨候選人鄭敬基成為與香港當局有關的跨國鎮壓行動的目標,同時有關中國干預加拿大的指控進一步加劇了爭議。該行動包括製作虛假的「通緝令海報」、操控搜索引擎結果以及抹黑鄭敬基的頭條新聞,旨在破壞其形象。鄭敬基因反對香港的威權法律而聞名。 加拿大安全官員證實,這次行動是更廣泛努力的一部分,目的是壓制批評和異議,同時影響選民的看法。報告還指出,中國針對僑民社區和政治候選人的隱秘影響活動,對加拿大民主進程構成了嚴重威脅。 #加拿大大選#鄭敬基#中國干預

Hong Kong Democracy Movement

@hkdmovement · Post #7978 · 26.04.2025 г., 23:11

Conservative candidate Joe Tay has become the target of a transnational repression operation linked to China, with alarming new developments. Tay has reportedly been threatened, prompting police to advise him to halt door-to-door campaigning for his safety. This highlights the extent of China’s direct interference in Canada’s election, as coordinated efforts to discredit Tay flood platforms like Facebook, WeChat, & TikTok. Despite these serious threats to democracy, the liberal government appears to be turning a blind eye, potentially benefiting from the situation. Shockingly, no mainstream media has reported on this critical issue, leaving many Canadians unaware of the risks to election integrity. #CanadaElection#JoeTay#ChinaInterference 保守黨候選人鄭敬基(Joe Tay)成為與中國有關的跨國鎮壓行動的目標,並出現令人震驚的新進展。據報導,鄭敬基受到威脅,警方建議他停止上門拉票以確保安全。這突顯了中國直接干預加拿大選舉的程度,協調行動在 Facebook、微信、TikTok 和抖音等平台上抹黑鄭敬基。 儘管這些對民主的威脅十分嚴重,自由黨政府似乎視而不見,可能從中受益。令人震驚的是, 主流媒體完全沒有報導這一關鍵問題,導致許多加拿大人對選舉完整性面臨的風險一無所知。 #加拿大大選#鄭敬基#中國干預#跨國鎮壓