タグ

typeに関するsh19910711のブックマーク (24)

  • mypyの10年、pyrightの5年 tyの挑戦 - 型チェッカー進化論 -

    型チェッカーの歴史と性能比較について少しだけ掘り下げます

    mypyの10年、pyrightの5年 tyの挑戦 - 型チェッカー進化論 -
    sh19910711
    sh19910711 2025/10/25
    "型ヒント標準化: 2015年はPythonの型元年 + PEP 484(Type Hints)が採択 + Python 3.5にtypingモジュールが追加 / pyright: mypyが発見できないエラーを検出することもある"
  • わいわいswiftc開発合宿 at 湯河原 おんやど恵〜型推論アルゴリズムを学ぶ|sonson

    Swift Compilerとその周辺技術に関する勉強会,わいわいswiftcの中で開発合宿に行ってきました.場所は,湯河原のおんやど恵さんです. お題今回の合宿のお題は,「Swiftコンパイラの型推論を学ぶ」です.具体的には,おもちメタル氏お手製の型推論ライブラリの未実装の部分を各員が穴埋めし,すべてのテストをパスさせることがお題です.前回わいわいswiftcで発表された型推論のアルゴリズムの発表を聞いたメンバーは早速作業開始で,それ以外のメンバーは,おもち(メタルってかくの面倒だな)氏の発表をここで再度聞き,穴埋めスタートと相成りました. 今回のお題に関する発表資料 場所湯河原のおんやど恵という旅館でやりました.電源タップ,お茶,水が提供されます.オプションで,ホワイトボード,プロジェクタ,スクリーンを借りました.我々は,20人くらいが余裕で入る会議室を借りて,合宿を行いました.会議室

    わいわいswiftc開発合宿 at 湯河原 おんやど恵〜型推論アルゴリズムを学ぶ|sonson
    sh19910711
    sh19910711 2025/10/18
    2019 / "湯河原のおんやど恵という旅館 / オプションで,ホワイトボード,プロジェクタ,スクリーン + 20人くらいが余裕で入る会議室"
  • SQLModel入門〜クエリと型〜

    sh19910711
    sh19910711 2025/10/06
    2024 / "SQLModel: Pydanticと同じ簡潔なモデル定義とSQLAlchemyの豊富なクエリメソッド / 取得・更新やユーザータイプでモデルを分割する"
  • sqlcの「無謀な試み」— MIN(timestamp)の型推論がなぜ難しいのか | Resilire Tech Blog

    はじめに サプライチェーンリスク管理クラウドサービスResilireでエンジニアをしている奥村 @arashigaoka3です。 最近このxを拝見し、これをきっかけとしてHacker Newsのスレッドを見て、おもしろい内容だなと感じました。 Resilireではsqlcを採用しており、現状と今後の把握は非常に重要です。この記事では、sqlcで採用されているbuilt-in analyzerとdatabase-backed analyzerについて説明します。 built-in analyzer の狙いとメリット 私がsqlcに感じているメリットとして、SQLからコード生成する際、通信をしない点が素晴らしいなと思っています。これによって安定して高速な開発体験が可能になっていると感じています。 これはsqlcに内蔵されたbuilt-in analyzerが実現しています。すなわち、sqlcで

    sqlcの「無謀な試み」— MIN(timestamp)の型推論がなぜ難しいのか | Resilire Tech Blog
    sh19910711
    sh19910711 2025/10/05
    "sqlcはdatabase-backed analyzerの路線を強化していくことを検討している / PostgreSQLではpgxを介してParse + DBが最終的に解決した型をそのまま採用"
  • 他の言語からRustを呼び出すときに便利なtypeshareの紹介

    この記事は Rust Advent Calendar 2022 18日目の記事です。 みなさんはRust書いてますでしょうか?私も最速を目指して日々実装しています。 この記事では、RustでWebやスマホアプリ向けのライブラリを実装したときに頭を悩ませる、型の二度書きを解消してくれるツールである、typeshareの紹介をしていきたいと思います。 ここで書かれたコードはここに上がっています。 Rustは他の言語から呼ばれることが多い 自分だけかもしれないですが、Rustを採用するプロジェクトではすべてをRustで実装するのではないことが多いです。Webアプリではメインはtypescriptで実装、スマホアプリだったらメインはそのプラットフォームやdart(Flutter)でバックエンドの場合はPythonRubyなどで実装して、速度・移植性・安全性などが必要な場合にワンポイントリリーフ的

    他の言語からRustを呼び出すときに便利なtypeshareの紹介
    sh19910711
    sh19910711 2025/09/27
    2022 / "typeshare: Rustで定義した型からホスト言語の型を生成 / RustでWebやスマホアプリ向けのライブラリを実装したときに頭を悩ませる、型の二度書きを解消してくれる"
  • Result型で“失敗”を型にするPHPコードの書き方

    PHPではtry-catchによる例外処理が一般的ですが、「どこで例外を処理すべきか?」「当にこの場面で例外を使うべきなのか?」と迷ったことはありませんか? 過剰なエラーハンドリングや、catchしたけれど何もしていない“握りつぶし”が積み重なると、責任の所在が曖昧になり、コードの見通しや保守性にも…

    Result型で“失敗”を型にするPHPコードの書き方
    sh19910711
    sh19910711 2025/09/27
    "ビジネスロジック上の失敗をResult型で表現する / Result型: try-catchとは別のエラーハンドリングのための型 / 関数のシグネチャから「この関数は失敗する可能性がある」ことが明示"
  • Python3.10からはじめる型ヒント / stapy74

    sh19910711
    sh19910711 2025/09/01
    2021 / "型変数について扱った書籍を私は見過ごしがちでなかなか観測できていないのですが、『ロバストPython』が少ない紙幅にもかかわらず分かりやすかった"
  • Honoとフロントエンドの 型安全性について

    DMMを支える決済基盤の技術的負債にどう立ち向かうか / Addressing Technical Debt in Payment Infrastructure

    Honoとフロントエンドの 型安全性について
    sh19910711
    sh19910711 2025/09/01
    "アプリ(Flutter)、WEB(Next.js)、管理画面(Next.js)の3つフロントがある / Next.jsには型をRPCで渡し、アプリにはOpenAPIで型を渡す"
  • 【Python 3.12】型ヒント機能がいつの間にか進化していたので、慌ててキャッチアップする - ABEJA Tech Blog

    ABEJA でプロダクト開発を行っている平原です。 先日、バックエンドで使っているGo言語のお勉強しようと「go言語 100Tips ありがちなミスを把握し、実装を最適化する」を読んでいました。その中でinterfaceは(パッケージを公開する側ではなく)受け側で定義するべきという記述を見つけてPythonでも同じことできないかと調べていると(PythonではProtocolを使うとうまくいきそうです。)、どうやら型ヒント機能がかなりアップデートされていることに気づき慌てて再入門しました。(3.7, 3.8あたりで止まってました。。) この記事では、公式ドキュメントを見ながら適当にコードを書き散らし、どの機能はどこまで使えるのか試してみたことをまとめてみました。 docs.python.org 環境 Python: 3.12.1 エディタ: Visual Studio Code Pylan

    【Python 3.12】型ヒント機能がいつの間にか進化していたので、慌ててキャッチアップする - ABEJA Tech Blog
    sh19910711
    sh19910711 2025/08/20
    2024 / "Python3.8から構造的部分型Protocolが使えるようになっていた / 受け手が何に使うのかの意図を示したり、モックするときに必要なメソッドのみ定義するだけでよかったりなどの使い道"
  • 代数的データ型がめっちゃええ。

    記事はUzabase Advent Calendar 2023の19日目の記事です。 はじめに 株式会社ユーザベース BtoB SaaS Product Team(以下 Product Team)の山室です。 チームシャッフル[1]でこの10月から新しい開発チームに移籍したのですが、そこで初めて関数型プログラミング言語であるF#に触れました。 F#について学んでいく中で「代数的データ型」という概念を知り、普段の開発で使っていくほどに「めっちゃええやん」だったので、今回は代数的データ型についてまとめたいと思います! 代数的データ型 is 何? 代数的データ型(Algebraic Data Type: ADT)とは、特に関数型プログラミングで使われる、型を組み合わせることによって作られる型で、次の2種類から構成されます。 直積型 直積型(Product Types)は「積(AND)」を表現す

    代数的データ型がめっちゃええ。
    sh19910711
    sh19910711 2025/08/11
    2023 / "型を組み合わせることによって作られる型 / 不正な状態を表現できないようにしやすいため、堅牢なシステムを構築するのにとても有用"
  • zodを用いた条件分岐バリデーションを実装してみる

    はじめに 1ヶ月後にモンスターハンターになる、ノベルワークスのりょうちん(ryotech34)です。 今回は、TypeScript向けに設計されたスキーマ宣言やバリデーションを助けてくれるライブラリである、zodを使用して条件分岐バリデーションを実装した際の備忘録です。 ドメインモデルとzodを組み合わせた実装方法として、下記の記事を参考にさせていただきました。ぜひ確認してみてください。 対象読者 zodに触れているもしくはこれから触ろうと思っている方 話さないこと zodの基的な記法 題 テーマ toB向けのサービスがあり、組織単位でベーシック、プロ、エンタープライズという3つのプランで契約できるとします。 そこでは、プランごとに毎月使用できるクレジットが制限されており、クレジットが制限値を超えると当該月では使用できないようにするという想定です。 やりたいこと 今回はプランが変更され

    zodを用いた条件分岐バリデーションを実装してみる
    sh19910711
    sh19910711 2025/08/03
    "プランが変更された場合、プランのタイプに合わせてスキーマまるごと変更を行い、不整合があれば型にしたがってエラーを吐かせたい / 最初こそ新しいzodの概念に揉まれて苦労したものの、拡張性があり便利"
  • PythonのProtocolとdependency-injectorでDIする

    概要 Python には他の静的型付け言語のような明確な interface キーワードがありませんが、それに代わる Protocol という概念を最近知りました。 そこで、個人的に好んで使っている「Service クラスに Repository を注入する」という DI(依存性注入)パターンを、この Protocol を使って Python でどう実現できるか試してみることにしました。 この記事では、dependency-injector も組み合わせ、その具体的な実装方法をサンプルコードと共に備忘録として残します。 今回使ったコードは以下に置いてあります。 Protocol でインタフェースを定義する まずはインタフェースを Protocol を使って定義します。 Protocol とは Python の Protocol は、Go 言語の interface に非常によく似た概念です

    PythonのProtocolとdependency-injectorでDIする
    sh19910711
    sh19910711 2025/07/28
    "Go 言語の interface に非常によく似た概念 / いわゆる構造的部分型(structural subtyping)と呼ばれ / 具象クラスと、それを利用するコードとの間に疎結合な関係を築くことができ、柔軟でテストしやすい設計が可能"
  • 型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request

    TSKaigi Kansai 2024 https://kansai.tskaigi.org/talks/euxn23

    型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
    sh19910711
    sh19910711 2025/07/28
    2024 / "誰がOpenAPIを書くか(=API仕様を決めるか)に応じて選択 / みんなで書くなら実装ベースじゃない方が議論もしやすい / TypeSpec: TypeScript/C#風味のDSLでOpenAPI Schemaを書ける"
  • Storybook の parameters の型をいい感じにして便利に使う

    Storybook の parameters Storybook の parameters は、Story や Component に静的なメタデータやパラメタを追加するための機能です。これらのパラメータは addon の設定や Story の表示方法のカスタマイズなどに利用されます。 // グローバルな parameters の設定 export const parameters = { backgrounds: { default: 'light', values: [ { name: 'light', value: '#f8f8f8' }, { name: 'dark', value: '#333333' }, ], }, }; // コンポーネントレベルでの設定 export default { component: Button, parameters: { background

    Storybook の parameters の型をいい感じにして便利に使う
    sh19910711
    sh19910711 2025/07/12
    "Story や Component に静的なメタデータやパラメタを追加するための機能 / Declaration merging は、同じ名前の型定義が複数ある場合に、TypeScript がそれらをマージ / Module augmentation は、既存のモジュールの型定義を拡張"
  • Rustのトレイト(trait)に衝撃を受けた - やわらかテック

    トレイト(trait)すごい 「コンセプトから理解するRust」を読んで衝撃を受けました...。 トレイト(trait)は今まで自分が出会ったことがない概念です。 コンセプトから理解するRust 作者:原 旅人技術評論社Amazon 多くの言語ではinterfaceや基底クラスを作って「あなたはこの関数orメソッドを実装してください」というルールを定めることが出来ます。pythonであれば、以下のコードのように基底クラスを作成して、継承させることで実装が出来ます。 from abc import ABCMeta, abstractmethod # 基底クラス class MonsterInterface(metaclass=ABCMeta): @abstractmethod def name(self): # nameの実装をルール化 pass class Slime(MonsterInt

    Rustのトレイト(trait)に衝撃を受けた - やわらかテック
    sh19910711
    sh19910711 2025/07/09
    2022 / "「コンセプトから理解するRust」 / Haskellにはtypeclassという概念がありましたが「必要なら実装してね」という点で非常に似ている"
  • TypeSpec を使い倒してる #kyotojs 22 / Use up TypeSpec

    Kyoto.js 22 https://kyotojs.connpass.com/event/321343/ Lightning Talk

    TypeSpec を使い倒してる #kyotojs 22 / Use up TypeSpec
    sh19910711
    sh19910711 2025/07/05
    2024 / "TypeSpec: TypeScript/C#っぽい風味にAPI Specを記述できるDSL/コンパイラ実装 / プログラミング言語的な作法でコード分割や再利用が可能 / JSON Schemaとしてやprotobufとしての出力"
  • pydantic-graphの中を見る

    pydantic-graphの中のコードを読みながら、どのように実装されているかを見てみました。 概要 AIエージェントライブラリであるPydanticAIの機能の一部にpydantic-graphがあります。 これは、Python用の非同期グラフおよびステートマシンを作るためのライブラリですが、なかなかこの機能単体で使用する場面は少ないと思います。 今回はこのライブラリがどのように実装されているかをコードを追いながら見ていきます。 文中のコード: https://github.com/hosimesi/code-for-techblogs/tree/main/pydanticai_graph PydanticAIとは PydanticAIは、生成AIのアプリケーションを作るためのPythonフレームワークです。前回の記事でも取り扱ったので、詳しくは公式ドキュメントとこちらを参照してくだ

    pydantic-graphの中を見る
    sh19910711
    sh19910711 2025/07/05
    "pydantic-graph: ノード間の繋がりであるエッジを、ノードが返すオブジェクトの型ヒントとして定義 + 型安全に複雑なワークフローやステートマシンを構築"
  • TypeScriptのための新しいパッケージレジストリ「JSR」の素晴らしさ - Qiita

    概要 この記事ではDenoからリリースされた新しいパッケージレジストリであるJSRについて紹介します。JSRはTypeScriptとES Modulesで実装されたパッケージのためのレジストリです。 JSRを利用することで以下のようなメリットを享受しながらパッケージを利用した開発を行うことができます。 ソースコードをもとにした充実したドキュメント ライブラリの実装をエディタ上で直接確認 JSRの仕組み JSRにはTypeScriptとES Modulesで実装されたパッケージのソースコードを直接アップロードします。JSRのWebサイト上でこのソースコードやコメントから自動生成されたドキュメントを読むことができるようになっています。例えばWebサーバライブラリのoakのページを見てみましょう。 パッケージ内のモジュールやクラスなどが階層化されたページになっています。 それらのページで型情報や

    TypeScriptのための新しいパッケージレジストリ「JSR」の素晴らしさ - Qiita
    sh19910711
    sh19910711 2025/07/05
    2024 / "JSR: Denoからリリースされた新しいパッケージレジストリ + Deno以外のJavaScript/TypeScriptランタイムから利用することも念頭 / TypeScriptネイティブな世界観"
  • 型付きアクターモデルがもたらす分散シミュレーションの未来

    関数型まつり2025の発表資料です https://2025.fp-matsuri.org/ https://fortee.jp/2025fp-matsuri/proposal/82478074-a43b-4d46-87a8-0742ed790e86

    型付きアクターモデルがもたらす分散シミュレーションの未来
    sh19910711
    sh19910711 2025/06/20
    "Apache Pekko: AkkaからフォークしたOSS + Scala APIのほか、Java APIあり + Erlang言語の影響が強い / Akkaが2022年に有償ライセンスBSLへ切り替わった"
  • Python型チェッカー ty を使ってみた話

    How to Create Impact in a Changing Tech Landscape [PerfNow 2023]

    Python型チェッカー ty を使ってみた話
    sh19910711
    sh19910711 2025/05/31
    "ty: rustのsalsaフレームワークをベースにしており非常に高速 + ruffやuvを開発している会社が開発 / salsa: rust-analyzerでも使われているオンデマンド計算のためのフレームワーク"