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

Резултати

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

Търсене: #device

当前筛选 #device清除筛选
senk0n blog

@s0blog · Post #827 · 27.07.2020 г., 16:16

Наконец-то заказал себе нормальный моник Samsung на 24" в пару к одному из этих старичков, больше никаких пыток для глаз.. HDD BarraCuda 1TB в #пк и контейнер для 2.5", чтоб после прокачки одного из местных ноутов обзавестись халявным внешним HDD на пару соток гиг 🧐 и замену своим умирающим мейзу POP - недавно вышедшие Realme Buds Air, позже отпишу как они.. #device

Hashtags

senk0n blog

@s0blog · Post #207 · 22.08.2019 г., 22:55

Решил поделиться своей историей болезни (телефонов). Встречайте! История телефонов (#истории#device) Всё началось где-то в классе так 3-4, тогда папа отдал мне свой телефон купив себе новую моторолу. Я достаточно поздно получил свой первый телефон в отличии от сверстников, но позже.. Я начал стремительно обгонять, меняя их как перчатки Вот краткий гид по прошлому моих средств связи: –> Siemens M55 без камеры (утопленник сельского туалета в лагере) –> Nokia 1110 оранжевый от мамы с чб экраном –> МТС 236 за 199грн... производства ZTE (лето 2011) –> Nokia C1-01 с камерой, бт, ЖА(Б)ВА ИГРАМИ и печеньками –> LG GS290 на жаве, но с емкостным экраном и неубиваемым метал корпусом, МАШИНА! Где-то в это время мне купили первый и единственный планшет на Android (за 999 грн), так что моё знакомство с мирком Fruit Ninja и подобного начался именно здесь, а не с следующего телефона. К слову говоря, я всё ещё не могу вспомнить куда же он делся ._. –> LG Optimus L3 [E400] (первый андроид тел.) –> LG Optimus L5 [E612] (был слит брату как и предыдущий по низкой цене) –> Samsung Galaxy S4 Active (единственный флагман что у меня был, куплен в конце 2013. Украден во время лыжного курорта в Словакии) –> Sony Xperia M2 (куплен в первой половине 2015 года, утопленник Средиземноморья в Израиле) –> Microsoft Lumia 430 (уже не помню куда он делся, но в те времена обновился до Win10M даже) –> Doogee X5 (сука ненавижу) –> LG Spirit [H422] (купила себе маман, я на второй день обменялся на дужи :) С ним я начал флексить в кастомы и патчи из-за нехватки встроенных 8gb) –> Motorola Moto G3 [2015] (выпущен на 5, прошит на 8, а сейчас прошивки с 9 андроидом есть, п-поддержка) –> Xiaomi Redmi 4 Prime [markw] (матрица пошла гулять, при этом стекло тел не пострадало, пострадали матрица и накленное стекло. Меняли раза 3 так как был брак тача, в итоге в срочном порядке перешёл на next ph.) –> Xiaomi Mi A1 [tissot] (ааа, первое сяоми комьюнити, скорблю) –> Xiaomi Redmi Note 5 [whyred] (комьюнити топовое, люблю этих ребят, лучшие знакомства в интернете. Уже олд, менял батарею, смаковал разные ром'ы) –> Poco X3 NFC [surya] <– im here

⭐️【资源名称】Device Info 设备信息v3.4.1.6高级版 8 🤖【适用平台】: #Andoid 🧱【资源介绍】 Device Info HW+ 是一款适用于 Android 设备的硬件和软件信息检测应用程序。它不仅可以检测智能手机的组件,为您提供有关设备硬件的完整信息。还可以检测液晶显示屏,触摸屏,相机,传感器,内存,闪存,音频,nfc,充电器,Wi-Fi和电池等设备 🟡在线下载:点击下载 📁#Device#设备信息

⭐️【资源名称】Device Info 设备信息v3.4.1.4高级版 10.3 🤖【适用平台】: #Andoid 🧱【资源介绍】 Device Info HW+ 是一款适用于 Android 设备的硬件和软件信息检测应用程序。它不仅可以检测智能手机的组件,为您提供有关设备硬件的完整信息。还可以检测液晶显示屏,触摸屏,相机,传感器,内存,闪存,音频,nfc,充电器,Wi-Fi和电池等设备 🟡在线下载:点击下载 📁#Device#设备信息

JJ.ai (NFA)🪽

@jsmjsmxyz · Post #1012 · 04.06.2020 г., 08:37

#Music#Device#buybuybuy 🎶AudioEngine (声擎) A2+ 之初体验 上次提及 macOS 对于 dp 外接显示器有着糟糕的音量控制体验,于是在群友的指点和 618诱惑下,入手了 声擎A2+ 这款小身材监听级HiFi音箱 🔊特点 - 黑色哑光烤漆外观诱人,手感顺滑 - 小巧体积不会占用太多桌面空间 - 自带 HiFi 解码芯片 - 通过USB连接可以实现由 A2+进行解码,无须担心输入设备的声卡好坏 - 支持 aux、蓝牙5.0、USB、红白线的多种输入方式 - 蓝牙5.0体验很棒,即使穿墙也可以稳定播放音乐 - 人声表现出色,本人甚是喜欢 ⚠️疑似问题 - 对 Filco 忍者双模键盘(蓝牙3.0)存在干扰 👀 “好听”这个词过于玄学化,个人体验难以说明一个音响设备的全部细节。 对于一个但入门级 HiFi 玩家(我)来说,声擎 A2+ 是一件能满足我目前需求的产品。 📘关联阅读:让我们科学地发烧:我对调音的一些见解 频道:@NewlearnerChannel

💎 Device Info 设备信息v3.4.0.9高级版 10.4 ♻️资源介绍:Device Info HW+ 是一款适用于 Android 设备的硬件和软件信息检测应用程序。它不仅可以检测智能手机的组件,为您提供有关设备硬件的完整信息 ⬇️本地下载 🔔标签:#安卓软件#Device#Info#设备信息

💎 Device Info 设备信息v3.4.0.9高级版 10.4 ♻️资源介绍:Device Info HW+ 是一款适用于 Android 设备的硬件和软件信息检测应用程序。它不仅可以检测智能手机的组件,为您提供有关设备硬件的完整信息 ⬇️本地下载 🔔标签:#电脑软件#Device#Info#设备信息

⭐️【资源名称】: Device Info 设备信息 🤖【适用平台】: #Andoid 🔄【应用版本】: 3.4.0.5 🔩【应用大小】:7.2MB 🧱【资源介绍】 Device Info HW+ 是一款适用于 Android 设备的硬件和软件信息检测应用程序。它不仅可以检测智能手机的组件,为您提供有关设备硬件的完整信息 🟢高级版 🟡在线下载:点击下载(无需密码) 🟡 uc下载:点击下载(无需密码) 📁#安卓软件#Device#Info#设备信息

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