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

Резултати

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

Търсене: #vue3

当前筛选 #vue3清除筛选

【12/16新增】 高级前端开发工程师(VUE3-IM方向) (序列: #前端#IM#Vue3 ) 一:前端基础与框架能力 1:计算机相关专业本科及以上学历,5年以上前端开发经验。 2:精通 JavaScript/TypeScript,深入理解原型链、闭包、事件循环、异步编程等核心概念。 3:精通 React 或 Vue 框架(至少一种),熟悉其生态工具链(Redux/Vuex/Pinia、React Router/Vue Router等)。 4:熟练使用 Webpack、Vite 等构建工具,具备工程化配置与优化能力。 5:熟悉 HTML5、CSS3,能够实现复杂的UI交互效果。 二:IM即时通讯开发经验 1:必须具备2年以上IM即时通讯系统开发经验,深入理解IM系统架构与核心流程。 2:精通 WebSocket 长连接技术,熟悉连接建立、心跳保活、断线重连、多端同步等机制。 3:熟悉常见IM通信协议(如 XMPP、MQTT、Protobuf)或具备自定义二进制协议的设计与解析能 力。 4:深入理解IM核心功能实现原理:消息的收发(单聊、群聊、@提醒、消息引用与回复)、消息状 态(已读未读、消息撤回)、消息同步(离线消息拉取、漫游消息、多端消息同步)、富媒体消息。 5:具备大数据量场景下的性能优化经验,如:虚拟滚动/虚拟列表处理海量消息渲染、图片/文件懒 加载与缓存策略、内存泄漏排查与优化 -熟悉弱网环境下的消息可靠性保障(消息重发、ACK确认 机制、消息去重)。 6:了解前端数据持久化方案(IndexedDB、LocalStorage),实现本地消息缓存。 三:加分项 1:有知名IM产品(钉钉、企业微信、飞书、Slack、Discord等)开发经验。 2:具备音视频通话开发经验(WebRTC、实时音视频SDK)。 3:有 Electron 桌面端跨平台开发经验。

GitHub Trends

@githubtrending · Post #14802 · 07.06.2025 г., 12:30

#vue#admin_tempalte#art_design_pro#vite#vue_element_admin#vue3#vue3_admin Art Design Pro is a free, open-source tool for building admin systems. It uses the latest technology and offers a beautiful interface, making it easy to create high-quality admin systems. You can customize themes and use many features like global search, multi-language support, and rich text editing. This helps developers build systems that are both visually appealing and user-friendly, saving time and effort in development. https://github.com/Daymychen/art-design-pro

GitHub Trends

@githubtrending · Post #14990 · 23.07.2025 г., 12:00

#vue#pake#pakeplus#rust#tauri#tauri2#vue3#webapp You can quickly turn any website or web project like Vue or React into a small, fast desktop or mobile app under 5MB using PakePlus. It works on Mac, Windows, Linux, Android, and iOS without needing complex setups. PakePlus is much smaller and faster than similar tools, supports custom JavaScript, and keeps your data secure by using your own GitHub repository. It’s easy to use with just one GitHub token or even without one for local packaging. This helps you create apps fast, hide website addresses, add custom features, and run your web projects as apps on many platforms. https://github.com/Sjj1024/PakePlus

VPS自留地

@zx_vps · Post #2327 · 20.02.2026 г., 07:12

白虎面板: 轻量级低资源的定时任务管理系统 • 基于 Go 与 Vue3,Docker 或 Docker‑Compose 一键部署,无需复杂配置 • 内置 Python、Nodejs、Bash 环境,在线终端实时交互,脚本管理更便捷 • 支持标准 Cron 表达式调度,CPU 占用低于 20%,适配低配服务器 https://github.com/engigu/baihu-panel #白虎面板#定时任务#Docker#Go#Vue3#轻量级#低资源#Cron#Python#Nodejs#Linux

GitHub Trends

@githubtrending · Post #15233 · 17.10.2025 г., 19:30

#vue#chatbot#macos#rust#tauri#tsx#vue3#webview#windows#windows_10#windows_11 HuLa is a modern, open-source instant messaging app built with Tauri, Vite 7, Vue 3, and TypeScript, which means it’s fast, secure, and works smoothly across Windows, macOS, Linux, iOS, and Android[1]. It offers all the features you expect from a messaging app—private and group chats, message recall, read receipts, emojis, file sharing, and even AI chatbot integration—plus extras like dark/light themes, customizable skins, and system tray notifications. Because it’s open source, you can trust its transparency and even contribute to its development. The main benefit is having a lightweight, cross-platform messaging tool that’s both easy to use and highly customizable for your personal or team communication needs. https://github.com/HuLaSpark/HuLa

GitHub Trends

@githubtrending · Post #15074 · 19.08.2025 г., 12:00

#vue#javascript#music#music_library#music_player#musicplayer#pinia#splayer#vite#vue#vue3 SPlayer is a simple, open-source music player designed mainly for Windows, built with modern web technologies like Vue 3 and Electron. It supports features like login via QR code or phone, daily check-ins, desktop lyrics, local music management, playlist creation, cloud music upload and playback, and even plays some songs without copyright restrictions. It offers light/dark themes, music spectrum visualization, and supports high-quality downloads if you have the right membership. You can deploy it locally or on servers using Docker or Vercel. This player is free for personal use and encourages community contributions, helping you enjoy and organize music easily with a customizable, modern interface. https://github.com/imsyy/SPlayer

GitHub Trends

@githubtrending · Post #14866 · 25.06.2025 г., 17:30

#typescript#admin#admin_template#elegant#naive_ui#naive_ui_admin#pinia#typescript#unocss#vite6#vue#vue_admin#vue3 SoybeanAdmin is a modern, elegant, and powerful backend management template built with the latest technologies like Vue3, Vite6, TypeScript, Pinia, and UnoCSS. It offers a clear project structure, strict code standards, automated file routing, and built-in internationalization. It supports flexible permission routing, rich page components, and mobile-friendly layouts, making it ready to use without extra setup. This helps you quickly build or learn advanced admin systems with high code quality and customization options, saving time and improving development efficiency. It also provides command-line tools and mock data support for easier development and testing[1][4][5]. https://github.com/soybeanjs/soybean-admin