並び順

ブックマーク数

期間指定

  • から
  • まで

81 - 120 件 / 528件

新着順 人気順

ASTの検索結果81 - 120 件 / 528件

  • ESLint 0.1.0がリリースされたので、JSHintとの違いやプラグインの書き方について

    プラグイン機構を持っているので、Lintするルールを追加できる ESLint 本体のコードがシンプルに保たれる Mozilla JavaScript AST をベースとしているため、他のものと連携しやすい EsprimaでパースしたASTをLintする two-pass のツール つまりEsprimaでパースできないとLintはできない また、現段階だと巨大なjsファイルではJSHintより3倍程度遅い Rule performance などにまとめられている、速度については今後改善していくとのこと JSLint/JSHint互換のようなルールが作られている – ESLint Rules List Node.js で書かれているツール 将来的には Browserified されたバージョンも出す予定 ドキュメントがよく書かれている それぞれのルールごとにドキュメントが書かれている esli

      ESLint 0.1.0がリリースされたので、JSHintとの違いやプラグインの書き方について
    • Markdown を拡張する話

      at Markdown Night 2017 Summer

        Markdown を拡張する話
      • PythonのコードをPython ASTベースでRubyに変換を行う py2rb.py 0.1.0 をリリースしました。 - @naitohの日記

        去年の8月に RejectKaigi 2017 にて発表した、「PythonのコードをPython ASTベースでRubyに変換を行う py2rb.py」が、初版公開できるレベルになったので、python のパッケージとして PyPIで公開しました。 pypi.python.org github.com py2rb.py は、Pythonの機械学習関連のライブラリ、特に Chainer を Ruby に移植するためにPythonからRubyへのトランスコンパイラを作成している位置づけになります。 py2rb.py 開発の経緯の詳細は、下記 blog をご覧ください。 naitoh.hatenablog.com 特徴 Python ASTベースで1行単位にRubyへ翻訳 Python => Ruby (メソッド,クラス,変数) : decorator や yield 等は未サポート impo

          PythonのコードをPython ASTベースでRubyに変換を行う py2rb.py 0.1.0 をリリースしました。 - @naitohの日記
        • node modules なし blog を作っている話 | maxmellon's blog

          node modules なし blog を作っている話今年の9月頃から,no dependencies で blog を作っています.(devDependencies には,jest と TypeScript を入れています) 正直,フレームワークを使えば blog くらいならすぐ作れるだろうと思っていたのと, フレームワークの使い方を覚えることが自分の成長に大きくつながるとは感じることができず, やっていて楽しい + 学習する余地がありそうな no dependencies で blog を作ることにしました. リポジトリはこちらです maxmellon/kajitsu 機能要件を考えるざっくり,自分がほしいなと思った要件を整理すると, markdown で記事を書きたいblog だけじゃなくて cookie や Cache-Controll header などを検証できる sandb

          • 何となく勉強した気分になれるパーサ入門

            入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation

              何となく勉強した気分になれるパーサ入門
            • OpenAPI SchemaからTypeScript Code Generatorを作ったので紹介します

              他言語からTypeScriptに変換する記事を観測したので、JSONSchemaを経由してTypeScriptのコードに吐き出すライブラリを作りました。本記事のコアロジックの部分を抽出した形です。 OpenAPI TypeScript Code Generatorとの違いとして、ルートの名前空間を廃止しているので、割と自由に書ける様になってます。 https://www.npmjs.com/package/@himenon/jsonschema2ts

                OpenAPI SchemaからTypeScript Code Generatorを作ったので紹介します
              • TypeScriptリポジトリの歩き方 - Qiita

                * こちらはオプトテクノロジーズ社内勉強会での発表資料になります TypeScript リポジトリの歩き方 TypeScript のコードリーディングのはじめの一歩としてどこから手を付ければ良いのかを知る手助けになればと思いこさえました 目次 コードベースの概観についてドキュメントから知る 実装のエントリポイントから読み進める 動かして試す 自分が実際にコードリーディングしたときの例 コードベースの概観についてドキュメントから知る まず TypeScript の内部アーキテクチャの概観について知っていきましょう TypeScript の wiki が大変参考になります Architectural Overview: コード上のコンポーネントを図示しつつ説明している Layer Overview や全体で利用されているデータ構造を説明する Data Structures といった、実装を理解

                  TypeScriptリポジトリの歩き方 - Qiita
                • たった1行から始めるPythonのAST(抽象構文木)入門 - Qiita

                  はじめに この記事は2020年のRevCommアドベントカレンダー20日目の記事です。 19日目は@metal-presidentさんの「モバイルチームの成長とKMM導入に向けて」でした。 11月に株式会社RevCommに入社した@rhoboroです。 前職では主にGCP x Pythonで、現職では主にAWS x Pythonで日々業務を行なっています。 RevCommでは広島県の尾道からフルリモートワークで働いているので、そういった働き方にもし興味があればこちらの記事もご覧ください。 それでは、本題に入ります。 PythonのAST(抽象構文木)とは? この記事は、PythonのAST(抽象構文木、Astract Syntax Tree)に触れたことのない方を対象にしたASTの入門記事です。 そもそもASTとは何なのか、ASTを理解すると何ができるのかを中心に紹介していきます。 さっそ

                    たった1行から始めるPythonのAST(抽象構文木)入門 - Qiita
                  • 型付きJavaScriptの将来についての最高のシナリオ - mizchi's blog

                    typescriptが独自AST捨ててEcma準拠して今のflowと同じTypeCheckerだけの存在になって、Babel が TypeScript の型アノテーション互換になり、ESNextで型アノテーションが仕様化されるのがフロントエンド界最良のシナリオ。そうならんだろうが— Dvorak対応型人類 (@mizchi) 2015, 10月 14 実際はFacebookとGoogleとMSのメンツが掛かっててややこしくなってる— Dvorak対応型人類 (@mizchi) 2015, 10月 14 babelのsebmck(18歳)がfacebookに入ったのは吉と出るかどうか 実際外部に依存しないならflowとtypescriptの両方のサブセットでどっちでも動くコードを書くのは難しくない。castとnullable が使えないが— Dvorak対応型人類 (@mizchi) 201

                      型付きJavaScriptの将来についての最高のシナリオ - mizchi's blog
                    • YAPC::Asia Tokyo 2015で「今フロントエンドで何が起こっているのか」という話をしました

                      YAPC::Asia Tokyo 2015で「今フロントエンドで何が起こっているのか」という話をしました。 http://yapcasia.org/2015/talk/show/94051590-fb11-11e4-a39d-8ab37d574c3a 満員になるほどたくさんの方に来て頂いてありがとうございました! よくフロントエンドの話について聞かれると「Grunt or gulp」、「browserify or webpack」、「Angular or React」のような内容が多いので、新しいライブラリや仕様がそれぞれがどういった流れで登場し何を解決しようとしているのかを流れをもって紹介するような構成にしました。 jQuery以降というかなり広い範囲を対象にしたので、それを50minに収めるのために削ったトピックもかなりありますが...。 それでもASTなど普段ライブラリを使っているだ

                        YAPC::Asia Tokyo 2015で「今フロントエンドで何が起こっているのか」という話をしました
                      • 作って理解する Babel プラグイン - Techtouch Developers Blog

                        エンジニアの伊藤です。 ようやく梅雨が開けたと思ったらすでに立秋。残暑は残るどころか日に日に増している感じさえあります… 🥵 。 この記事では、普段の開発で非常にお世話になっているツール Babel のプラグインを作成する方法と、Babel プラグインの例としての処理時間を計測するプロファイラを紹介します。Babel プラグインに踏み込んでいきたいのですが、理解を助けるためにまず Babel が何をするツールなのかから説明します。 Babelとは Babel の処理の流れ AST (Abstract Syntax Tree) Babel プラグイン Babel プラグイン プロジェクト最小構成 Hello World 「プロファイラ」で何をするのか まとめ Babel プラグイン開発に参考になったサイト おまけ Babelとは フロントエンドの開発を行っている方にはお馴染みな Babel

                          作って理解する Babel プラグイン - Techtouch Developers Blog
                        • Pyjs

                          What is pyjs? pyjs is a Rich Internet Application (RIA) Development Platform for both Web and Desktop. With pyjs you can write your JavaScript-powered web applications entirely in Python. pyjs contains a Python-to-JavaScript compiler, an AJAX framework and a Widget Set API. pyjs started life as a Python port of Google Web Toolkit, the Java-to-JavaScript compiler. What is pyjs Desktop? pyjs Desktop

                          • 入れ子構造を自由に拡張する – TypeScript版「Trees that Grow」 | IIJ Engineers Blog

                            日本Haskellユーザーグループ(愛称 Haskell-jp)発起人の一人にして、Haskell-jpで一番のおしゃべり。 HaskellとWebAssemblyとプリキュアとポムポムプリンをこよなく愛する。 This is a Japanese translation of Flexiblly Extend Nested Structures – “Trees that Grow” in TypeScript. 抽象構文木(AST, Abstract Syntax Tree)の扱いに慣れた一部のHaskell開発者の間では、「Trees that Grow」というイディオムが一般的で、Haskellの最も有名なコンパイラ、GHCにおいても採用されています。今回は、この「Trees that Grow」をTypeScriptで実現するにはどうすれば良いかを共有しましょう。 あらまし Ha

                              入れ子構造を自由に拡張する – TypeScript版「Trees that Grow」 | IIJ Engineers Blog
                            • GoのASTを使ってパッケージのメンテナンスを考える - YAMAGUCHI::weblog

                              はじめに こんにちは、Go界の骨盤職人です。buildersconにmattnさんがいらしていたということで生mattnさんに謁見したかったのですが、諸事情でこの日程はどうしても都合がつかず、参加できなかったことが非常に残念でいまでも悔やんでいます。 さて、Goは安定して開発が進んでおり、いまは安定バージョンが1.8にもなろうというところです。セルフホスティングも1.5で達成し、GCの高速化も順調に進んでいる中、いまだにGoの問題として挙げられるものとして「パッケージバージョンの管理」があります。今日はその辺の話をしようと思います。 TL;DR go パッケージを使って、自分たちが書いたコードが依存してるパッケージを明らかにし、依存先パッケージの更新に追従していこう。 前置き 以下の話はGoをプロダクションで中規模〜大規模に利用している環境を想定しており、細かな閉じられたパッケージのみを開

                                GoのASTを使ってパッケージのメンテナンスを考える - YAMAGUCHI::weblog
                              • ESLint v2.0.0 の変更点まとめ - Qiita

                                前 - | 次 v2.1.0 The thing I'm most excited about in ESLint v2.0.0 is code path analysis: https://t.co/H9eqTpc0hF Amazing work by @mysticatea — Nicholas C. Zakas (@slicknet) 2015, 12月 12 ESLint v2.0.0 の変更点をまとめました。 前半に利用者向けの変更内容を、後半にプラグイン開発者向けの変更内容を記載しています。 単純なバグ修正は記載していません。 一覧したい場合は、右列のTOCをご利用ください。 公式情報: リリースノート 1.10.3 から 2.0.0 へのマイグレーション ガイド ピックアップ - 利用者に影響が大きそうな Breaking Changes: 削除された既存ルールのリスト ES

                                  ESLint v2.0.0 の変更点まとめ - Qiita
                                • npmで同じライブラリの複数バージョンをインストールして使う方法

                                  追記: [email protected]で別のパッケージを特定のパッケージ名で指定できるpackage aliasesが追加されました。 rfcs/0001-package-aliases.md at latest · npm/rfcs 注意: この手法はnpm ciで壊れてる場合があります npm ci fails with transitive local packages - 🐞 bugs - npm forum Add support for ESLint v2 by Daniel15 · Pull Request #107 · fkling/astexplorerを見ていて、一つのプロジェクト内で複数のバージョンの同じライブラリを使う面白い方法が使われてたのでメモです。 前述したAST explorerの場合だと、ESLint@1とESLint@2の両方に対応したPlaygr

                                    npmで同じライブラリの複数バージョンをインストールして使う方法
                                  • GitHub - securego/gosec: Go security checker

                                    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                      GitHub - securego/gosec: Go security checker
                                    • Vim scriptを処理系レベルから高速化しようとしている話 - Qiita

                                      TL; DR Vim scriptをパースしてASTを作り、高速化を図ります。リポジトリはこちら→wholekeik/vim 追記: ベンチマーク追加しました AST化 Vim script は実行のたびにコマンドをパースしているので非常に遅い言語です。コマンドをパースしておいてASTとし、それを実行すれば高速化が見込めます。しかし、Vim scriptでは引数の解釈が各コマンドによって全く異なるため、共通のパーサーを書くのは不可能です。したがって事前にパースするのではなく実際に実行しながら並行してASTを作っていきます。なおVim scriptの実行はユーザーの入力(コマンドモード)やオートコマンド、関数などがありますが、ASTとなるのは関数内のみです。また、AST化は行単位で行われます。 大まかな流れ 関数を定義する 通常通り呼ばれる 呼ばれたExコマンドのうち、ASTにできるものがあ

                                        Vim scriptを処理系レベルから高速化しようとしている話 - Qiita
                                      • ESLintのルールを自作しよう!

                                        ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog 12月から福岡勤務の穴井(@pirosikick)です。 私が所属しているリッチラボ株式会社(以下、リッチラボ)では、スマートフォン向けのリッチ広告の企画・開発と、ヤフー・ソニーと協業のクラウドファンディングサイト「First Flight」の開発・運用を行っています。 今回は、リッチ広告の開発で利用しているESLintのルールを自作する方法について書きたいと思います。 サンプルの動作環境について 本記事に登場するサンプルは、下記の環境で実行しましたので、適宜ご自身の環境に置き換えてご覧ください。 Mac OS Node.js 4系(4.2.1) npm 3.3.9 サンプルのJavaScriptは一部ES6で書いておりますので、

                                          ESLintのルールを自作しよう!
                                        • module bundlerの作り方(準備編) - hiroppy's site

                                          今回は中身がどう動いているかを解説したいと思います。 最初のこの記事では、最低限の実装を説明していくことにします。 webpack のアルゴリズムの仕組みはこちらを読んでください。 必要なステップ 必要なステップは以下の 3 つです。 エントリーポイントからのすべてのモジュールを走査し、requireを解決後にユニーク id を付与していく コード内のモジュールパス(requireの引数(e.g. ./module.js))を id へ置換する runtime のコードテンプレートの作成 IIFE(即時関数)箇所とそれに付随する引数の module 群 この実装されあれば、動くコードはできます。(2 つめは optional でもいいけど後からつらくなる) モジュール解決 今回は説明しやすいように関数を 2 つに分けています。 すべてのモジュールの把握と ID 作成 コード内の requi

                                            module bundlerの作り方(準備編) - hiroppy's site
                                          • Rust AST 入門

                                            これは、簡単な Rust の AST をざっと読めるようになる、もしくは該当のドキュメントを読めるようになる、といったことを目的としたものである。入門といっても網羅的なものではなく、雰囲気を掴んでほしいという意味合いで書いたものであって細かいところまでは説明しないつもりである。なお Rust には型などより多くの情報も含む HIR などいくつかの AST があるが、ここではコンパイル時に最初に作られる AST についてのみふれる。 プログラミング言語で一般的に述べられる AST 自体についてはここでは説明しないので他を参照するとよい。有用そうなもののリンクは以下の通りである。 ASTs - What are they and how to use them Crafting Interpreters また、AST を確認するというと AST explorer も有用だが、 AST expl

                                              Rust AST 入門
                                            • Pythonを使って関数型プログラミング Part.1

                                              2019年9月16、17日、日本最大のPythonの祭典である「PyCon JP 2019」が開催されました。「Python New Era」をキャッチコピーに、日本だけでなく世界各地からPythonエンジニアたちが一堂に会し、さまざまな知見を共有します。プレゼンテーション「Pythonで始めてみよう関数型プログラミング」に登壇したのは、株式会社SQUEEZEの寺嶋哲氏。講演資料はこちら なぜ関数型プログラミングを愛するようになったのか 寺嶋哲氏:それでは発表を始めます。まず「おまえ誰よ?」。はい、寺嶋哲といいます。Twitterなどでは「@meganehouser」というIDでやっています。 所属は株式会社SQUEEZE(スクイーズ)で、ふだんはPython、Django、Django REST frameworkでバックエンドを書いて、AngularJS、Angularでフロン

                                                Pythonを使って関数型プログラミング Part.1
                                              • Big Sky :: プログラミング言語の作り方(3)

                                                Big Sky :: プログラミング言語の作り方 Big Sky :: プログラミング言語の作り方(2) Big Sky :: プログラミング言語の作り方(4) Big Sky :: プログラミング言語の作り方(5) もうちょっと続けてみようと思います。 Big Sky :: プログラミング言語の作り方 github の trending を見てたら面白い物を見つけた。 orangeduck/BuildYourOwnLisp - GitHub Learn C and build your own pr... http://mattn.kaoriya.net/software/build_your_own_programming_language.htm Big Sky :: プログラミング言語の作り方(2) この前の記事がなかなか人気があったので、続きを書いてみます。 Big Sky ::

                                                  Big Sky :: プログラミング言語の作り方(3)
                                                • ユーザが構文を自由に変更できるプログラミング言語

                                                  第5期サイボウズ・ラボユース成果報告会 言語処理系ゼミ

                                                    ユーザが構文を自由に変更できるプログラミング言語
                                                  • Source Mapを扱う関連ライブラリのまとめ

                                                    この記事はSource Mapに対応した何かを作るためのライブラリとか仕様とかについて調べてメモった記事です。 利用する場合の話はSource Maps 101 – Tuts+ Code Tutorial等 検索すれば色々出てくると思います。 Source Mapとは Source Map Revision 3 Proposal – Google ドキュメント 仕様 #JSオジサンで Source Map について話してきました : document source mapの概要 JavaScriptのSource Mapの内部表現について Base64のmappings部分の仕組み source-map-visualization ビジュアライズツール mozilla/source-map source map のコア と言えるモジュール(色々なモジュールが使う) source map の

                                                      Source Mapを扱う関連ライブラリのまとめ
                                                    • Goのスコープについて考えてみよう #golang - Qiita

                                                      はじめに Twitterで以下のような投稿をしてみました。 https://twitter.com/tenntenn/status/815807925222412292 この問題は、以下のコード中に存在するスコープの数を聞いている問題です。 package main import "fmt" func main() { const message = "hello, world" fmt.Println(message) }

                                                        Goのスコープについて考えてみよう #golang - Qiita
                                                      • Rust製TypeScriptコンパイラstcの現状と今後 | メルカリエンジニアリング

                                                        この記事は、Merpay Tech Openness Month 2023 の2日目の記事です。 メルペイFrontendエンジニアの@togami2864です。普段はPartner Platformというチームで加盟店申込みフォームや審査・管理を行うためのMerchant Supportツールの開発・運用を担当しています。 本記事ではRust製TypeScriptコンパイラであるstcについて筆者の観測範囲での概要、開発状況、課題等を紹介します。なお、内容は全て2023年5月時点のものです。また、本記事の一部は Node学園 41時限目 書籍について で発表したものと重複していることをご了承ください。 概要 stcは2022年10月にオープンソース化されたRust製のTypeScriptコンパイラです。 https://github.com/dudykr/stc 製作者はRust製のトラ

                                                          Rust製TypeScriptコンパイラstcの現状と今後 | メルカリエンジニアリング
                                                        • Semgrepを使った構文木ベースの検索と置換でコードのリファクタリングをする

                                                          Semgrepはr2cという会社/サービスが開発しているツールです。 Semgrepの特徴としてTree-sitterでコードをパースしたConcrete Syntax Tree(CST)の構文木をベースにして検索や置換ができます。 コードをCSTにパースした構文木に対して検索/置換することで、ただの文字列検索/置換に比べてミスマッチしない検索/置換ができます。 例えば、次のa.js、b.js、c.jsはそれぞれevalを使っていますが、スタイルは違いますが意味はほとんど同じです。 // a.js eval("const a = 1, b = 2; eval(a + b);"); // b.js eval('const a = 1, b = 2;\ eval(a + b);'); // c.js eval(`const a = 1, b = 2; eval(a + b);`); $ sem

                                                            Semgrepを使った構文木ベースの検索と置換でコードのリファクタリングをする
                                                          • power-assertができるまで

                                                            power-assert を作るきっかけ アサーション失敗時の情報量を大幅に増やすことができるPower Assertの系譜 - Togetterまとめ chai/should/expect.js 覚えること多くて煩わしい 自分で作ろうと思い立った(2013/01/08) AST 変換 power-assert は最初から AST 変換で実現しようと考えていた Groovy の Power Assert が AST 変換を行っているらしいことは何となく知っていた Groovy 1.7 Power Assert パワーアサート(Power Assert)の真の意味 Groovy 1.7のキモはAST変換である 実装を見てはいないので、 Groovy の Power Assert が最近 AST 変換を行っていないらしいことは知らなかった…!

                                                            • Prettier のしくみ

                                                              2019年7月30日のginzajsのLT資料です

                                                                Prettier のしくみ
                                                              • 技術的負債の返済の足がかりにテンプレートのParserを作った話 - LIFULL Creators Blog

                                                                プロダクトエンジニアリング部の中島です。 今回はフロントエンドのテンプレート部分についての負債やレガシーな機構に対する改善の取り組みについて紹介させていただきます。 背景 LIFULL社のメインサービスであるLIFULL HOME'SのメインリポジトリのサーバサイドはSymfony + Twig(※テンプレートエンジン)の構成を採用しています。 このリポジトリの歴史は古く、2011年頃から開発は行われており、今となってはレガシーな機構であったり、開発体験を損ねる負債的な記述も多くあります。 テンプレート部分で多くみられる問題のうちいくつかをピックアップすると弊社ではこのようなものが悩みのタネになっています 変数などを用いた動的な部分テンプレートの呼び出しによるgrepしやすさの低下 部分テンプレートをロードするときにスコープ制御(Twigだとonly属性)をつけ忘れてテンプレート間依存関係

                                                                  技術的負債の返済の足がかりにテンプレートのParserを作った話 - LIFULL Creators Blog
                                                                • Scala初心者の新卒が頑張ってLispを作ってみた | Scala Tech Blog

                                                                  この記事はCyberAgentエンジニアAdvent Calendar5日目の記事です。 こんにちは! サイバーエジェント アドテクスタジオ新卒の志村です!! 7月にScala初心者のままScalaを採用しているAMoAdに配属されたのでScala歴5ヶ月くらいです。 Scala歴5ヶ月くらいだと初級者になるのかもしれませんがScalaばかり書いてる訳ではないのでまだScalaは全然書けません。 簡単な言語くらいしか書かないのでScalaが複雑すぎて全然覚えられません(´・ω:;.:… ということでアドベントカレンダーにかこつけてScalaの勉強をしたいと思います! 学んでいくにはやはり手を動かすのが一番なんですかね (@@;? 何か作ってみます。何を作るのが良いんでしょう。Scalaといえば…チューリング完全(?)な言語らしいですね。 チューリング完全といえばリスプですよね。リスプを作っ

                                                                    Scala初心者の新卒が頑張ってLispを作ってみた | Scala Tech Blog
                                                                  • Swiftコンパイラの構造と基盤テクニック - Qiita

                                                                    はじめに Swiftのソースコードが公開されてから1週間以上が経ちましたが、意外にもまだSwiftコンパイラの構造を解説した日本語記事が少ないので、書いてみることにしました。 SwiftコンパイラはC++で書かれていますが、適切なモジュール化とコーディングスタイルの統一により、とても読みやすいものになっています。 ざっくりとしか解説しませんのでコミッターになれるほど詳細な仕様まではつかめませんが、今後Swiftの仕様がわからなくてソースコードを参照するときの参考や、そもそもコンパイラの構造自体に興味を持っている方の助けになれればと思います。 自分自身Swiftのコミッターというわけではなく、単に少しコンパイラについて学んだことがあるSwift好きという程度ですので、間違っている箇所などあればどしどしご指摘ください。 注意事項 この記事で対象としているソースコードのリビジョンは公開時のもの(

                                                                      Swiftコンパイラの構造と基盤テクニック - Qiita
                                                                    • Google の SQL parser/analyzer の ZetaSQL とは何であるか

                                                                      2019年4月に Google の SQL parser/analyzer の ZetaSQL が公開されました。 現在 BigQuery Standard SQL や Cloud Spanner で実装されている SQL 方言であり、 Cloud Next 2019 で BigQuery UI から Cloud Dataflow で実行されるパイプラインを記述できる機能として発表された Cloud Dataflow SQL にも使われることがツイートからも見て取れます。 ZetaSQL については Google の外の人がまともに言及しているのを見たことがなく、聞いたことがないか様子見という人が多いと思うので分かっていることを書いていきます。 既存の文献から見る素性ZetaSQL は Spanner の SQL 実装について書かれた Spanner: Becoming a SQL Sys

                                                                      • Pythonを使って関数型プログラミング Part.2

                                                                        2019年9月16、17日、日本最大のPythonの祭典である「PyCon JP 2019」が開催されました。「Python New Era」をキャッチコピーに、日本だけでなく世界各地からPythonエンジニアたちが一堂に会し、さまざまな知見を共有します。プレゼンテーション「Pythonで始めてみよう関数型プログラミング」に登壇したのは、株式会社SQUEEZEの寺嶋哲氏。講演資料はこちら 不変/永続データ構造を提供するパッケージ 寺嶋哲氏:続いて、不変/永続データ構造についてです。 listを操作する関数の問題点について、例題で見ていきましょう。add_mangoは果物名の文字列のlistをとって、mangoをそのlistに足して返します。change_from_apple_to_bananaは、同じようにlistをとってappleを探して、bananaに入れ替えて返します。 その

                                                                          Pythonを使って関数型プログラミング Part.2
                                                                        • TypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略

                                                                          TSKaigi 2024 の発表資料です。 https://tskaigi.org/talks/yanaemon169 Demo 用コードはこちら https://github.com/yanaemon/nestjs-migration-example ミツモアはサービスの提供開始から、6 年以上が経ち、サービが急速に拡大してきました。 急成長の中で、古いコードが多くあり新しい構成への変革が求められていました。 その中の一つに Express + TypeScriptを用いて書かれていた Backend のコードをNest.js へ移行することを決定しましたが、 管理用の API なども数えると数百を超える API 数がありました。 全て手作業で移行をしていては膨大な時間がかかります。 そこで効率的に移行するため、TypeScript のコードを Abstract Syntax Tree

                                                                            TypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略
                                                                          • GitHub - mvdan/sh: A shell parser, formatter, and interpreter with bash support; includes shfmt

                                                                            You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                                                              GitHub - mvdan/sh: A shell parser, formatter, and interpreter with bash support; includes shfmt
                                                                            • Node.jsのrequireをインライン化、無駄なuse strictを取り除くモジュールを書いた

                                                                              はじめに Promises Bookという薄い本を書いているのですが、書籍中に出てくるサンプルコードはテストが必須であるという原則があります。 サンプルコードは必ずテストコードが必要となる。(読者がコピペして実行するようなコードをテストを書くべきである) promises-book/CONTRIBUTE.md at master · azu/promises-book サンプルコードとテストはNode(といってもほぼCommonJSというだけ)で書いています。 ECMAScript6 Promisesについての内容なので、ブラウザ/Node.js どちらの実行環境でもいいのですが、閲覧するのはブラウザが基本になると思うのでブラウザ向けのコードを表示したいという感じになると思います。 CommonJS -> ブラウザ用のJS といえば、browserifyやCommonJS Everywhe

                                                                                Node.jsのrequireをインライン化、無駄なuse strictを取り除くモジュールを書いた
                                                                              • PHPに型推論を実装する ~入門編~ / Type inference on PHP

                                                                                PHPカンファレンス福岡2016の資料です。

                                                                                  PHPに型推論を実装する ~入門編~ / Type inference on PHP
                                                                                • Transpec 開発記 – 前編 – blog.yujinakayama.me

                                                                                  Transpecという、RSpecの古い記法で書かれたspecを、最新の記法に自動で書き換えるツールを作った。 最初のバージョン0.0.1をリリースしたのが2013年8月9日なので、すでに一年前になる。 先日のRSpec 3の正式リリースからもしばらく経って一段落したところだし、 この辺で一旦振り返って、 開発中のその時々で何を考えていたのか、忘れてしまう前に長々と残しておくことにする。 きっかけ そもそもTranspecを作り始めたきっかけは、 should記法を使っていた自分のプロジェクトのspecをexpect記法に書き換えようとしたところから。 これは2013年の7月下旬の話で、まだRSpec 2.99/3.0のベータ版も出ていない頃。 正直なところexpect記法が導入された当初は違和感があったし、 更にはThe Plan for RSpec 3も発表され、 「このままRSpec

                                                                                    Transpec 開発記 – 前編 – blog.yujinakayama.me