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

Резултати

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

Търсене: #opensource

当前筛选 #opensource清除筛选
Linuxgram 🐧

@linuxgram · Post #18798 · 14.05.2026 г., 22:05

📰 BleachBit’s new TUI lets you clean without a desktop environment Open-source cleaning tool BleachBit has gained a text-based user interface (TUI) as an optional alternative to its standard graphical frontend. Unlike BleachBit’s existing CLI, which is intended for non-interactive use in scripts, the TUI is fully interactive, you navigate the interface with your keyboard (there’s limited mouse support) to select, preview and clean out cruft. 🔗 Source: https://www.omgubuntu.co.uk/2026/05/bleachbit-tui #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18795 · 14.05.2026 г., 19:31

📰 MuseScore Studio 4.7 Notation App Adds New Guitar Features MuseScore Studio 4.7 open-source notation app adds new engraving tools, guitar notation features, playback improvements, MP4 export, and more. 🔗 Source: https://linuxiac.com/musescore-studio-4-7-notation-app-adds-new-guitar-features/ #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18740 · 11.05.2026 г., 08:32

📰 Dusk is a reverse-engineered reimplementation of The Legend of Zelda: Twilight Princess The Legend of Zelda: Twilight Princess comes to PC thanks to a new open source reverse-engineered reimplementation called Dusk.Read the full article on GamingOnLinux. 🔗 Source: https://www.gamingonlinux.com/2026/05/dusk-is-a-reverse-engineered-reimplementation-of-the-legend-of-zelda-twilight-princess #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18739 · 11.05.2026 г., 08:06

📰 Restriced by the West, Huawei's Open Source HarmonyOS Now Powers 55 Million Devices It seems that Huawei has managed to create an ecosystem of hardware as well as software. 🔗 Source: https://feed.itsfoss.com/link/24361/17338103/harmony-os-rises-china #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18738 · 11.05.2026 г., 06:37

📰 Audacious 4.6 Media Player Promises File Browser Plugin, Beta Out Now Audacious 4.6 open-source media player is now available for public beta testing with a File Browser plugin, a macOS Now Playing plugin, support for playing Musepack SV8 files, and much more. 🔗 Source: https://9to5linux.com/audacious-4-6-media-player-promises-file-browser-plugin-beta-out-now #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18713 · 08.05.2026 г., 16:32

📰 Nintendo 64 emulator gopher64 adds controller hotkeys and auto-reconnect The free and open source Nintendo 64 emulator gopher64 has another useful new release out now, bringing a few more features to make it easier.Read the full article on GamingOnLinux. 🔗 Source: https://www.gamingonlinux.com/2026/05/nintendo-64-emulator-gopher64-adds-controller-hotkeys-and-auto-reconnect/ #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18695 · 07.05.2026 г., 07:22

📰vm2 Node.js Library Vulnerabilities Enable Sandbox Escape and Arbitrary Code Execution A dozen critical security vulnerabilities have been disclosed in the vm2 Node.js library that could be exploited by bad actors to break out of the sandbox and execute arbitrary code on susceptible systems.vm2 is an open-source library used to run untrusted JavaScript code inside a secure sandbox by intercepting and proxying JavaScript objects to prevent sandboxed code from accessing the host. 🔗 Source: https://thehackernews.com/2026/05/vm2-nodejs-library-vulnerabilities.html #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18693 · 06.05.2026 г., 20:34

📰Mesa 26.1 Released With Many Improvements For Open-Source Vulkan Drivers Eric Engestrom just announced another timely feature release of the Mesa drivers. Mesa 26.1 is out today for this collection of predominantly OpenGL and Vulkan drivers for a variety of hardware as well as the likes of Rusticl for OpenCL, Zink for OpenGL-on-Vulkan, various Windows acceleration components, and more... 🔗 Source: https://www.phoronix.com/news/Mesa-26.1-Released #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18692 · 06.05.2026 г., 17:58

📰 Inkscape 1.4.4 SVG Editor Released with a New Palette, Performance Improvements Inkscape 1.4.4 open-source SVG (Scalable Vector Graphics) editor is now available for download with a new palette, performance improvements,and bug fixes. Here’s what’s new! 🔗 Source: https://9to5linux.com/inkscape-1-4-4-svg-editor-released-with-a-new-palette-performance-improvements #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18674 · 05.05.2026 г., 03:41

📰 gThumb is barely recognisable in its GTK4/libadwaita port gThumb, the open-source image viewer and organiser, has been rewritten in Vala and ported to GTK4/libadwaita – and compared to the old UI, it’s barely recognisable. An alpha build of gThumb 4.0 is available for testing. Alongside the visual revamp, this brings support for WEBP and PNG animations, lets you export images in the JXL format and includes a censor filter to pixelate or blur out parts of an image. 🔗 Source: https://www.omgubuntu.co.uk/2026/05/gthumb-gtk4-port-redesign #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18669 · 04.05.2026 г., 17:17

📰 I tried an open-source Figma alternative, and its AI does what Figma's can't Not a Figma killer, but something more interesting. 🔗 Source: https://www.xda-developers.com/ditched-figma-for-open-source-tool-ai-does-what-figma-cant/ #opensource

Hashtags

Linuxgram 🐧

@linuxgram · Post #18663 · 03.05.2026 г., 22:06

📰 ReactOS Introduces Unified Live/Install Media, New Storage Driver ReactOS as the "open-source Windows" operating system project striving for binary compatibility with Microsoft Windows has seen some exciting improvements this week... 🔗 Source: https://www.phoronix.com/news/ReactOS-Unified-ISO #opensource

Hashtags

123•••10•••20•••30•••3738
ПредишнаСтр. 1 от 38Следваща