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

Резултати

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

Търсене: #languages

当前筛选 #languages清除筛选
help florin закрыт

@HELPFLORIN · Post #6796 · 20.03.2023 г., 07:34

𖥻 🍵 ›› ֗ . . ✦ › › ᥴуⲙᥱρκᥙ ; цᥱρκ᧐ʙь δ᧘ᥲᴦ᧐ᥴ᧘᧐ʙᥱнᥙᥱ нᥱδ᧐ жᥙᴛᥱ᧘ᥱᥔ κ᧐ᥴⲙ᧐ᥴ ;ᤋʙᥱᤋд᧐ᥰᥲд ➫ 𝘁𝗮𝗴𝘀 — #languages `` взяⲗυ ♡゙ — ‹ + › ⲃ ⲕⲟⲙⲙ.

Hashtags

Daily Channels

@dailychannels · Post #6730 · 06.03.2026 г., 01:00

Channel: Learn English in Ethiopia Members: ~12.12K 💢 Username: @englishlearn_ethiopia Description: Home of English learners! Buy ads: https://telega.io/c/EnglishLearn_Ethiopia 🏷 Tags: #languages https://lve.to/jg2rmu2jlz

Hashtags

Daily Channels

@dailychannels · Post #6682 · 14.02.2026 г., 13:00

Channel: Urban Dictionary Members: ~2.01K 💢 Username: @urbandictionary Description: Read new words from Urban Dictionary every day. Source: urbandictionary.com Bot: @UrbanDictionaryBot Chat: @UrbanDictionaryChat (Unofficial) 🏷 Tags: #languages https://lve.to/uahjrdrvyo

Hashtags

Daily Channels

@dailychannels · Post #6388 · 02.10.2025 г., 13:00

Channel: BBC Learning English Members: ~73.81K 💢 Username: @english_bbc_learning Description: ️ http://linkin.bio/bbclearningenglish 🏷 Tags: #languages https://telegramchannels.me/channels/english_bbc_learning

Hashtags

Daily Channels

@dailychannels · Post #6175 · 02.07.2025 г., 01:00

Channel: English with shei Members: ~4.72K 💢 Username: @englishwithshei Description: More English!🦸 ‍ ️ 🏷 Tags: #languages https://telegramchannels.me/channels/englishwithshei

Hashtags

Daily Channels

@dailychannels · Post #5886 · 12.03.2025 г., 01:00

Channel: Language Trivia Members: ~6.36K 💢 Username: @languagetrivia Description: Are you a language enthusiast looking for a fun challenge? @languagetrivia delivers daily quizzes and trivia, from simple multiple-choice questions to riddles and 'guess the language' challenges. For inquiries, contact @venklypaul 🏷 Tags: #languages https://telegramchannels.me/channels/languagetrivia

Hashtags

Daily Channels

@dailychannels · Post #5875 · 09.03.2025 г., 13:00

Channel: Babelgram News Members: ~64.68K 💢 Username: @babelgram Description: All about @BabelgramBot. The best bot in Telegram for translations Discussion group: https://t.me/+ZuHYMBvgjsU1YTQ0 🏷 Tags: #languages https://telegramchannels.me/channels/babelgram

Hashtags

Daily Channels

@dailychannels · Post #6507 · 25.11.2025 г., 13:00

Group: Search English Groups & Channels Members: ~2.3K 💢 Username: @seekcommunity Description: This group helps you discover English groups and channels. Simply send a word here, and you’ll receive matching results. Seek Bot: @seek Seek Announcement: @SeekAnnouncement 🏷 Tags: #languages #seek,telegram,deepseek https://telegramchannels.me/groups/seekcommunity

🌍📚 The office of the Honorary Consul of South Africa in Yekaterinburg hosted a workshop on consecutive interpretation for 11th-grade students of School No. 212. 🇿🇦 During the session, we explored the culture and history of South Africa, while also delving into the professional life of interpreters. 🗣 The workshop was conducted in both Russian and English: students took turns stepping into the shoes of an interpreter, followed by a group analysis of their performance. ✨ The students got a firsthand experience of what it’s like to work as an interpreter, gaining valuable insight into this dynamic profession! #SouthAfrica#Yekaterinburg#Translation#Education#School#Culture#Languages#InternationalTranslationDay

12
ПредишнаСтр. 1 от 2Следваща