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

Резултати

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

Търсене: #crdroid

当前筛选 #crdroid清除筛选
Xiaomi 12T Pro | K50U | Updates

@xiaomi_12tpro_updates · Post #120 · 12.07.2024 г., 14:25

#crDroid#diting New Version 11/07/2024: Gapped version Download Changelog: crDroid v10.6 Updated to June security patch Including MiuiCamera Note: Firmware is NOT included. This is beta version. Credits: Thanks to @TeamMEX_XDA for all his helps and providing dt By@Mohammadnt96 Follow@xiaomi_12tpro_updates Join@xiaomi_12tpro_chat

Xiaomi 12T Pro | K50U | Updates

@xiaomi_12tpro_updates · Post #84 · 26.02.2024 г., 21:12

#crDroid#diting New Version 25/02/2024: Gapped version Download Changelog: crDroid v10.2 SMS fixed Kernel Switched to HyperOS Used HyperOS blobs Notes: Use latest skkk twrp (v8.6) Credits: Thanks to @TeamMEX_XDA for all his helps and providing dt Discussion: Xiaomi 12T Pro crDroid

Xiaomi 12T Pro | K50U | Updates

@xiaomi_12tpro_updates · Post #63 · 02.02.2024 г., 03:40

#crDroid#diting New Version 02/02/2024: Gapped version Download Changelog: crDroid v10.1 fod fixed for both touchscreens miui camera included Known Issues: Opening photo in miui camera Credits: Thanks to @TeamMEX_XDA for all his helps and providing dt Discussion: Xiaomi 12T Pro crDroid

Xiaomi 12T Pro | K50U | Updates

@xiaomi_12tpro_updates · Post #17 · 11.11.2023 г., 00:57

#crDroid#Unofficial#diting#A14 Crdroid 10.0 UNOFFICIAL | Android 14 Updated: 11-11-2023 ▪️Download ▪️Support Changelog: • Initial A14 build with oss vendor Notes: Known Issues: Auto brightness must be disabled. otherwise screen will not wake after lock Fod on k50u does not work Credits: Thanks to @TeamMEX_XDA for providing dt By@Mohammadnt96 Follow@xiaomi_12tpro_updates Join@xiaomi_12tpro_chat

Xiaomi 12T Pro | K50U | Updates

@xiaomi_12tpro_updates · Post #14 · 10.11.2023 г., 01:58

#crDroid#Unofficial#diting#A13 Crdroid 9.10 UNOFFICIAL | Android 13 Updated: 05-11-2023 ▪️Download ▪️Support Changelog: • Initial Vendor OSS Build Credits: Thanks to @TeamMEX_XDA for providing dt By@Mohammadnt96 Follow@xiaomi_12tpro_updates Join@xiaomi_12tpro_chat

Nothing Phone (2) | Updates

@NothingPhone2Updates · Post #374 · 30.07.2024 г., 11:52

CrDroid - Official | Android 14 | Nothing Phone (2) 📝 Details: - Version: v10.6 - Status: #Official - Device: #Pong - Released: 30/07/24 ⬇️ Download: ROM (Vanilla) | Gapps Package 📔 Instructions: Here 🎄 Device tree : Here 📝 Changelogs : Here 🆘 Support: TG | XDA 🏷 Tags: #AOSP#ROM#CrDroid#U ✍️ Note: - Base firmware 2.6.0 is recommended - Dirty flash possible from previous july build - Report with logs if you found issues in the comment section below 🏆 Credits: - Chandu Dyavanapelli for DT Base - Hellboy for Meteoric kernel and Glyph changes - Fabian for PA Glyph Implementation 👤 Maintainer: @Ghosutox 🔔 Updates: @NothingPhone2Updates 🐙 Chat: @NothingPhone2

Nothing Phone (2) | Updates

@NothingPhone2Updates · Post #353 · 15.07.2024 г., 19:46

CrDroid - Official | Android 14 | Nothing Phone (2) 📝 Details: - Version: v10.6 - Status: #Official - Device: #Pong - Released: 15/07/24 ⬇️ Download: ROM (Vanilla) | Gapps 📔 Instructions: Here 🎄 Device tree : Here 🆘 Support: TG | XDA 🏷 Tags: #AOSP#ROM#CrDroid#U ✨Changelogs: - Initial QPR3 release ✍️ Note: - Base firmware 2.6.0 is recommended - Clean flash must - Report with logs if you found issues in the comment section below 🏆 Credits: - Chandu Dyavanapelli for DT Base - Hellboy for Meteoric kernel - Fabian for PA Glyph Implementation - Testing Team 👤 Maintainer: @Ghosutox 🔔 Updates: @NothingPhone2Updates 🐙 Chat: @NothingPhone2

Nothing Phone (2) | Updates

