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

Търсене: #overthinking

当前筛选 #overthinking清除筛选
Javohir Ahmadjonov

@javohir_akhmadjonov · Post #1908 · 12.10.2024 г., 10:00

Overthinking - xaddan ortiq koʻp oʻylashlik Ko‘p o‘ylash foyda keltiradi, lekin chegaradan o‘tib ketgan paytda bizni sekinlashtiradi. Shubha va qo‘rquv bilan yashashning o‘rniga, ba’zan oddiygina qaror qabul qilish va harakatga tushish kerak. Hayotda hamma narsani oldindan bilib bo‘lmaydi. Birinchi qadamni qo‘ying, yo‘l davomida to‘g‘ri yo‘lni, albatta topasiz! #Overthinking#HarakatQil#Ishon Kanalga ulanish: ➡️@javohir_akhmadjonov

#时间管理#自我成长#专注力#行动力#长期主义#焦虑#心理健康#内耗#心流#情绪调节#思考方式#社交媒体#信息过载#自我接纳#宇宙乘客#播客推荐 #TimeManagement#SelfImprovement#Focus#ActionTaking#LongTermThinking#Anxiety#MentalWellness#Overthinking#FlowState#EmotionalRegulation#Mindset#SocialMedia#InformationOverload#SelfAcceptance#UniversalResidents#PodcastRecommendation 播客内容关键点总结 1. 专注力是核心竞争力 现代人注意力严重受损,难以深入思考或持续学习 心流状态(完全沉浸于任务)是高效能的关键 建议:减少新闻/短视频等被动信息输入,每天专注阅读5页书即可超越大多数人 2. 时间复利的威力 时间是不可再生资源,微小优势会随时间指数级放大 案例:跑步从3km→5km→10km的累积效应 坚持者最终会甩开中途放弃的人("熬死竞争对手"效应) 3. 行动方法论 破除拖延:恐惧源于对结果的过度担忧,需接受"不完美是常态" 目标拆解:像项目管理一样将年目标分解为月/周/日可执行单元 验收机制:定期检查进度并灵活调整计划 聚焦困难部分:避免只做简单事务(如学英语只背单词不练听说) 4. 价值观构建 区分"伪需求"与真实目标(追问"要钱究竟是为了什么?") 接受资源有限性:不能面面俱到,必须做优先级取舍 建立"成长型思维":失败是迭代过程,最终收获内心平静比物质更重要 5. 健康基础 辅酶Q10等补剂作为熬夜补救方案(但强调睡眠优先) 运动+营养+睡眠的综合健康管理 体力是长期主义的生理基础(参考郭德纲"活得长就是竞争力"理论) 6. 商业启示 个人IP打造:持续输出价值比追求短期流量更重要 职场建议:把公司事务当自己的事来积累能力 警惕"速成陷阱":所有真实技能都需要时间沉淀 核心公式:[成长 = 专注力 \times 有效行动 \times 时间] 反脆弱策略:在不确定环境中保持持续微迭代,让时间成为盟友而非敌人 https://open.spotify.com/episode/4kVYRpZenwcG18GhaTova4 如果你也受困于浮躁、低效或自我怀疑,那就听听吧(突然发现这个的广告部分相当的长呢