並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 12 件 / 12件

新着順 人気順

ASTの検索結果1 - 12 件 / 12件

  • 最高の構文木の設計 2024年版

    Osaka RubyKaigi 04 https://regional.rubykaigi.org/osaka04/

      最高の構文木の設計 2024年版
    • ESLintがJSONとMarkdownのコードチェック機能をサポ―ト | gihyo.jp

      ESLintプロジェクトは2024年10月3日、ESLintがJSONとMarkdownのリンティングを正式にサポートしたことを発表した。 ESLint now officially supports linting of JSON and Markdown -ESLint ESLintはオープンソースのJavaScriptコードチェック(リンティング)ツール。JavaScriptやTypeScriptのコードを静的解析し、構文エラーやコーディング規約に違反がないか、等をチェックすることができる。 新たにサポートされたJSONリンティングは、@eslint/jsonというプラグインを使用して実行される。このプラグインはJSON、JSONC (⁠コメント付きJSON⁠)⁠、JSON5の解析機能を提供するもので、npmからインストールすることができる。 また、Markdownリンティングは@e

        ESLintがJSONとMarkdownのコードチェック機能をサポ―ト | gihyo.jp
      • GraphQLのダイエット術 TypeScript Language Service Pluginで未使用フィールドをなくす

        はじめに GraphQLは、API開発において柔軟性と効率性を提供する強力なツールです。しかし、クエリの記述が自由な分、クライアント側で不用意に多くのフィールドを要求してしまうと、パフォーマンス低下や保守性の悪化につながる可能性があります🥲 本記事では、TypeScript Language Service Pluginの1つであるGraphQLSPを活用し、GraphQLクエリの"ダイエット"、つまり未使用フィールドの削減を実現する方法を紹介します。 ※ この記事はTSKaigi Kansai 2024で共有した内容を記事にしたものです。 GraphQLの課題と対策 over fetching問題 GraphQLは、クライアントが厳密に必要とするデータのみを要求できるため、REST APIに比べてオーバーフェッチによるパフォーマンス低下を抑えることができます✊しかし、GraphQLでも

          GraphQLのダイエット術 TypeScript Language Service Pluginで未使用フィールドをなくす
        • LRパーサーはいいぞ

          Kernel/VM探検隊@関西 11回目「LRパーサーはいいぞ」の発表スライド https://kernelvm.connpass.com/event/347564/

            LRパーサーはいいぞ
          • ts-blank-space

            What is ts-blank-space? ts-blank-space is a fast type-stripping compiler that converts TypeScript to JavaScript. It supports a modern subset of TypeScript by erasing the types and replacing them with whitespace. That's it. It is not a type checker and does not perform any other code transformations. The underlying technique can improve build performance and simplify development. The implementation

            • GraphQL 界の Babel こと Envelop を使ってスキーマの破壊的変更をごまかす

              この記事は LayerX のエンジニアブログがたくさん出る #ベッテク月間 の8記事目になります。こちらのカレンダーに、これまでの記事と今後出る予定がまとまっています。 LayerX のバクラク事業部には GraphQL Gateway というバクラク全プロダクトから参照される GraphQL スキーマが存在します[1]。今回の記事は、その GraphQL Gateway のスキーマをより良い状態にしていくためにぶつかった課題を強引に突破したときの話です。 モチベーション GraphQL スキーマの破壊的変更によって GraphQL Document がスキーマに適合しなくなる場合、そのリクエストはエラーになります。例えば以下のようなケースが考えられます: 使わなくなったフィールドを削除したい 削除されたフィールド(存在しないフィールド)を含む Document を処理することはできない

                GraphQL 界の Babel こと Envelop を使ってスキーマの破壊的変更をごまかす
              • JSで書かれたECMAScript RegExpパーサーの比較 | Memory ice cubes

                OXCで正規表現パーサーを実装してるときに全部一通り読んでみて、みんな違ってみんな良いってなったので。 候補はこちらの3つ。 https://github.com/jviereck/regjsparser https://github.com/DmitrySoshnikov/regexp-tree https://github.com/eslint-community/regexpp かのAST Explorerでも、RegExp部門ではこの3つがリストにある。 AST explorer https://astexplorer.net/ 前提 ECMAScript本体だと、ESTreeというデファクトがあるけど、残念ながらRegExpにはない。 ESTreeでのRegExpの扱いはこんな感じで、ただの文字列でしかない。 interface RegExpLiteral <: Literal

                  JSで書かれたECMAScript RegExpパーサーの比較 | Memory ice cubes
                • TypeScript の codemod ツール開発時の失敗談と得た知見メモ

                  更新履歴 (2025-05-15) ts-morph の API で躓いたポイントの具体例を追記 (2025-05-13) 公開 Codemod とは Codemod(コードモッド)とは、"Code Modification"(コード修正)の略語で、プログラムを使ってコードベース全体にわたる変更やリファクタリングを自動的に行うプロセスや、そのためのツールを指します。 手作業で一つ一つコードを修正する代わりに、スクリプト(codemodスクリプトやトランスフォームと呼ばれる)を実行することで、大規模なコードベースに対しても一貫性のある変更を効率的かつ正確に適用することを目的としています。 主な目的と用途: APIの変更への追従: ライブラリやフレームワークがバージョンアップし、古いAPIが非推奨になったり、使い方が変わったりした場合に、コードベース全体の該当箇所を新しいAPIの呼び出し方に自

                    TypeScript の codemod ツール開発時の失敗談と得た知見メモ
                  • Slack、ASTと大規模言語モデルを組み合わせて15,000の単体テストの80%を自動変換する

                    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

                      Slack、ASTと大規模言語モデルを組み合わせて15,000の単体テストの80%を自動変換する
                    • Grit

                      Grit automatically fixes technical debt by combining static analysis and machine learning to generate pull requests that clean up code and migrate to the latest frameworks.

                        Grit
                      • TypeScriptのコード分析を楽にする ts-morph入門

                        この記事はTSKaigi Advent Calendar 2024 19日目の記事です。 1. ts-morphって何? TypeScriptプロジェクトを扱っていると、こんな作業で困ったことはありませんか? 「この関数をリネームしたいけど、使用箇所が多すぎて心配...」 「新しいフィールドを追加したら、関連する型定義も全部直さないと」 「外部APIのレスポンス型定義があるけど、バリデーション関数を手書きするのが大変」 このような作業を手動でやろうとすると、ミスのリスクが高く、膨大な時間がかかってしまいます。 ts-morphの役割 ts-morphは、TypeScriptのソースコードを扱うためのツールキットです。 以下のような作業を安全に自動化できます: コードの解析:クラスやインターフェース、関数の定義を探して、その内容を調べる 型情報の取得:変数や関数の型を正確に把握する コードの

                          TypeScriptのコード分析を楽にする ts-morph入門
                        • Legacy Modernization meets GenAI

                          Shodhan Sheth is head of Enterprise Modernization and Principal Technologist at Thoughtworks. He is always looking to apply technology towards positive business outcomes Since the release of ChatGPT in November 2022, the GenAI landscape has undergone rapid cycles of experimentation, improvement, and adoption across a wide range of use cases. Applied to the software engineering industry, GenAI assi

                            Legacy Modernization meets GenAI
                          1