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

Търсене: #hkprotest

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

@hkdmovement · Post #8095 · 23.09.2025 г., 04:25

Chan Yin-lam’s Death | 陳彥霖之死 Chan Yin-lam, a 15-year-old student, died under mysterious circumstances during the 2019 Hong Kong protests. Her case sparked widespread speculation and public concern. Timeline: Sept 19, 19: Last seen barefoot leaving Youth College, heading toward Tseung Kwan O waterfront Sept 21: Reported missing by family Sept 22: Naked body found floating near Yau Tong Oct 9: Police confirmed identity as Chan Yin-lam Oct 10: Body cremated Sept 20: Jury returned an open verdict—neither suicide nor homicide confirmed Controversies: Autopsy estimated body had been in water for 15–60 hours, implying at least 16 hours unaccounted for before entering the water No signs of assault, but full nudity raised questions Allegations of protest involvement; police denied arresting her Some acquaintances claimed the woman shown on TV was not her real mother, and said they could no longer contact her #ChanYinLam#FreeHK#HKProtest

Hong Kong Democracy Movement

@hkdmovement · Post #8094 · 23.09.2025 г., 04:17

陳彥霖,15歲學生,在2019年香港反修例運動期間離奇死亡,引發社會廣泛關注與質疑。 時間線: 2019年9月19日:最後一次被目擊,赤腳離開青年學院,前往將軍澳海邊 9月21日:家人報警失蹤 9月22日 :在油塘附近海面發現全裸女屍 10月9日:警方確認屍體為陳彥霖 10月10日 :遺體火化 2020年9月:死因庭裁定「開放式裁決」,無法確定自殺或他殺 關鍵細節與爭議: 法醫報告指出屍體在水中時間為 15至60小時,意味著她失蹤後至少 16小時才進入水中 無明顯外傷,但全裸狀態引起疑慮 傳言與示威活動有關,警方否認曾拘捕她 有認識其母親的人表示,電視上的女子並非其母親,且 無法再聯絡真正的母親 #ChanYinLam#HKProtest#FreeHK#CCP

Hong Kong Democracy Movement

@hkdmovement · Post #7841 · 23.09.2024 г., 03:13

5 years ago today, Chan Yin Lam passed away mysteriously. During 2019, many HongKongers went missing or died. Several times #HKPolice were caught throwing bags with the size of a human into the sea. Her body was found in the sea, naked, yet people knew her claimed that she was a diver. #HKProtest#neverforgiveneverforget #FreeHK