home.social

#дженерики — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #дженерики, aggregated by home.social.

fetched live
  1. Go 1.27: generic-методы, которых не видит reflect

    Go 1.27 (на момент написания rc3, финал обещают в августе) приносит generic-методы: метод наконец может объявить собственный тип-параметр. Взял golang:1.27rc3 в Docker и проверил, где у фичи границы. reflect новый метод не видит вообще, хотя go/types на том же типе показывает его в method set — метод доступен компилятору и недоступен через рефлексию, поэтому ни один интерфейс им не удовлетворить, а валидаторы и ORM его не заметят. Померил цену: на 200 инстанцирований с запретом инлайна бинарь с методом больше на 2264 байта, из которых 2000 приходятся на длину имён символов, а не на код; по времени разницы нет — это generic-функция с ресивером и тот же gcshape-стенсилинг. А вот что реально заметит прод на апгрейде: GODEBUG=asynctimerchan=1 теперь роняет процесс до main, encoding/json v1 на движке v2 меняет байты вывода на битом UTF-8, json.RawMessage обзавёлся String() и поменял ваши логи. Плюс замеры нового аллокатора: минус четверть времени на new(16 B) и ноль на 128 байтах. Читать дальше →

    habr.com/ru/articles/1072194/

    #Go #golang #Go_127 #дженерики #generic_methods #reflect #json #GODEBUG

  2. Как сделать типобезопасный клиент для Strapi: разбираем вывод типов из populate на уровне компилятора

    У любого запроса к Strapi есть неприятное свойство: форма ответа зависит от того, что вы попросили. Запросили статью без populate — в ответе только скалярные поля. Добавили populate: { category: true } — появилась вложенная категория. Добавили fields: ['name'] внутри populate — категория пришла обрезанной. Один и тот же эндпоинт возвращает десятки разных форм, и статический TypeScript-интерфейс ни одну из них честно не описывает: он либо врёт (обещает поля, которых в этом конкретном ответе нет), либо бесполезен ( any ). В этой статье я разберу, как решить эту проблему кодогенерацией: как достать схему из работающего Strapi, сгенерировать по ней TypeScript-клиент и — самое интересное — как заставить систему типов вывести форму ответа прямо из аргумента populate на этапе компиляции. Подход Prisma-подобный: возвращаемый тип метода зависит от того, что вы передали в вызов. Код — на TypeScript; клиент, на примере которого я всё показываю, open-source под MIT, ссылка в конце. Как это устроено

    habr.com/ru/articles/1059984/

    #TypeScript #Strapi #кодогенерация #вывод_типов #conditional_types #дженерики #tsmorph #Headless_CMS #Prisma #типобезопасность

  3. Дженерики в Go: три года спустя Когда в феврале 2022-го вышел Go 1.18 с дженериками, сообщество разделилось на два ...

    #golang #дженерики #Go #Go #1.18 #ограничения #типов #типобезопасные #контейнеры

    Origin | Interest | Match
  4. Подход к теме Generics

    Изучая Java и подойдя к теме дженериков осознал необходимость вернуться к некоторым азам, постепенно наматывая на ус новые знания. Для этого сформулировал для себя поэтапное рассуждение, которое помогло мне закрепить знания. Надеюсь поможет и еще кому-то. Это не всеобъемлющее представление о дженериках, а лишь некоторые аспекты, которые помогают понять часть проблематики, из-за которой они появились. Итак. Есть такой простейший код:

    habr.com/ru/articles/993522/

    #дженерики #generics #java

  5. Экономика должна быть экономной!
    Л.И.Брежнев

    Хороший дженерик ничем не хуже оригинала. Но - если он именно хороший!

    Очень хорошие дженерики делает Teva Pharmaceutical Industries.

    Но чаще всего к дженерика обращаются именно от бедности.

    "Дженерики заменят оригинальные препараты.

    Минздрав отменил регистрацию более 70 лекарств".

    #Россия
    #дженерики

    kommersant.ru/doc/8363994?from

  6. Книга: «Go на практике. 2-е изд.»

    Привет, Хаброжители! И так, вы освоили азы Go, что дальше? Чтобы создавать надежные и готовые к эксплуатации Go-приложения, вам нужно научиться реализовывать конкурентность, налаживать сетевые взаимодействия, получать доступ к файлам, использовать такие нативные протоколы передачи данных, как gRPC и TCP/REST, а также разбираться во множестве практических нюансов. В этой книге приводятся готовые решения, которые можно незамедлительно применить в повседневной работе.

    habr.com/ru/companies/piter/ar

    #go #рефлексия #генерация_кода #конкурентность #сетевые_взаимодействия #grpc #дженерики

  7. Российские фармпроизводители просят пересмотреть патентные требования для иностранных лекарств Российск...

    #Главное #Новости #дженерики #патент #патентная #защита #препаратов #Петр #Белый #Промомед

    Origin | Interest | Match
  8. Кратко о вариантности с примерами на TypeScript

    В теории типов вариантность описывает отношение между двумя обобщёнными типами (дженериками). Например, в каких обстоятельствах родительский тип может быть заменён дочерним, а в каких — нет, и так далее. На эту тему можно найти множество ресурсов, особенно таких, где всё описано длинно и сложным, формально-архитектурным языком. Мне бы хотелось создать короткую и простую памятку (с небольшими вкраплениями формализмов), к которой можно легко вернуться, если вдруг забудутся детали.

    habr.com/ru/articles/944074/

    #теория_типов #ооп #typescript #вариантность #дженерики #generics #ковариантность #контравариантность

  9. Гайд на полиморфизм. Что там под капотом?

    В прошлой статье мы рассмотрели теоретическую основу такого понятия как полиморфизм. Теперь же перейдем к рассмотрению что там «под капотом».

    habr.com/ru/articles/923178/

    #полиморфизм #дженерики #boxing #java #c# #net #js #kotlin #go #rust

  10. [Перевод] 14 интересных фич Python (возможно, не совсем pythonic)

    Python — один из самых широко используемых языков программирования в мире. Однако из-за его простоты, позволяющей быстро сделать что-то , он остаётся также одним из самых недооценённых. Если загуглить лучшие 10 продвинутых хитростей Python , то вы найдёте кучу постов или статей на LinkedIn с обзором тривиальных (но всё же полезных) вещей типа генераторов или кортежей . Я пишу на Python уже двенадцать лет, и за это время нашёл кучу очень интересных, недооценённых, уникальных или (как может кто-то сказать) «не-pythonic» хитростей, позволяющих по-настоящему расширить границы возможного для Python. Именно поэтому я решил собрать список из 14 лучших таких фич с примерами и дополнительными ресурсами на случай, если вы захотите изучить их глубже.

    habr.com/ru/companies/ruvds/ar

    #метаклассы #перегрузка #сигнатуры #дженерики #fстроки #кэш #ruvds_перевод

  11. Как управлять сборками в Go с помощью build tags

    Привет, Хабр! Вы когда-нибудь сталкивались с ситуацией, когда нужно собрать Go-приложение под несколько платформ? Или выключить часть кода в проде, оставив её активной в дев-среде? Возможно, вы просто хотите поддерживать разные версии сборки с кастомными фичами без тонны if runtime.GOOS == "windows" {} ? В этом вам помогут build tags.

    habr.com/ru/companies/otus/art

    #golang #дженерики

  12. Лучшие практики TypeScript: Строгая типизация, гибкость и производительность

    TypeScript давно стал неотъемлемой частью современного фронтенда, но чтобы действительно раскрыть его возможности и избежать подводных камней, важен опыт и осознанное применение его возможностей. В этой статье мы рассмотрим углубленные практики работы с TypeScript, которые могут улучшить производительность и читаемость кода в крупных проектах.

    habr.com/ru/articles/859016/

    #typescript #best_practices #типизация #Frontend #дженерики #Утилитарные_типы #чистый_код #javascript #types

  13. SQLAlchemy 2.0 + Python Generic, или как создать универсальный репозиторий для работы с БД

    Доброго времени суток, товарищи, эта статья, так скажем, продолжение предыдущей статьи об SQLAlchemy 2.0 для новичков , в этой статье мы узнаем что такое Python Generic и как его можно использовать в наших целях при взаимодействии с БД.

    habr.com/ru/articles/853326/

    #python #python3 #sqlalchemy_20 #sqlalchemy #generic #generics #типизация #пайтон #дженерики

  14. Вариантность обобщенных типов в картинках и простых примерах

    В большинстве статей на тему вариантности авторы слишком быстро погружаются в детали и сложные схемы, из-за чего у людей которые только пытаются понять саму идею опускаются руки. Но в большинстве случаев для понимания деталей необходимо разобраться в самом принципе, после чего понимание деталей становиться тривиальной задачей. А понять принцип проще, если показать все на картинках и самых простых примерах. В этом и заключается цель данной статьи — это быстрое понимание принципов инвариантности, ковариантности, контравариантности.

    habr.com/ru/articles/795083/

    #ковариантность #контравариантность #дженерики #инвариантность #java #ооп #обобщенные_типы

Share on Mastodon

Enter the server where you have an account.