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

Резултати

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

Търсене: #java

当前筛选 #java清除筛选
GitHub Trends

@githubtrending · Post #15231 · 17.10.2025 г., 11:30

#java The Model Context Protocol (MCP) Java SDK helps developers connect AI models with tools and data sources using a standardized interface. It supports both synchronous and asynchronous communication, making it flexible for different applications. The SDK includes features like tool management, logging, and multiple transport options, which simplify interactions between AI systems and external tools. This benefits users by providing a consistent way to integrate AI with various data sources, reducing the complexity of managing multiple connectors for different tools. https://github.com/modelcontextprotocol/java-sdk

Hashtags

GitHub Trends

@githubtrending · Post #14876 · 28.06.2025 г., 13:00

#java BookLore is a self-hosted web app that helps you organize, manage, and read your personal book collection easily. You can sort books into libraries and shelves, automatically get book details from sources like Goodreads, and track your reading progress on PDFs and eBooks with a built-in reader. It supports multiple users with separate accounts and secure login options, so everyone can manage their own books without mixing collections. You can upload many books at once, share books by email (great for Kindle users), and browse books via compatible reading apps. This gives you full control over your digital library with a clean, modern interface and continuous updates[1][2][5]. https://github.com/adityachandelgit/BookLore

Hashtags

Android Broadcast

@android_broadcast · Post #8813 · 15.03.2025 г., 08:33

JSpecify — стандартизация Java-аннотаций для статического анализа кода и взаимодействия между языками JVM. Если вы знакомы с Java или изучали исходный код, то одним из решений проблемы null является использование аннотаций nullability. Однако реализаций таких аннотаций много: JetBrains, Android Jetpack, Spring, Uber и другие создали свои версии. Решений очень много, и возникла проблема выбора и поддержки. Хотелось бы иметь стандарт в Java, но договориться не удалось. Консорциум компаний и команд из Google, JetBrains, Meta, Kotlin, Android, Spring, PMD, Sonar, EISOP и других объединился и создал единый стандарт, который обязуются поддерживать в своих решениях. JSpecify 1.0 сосредоточен на nullability и содержит четыре аннотации: @NonNull, @Nullable, @NullMarked, @NullUnmarked. Интеграция уже началась в библиотеки Jetpack Android и Kotlin. #java

Hashtags

NexTech招聘官方频道

@nextech666 · Post #564 · 05.12.2025 г., 10:08

#Java Java开发工程师 薪资待遇:面议,依资历谈薪 简历投递窗口:@jiesi997@nownow115@coco_0622 工作职责: 1.后台相关业务的系统设计开发 2.项目的需求分析、概要设计、详细设计,技术文档的编写; 3.开发框架的搭建、改进、升级; 4.指导软件工程师的日常开发工作,解决开发中的技术问题。 任职要求: 1.扎实的计算机专业基本功,强大的写码能力; 2.熟练掌握 Java 及面向对象设计开发,对部分 Java 技术有深入研究,研究过优秀开源软件的源码并有心得者优先; 3.了解 SOA 架构理念、实现技术;熟悉常见设计模式,熟练掌握Spring、MyBatis ,redis,ES,dubbo等框架; 4.熟练掌握 MySQL 应用开发、数据库原理和常用性能优化和扩展技术,以及 分库分表,读写分离等技术 5.研究过 http 协议、搜索引擎、缓存、jvm 调优、序列化、nio、RPC 调用框架等,有相应实践经验者优先 6.参与过视频网站,四方支付系统开发设计 7.拥有和工作年限相称的广度和(或)深度,有较强的逻辑/概率思维能力,善于分析、归纳、描述、沟通、和解决问题; 8.年龄不超35岁。

Hashtags

Valisher Botirov | Development

@valisherbotirov · Post #52 · 13.03.2023 г., 13:37

Java Backend 1 - dars. Kirish - JVM, JRE, JDK - Java qanday ishlaydi? - O‘zgaruvchilar - Maʼlumot turlari - Kommentariyalar - Chiqarish Mentor : Hasan Po‘latov #java 👉@ummat_uchun_dasturlash

Hashtags

123•••10•••1415
ПредишнаСтр. 1 от 15Следваща