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

Резултати

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

Търсене: #rpi

当前筛选 #rpi清除筛选
SaintBytеChannel

@saintbyte_channel · Post #484 · 08.07.2025 г., 16:52

Шел второй день жары — для акклиматизации ещё маловато. Половину дня провёл в бассейне. В который раз убедился, что в такую погоду лучше всего заниматься природой дистанционно, потому что человек вообще хрупкое существо, а уж я и подавно... Если задуматься о моей физической уязвимости, раньше я ежегодно сгорал даже на скромном уральском солнышке, регулярно получал тепловрй удар тоже на Урале (там однажды перегрелся и потерял сознание). Но самый весёлый случай произошёл именно на Юге, в Должанке: получил тепловой удар с подъёмом температуры аж до сорока градусов!А ощущение холода при высокой температуре — это отдельная история: помню, как сидел за компьютером, стучал пальцами по клавиатуре, всё сильнее мёрз, постепенно начал мелко дрожать, настолько сильно, что пальцы сбивались мимо кнопок. Подумалось неладное — измерил температуру: сорок градусов ровно! Дальше действуем строго по протоколу: выпиваю залпом литр воды и отправляюсь спать. Утром проснулся совершенно здоровым человеком. Жарко и настроение у меня хреновое и по этому я решил поругаться в одном проекте. Ибо выхлопа с проекта нету , процессов нету. Буду обострять потому что мне "надо больше золота" Про дистанционно изучать природу , пытаюсь разобраться как собрать собственный мелкий дистр для малины. Пока разобрался в двух вещах: 1. Качать ОС для малины надо 🍇отсюда. 2. Надо поставить unxz и потому unxz 2025-05-13-raspios-bookworm-arm64-lite.img.xz как результат будет 2025-05-13-raspios-bookworm-arm64-lite.img . Это образ уже можно лить на SD карточку по средствам dd 3. fdisk -l 2025-05-13-raspios-bookworm-arm64-lite.img и там обнаруживается два раздела: Диск 2025-05-13-raspios-bookworm-arm64-lite.img: 2,57 GiB, 2759852032 байт, 5390336 секторов Единицы: секторов по 1 * 512 = 512 байт Размер сектора (логический/физический): 512 байт / 512 байт Размер I/O (минимальный/оптимальный): 512 байт / 512 байт Тип метки диска: dos Идентификатор диска: 0xd9c86127 Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип 2025-05-13-raspios-bookworm-arm64-lite.img1 16384 1064959 1048576 512M c W95 FAT32 (LBA) 2025-05-13-raspios-bookworm-arm64-lite.img2 1064960 5390335 4325376 2,1G 83 Linux Теперь медленно и печально думаю надо разделами к тому же опыт создание башем разделов у меня есть. Прошёл Heretic. Фото в посте — это то, что в конце игры, после прохождения всех уровней. #rpi

Hashtags

GitHub Trends

@githubtrending · Post #14879 · 28.06.2025 г., 14:30

#cplusplus#cpp#hacktoberfest#iot#iot_device#iot_edge#microcontroller#microsoft_for_beginners#python#raspberry_pi#rpi You can learn the basics of the Internet of Things (IoT) through a free 12-week course with 24 lessons that guide you step-by-step in building real projects like plant monitoring, vehicle tracking, and smart cooking timers. Each lesson includes quizzes, instructions, challenges, and solutions to help you understand sensors, cloud connections, security, and AI on devices. The course uses real hardware or virtual options, making it easy to practice hands-on skills. This project-based learning helps you gain practical IoT knowledge useful for many industries, improving your tech skills and job readiness. https://github.com/microsoft/IoT-For-Beginners