@NothingPhone2Updates · Post #296 · 15.05.2024 г., 14:18

CrDroid - Official | Android 14 | Nothing Phone (2) 📝 Details: - Version: v10.5 - Status: #Official - Device: #Pong - Released: 15/05/24 ⬇️ Download: ROM (Vanilla) | ROM Fastboot | Gapps 📔 Instructions: Here 🆘 Support: TG | XDA 💰 Donate: PayPal | BuyMeACoffee 🏷 Tags: #AOSP#ROM#CrDroid#U ✨Changelogs: - Update to CrDroid 10.5 - Added ParanoidGlyph - Fixed SMS and SIM issue ✍️ Note: - Base firmware 2.5.5 is recommended - Report with logs if you found issues in the comment section below 🏆 Credits: - Chandu Dyavanapelli for DT bring up and fix SMS issue - Hellboy017 for kernel - Pong TG Dev & Testing Team 👤 Dev: @DylanAkp 🔔 Updates: @NothingPhone2Updates 🐙 Chat: @NothingPhone2

Nothing Phone (2) | Updates

@NothingPhone2Updates · Post #242 · 08.02.2024 г., 22:58

CrDroid - Official | Android 14 | Nothing Phone (2) 📝 Details: - Version: v10.2 - Status: #Official - Device: #Pong - Released: 08/02/24 ⬇️ Download: ROM (Vanilla) | Gapps 📔 Instructions: Here 💬 Support Group: Here 🏛 XDA: Here 💰 Donate: PayPal | BuyMeACoffee 🏷 Tags: #AOSP#ROM#CrDroid#U ✨Changelogs: - Initial official build - Firmware removed - Rebased on NOS 2.5.2 - Added Reverse Wireless Charging - Switched to qcom telephony - Added Glyphify (An alternative app to ParanoidGlyph I made, more to come in future updates) ⛔️ Known Issues: - Issue with reception of SMS Enabling and disabling SIM card from settings fix the issue until the next boot ✍️ Note: - Base firmware 2.5.2 is recommended - Report with logs if you found issues in the comment section below 🏆 Credits: - Chandu_Dyavanapelli for DT bring up - Hellboy017 for kernel - Przekichane for DT & vendor fixes on A13 » A14 - Pong TG Dev & Testing Team 👤 Dev: @DylanAkp 🔔 Updates: @NothingPhone2Updates 🐙 Chat: @NothingPhone2

Nothing Phone (2) | Updates

@NothingPhone2Updates · Post #226 · 05.01.2024 г., 13:53

CrDroid - Unofficial | Android 14 | Nothing Phone (2) 📝 Details: - Version : v10.x - Status: #Unofficial - Device : #Pong - Released : 04/01/24 ⬇️ Download : ROM (Vanilla) | Gapps 📔 Instructions: Here 📸 Screenshots : Here 💬 Support Group : Here 🏛 XDA : Here 💰 Donate : PayPal | BuyMeACoffee 🏷Tags : #AOSP#ROM#CrDroid#U ✨Changelogs: - Rebased on NothingOS 2.5.1 - Fixed stutters - Fixed Face Unlock - More CrDroid settings implemented - Updated to Android QPR1 (Security patch December 2023) ✍️ Note: - Base firmware 2.5.1 is recommended - Report with logs if you found issues in the comment section below 🏆 Credits: - Chandu_Dyavanapelli for DT Bringup - Hellboy017 for kernel - Przekichane for DT and Vendor fixes on A13 » A14 - Pong TG Dev and Testing Team for all help 👤 Dev : @DylanAkp 🔔 Updates : @NothingPhone2Updates 🐙 Chat : @NothingPhone2

Nothing Phone (2) | Updates

@NothingPhone2Updates · Post #216 · 18.12.2023 г., 14:30

CrDroid - Unofficial | Android 14 | Nothing Phone (2) 📝 Details: - Version : v10.x - Status: #Unofficial - Device : #Pong - Released : 18/12/23 ⬇️ Download : Rom (Vanilla) | Gapps 📔 Instructions: Here 📸 Screenshots : Here 🏛 XDA : Here 💰 Donate : PayPal 🏷Tags : #AOSP#ROM#CrDroid#U ✨Changelogs: - Intitial A14 build based ✍️ Note: - Please be on NOS 2.0.4 before flashing. (Not yet tested from 2.5.1) - Report with logs if you found issues in the comment section below 🏆 Credits: - Chandu_Dyavanapelli for DT Bringup - Hellboy017 for kernel - Przekichane for DT and Vendor fixes on A13 » A14 - Snuvig for early tests - Pong TG Dev and Testing Team for all help 👤 Dev : @DylanAkp 🔔 Updates : @NothingPhone2Updates 🐙 Chat : @NothingPhone2

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