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

Резултати

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

Търсене: #multi

当前筛选 #multi清除筛选

💎Multi Parallel 平行多开空间v4.0.60.0227绿化版 8 ♻️资源介绍:Multi Parallel Premium「平行多开」是一款稳定、快速的应用程序克隆器。为社交应用和游戏运行多个帐户。大多数社交应用程序和游戏创建并运行多个帐户。可以帮助您摆脱管理多个帐户的麻烦!轻松使用一部手机登录多个帐户,并使所有帐户同时保持在线!创建所需数量的帐户,使用不同的图标和名称自定义它们,并使用隐私柜保护它们。 ⬇️本地下载 🔔标签:#安卓软件#Multi#多开空间

Libreware

@libreware · Post #1131 · 18.05.2023 г., 07:42

DataBackup An easy-to-use backup Libre application for Android, however your phone needs to be rooted , unless a ROM were to include it as a system app Support for #multi-user/double backup: same backup/restore on multiple partitions! Cloud: fully supports #Rclone, which can perform local mounting of network drives from various service providers. 100% data integrity: all data will be retained and there is no need to reconnect or download additional packages. Complete: Split Apk, Arm32, Arm64, x86, x86_64, Android9+. Fast: Support: tar lz4 zstd (default). GitHub - XayahSuSu/Android-DataBackup: 数据备份 DataBackup for Android - https://github.com/XayahSuSuSu/Android-DataBackup Reminder : to install it via F-Droid first add the Izzy repository to F-Droid ( settings - repositories/sources) IzzyOnDroid F-Droid Repository - https://apt.izzysoft.de/fdroid/ #Backup #Android

💎Multi Parallel 平行多开空间v4.0.30.0628绿化版 9.0 ♻️资源介绍:Multi Parallel Premium「平行多开」是一款稳定、快速的应用程序克隆器。为社交应用和游戏运行多个帐户 ⬇️本地下载| 🔵网站下载 ❤️资源指南: 💠主频道|🧑‍💻合作|🤖游戏|👍群聊 🔔标签:#安卓软件#Multi#Parallel#平行多开空间

djangoproject

@djangoproject · Post #129 · 31.08.2016 г., 15:36

https://pypi.python.org/pypi/numpy #NumPy is a general-purpose #array-processing package designed to efficiently manipulate large #multi-dimensional arrays of arbitrary records without sacrificing too much speed for small multi-dimensional #arrays. NumPy is built on the #Numeric code base and adds features introduced by #numarray as well as an extended #C-API and the ability to create arrays of arbitrary type which also makes NumPy suitable for interfacing with general-purpose #data-base applications.

Maximalist🍋🍋🍋

@maximalist_1 · Post #627 · 30.08.2024 г., 09:23

Данные от Santiment: 10 крупнейших кошельков удерживают значительные доли в крупнейших альткоинах, что подчеркивает проблему централизации в крипте: #Polygon (MATIC): 69.4% #Shiba Inu (SHIB): 61.2% #Uniswap (UNI): 50.8% #Pepe (PEPE): 46.1% #Ethereum (ETH): 44.0% #Tether (USDT): 33.1% #Chainlink (LINK): 31.1% #Toncoin (TON): 27.5% #Multi Collateral Dai (DAI): 24.5% #USD Coin (USDC): 19.0% 💬Мнение : Такая концентрация может повлиять на рынок, так как несколько крупных игроков могут существенно влиять на цену и ликвидность этих активов. #КриптоНовости#обзоррынка

🐬DOLPHIN | AI PREDICTIONS 26.01.2024 02:00 GMT Expected 5% Profit/Loss in 24 Hours #PORTO | 2.478 | PP: 51% | LP: 93% #PROM | 8.059 | PP: 49% | LP: 91% #LAZIO | 2.576 | PP: 46% | LP: 90% #DUSK | 0.2487 | PP: 46% | LP: 94% #PENDLE | 2.4848 | PP: 43% | LP: 93% #OM | 0.09924 | PP: 42% | LP: 90% #CVP | 0.3888 | PP: 36% | LP: 93% #SYN | 0.8595 | PP: 36% | LP: 95% #CHZ | 0.11037 | PP: 34% | LP: 93% #TRX | 0.11277 | PP: 33% | LP: 93% #POND | 0.01638 | PP: 31% | LP: 94% #CHR | 0.2542 | PP: 30% | LP: 94% #FIS | 0.392 | PP: 29% | LP: 91% #CTSI | 0.2212 | PP: 28% | LP: 93% #FXS | 10.035 | PP: 28% | LP: 94% #MKR | 2084 | PP: 28% | LP: 95% #ORDI | 51.163 | PP: 26% | LP: 90% #AMB | 0.00751 | PP: 25% | LP: 90% #BTCDOWN | 0.002722 | PP: 25% | LP: 93% #LSK | 1.301 | PP: 25% | LP: 95% #VTHO | 0.002161 | PP: 24% | LP: 92% #CITY | 2.958 | PP: 24% | LP: 93% #LDO | 2.999 | PP: 24% | LP: 93% #1000SATS | 0.0003885 | PP: 23% | LP: 91% #AUCTION | 24.96 | PP: 23% | LP: 93% #NMR | 19.46 | PP: 22% | LP: 94% #CTXC | 0.4164 | PP: 22% | LP: 95% #AMP | 0.003401 | PP: 21% | LP: 92% #SKL | 0.07252 | PP: 21% | LP: 93% #ALPINE | 2.074 | PP: 21% | LP: 94% #PROS | 0.5028 | PP: 21% | LP: 95% #PSG | 3.253 | PP: 20% | LP: 91% #WING | 8.78 | PP: 20% | LP: 92% #ACM | 2.047 | PP: 20% | LP: 94% #ASTR | 0.1674 | PP: 20% | LP: 94% #MAV | 0.5367 | PP: 20% | LP: 96% #MULTI | 2.202 | PP: 20% | LP: 96% #NTRN | 1.0397 | PP: 19% | LP: 91% #RAD | 1.867 | PP: 19% | LP: 92% #XMR | 157.8 | PP: 19% | LP: 92% #DATA | 0.0461 | PP: 19% | LP: 95% #SEI | 0.6017 | PP: 19% | LP: 96% #INJ | 31.39 | PP: 18% | LP: 93% #RLC | 2.09 | PP: 18% | LP: 95% #DIA | 0.4029 | PP: 17% | LP: 93% #BNX | 0.2869 | PP: 16% | LP: 90% #KMD | 0.2419 | PP: 16% | LP: 90% #RPL | 28.39 | PP: 16% | LP: 91% #SSV | 28.74 | PP: 16% | LP: 91% #ORN | 0.8144 | PP: 16% | LP: 93% ... ——————————————————————— Total Predictions: 368 PP > 50%: 1 LP > 50%: 368 PP > 60%: 0 LP > 60%: 368 PP > 70%: 0 LP > 70%: 367 PP > 80%: 0 LP > 80%: 357 PP > 90%: 0 LP > 90%: 219 ——————————————————————— PP: Profit Probability | LP: Loss Probability