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

Резултати

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

Търсене: #hardware

当前筛选 #hardware清除筛选

#WTF#Hardware 新装一台NAS,装这些东西进去是不是有些overkill了... --------------- 上: SanDisk CloudSpeed Eco 大船灵车盘 (90%以上寿命) 1.92TB,用于(相对机械盘来说的)快速读写需求 中: Mikrotik CCR2004-1G-2XS-PCIe 路由器网卡 (2个25Gbps光口,1个1Gbps电口),用于高速网络和OSPF、Zerotier的offloading 下: Intel Optane Memory M10 (灵车来源,但是全新) 32GB,用于ZFS ZIL写日志 // 这个新NAS升级替换的是旧NAS。 // 而这个旧NAS更是灵车中的灵车: // 300块钱的星际蜗牛4盘位J1900 NAS // 看起来还得将灵车漂移进行到底。

TRN

@translatedrussiannews · Post #43289 · 29.03.2026 г., 10:30

🌕YouTuber Scott Manley “landed” on the Moon using an ancient ZX Spectrum — a computer weaker than a modern phone charger, yet still capable of humiliating your work laptop in Kerbal Space Program. While humanity is preparing missions with supercomputers, the enthusiast proved that 48 KB of memory is enough — provided you have patience and a bit of Python held together with duct tape. 🖥️ In the end, it turned out that you do not actually need to fly to the Moon. It is enough to launch an emulator and remind yourself that, back in the 1980s, people were doing more with less than you are today with Wi-Fi and deadlines. #space#hardware Original Post Follow TRN👈

#转发#WTF#Hardware 低端复刻版黑莓: Blackevery F9900 Android 13 紫光展锐 SC9863A (8x A55 @ 1.6GHz) 3GB RAM + 32GB Flash 支持存储卡扩展(SIM/SD三选二卡槽) 2.86寸 720x540 两点触摸屏幕 2M前摄 5M后摄自动对焦 2600mAh电池 Type-C USB、3.5mm耳机孔 // 这配置几乎是新一代Android山寨机...

Protraktor

@protraktor · Post #176 · 30.01.2026 г., 11:40

Давно красивое, но "левое" не кидал. Обожаю этот механический таймер, пока заводишь — лепесток выползает из щели, затем со временем заползает обратно и звенит. Офигенный дизайн-подход — прост как пять копеек, надежность механики и вдохновление отображения (я так думаю) цифрой. Ещё и стоит какие-то копейки. Видео работы: https://www.youtube.com/watch?v=3xMnAcp-H8s Увидел в блоге одиночного яхтсмена, использует для микросна. А сам продукт вот: https://www.tfa-dostmann.de/en/product/analogue-kitchen-timer-puck-38-1028/ #inspiration#hardware#minimal

#转发#Hardware#RaspberryPi https://youtu.be/Jm8RiqAdHQE // 树莓派 Zero 2w 评测 // TL;DR: // CPU 1.0GHz 可超频到 1.3GHz // 不超频时性能接近 Pi 3 // 512MB RAM (更大的SiP里塞不下) // 默认是32位桌面系统,超频后很流畅 // 开机内存占用约 90MB // Chrome 看油管甚至能 720p60 // 2.4GHz WiFi + 蓝牙 // 两个MicroUSB // 其中一个USB仅供电 (5v 0.25A) // MiniHDMI // 基本上和 Pi Zero 在外形规格上一样

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