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

Търсене: #gtd

当前筛选 #gtd清除筛选

🚀Todoist ━━━━━━━━━━━━━━━━━ 💡亮点:你的宿舍生活,从此井井有条 📖简介: 宿舍生活杂事多,作业、小组任务、值日、账单、活动报名……脑子根本记不住。Todoist让你一键添加任务,设置优先级和提醒,支持项目分类和子任务。无论是个人学习计划,还是宿舍公共事务协作,都能轻松管理,告别遗忘和拖延,让混乱的集体生活变得清晰高效。 🏷️标签:#任务管理#时间管理#协作工具#GTD 🔗👉 点击直达 ━━━━━━━━━━━━━━━━━ @yxzbp#Tool

庭说 TingTalk

@Tingtalk · Post #372 · 17.09.2021 г., 14:13

打造一个自己喜欢的 空间 不是为了让自己沉浸在其中,或者让它仅仅只是看起来好看。而是在赏心悦目的同时,让我更加注重自己的 #健康、#效率 以及 #生活 状态。 @TingTalk:虽然在 2019 年就根据 Topbook 的 GTD 系列视频 做了 #时间管理 的 笔记,但在生活和工作上还是杂乱无章,拖延瞎忙。如有不错的 #自我管理 方法,还请在评论区不吝赐教。 #GTD (Getting Things Done )直接翻译为「把事情做完」,本身就很可能让人误解成:你必须做完所有的事情。更贴切的翻译是:「把事情处理完」或者「把事情做好」,因为你不可能完成所有事情。by Topbook(高效生活视频书,让工具回归工具,让你成为你。)

Fang的资源分享群

@flmdongtianfudi · Post #15519 · 21.12.2025 г., 11:59

《搞定:让你远离忙乱的GTD时间管理法》,时间管理+效率提升+系统化方法 通过详细介绍GTD(Getting Things Done)时间管理法,提供系统化的工具与技巧,帮助读者理清思路,提升工作与生活的效率,减少忙乱感。 🔗:https://pan.quark.cn/s/2a542dd7045c https://pan.baidu.com/s/1htL124ofuCz67FXSI_otHw?pwd=kcc8 #时间管理#GTD#效率提升#系统化方法#忙乱管理#生活规划 🔔Twitter👥频道💬群组

硬核小卒

@yinghexiaozu · Post #733 · 28.12.2020 г., 11:23

1️⃣Ronen Amiel - Build Your Own Webpack:一个 40 分钟的视频,手把手教你写一个 Webpack 打包器,让你深刻理解 Webpack 的工作原理。#Webpack#编程 2️⃣每个程序员都应该挑战的项目:作者列举了几个有点难度的小项目,包括文字编辑器、迷你操作系统、2D 游戏、编译器、电子表格软件、游戏模拟器等,做这些小项目对于提高编程水平有很大的帮助。最近,该博客主出了第二个系列。#编程#挑战 3️⃣GTD 时间管理法则:如果你不太会用 Todo 应用来管理自己的时间,不妨看看这篇详细的博客。#GTD#Todo 4️⃣译文|深度解读 Apple ProRAW 功能:如题,很详细的一篇文章。#Apple#ProRAW 5️⃣ “努力就会成功”:努力只是成功的必要条件,不是充要条件,并且要在关键的地方努力,而不是无脑地努力。#努力#成功#思考 Automatically sent by Hardcore Bot v0.9.2