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

Резултати

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

Общо глобално търсене

Ben Edgington | 𝕏🧵 RT @weboftrees: 🧵Introducing EIP-7999: Unified multidimensional fee market. Ethereum is like a supermarket with one inventory label. There are 45M eggs, 45M cheese, 45M snacks. etc, but everything scans as "1 food". To avoid empty shelves, it closes once 45M food has been sold during the day. ~ ₿izFeed#⃣:#dev#ETH

Hashtags

Ben Edgington | 𝕏🧵 RT @testinprod_io: The largest Fusaka devnet is now being geared up! @testinprod_io and @base, who have been putting efforts to L2 scaling by contributing PeerDAS as a part of @Optimism Collective, are now teaming up with @ethPandaOps to run the biggest devnet in the history. ~ ₿izFeed#⃣:#dev#ETH

Hashtags

vitalik.eth | 𝕏🧵 Echoing something @karpathy recently said, it does frustrate me how a lot of AI development is trying to be as "agentic" as possible, when actually creating *more* paths for human input both creates a better output (now for quite a while going forward) and is better for safety. ~ ₿izFeed#⃣:#dev#ETH

Hashtags

by makstorch

@bymakstorch · Post #585 · 10.10.2023 г., 09:13

Болото из MVP, 🔨 и 🪚 В этом месяце Sketch выкатил обнову со Smart Layout, но не полноценно как в Figma или даже лучше, а тупо в Beta. При всей любви к Sketch, у меня не укладывается в голове — как отстающая компания продолжает делать на пол Фёдора? Если вы каждый месяц проигрываете гонку за пользователей, то надо быть минимум на шаг впереди по новым фичам, а не огрызки показывать. Не знаю как вы, но я всё чаще замечаю как компании злоупотребляют сырыми продуктами, которые преимущественно не доходят до нормального вида, обрастают костылями и жду своих редизайнов с переосмыслением годами. Все эти попытки выпустить MVP побыстрей, чтобы получить заветную обратную связь, чтобы потом улучшить свою идею, по факту стали мечтами и превратились в инструмент лени с плохим планированием. У MVP понятный принцип, он должен быть простым, но функциональным, чтобы пользователи могли оценить идею и её потенциал. Но в итоге мы часто видим сырое дерьмище, а не функциональное вкусняшку. Вместо того, чтобы работать над полноценным продуктом, компании создают пылесосы для денег, а план по экономии времени и ресурсов исчезает через пару месяцев. Использование MVP должно быть осознанным решением, основанным на стратегии дальнейшего развития, например: у PO с дизайнером продукта есть финальная картина в голове, её пилят на малые части и эти части делают пиздато, первую часть релизят как MVP. Вот это лайк, вот это кайф. В современном мире, где технологии и инновации развиваются стремительными темпами, а многие стремятся создать минимально жизнеспособный продукт, кажется, залог успеха — ставить качество в приоритет. 🕳 🎞Добавил видео отображающие моё отношение к происходящему вокруг: рандомная компания год делала свой MVP с кучей компромиссов и ограничений и накопила большой технический долг. В итоге выпустила кал, который никому не нужен, но за то получили обратную связь — «Мы подтвердили гипотезу, пользователям нужны двери и стекла, а ещё им важны удобные сидения с ремнями безопасности». #мысли#dev

by makstorch

@bymakstorch · Post #445 · 07.07.2023 г., 10:03

💬Threads → 📸 Stories Да-да-да, клон твиттера, но без анархии Маска и не ясно чем по итогу нужно пользоваться, но я хочу вбросить тему про Add to story. Threads хорошо напомнил всем нам, как можно работать с Facebook SDK по публикации в Stories/Posts. Ребята заюзали свой же соседний сервис для дополнительного охвата и сделали красиво. На моей памяти Yandex Drive в свои времена аналогично использовал SDK инсты для шэринга промокода. Сейчас они убрали кнопку перехода в Stories (наверно затрахались следить за обновлениями в SDK), добавил пример. Других ярких кейсов не могу сходу назвать, если что, пишите в комменты. Глядя на такую хорошую реализацию Threads, в которой они поддерживают локаль + стиль темы, я в свой чек-лист по созданию проектов добавил пункт — «Возможность использования Add to story». Вариантов использования может быть много, например: 🍷 Доставка товаров/винный — карточка с рейтингом, ценой, сочной фоткой товара/бутылкой вина 💳 Финансы — карточка с курсом валюты или тариф/карта с бонусами 🎞 Стриминговый сервис — карточка с обложкой видео/трека, просмотры/прослушивания, длительность 👍 Принцип вы поняли 𐄂 𐄂 𐄂 Продукт через свою аудиторию получает дополнительный канал упоминаний и присутствия, а по тапу переход в прилож/сайт, профит. Ⓜ️SDK for Developers #мысли#dev

by makstorch

@bymakstorch · Post #1001 · 12.09.2024 г., 09:27

🍏Camera Control Кажется, Эппл задал новый тренд для китайских телефонов и скоро мы увидим множество похожих на Camera Control кнопок 🥱 Я почитал спеку и там есть интересные моменты, смотрите: ✓ Данный контрол может использоваться только для приложений, которые работают с камерой (иначе будет реджект по HIG) ✓ Внутри контрола можно использовать только SF Symbols ✓ Если вы ранее использовали кнопки на превью камеры — переносите их в новое меню 🤤 🔗HIG Camera Control Теперь вы тоже вооружены, чао! P.s. Есть ещё прикол с камерой. 11 лет назад в iPhone 4 уже был слайдер переключения режимов как в новой iOS. Вот так камбэк :) #apple#dev

Hashtags

by makstorch

@bymakstorch · Post #225 · 01.03.2023 г., 06:00

Делай раз, делай два, Air Pods считает за тебя Вы знали что через AirPods можно слушать музыку, аудиокниги и вообще какой-то аудиопоток? Понятно что знали, вы же не дикари. А знали что в AirPods (3-го поколения), AirPods Pro, AirPods Max и Beats Fit Pro есть датчиками движения, через которые можно: • Считать прыжки • Считать количество приседаний/отжиманий/других упражнений • Использовать iPhone/iPad как микрофон и транслирует звук прямо в наушники Для всех кто пилит свои приложки про фитнес, спорт или что-то смежное, можно использовать real-time sensor API для лучшего UX и погружения: 🍏CMHeadphoneMotionManager 🧰Code Examples на GitHub 🕹Headphone Motion Unity Plugin Рефы: Fitnexx, YaoYao, Posture Pal, Live-прослушивание #apple#dev

Hashtags

12•••5•••910111213•••15•••20•••25•••30•••35•••40•••45•••50•••55•••60•••65•••70•••7273