並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 355件

新着順 人気順

mizchiの検索結果41 - 80 件 / 355件

  • TypeScript 本体のコードを読んでみよう

    みんなお世話になっている TypeScript のコードを読みたいと思ったことはないだろうか。読んだ。 一週間ぐらいかかった。完全に読み切ったとは言えないが、概要は掴んだ。 なかなかに複雑でドメイン知識を得るのが難しかったので、これから読む人向けに、登場人物や概念を整理して紹介したい。 読んだのは 2023/6/8 時点で git clone したコード。 最初に: 自分のゴール設定 複数ファイルにまたがった参照を、 TypeScript の Language Service が提供する findReferences() や findRenameLocations(), goToDefinitions() を使って、インクリメンタルに書き換えたかった。 Terser を使うと、今触ってるオブジェクトが何で、何のメンバを書き換えたかの情報が残らない。これを TypeScript のレイヤーで

      TypeScript 本体のコードを読んでみよう
    • Webpack チャンク最適 テクニック - Qiita

      ターゲット 巨大なSPAを作ってしまった人へ 巨大なSPAを作らないように気をつけたい人へ 今回はJSだけにフォーカスするが、もっというと、 超速本 を読んでください。 注意:本資料は、webpack チャンクの挙動を概念的に説明することを重視しているので、 webpack の詳細な設定や、出力ファイル名などは実際の処理と一致しない。適宜自分の手元にある設定とすり合わせるように。 昨今のJSビルド問題と、その解決のためのゴール設定 巨大なJS(+最近は in JS された各種SVGやCSS)はダウンロードだけではなく、UIスレッドのCPUをブロックする。 これはとくにCPUが貧弱な端末で体験が悪化する。そしてビルド時間で開発者体験を阻害する。 できれば webpack 推奨の 144kb 以内にしたい…が現実的に難しいので、 せめて 350kb ぐらいに抑えたい。 SPAなら (ローディン

        Webpack チャンク最適 テクニック - Qiita
      • 2020年でJavaScript学ぶならきっとブラウザ向けJSガン無視していきなり初手node.js(ただし暫く何も足さない)がいいんじゃないかというメモ

        ※ @mizchi さんのアンサー記事「プログラミング初心者のための JavaScript と Node.js の歴史、それを踏まえた勉強方法」 もこの後にあわせてどうぞ。 https://zenn.dev/mizchi/articles/3789a101dae388d98159 Python3とPHP7をちょぼちょぼとやっている個人がJavaScript(2016年以降)/node.js/JS系ライブラリ/JS系Webフレームワーク/TypeScript等を攫っている中で一つ思ったことをメモった。JavaScriptやるなら絶対node.jsの実行環境揃えてからがいい、そうしないでJSやるくらいなら汎用性信じてPython3一択に絞った方がいい、と思ったという件です。 具体的には、以下の構成のみでJavaScriptの開発演習をすればいいんじゃないか、という話です。 続きを読む

          2020年でJavaScript学ぶならきっとブラウザ向けJSガン無視していきなり初手node.js(ただし暫く何も足さない)がいいんじゃないかというメモ
        • Nondestructive_TypeScript.md

          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

            Nondestructive_TypeScript.md
          • 映画「ジョーカー」感想: ジョーカーという信頼できない語り手 (ネタバレあり) - mizchi's blog

            見てきた。非常に、非常に良かった。一通りレビューを読んだが、基本的にはそれらに同意するとして、あまり言及されてないと思った点への自分の感想を書く。 ジョーカー誕生の物語としてめちゃめちゃ好き! 解釈一致! 「ジョーカー」が超超超良かったので勢いで感想を書きました - ねとらぼ 映画ジョーカー(JOKER)のラストシーンについて - 日常の錬金術師 映画『ジョーカー』を絶賛してはいけない理由【評価/感想/レビュー/ネタバレ】  - ゲーマー日日新聞 信頼できない語り手 本作は、物語類型としては「信頼できない語り手」タイプの作品である。アーサーは、精神的な問題を抱えて大量の薬を服薬しており、要所で幻覚を見ているのが示唆されている。 一連の悲劇が起きてアーサーが我を失ったあと、ガールフレンドの家に潜り込み、そして相手の反応から「一方的にアーサーがガールフレンドだと思っていただけの近所の他人」だっ

              映画「ジョーカー」感想: ジョーカーという信頼できない語り手 (ネタバレあり) - mizchi's blog
            • 最終回 今生きるプログラマーが、この仕事をあこがれのものにする | gihyo.jp

              ご好評いただいた本連載も今回で最終回。いつもとは趣向とは変え、竹馬氏がこれまでのインタビューを振り返りながら、未来への展望を綴ります。 一皮むけば高度なコンピュータサイエンスが 今まではインタビュアーとして抑えた感じでやってきましたが、今回は自分のブログ「mizchi's blog」の読者はご存じのような、いつもの感じで行きます。 この連載インタビュー企画の依頼を受けたときの個人的な狙いとして、技術評論社の名前を使って、いつもは会いづらい人に会いに行く口実を作ろう、ということを考えていました。その目的はほぼ達成できたので、関係者諸氏には、とても感謝しています。 ……という個人的なテーマとは別に、僕自身が本連載を通して一貫して表明したい課題感があり、それは「高度なコンピュータサイエンス/プログラミングスキルの現場適用の難しさ」というものです。 僕自身、大学でコンピュータサイエンスを修めたわけ

                最終回 今生きるプログラマーが、この仕事をあこがれのものにする | gihyo.jp
              • lodash やめ方 - Qiita

                みなさん、 lodash で消耗してますか? 私は消耗しています。 なぜ lodash で消耗するかというと、とにかく思考停止でインストールされ、 node_modules 下で大量に重複します。サイズが大きいlodashが複数バンドルされてビルドされると、重篤なパフォーマンス上の問題を引き起こします。 lodash には実装上の問題もあり、異様に丁寧に、そして富豪的に作られており、その結果ビルドサイズが無駄に大きいです。丁寧に作られて入るのですが、現代のフロントエンド水準や一般的なポリフィルと噛み合っていません。というわけで、常々やめたいと思っています。 ちゃんとES201xを追ってる人からすると、ほとんどの lodash のメソッドは不要に見えるはずです。本エントリは、思考停止で lodash で実装しようとする人に、ちょっと考え直しては? と投げつける用の記事になります。 現代におい

                  lodash やめ方 - Qiita
                • IE First を避ける

                  まず、去年の実績として、IE のシェアが 9% から 5% になっています。 Browser Market Share Japan | StatCounter Global Stats 世界だと 1.4% です。これは途上国などでは Android Chrome が支配的だからです。 https://gs.statcounter.com/browser-market-share/all 国内で「IE シェア」などでググって出るサイトは 9% と出ていますが、これはデスクトップのみの数字で、モバイルを含めた数字は 5%前後です。日本はさらに Chrome ベースの新 MS Edge の正式リリースがコロナと確定申告の影響で延期されており、リリースのタイミングでさらに減ることが予想されます。 去年の実績値でいえば、来年度には 2% 台、再来年には 1%を切っている可能性があります。これは to

                    IE First を避ける
                  • 2020年版: なぜ仮想 DOM / 宣言的 UI という概念が、あのときの俺達の魂を震えさせたのか

                    本記事は、 「なぜ仮想 DOM という概念が俺達の魂を震えさせるのか」 https://qiita.com/mizchi/items/4d25bc26def1719d52e6 の 2020 年版のリライトです。 2014 年当時、日本においては React は未だ知る人ぞ知るライブラリ、という位置づけでした。それが、この記事によって一気にメジャーになったように思います。 オリジナルは2014 年末の情報によって書かれたもので、さすがに 6 年経った今では情報が古くなっており、当時の暗黙のコンテキスト、古いリソースの参照、初学者の混乱を招く表現が残ったままになってしまっています。 定期的に更新しようとも思いましたが、そうすると 2014 年末の歴史的な背景を失ってしまうため、あえてそのまま残し、新しい記事を投稿することにしました。増補改訂版というより、ほぼ書き直しです。 この記事は本来なら

                      2020年版: なぜ仮想 DOM / 宣言的 UI という概念が、あのときの俺達の魂を震えさせたのか
                    • Frontend Study #1: 基調講演 - Frontend 領域を再定義する

                      Front-End Study #1「Cloud Native時代のフロントエンド」 - connpass の発表内容のテキスト版です。 発表に載せられなかった参考資料集 StatCounter Global Stats - Browser, OS, Search Engine including Mobile Usage Share The "Developer Experience" Bait-and-Switch - Infrequently Noted JavaScriptよ。文明を捨て、自然に還れ。 ::ハブろぐ Deno - A secure runtime for JavaScript and TypeScript Rome Toolchain Blitz.js - The Fullstack React Framework | Blitz.js ⚡️ Prisma - Da

                        Frontend Study #1: 基調講演 - Frontend 領域を再定義する
                      • Qiitaのランキングの最初の設計者としての「いいね」の設計と、「LGTM」は下においてほしいという話 - mizchi's blog

                        https://blog.qiita.com/like-to-lgtm/ Qiitaさんの変更。思想はまぁわかるものの、「全部読んでから押してほしい」といいながら、開いた直後に押せるところに配置するのは意味がわからないかなあ。https://t.co/HEtwKg0txr— chokudai(高橋 直大)🌸🍆🍡 (@chokudai) 2020年3月12日 これについては chokudai さんに完全に同意なのですが、その理由として、自分の在職時に企画したサービス設計意図が強くあって、退職者がそれについて今更どうこういうのはどうか思うところもあるのですが、当時の同僚がほぼ全員退職してしまっているため、ここでその意図を伝えます。 お前は誰 & 何 当時の Qiita の開発で、ストックといいねを分離して、いいねをベースにしたランキングの実装のを提案したのが自分です。社内の Qiita:

                          Qiitaのランキングの最初の設計者としての「いいね」の設計と、「LGTM」は下においてほしいという話 - mizchi's blog
                        • Chrome 78ベータに「Native File System API」搭載。Webブラウザからローカルファイルを読み書き可能に

                          Chrome 78ベータに「Native File System API」搭載。Webブラウザからローカルファイルを読み書き可能に GoogleはWebブラウザのChrome 78ベータ版で「Native File System API」を試験的機能(Origin Trial)として搭載したことを明らかにしました。 Native File System APIはWeb Platform Incubator Community Groupが策定中のAPIで、Webアプリケーションからローカルファイルを開き、読み書きを行える機能です。 「The Native File System API: Simplifying access to local files」から引用します。 The Native File System API enables developers to build powe

                            Chrome 78ベータに「Native File System API」搭載。Webブラウザからローカルファイルを読み書き可能に
                          • もう一つの海を目指して ─ Webエンジニアからクリエイティブ系にジョブチェンジして見えてきた世界 - Findy Engineer Lab

                            はじめまして、天城孝義(@amagitakayosi)です。 Webエンジニアとしてブログサービスなどを運営している会社で3年働いた後、クリエイティブ系のスタジオに転職し、現在は主にフリーランスとしてUnityを使ってゲームやインスタレーションを制作しています。 クリエイティブ系の仕事には学生時代の頃から興味がありながら、Webエンジニアの働き方に影響されてフロントエンド開発の道を選択した僕ですが、やがてキャリアについて考え直すなかで、クリエイティブ系への転職という選択肢に直面しました。 目の前に選択肢が現れたとき、迷わずリスクを取れる人は少ないでしょう。僕の場合、周りの人々に励まされつつ面白い方を選び続けたところ、気が付いたら今の状況になっていました。 この記事では、Webエンジニアからクリエイティブ系へ転職することになった契機や、キャリアチェンジに際しての葛藤など、僕の考えてきたことを

                              もう一つの海を目指して ─ Webエンジニアからクリエイティブ系にジョブチェンジして見えてきた世界 - Findy Engineer Lab
                            • Remix という 考え方

                              こんにちは、@kaa_a_zu です。今日(11/23)の日本時間早朝に React Router の制作者である @Ryan氏 と @Michael が着想した Remix V1.0 が正式リリースされました🎉 RemixがWebの世界に及ぼす影響は大きいと思っており、実際のコードやドキュメントを見ながら既存のフレームワークと何が異なっているのかを中心に書いた紹介記事です。(正直、魂が震えています) より具体的な使い方はドキュメントを見て、手を動かしていただくのが良いかと思います。また、既に国内でも使ってみた系の記事がいくつかあるようです。 Remixの機能には様々なものがありますが、当記事では筆者がより注目しているものについて書いていきます。Remixに興味があるけど、あまり追えていないという方に読んでいただけると嬉しいです。 ※この記事はGatsbyやNext.jsよりもRemix

                                Remix という 考え方
                              • 大統一 Node ツールチェイン Rome の野望 現状の実装

                                つい先日 beta リリースされたフロントエンドのツールチェインの Rome について、その思想とコードを読んだ結果の現状について。 Rome Frontend Toolchain この記事は公式ドキュメント以外にもソースを読んで得られた undocumented な部分も含んでいるので、すぐ古くなる。その前提で読むように。 問題の認識とその解決手段 フロントエンドの最適化は実行前のプリプロセスに、エコシステムの開発リソースの多くが当てられている。Node のツールチェインが発達するにつれて、自前の パーサ+AST 定義を持つ実装が増えていった歴史がある。 acorn(estree) babel prettier typescript terser それぞれのツールの生成する AST はそのツールの都合で微妙に/もしくは大幅に定義がずれている。typescript に至っては完全に別物。こ

                                  大統一 Node ツールチェイン Rome の野望 現状の実装
                                • イベントループと TypeScript の型から理解する非同期処理

                                  この本は、ブルーベリー本の 8 章からインスパイアされて、 TS の型が示す情報から Promise というものを理解してみる、というアプローチで書いたJSの非同期処理の解説です。 これらの資料と合わせて読むことを推奨します。 JSのイベントループのイメージを掴む JSでは中々意識することが少ないですが、正しく理解するには OS レベルのスレッドの視点で考え始める必要があります。 ブラウザや Node.js では一つのスクリプト実行単位を1つのスレッドに割り当てます。それをメインスレッドと呼んだり、ブラウザだったら UI スレッドと呼んだりします。 例えばブラウザでは、これは秒間60回、つまり 16.6ms ごとにループを呼び出します。(node だったらこれがもっと短いです) 仮に setTimeout の実装がなかったとして、それ相当の擬似コードを書くのを試みます。 let handl

                                    イベントループと TypeScript の型から理解する非同期処理
                                  • JS のビルドサイズを極限まで絞るための TIPS 集

                                    ビルドサイズ限界まで絞りたい人向け。 あらゆる環境で実践するものではないが、知ってたら簡単に避けることができるのもあるので知っておくと便利なTIPS書いていく。 基本ポリシー 未使用コードはビルド時に全部落とす。 何が未使用コードで、何が定数かわかるようなインターフェースを人間が心がける。 用語 Dead Code Ellimination(DCE) Rollup や Terser で、未使用コードを削除すること

                                      JS のビルドサイズを極限まで絞るための TIPS 集
                                    • 実行環境依存のコードに対してテストを書く考え方

                                      社内用の啓発記事ですが、閉じる理由がないのでここに投げます。 ブラウザにべったりなコードを書いてると、ブラウザや node.js 固有の環境をインラインで記述してしまうことが多々あると思います。 あえてダメダメなブラウザ向けのエントリポイントの例を書きます。 // main.ts let id = localStorage.get('id'); if (!id) { id = `${navigator.userAgent}-${Math.random()}`; localStorage.set('id', id); fetch('/auth', { method: 'POST', credentials: 'include', body: JSON.stringify({ id, at: Date.now(), }), headers: {'Content-Type': 'applicat

                                        実行環境依存のコードに対してテストを書く考え方
                                      • プログラミングをする必要がなくなった後に人間に何が残るのか? - YAMDAS現更新履歴

                                        あらかじめお断りしておくが、以下、ほぼ妄想に基づくポエムである。 note.com 先月話題になったブログエントリであり、ワタシも読んでいて、自分が書いた「次世代のプログラミングツール、未来のプログラミング言語の方向性について」と「未来のプログラミングについて再考(機械学習とソフトウェア2.0、配管工プログラマ、オープンソースでは十分でない?)」との議論の近さを感じていたら、ちゃんと引き合いに出されていてありがたく思った。 たまたまだが、これが公開された数日後に AWS のノーコードツール Amazon Honeycode が発表され、俄かに「ノーコード」が話題になった。 aws.amazon.com jp.techcrunch.com jp.techcrunch.com 個人的には、このプロジェクトの紹介動画にでてきたのが、VA Linux の創業者にして、オープンソースバブル期(佐渡秀

                                          プログラミングをする必要がなくなった後に人間に何が残るのか? - YAMDAS現更新履歴
                                        • 2021年のまとめ・反省 - mizchi's blog

                                          年内に間に合わなかった… 2021年に主にお世話になった言語・ライブラリ TypeScript React chakra-ui dnd-kit Node Vite esbuild Docker(=> lima) とりあえず挙げてみたが、なにか特定のライブラリを使う、という感じではなく、レイヤーが一つ下にいった感じがあり、実際にはなんかもうちょっと下のミドルウェアみたいなものを作っていることが多かった気がする。ASTをいじるコンパイラ周辺ツールを作っていることが多かった。 サクッとなにか作る場合、 React + TypeScript + Vite(esbuild) が鉄板という感じで、 esbuild が異次元に速すぎて、typescript の変換もバンドルも、もはやこれ一本でいい気がしてる。 microsoft/typescript はもはや言語仕様の定義と型検査がメインであって、コン

                                            2021年のまとめ・反省 - mizchi's blog
                                          • GitHub Actions で Windows IE11 と Mac Safari を selenium-webdriver で動かす - Qiita

                                            GitHub Actions で Windows IE11 と Mac Safari を selenium-webdriver で動かすSeleniumselenium-webdriver 最近得た天啓で、 「GitHub Actions はコンテナを windows / mac / ubuntu から選べるということは、 本物の safari と ie11 を selenium-webdriver で動かすことができるのでは?」 と思ってガチャガチャやってみたら、なんとできてしまったので、紹介します。 今回は node で。 name: xbrowser on: [push] jobs: e2e-ie: runs-on: windows-latest steps: - uses: actions/checkout@v1 - uses: warrenbuckley/Setup-Nuget@

                                              GitHub Actions で Windows IE11 と Mac Safari を selenium-webdriver で動かす - Qiita
                                            • node.js のメトリクスの計測、ベンチマークの改善、Docker イメージの絞り方を勉強した

                                              フロントエンドのパフォーマンス計測は得意なのだが、サーバーサイド node.js のメトリクスの取り方はあまり知らなくて、いつも勘でやりがちだった。最近は業務でこの周辺で困ることが増えたので、勉強しなおした。 また、最近使ってみたかった cloudflare workers の制限で、メモリ 128MB、CPU 時間 50ms という制約があり、このためにも Node.js の CPU のメトリクスを計測できるようになっておく必要があった。 という目的を踏まえて、今回は OS やデータベースの最適化は扱わず、ネットワークとアプリケーション層だけに絞って学習した。あと仕事の Docker イメージのサイズにも悩んでたので、ここも。 (あと ISUCON 参加者が楽しそうだったのもある。 ISUCON のチューニング対象にフロントエンドは含まれないので…) 計測対象 今回実験したリポジトリはこ

                                                node.js のメトリクスの計測、ベンチマークの改善、Docker イメージの絞り方を勉強した
                                              • Cloudflare Workers それは Frontend / Node.js が CDN Edge Side まで拡張されるもの

                                                最近は Cloudflare Workers が熱くて、週末はずっとその調査しています。この記事はそのまとめです。 注意点として、手元でいろいろなパターンで動かして試してはいますが、プロダクション環境で運用したわけではないです。それを踏まえた上でお読みください。 特に断りが無い限り、引用文は DeepL で翻訳したものです。 Cloudflare Workers とはなにか Cloudflare Workers | サーバーレスコンピューティング | Cloudflare 一言でいうなら 「ServiceWorker の API が CDN Edge 上で動く JavaScript 処理系」 です。 Technology Radar では、まだ ASSESS(調査) フェーズという扱いです。 Cloudflare Workers | Technology Radar | ThoughtWo

                                                  Cloudflare Workers それは Frontend / Node.js が CDN Edge Side まで拡張されるもの
                                                • 💣Webフロントエンドにおける関数型「風」プログラミングに関する個人的まとめ - Qiita

                                                  ここ数年の流れについて 技術的側面 Webフロントエンド(ほぼTypeScript&React界隈)において、オブジェクト指向(厳密に言うとクラスの利用)から脱却する流れがあります。原因は以下の2点。 クラスの継承の問題点が(IT業界全体に)広く定着したこと JS/TSの進化、Reactの進化、関数型言語の考え方などの影響により、クラスを用いてデータと関数群を紐づけるメリットが薄くなったこと 現状、設計レベル(実務的にはどの関数を纏めてモジュール化するのか、モジュール同士をどう繋ぎ合わせるのか、フォルダ割りどうするのか等)のノウハウがまだ固まっておらず、既存の設計論はそれなりに有効です。 コミュニティ的側面(政治) これらの流れはWebフロントエンドの中でもTypeScript&Reactの界隈が主導しており、そのノウハウは長年絶対視されてきたオブジェクト指向を解体するような内容であったた

                                                    💣Webフロントエンドにおける関数型「風」プログラミングに関する個人的まとめ - Qiita
                                                  • tsmeetup-draft-wip2.md

                                                    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

                                                      tsmeetup-draft-wip2.md
                                                    • 【WASM & Rust】フロントエンドでRustを使う方法をmizchiさんとペアプロしながら解説する #ch789

                                                      フロントエンドエンジニアが Rust と WASM を使ってフロントエンドのコードを書こうとすると、意外と Rust のエグいところが出てきて面食らいます。 この配信では、フロントエンドに詳しい mizchi さんに、KOBA789 が Rust と WASM を教えていきます。 ★事前資料 https://gist.github.com/mizchi/86e53810e08eee2176d98b20870a9b86 ★mizchi さん Twitter: https://twitter.com/mizchi ★KOBA789 Twitter: https://twitter.com/KOBA789 YouTube(このチャンネル): https://youtube.com/c/KOBA789

                                                        【WASM & Rust】フロントエンドでRustを使う方法をmizchiさんとペアプロしながら解説する #ch789
                                                      • vscode の web build を netlify にデプロイする + ファイルシステムを永続化する - mizchi's blog

                                                        年末年始の時間を使って実験していたこと。 tl;dr vscode をカスタマイズして静的サイトとしてデプロイしたい。やった。公式にない永続化層も作った。 できた。ここで試せる。 https://mizchi-vscode-playground.netlify.com/ やりたかったこと フロントエンドにまつわるものはフロントエンドで作業を完結したい。なので vscode がブラウザで動いてほしい。 vscode をカスタマイズしたものを各自が自由にデプロイできると、様々な可能性がある。インストールの手間を省いたプログラミング教育用のツールだったり、専用の開発環境だったり、その他諸々。 問題 この用途で期待していた vscode online が使いづらかった。MS のアカウントを要求されたり、Docker コンテナの Enviroment を作ったりする必要があり、面倒だった。そもそもリ

                                                          vscode の web build を netlify にデプロイする + ファイルシステムを永続化する - mizchi's blog
                                                        • 有料記事の技術ライターで食っていけるか

                                                          2020年版: なぜ仮想 DOM / 宣言的 UI という概念が、あのときの俺達の魂を震えさせたのか | Zenn という記事を500円で販売しました。その経緯と現時点での結果について。 なぜ書いたか Qiita の開発から離れて久しいのですが、 もし Qiita で有料記事を出せたらどういう体験になるんだろう、というのは当時からずっと考えていました。 zenn に搭載された Qiita にはない機能を使うことで、それを感じてみたかった、というのが一番の理由です。 優れたプログラマ、そして優れた書き手には相応の対価があるべきです。 オープンなコミュニティでは、それが称賛や承認となって返ってきますが、人間はそれだけでは生きていけません。 今までのエンジニア界隈では伝統的にオープンなコミュニティで稼いだ名声を使って、良い企業への転職で高い給与をもらう、というのが今までの実質的な「稼ぎ方」でした

                                                            有料記事の技術ライターで食っていけるか
                                                          • React で展開された HTML 要素から vscode の生成元コードに飛ぶ 方法

                                                            自分が欲しかったから作ったシリーズ 説明しづらいので下記の動画を見たほうが速いです。 Shift を押している間だけオーバレイが有効になり、要素名をクリックすると vscode の該当行に飛びます。 今のところ vite + react のみの対応ですが、仕組み上、あらゆる UI フレームワークに適応可能です。 何が起きているか TypeScript transformer の仕組みで *.tsx の jsx 要素に data-sj-path="vscode://file/..." を付与する TypeScript AST は sourcemap 用の情報を持っている Node の parent を探索し、直近の関数コンポーネント名を探す Shift を押している間、 マウスでホバーされた要素が data-sj-path を持っているならオーバレイを表示 オーバレイ中の要素名をクリックした

                                                              React で展開された HTML 要素から vscode の生成元コードに飛ぶ 方法
                                                            • 星取表のアンチパターン

                                                              これだけみると LibC がよく見えますね。 オープンソースのライブラリ比較や、エンタープライズな SaaS が競合に対する優位を見せたいときに星取表が使われることが多いです。 中立な立場でライブラリを選定する過程として出てくることがあります。 自分はこれに全く意味がなく、むしろ競争的な立場では出した側が負けるものと認識しています。 星取表を作る側の意図 よく見かけるパターンがこれです。 開発自体は長いため機能が豊富だが性能に劣る先発が、後発を貶めている 恣意的な項目選定で、そもそも負けている そもそも比較対象としての土俵が違う(全部入りのフレームワークと単機能なライブラリの比較) 特に 1 と 2 の組み合わせが多く、この裏では非機能要件で圧倒的に負けていることが多いです。例えば A は機能は豊富だけどビルドに 30秒で、Bは機能は足りないけど3秒だといった場合、多くの場合ではまず B

                                                                星取表のアンチパターン
                                                              • プログラマ視点での生成AIとの付き合い方

                                                                プログラミングについて、最近考えてることについてのポエム。 基本的に、 GPT-4 と Claude-3-Opus を使った経験を念頭に置いて話をする。機械学習エンジニアではないので、あくまで利用者に徹した視点での話。仕事で生成AIを使ったパイプラインを作ったりはしている。 生成AIの進化速度を予測しておく 今大事なことは、今AIがどの程度の性能かという定点の話ではなく、その進化の速度を認識すること。 コード生成というタスクにおいて、生成AIモデルを人間に当てはめると、こんな感じの人物像を自分は持っている。 GPT-4: プログラミング経験2年目の大学2年生 Claude-3-Opus: プログラミング経験3年目の大学3年生 ここでいうn年目は、業務経験ではなく、プログラミングの単位がある大学での、教育課程としての経験年数。今のひたすら学習量を増やす方式だと、単に1年に1年分ぐらい賢くなっ

                                                                  プログラマ視点での生成AIとの付き合い方
                                                                • Reactの状態管理の変遷に関する自分史 From 2014 To 2022

                                                                  はじめに 2014年にReactを触りはじめて以降、2022年現在まで集中の度合いにバラツキはあるものの、ずっとReactでなんらかのアプリケーションを書いてきました。 その中で様々なアーキテクチャや設計に関する議論がありましたが、特に状態管理についての変遷を自身の体験をもとにまとめてみたいと思います。 多分に昔話的な内容なものの、適度に読み飛ばしてもらいつつ、Reactの状態管理のやや偏った歴史と現在地点の認識の共有になればと思います。 2014- | Reactの導入 - Flux SPA iPhone 4Sが出てスマートフォンを持つ人も多くなり、エンジニアでなくても多くの人が日常的にGmailやMapアプリケーションに触れるようになった時期だったと記憶します。 Webアプリケーションの構築でもフロントエンドへの要求レベルが高くなっていた感覚があり、JavaScriptで動的なView

                                                                    Reactの状態管理の変遷に関する自分史 From 2014 To 2022
                                                                  • rust.tokyo のまとめ・感想 - mizchi's blog

                                                                    このブログを書いてる経緯 rust.tokyo 楽しみ!絶対行く!といってたのに申込みを忘れたところ、じゃあスタッフとしてブログを書けという話になったので、ブロガー枠?らしく感想を書きます。とはいえ書けるのは見たやつだけです。 https://rust.tokyo/sessions# 前提 自分は低レベルプログラミングは詳しくないです。年に3日ぐらい思い出したように Rust 勉強することがある。 wasm 周りのエコシステムはずっと追ってる。 会場の雰囲気 組み込み勢とブロックチェーン勢が多そうな気配を感じた。 Visualization of mechanical CAD drawings using WebAssembly and WebGL Aki / CADDi (発表資料見つからず) 概要 Computer aided design (CAD) models used in m

                                                                      rust.tokyo のまとめ・感想 - mizchi's blog
                                                                    • Native ESM 時代のフロントエンドビルドツールの動向

                                                                      No Bundle ツールの流行: vite / snowpack モダンブラウザは Native ESM を備えているので、開発時は高速な localhost アクセスを頼って直接 import する、外部ライブラリだけ事前にコンパイルしておく、という手法が流行ってきている。プロダクション用は今まで通りビルドする。 webpack はすべてを一つにバンドルするためにメモリ上にファイルの実体と依存グラフを持っているが、これによりメモリと CPU を圧迫する問題があった。特に巨大なリポジトリではそれが顕著になる。 No bundle ツールの実装として vite と snowpack がある。 https://github.com/vitejs/vite https://www.snowpack.dev/ vite は使ってみた限り、更新時の差分ビルドが爆速で、明らかに体感が良い。 Vue

                                                                        Native ESM 時代のフロントエンドビルドツールの動向
                                                                      • Recoil について勉強した

                                                                        Fecebook が新しく発表した Recoil について 自分の学習手順 Getting Started | Recoil を写経して動かす Facebook 製の新しいステート管理ライブラリ「Recoil」を最速で理解する - uhyo/blog で非同期周りを理解 公式ドキュメントの API Reference で理解 <RecoilRoot ...props /> | Recoil これは自分が写経しながら書いた型定義。色々足りてないがチュートリアルで出る範囲は理解できる。 declare module "recoil" { export type RecoilState<T> = {}; export const RecoilRoot: React.ComponentType<{ initializeState?: (options: { set: <T>(recoilVal:

                                                                          Recoil について勉強した
                                                                        • blitz-js prisma rails 倒し方

                                                                          この記事の内容 blitz-js が生まれた背景 prisma の紹介 blitz で簡単なブログを作ってみる blitz を vercel にデプロイしてみる tldr blitz-js は next.js + prisma で rails を再現しようとしているフレームワーク Prisma ORM それ自体が良い。blitz の理解のためにも、まず Prisma を学べ blitz-js 自体はまだ α 品質だけど、今から注目しておく価値はある。デファクトになるかは不明。思想は継承されそう。 はじめに next.js はとても良いフレームワークだが、永続層を持たない。なのでフロントエンドとフロントサーバーに閉じている。 永続層、つまり DB を持たないので、初学者や流行りのプログラミングスクールの教材に選ばれない。また、JavaScript の学習資料が散らばっている。 要は Rail

                                                                            blitz-js prisma rails 倒し方
                                                                          • コンポーネントベースで開発する時の CSS の書き方とコンポーネントの分類 (自己流)

                                                                            React や Svelte でコンポーネントベースで開発するとき特有の CSS ノウハウってあんまり効かない気がする Twitter に書いたら反響があったので、自己流だけどまとめておく React Component の管理単位と、CSS としてのレイアウトの管理ポリシーは違うよね、みたいな話をマークアップエンジニアに時折されるが、そんな話は無視して完全一致させる。そういう星のもとで開発している コンポーネントの分類 ロジックコンポーネント レイアウトコンポーネント ブロックコンポーネント インラインコンポーネント 定義 ロジックコンポーネント Provider や hooks などのデータ処理だけを扱い、子に渡すコンポーネント 一切の CSS や DOM 実体を持たない レイアウトコンポーネント レイアウトコンポーネントは複数の子ブロックコンポーネント(または slot)を持ち、子ブ

                                                                              コンポーネントベースで開発する時の CSS の書き方とコンポーネントの分類 (自己流)
                                                                            • WebAssembly は次世代のコンテナ技術になれるか?

                                                                              色々あって WebAssembly の component model を調べていたら、未来が見えた気がしたのでここに書いておきます。 「今の WebAssembly」 とは何か WebAssembly の Web の部分は忘れてください。これは単に JVM version 20xx です。ポータブルなバイナリ仕様です。 実行にあたっては今はホスト言語として JS が使われていますが、実際にはホストがJSである必要すらなく、なんならホストが不要なスタンドアロン環境すらあります。(wasmtime/wasmer) じゃあ WebAssembly は何かというと、サンドボックスで実行される VM の仕様です。比較的高水準なバイナリで、 V8 や Spider Monkey に付属する WebAssembly Runtime や、 Wasmtime や Wasmer といった WebAssemb

                                                                                WebAssembly は次世代のコンテナ技術になれるか?
                                                                              • 報告: 結婚しました - mizchi's blog

                                                                                なんか今日は2がいっぱいあるので @syakejs と入籍しました。 以下例のリンクですhttps://t.co/dnzQMbvxdu pic.twitter.com/FrEcrOGUAz— ヌー (@mizchi) 2020年2月21日 私事ですが(と個人ブログでいうのもなんですが)、syakejs:(blog) と結婚しました。彼女は Webエンジニアだったり、大学でセキュリティの研究をしてたりしています。競プロやCTFもやってるらしいです。 話を聞いてみると、昔から僕のブログやTwitterをみていたファン?だったらしいのですが、最近なんやかんやあってコンバージョンしました。 入籍いつしよっかーという話になって、西暦2020年(令和2年)2月22日というゴロがよかったので、この日に決めました。 なにかしたからと言って別段何かが変わるというわけではなく、これからも普段どおりやっていくの

                                                                                  報告: 結婚しました - mizchi's blog
                                                                                • Deno first でやっていく

                                                                                  去年末ぐらいから Deno を使う割合がグッと増えてきた。最近のJS関連は7割ぐらい deno 環境の VSCode でコードを書いている気がする。 今回はいくつかの実例を示しながら、実際に Deno 使えるじゃんというイメージを持ってもらうためのユースケースを紹介していく。 というか、 deno が普及してくれないと、自分が作ったツールの紹介を全部 deno のインストールから書かないといけなくなる。みんなインストールしといて。 最初に: なぜ Deno を使いたいか 一番の問題点、Node は新しいプロジェクトを一式整えるための手間が非常に重い。 とくに ts で書いたものを他の環境に渡すための方法が未だにしんどい。ある環境で動いたコードをそのままコピーしても、プロジェクト設定の非互換を踏む可能性が非常に高い。 deno にそういう側面がないとは言わないが、非常に少ない。とくに TS

                                                                                    Deno first でやっていく