タグ

TypeScriptに関するAkinekoのブックマーク (409)

  • Branded Type ベストプラクティス 検索 - Qiita

    皆さんこんにちは。これは株式会社カオナビ Advent Calendar 2024の18日目の記事です。 今回は、TypeScriptにおけるBranded Typeについて、筆者が考えるベストプラクティスを紹介します。Branded Typeという概念はTypeScriptエンジニアの間で比較的広く知られていますが、(筆者的には)ベストではないやり方が紹介されていることが多いと感じます。この記事では筆者が一番いいと思っている方法を説明しますので、そうだなと思った方はいいねや拡散をしていただけると嬉しいです。 既存の記事でも、筆者の考えるベストプラクティスに近いものが説明されているいい記事はすでにたくさんあります。なので、未だにそれ以外の説明が使われることがあるのは少し不思議なのですが、状況をさらに改善するために筆者も記事を書くことにしました。 そのため、この記事が特段新しい知識を提供する

  • Re: type-challengesから始めるTypeScript実践演習 おかわり 上級編

    書執筆時点での上級編の全問に実際に取り組み、解説と解答例を収録しました。書では各章の最初にそのPartの問題を解くために必要なTypeScriptの知識を解説します。その後、実際にtype-challengesの問題を実践します。各問には問題を解くためのヒントも掲載しているので困ったら読んでみてください。以上のように、座学→実践という形式でTypeScriptの型システムを学ぶことを目指します。

    Re: type-challengesから始めるTypeScript実践演習 おかわり 上級編
  • Cloud Run 関数でのFunctions Framework導入まとめ(TypeScript)

    はじめに Cloud Run 関数について Functions Frameworkについて コードサンプル ディレクトリ package.json tsconfig.json index.ts トリガー別のCloud Run関数 HTTP関数 ローカルでのテスト(HTTP関数) デプロイ(HTTP関数) Cloud Storage イベント ローカルでのテスト(Cloud Storage イベント) デプロイ(Cloud Storage イベント) Pub/Sub ローカルでのテスト(Pub/Sub) デプロイ(Pub/Sub) 終わりに はじめに こんにちは。GMO NIKKO の KONCE です。 今回は Cloud Run 関数について Functions Framework と TypeScript を導入する機会があったので方法と Cloud Run 関数のそれぞれのトリガーに

    Cloud Run 関数でのFunctions Framework導入まとめ(TypeScript)
  • TypeScriptのコードをRustで書き直した話

    モニクル Advent Calendar 2024の12日目の記事です. はじめに モニクルの開発組織では,TypeScriptをプロダクトを作るときの最初の選択肢として採用しており,Node.jsをランタイムとした一般的なJSの技術スタックでの開発を行っています. そんな中でNode.jsのパフォーマンスに課題を感じ始め,一部のコードをRustで書き直すという作業を行いました. Node.jsに感じた課題 あらゆるサービスが稼働しているだけでお金を生み出してくれると良いのですが,残念ながら全てのサービスがお金を生み出すわけではありません.サービスを稼働させるコストがかかっているのであれば,そのコストをできる限り削減したいと思うのは組織としては一般的なことだと思います. そんな中,サービスの一部がインスタンスのメモリーリミットに引っ掛かるようになりました. 通常ウェブアプリケーションのサー

    TypeScriptのコードをRustで書き直した話
  • TypeScript の Discriminated Union と Haskell の代数的データ型 - 一休.com Developers Blog

    この記事は 一休.com Advent Calendar 2024 の15日目の記事です。 予定より早く書き上げてしまったので、フライングですが公開してしまいます。 TypeScript の Discriminated Union (判別可能な Union 型) を使うと、いわゆる「代数的データ型」のユースケースを模倣することができます。一休のような予約システム開発においては「ありえない状態を表現しない」方針で型を宣言するためによく利用されています。 「あり得ない状態を表現しない」という型宣言の方針については以下の URL が参考になります。 Designing with types: Making illegal states unrepresentable | F# for fun and profit このユースケースで Discriminated Union を使う場合、それは文字

    TypeScript の Discriminated Union と Haskell の代数的データ型 - 一休.com Developers Blog
  • 【2024年12月】Next.jsで新規アプリの構成と開発でのLLM活用

    選定の方針 ログイン機能があるような、ユーザーが極端に多くないサービスを想定しています。 開発効率の重視して、出来るだけWebアプリ開発に集中できる構成を目指しています。 コスト理由で中断しないように、個人でも支払える費用感を意識しています。 EditorはCursorがおすすめ 開発用のエディタはCursorがおすすめです。 LLMへの質問や修正を依頼する時に、修正対象と一緒に関連しそうなコードも送ってくれるので質問に対する回答の精度が高くなる (既存のコードに合わせた回答・修正をしてくれる) コードをLLM側の学習に使わないようにしてくれる設定もあるのでセキュリティ的にも安心 (1) エディタ右上の歯車のマークをクリック (2) Privacy Mode を enabled に変更する より詳細な機能の解説はこちらの記事がわかりやすかったです。 (僕は契約できていませんが、GitHub

    【2024年12月】Next.jsで新規アプリの構成と開発でのLLM活用
  • Full-Stack TypeScriptの最終到達点、T3-Turboで新規開発した話

    はじめに この記事はTSKaigi Advent Calendar 2024の記事です。(TSKaigiの運営メンバーとして最初の記事になりそうです。) みなさん、TypeScript書いてますか?最近、フロントエンドもバックエンドも(加えてインフラも)TypeScriptで統一する、Full-Stack TypeScriptを採用する事例が増えてきました。 Full-Stack TypeScriptの由来やメリットはこちらの記事から フロントもバックもTypeScriptだし、どうせならMonorepoで管理しようということで、TypeScript専用のMonorepo管理ツールであるTurborepoを導入し、T3-Turboというアーキテクチャを導入することになりました。 T3-Turboというアーキテクチャは、以前導入を考えた際に記事にしているので、こちらをご参照ください。 またT

    Full-Stack TypeScriptの最終到達点、T3-Turboで新規開発した話
  • Re: type-challengesから始めるTypeScript実践演習 初級〜中級編

    書執筆時点での初級〜中級編の全問に実際に取り組み、解説と解答例を収録しました。書では各章の最初にそのPartの問題を解くために必要なTypeScriptの知識を解説します。その後、実際にtype-challengesの問題を実践します。各問には問題を解くためのヒントも掲載しているので困ったら読んでみてください。以上のように、座学→実践という形式でTypeScriptの型システムを学ぶことを目指します。

    Re: type-challengesから始めるTypeScript実践演習 初級〜中級編
  • NoInfer<T>の活用例見つけた - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

  • 【後編】TypeScript×関数型×DDDで、ユニットテストが激減。実践の全貌とTips【Open Developers Conference 2024 レポート】 | レバテックラボ(レバテックLAB)

    TOPコラムテック最前線レポート【後編】TypeScript×関数型×DDDで、ユニットテストが激減。実践の全貌とTips【Open Developers Conference 2024 レポート】 【後編】TypeScript×関数型×DDDで、ユニットテストが激減。実践の全貌とTips【Open Developers Conference 2024 レポート】 2024年11月18日 株式会社一休 CTO 伊藤 直也 大学院卒業後、新卒で入社したニフティ株式会社にて、ブログサービス「ココログ」を立ち上げ。2004年、株式会社はてなに入社、CTOに就任。「はてなブックマーク」などの開発を主導。2010年以降はグリー株式会社にて、ソーシャルメディア統括部長を務める。その後フリーランスを経て、2016年4月に、技術顧問を務めていた株式会社一休に入社。執行役員CTOに就任 X GitHub 2

    【後編】TypeScript×関数型×DDDで、ユニットテストが激減。実践の全貌とTips【Open Developers Conference 2024 レポート】 | レバテックラボ(レバテックLAB)
  • 【最強】Honoフル活用事例2024年

    Hono アドベントカレンダー 2024 初日担当の おりばー です。 記事では、11 月にリリースした漫画プラットフォーム「comilio」の開発事例をもとに、とにかく Hono が最強だということをつらつらと書いていく記事となります。 個人的 2024 年ベストオブ優勝フレームワークは Hono 一択です。Hono が無ければ、おそらくプロダクトを今もリリースできていなかったと言っても過言ではありません。 ぜひこの記事を参考にして、0 -> 1 を立ち上げる際は Hono を積極的に採用してもらえればと思います。 また、Hono という最高のプロダクトを生み出してくれた @yusukebe さんには全身全霊を持って感謝します。 「comilio」のインフラ構成 まず、今回の実例である漫画プラットフォーム「comilio」の構成を紹介します。 「comilio」では TypeScrip

    【最強】Honoフル活用事例2024年
  • TS ユーザーが初見の Haskell を写経して型への認識をすこし改めた記録

    この記事は「レバテック開発部 Advent Calendar 2024」の 1 日目の記事です! TL;DR TypeScript ユーザーが Haskell を写経しながら学んでいった記録です 題材は「JSON Parsing from Scratch in Haskell」で、この記事自体はこれのコードリーディングのメモみたいなものになります うまく言えないのですが、型に対するメンタルモデルが変わった感じがしました 初日から長ったらしい記事を書いてしまったので、早めにまとめが来るような書き方をしました。そこだけでも読んでいただければ🙏 はじめに レバテック開発部でバックエンドエンジニアをしている瀬尾です! テックブログ運営も担当しており、今年はアドベントカレンダーを企画しました〜 その 1 日目として今回の記事を書いています。 バックエンドといえば、関数型スタイルで書くと型システムを

    TS ユーザーが初見の Haskell を写経して型への認識をすこし改めた記録
  • イテレータとイテラブルの概要と課題、未来

    JSConf JP 2024

    イテレータとイテラブルの概要と課題、未来
  • Type-Safe Lightweight DDD with Effect Schema

    Previous slideNext slideToggle fullscreenOpen presenter view Type-Safe Lightweight DDD with Effect Schema Yuichi Goto | JSConf JP on November 23, 2024 Who I am Yuichi Goto @_yasaichi @yasaichi.bsky.social @yasaichi Professional Background Backend Engineer since 2015 Co-author of Perfect Ruby on Rails Working at EARTHBRAIN since 2023 About EARTHBRAIN Founded in July 2021 200 employees (including 50

    Type-Safe Lightweight DDD with Effect Schema
  • TypeScript開発にモジュラーモノリスを持ち込む - Sansan Tech Blog

    Bill One Entry*1の秋山です。 題へ入る前にお知らせです。12/23、TypeScript を活用した型安全なチーム開発をテーマにイベントを開催します。弊社社員のうち、TypeScript を日々の開発で活用しているメンバーが登壇します。ぜひお気軽にご参加ください。 sansan.connpass.com はじめに モジュラーモノリスとは 保守性が低いとビジネスに悪影響を与える 技術的負債と開発生産性 コード品質とビジネス影響 モジュール分割の方針 方針1:モジュールにDBテーブルを専有させる 補遺:モジュラーモノリスとNoSQL 方針2:モジュール内をレイヤードアーキテクチャとして構成する 方針3:ESLint ルールによって実現する TypeScript 開発にモジュラーモノリスを持ち込む ステップ1:単一のエイリアスを設定する ステップ2:ESLint ルールを設定す

    TypeScript開発にモジュラーモノリスを持ち込む - Sansan Tech Blog
  • TypeScriptで関数を書くときに気をつけている事

    TypeScriptで関数を書く際に、気をつけていることを記載しました。 BMIを計算する処理を例にして説明いたします。 引数をobject形式にする 引数をobject形式にする事で名前付き引数に近い形式になり、順不同になります。引数の順番に意味が無い関数でも、使用時にどの順番で引数を渡すか迷う事がありません。 const calculateBMI = (p: { height: number; weight: number }) => { // BMIの計算処理 }; calculateBMI({ height: 170, weight: 60 }); calculateBMI({ weight: 60, height: 170 }); 以下は、引数がobjectではありません。この関数だけ見ると特に違和感は無いと思います。しかし、上記に比べると情報量が減ります。特にheight, w

    TypeScriptで関数を書くときに気をつけている事
  • 毎秒現在地を使った最近傍探索をしたい - Mobile Factory Tech Blog

    こんにちは。駅メモエンジニアの id:dorapon2000 です。 約半年前の 6 月 1 日にステーションメモリーズ!(駅メモ!)10 周年を記念してタイムラインと地図の切替機能をリリースしました。大変好評を頂いておりとても嬉しいです。 今回は、その機能の中で毎秒最寄り駅を計算するロジックをどのように実現しているのかについてお話します。様々なスペックの端末で遊ばれているため、可能な限りリソースを節約するような工夫をしました。堅い言い方をすれば、過去の計算情報を使った最近傍探索アルゴリズムを実装しました。 記事中のサンプルコードは TypeScript で記述しています。 2024/11/22 追記: はてなブックマークでのご指摘ありがとうございます。 ご指摘をいただいた「事前計算の時間計算量」と「基準点と現在地の距離が近すぎるとき」の説明部分を修正しております。 誤:事前計算を O(N

    毎秒現在地を使った最近傍探索をしたい - Mobile Factory Tech Blog
  • 俺のフロントエンド依存管理ポリシー20241120

    ポリシー: この世界では常に最新版を使うという気持ちで生きていく Node.js は枯れるという概念がなく、常に古いことはリスク という認識。LTS も短め(3年) 古いAPIのドキュメントは常に消失する モダンなツールは、モダンな前提を要求する ~2020: CJS/ESM 関連で断絶がある(jestが動かなくなりつつある) ~2019: パフォーマンス意識が低い時代の実装が多い ~2015: Node.js のみでしか動かないものが多い。peerDeps の意識が低い この辺で目視でポチポチする npm: npm-check-updates - npm yarn upgrade-iteractive pnpm upgrade -i サーバーランタイムには安定を、ツールチェインにはパフォーマンスを サーバーランタイム(Node.js) Node 体は Stable LTS か、一つ前の

    俺のフロントエンド依存管理ポリシー20241120
  • tslogで実現するセキュアなメタデータ管理とロギング

    こんにちは、sugar-catです。 はじめに 皆さんはTypeScriptでバックエンド開発を行う際に、どのようにロギングをしていますか。 この記事では、TypeScript製のロギングライブラリであるtslogの紹介と、その内部の仕組み、秘匿情報を含むログを出力しないための方法について解説します。 ログの種類 この記事ではアプリケーションログを扱います。アプリケーションコンテナで出力された標準出力を収集し、任意の監視ツールに送信し表示されるようなログを指します。 アクセスログや監査ログ、システムログのようなものは扱いません。 tslogとは tslogTypeScript製で作成された、構造化ロギングを行うためのロギングライブラリです。 主な特徴として、Node.jsとブラウザのどちらにも対応しており、他のロギングライブラリと異なり外部のライブラリへの依存が一切ない点や、コードベース

    tslogで実現するセキュアなメタデータ管理とロギング
  • TSKaigi Kansai 2024の参加(登壇)体験がとってもとっても良かった件|Kanon

    みなさんこんにちは、Kanonです! この度TSKaigi Kansai 2024に参加&登壇をしてきました。 「参加レポートを書くまでがカンファレンス」がオレルールなのでやっていき。ちなみにこの感想ブログは深夜のカラオケボックスで書いてます。終電を逃したので。 先に結論を書くと、登壇者であり参加者でもあったカンファレンスの中で一番満足度が高かったかもしれません。具体的に何がよかったのかはこのあと詳しく書いていきます。 魅力的なセッションが多かった…というか全部なまであるあくまで僕はですが、この記事に書いてる通り今の価値観だとカンファレンスに最も求めていることは自分の技術力向上に寄与しそうな度合いが高いそうかどうかです。 今回のTSKaigi Kansai 2024は実はタイムテーブルが発表されたときから、もうずっと楽しみでした。どのセッション(LT)もタイトルと概要を見て「どういう話なん

    TSKaigi Kansai 2024の参加(登壇)体験がとってもとっても良かった件|Kanon