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

Резултати

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

Търсене: #slides

当前筛选 #slides清除筛选
Илья AGI TV 🤖

@ilia_plasma · Post #532 · 27.06.2024 г., 04:46

🚀 Сегодня прошла конференция моего любимого дизайн аппа Figma #Config2024 🤖 Наконец-то Фигма залетела в тренд #AI и презентовала свой AI LLM генератор для дизайнеров - теперь можно любую идею сайта или мобильного аппа превратить сразу в классный дизайн! 🔥 🎞Видео про AI Второе крупное обновление - Figma #Slides - инструмент для создания классных презентаций с интерактивом прямо в Фигме. 🔥 🎞Видео про Slides Больше про классные обновления на их сайте

KOMPYUTER AKADEMIYASI

@Kompyuter_akademiyasi · Post #5515 · 16.10.2023 г., 02:17

Google Sheets, Docs va Slides'da jamoa bilan ishlash! #shorts / #docs / #sheets / #slides ℹ️Google Sheets, Docs va Slides servislarining yaxshi tomonlaridan biri bu hujjatlarni bir nechta insonlar tomonidan, bir vaqtning oʻzida tahrirlash, oʻqish yoki izoh berish imkoniyati mavjudligidir. ✅ Bugun shuni qanday amalga oshirishni oʻrgandik! 💻 Kompyuterni birga o'rganamiz ⤵️ TelegramIInstagramITikTokIYouTube

GitHub Trends

@githubtrending · Post #14792 · 05.06.2025 г., 13:00

#kotlin#compiler#markdown#markdown_parser#markup_language#paper#pdf#presentations#programming_language#scripting_language#slides#typesetting#typesetting_system Quarkdown is a powerful tool that helps you write and format documents using Markdown. It allows you to create complex content with functions and variables, making it more versatile than regular Markdown. You can easily compile your work into print-ready books or interactive presentations. Quarkdown supports exporting to HTML and PDF, and it includes features like live preview, which helps you see changes as you make them. This makes it easier to ensure your document looks exactly how you want it to. https://github.com/iamgio/quarkdown

Directory 目录 / Tags list 标签列表 : Life 生活 : #Comment 评论 #Diary 日记 #Disappointed 失望 #Emotion 感情 #Experience 经验 #Feeling 感觉 #Fun 有趣 #Hope 希望 #Imagination 想象 #Life 生活 #Like 喜欢 #Memory 记忆 #Original 原创 #Thought 想法 #Unlike 不喜欢 Things 事物 : #Block 封锁 #Cat 猫 #Covid 新冠 #Food 食品 #Meme 梗 #News 新闻 #Society 社会 #Transport 交通 #Volunteering 志愿服务 #Website 网站 Region 地区: #Beijing 北京 #Canada 加拿大 #China 中国 #DPRK 北韩 #Europe 欧洲 #HongKong 香港 #Japan 日本 #Map 地图 #Singapore 新加坡 #UnitedStates 美国 Location 地点 : #Campus 校园 #Classroom 教室 #Dormitory 宿舍 #Embassy 大使馆 #Restaurant 餐厅 #Road 马路 #Sidewalk 人行道 #Station 车站 People 人 : #Ace 大佬 #Bachelor 学士 #Classmates 同学 #Freshman 新生 #Friends 朋友 #Genius 天才 #Group 群体 #InternationalStudents 留学生 #InternetFriends 网友 #LGBTQ#Master 硕士 #PHD 博士 #Professor 教授 #Pupil 小学生 #Teacher 教师 Learning 学习 : #Book 书 #Careless 粗心 #Course 课程 #Delay 拖延 #Essay 小论文 #Examination 考试 #Exercise 练习 #Forget 忘记 #Homework 作业 #Learning 学习 #Lecture 讲座 #Mistake 错误 #NCEE 高考 #Notes 笔记 #Presentation 展示 #Preview 预习 #Question 问题 #Ranking 排名 #Reading 阅读 #Report 报告 #Review 复习 #Score 分数 #Slides 幻灯片 Research 研究 #ACM#arXiv#Conference 会议 #IEEEComputer#Paper 论文 #Preprint 预印本 #Research 研究 #SIG Natural Science 自然科学 : #Biology 生物 #Chemistry 化学 #ElectronicEngineering 电子工程 #Geography 地理 #Geology 地质 #Medicine 医学 #Physics 物理 #Technology 科技 Social Science 社会科学 : #Anthropology 人类学 #BusinessStudies 商业研究 #Communication 沟通 #Finance 金融 #Genderstudies 性别研究 #Law 法律 #Marketing 营销 #Psychology 心理学 #Politics 政治学 #Sociology 社会学 #Language 语言 : #Accent 口音 #Chinese 中文 #English 英语 #Etymology 语源 #French 法语 #Grammar 语法 #GRE#Greek 希腊语 #IELTS 雅思 #Japanese 日语 #Latin 拉丁语 #Listening 听力 #Phrase 词组 #Prefix 前缀 #Pronounciation发音#RootWord 词根 #Speaking 口语 #Suffix 后缀 #Writing 写作 #Word 单词