タグ

ブックマーク / yosuke-furukawa.hatenablog.com (46)

  • npm, yarn による zero install 戦略 - from scratch

    jsconf.eu 2019 に行ってきました。 特に npm や yarn の今後の話とそもそも Registry をどうしていくか、の話があったのでお知らせします。 そもそも Registry をどうしていくかについては次のエントリで話します。 tink: A Next Generation Package Manager npm の次のコマンドラインツールである tink が紹介されていました。 github.com presentation: github.com video: www.youtube.com そもそも npm の仕組み ローカル依存ファイルを読む (package.json, package-lock.json, shrinkwrap.json) 存在しないパッケージのメタデータをfetchする 木構造を計算して、実行する(npm v3 以降だとflattenする

    npm, yarn による zero install 戦略 - from scratch
    t-wada
    t-wada 2019/06/10
    Nodeの新世代パッケージマネージャ二つ。node_modules以下に大量にファイルを展開するのをやめようというtinkとyarn v2の試みについて。実装方法が標準添付ライブラリのパッチなのはまだ提案フェイズゆえか。
  • Node.js における設計ミス By Ryan Dahl - from scratch

    Ryan Dahl は Node.js の original author ですが、彼の作ったプロダクト deno に関するトークが jsconf.eu 2018 でありました。 Node.js にずっと関わってきた僕が見て非常に興奮するような話だったので、しばらくぶりにブログに書き起こすことにしました。 背景 Ryan Dahl は2009年に Node.js の話を初めて公の場に公開しました。その時の「公の場」というのが「jsconf.eu 2009」です。 www.youtube.com Video: Node.js by Ryan Dahl - JSConf.eu - 2009 この発表から Node.js が広まり、今やサーバのみならず、IoTデバイス、デスクトップアプリなど、様々なところで動作しています。 で、今回はその発表から9年の歳月が経過し、Node.jsに対しての設計不

    Node.js における設計ミス By Ryan Dahl - from scratch
    t-wada
    t-wada 2018/06/07
    ソフトウェア作者本人によるふりかえりや回顧録は本当に面白い。そしてこのエントリは古川さんによる解説や mikeal による反論も紹介されていて価値が高い。
  • Node.js Performance 改善ガイド - from scratch

    Node.js Performance 改善ガイド Memory の場合 メモリリークかどうかを特定する メモリリークではない場合 CPU の場合 どこの処理に時間がかかっているのかを確認する v8 simple profiler flame graph を取得する File の場合 大きなサイズのファイルをどうしても扱う時 Network の場合 keepalive を on にする その他: 全体的にパフォーマンスを改善するためにやること JIT が効いているかを確認する clusterが使えないか検討する C++ addons vs JavaScript libraries まとめ 参考資料 Node.js Performance 改善ガイド この記事は Node.js 2 Advent Calender の 5日目の記事です。 qiita.com Node.js のパフォーマンスに

    Node.js Performance 改善ガイド - from scratch
    t-wada
    t-wada 2017/12/08
    素晴らしい。 Node のパフォーマンスチューニングに関する圧倒的な情報量のエントリだ。
  • util.promisify が追加された - from scratch

    Node.js のコアに util.promisify が追加された。 github.com 今回は util.promisify が持つ役割を中心に Node.js における Promise の立場についても話していけるといいと思う。 util.promisify とは 読んで字のごとく関数を Promise に変換してくれるユーティリティメソッド。 下記のような要領で変換できる。 const util = require('util'); const fs = require('fs'); const stat = util.promisify(fs.stat); stat('.').then((stats) => { console.log(stats); }).catch((error) => { console.error(error); }); async-awaitを使いたい

    util.promisify が追加された - from scratch
    t-wada
    t-wada 2017/05/10
    サーバサイドでほいほい Promise を使う前に考えなければならないことが説明されている "unhandledRejectionの時の振る舞いが決まっていない " それなー
  • Demystifying webpack2 tree shaking - from scratch

    webpack2 に最近移行しました。 その時の知見とせっかくなので tree shaking が実際に中でやってることを追ってみたので紹介。 webpack2 移行時の注意 基的にはほぼここに書いてあるとおり。 Migrating from v1 to v2 かいつまんで説明すると、configファイルの書き方がガラッと変わって、 module.loaders が module.rules になったり、 resolve.root がなくなって resolve.modules に変わったり。この辺の書き換えは割りとすんなりいくはず。 辛いのはpostcss周りのオプションの渡し方辺り。これまではconfigのrootにpostcssプロパティを用意してそこに記述できたが、その記述はできなくなり、 webpack.LoaderOptionsPlugin 経由で渡すか postcss.con

    Demystifying webpack2 tree shaking - from scratch
    t-wada
    t-wada 2017/01/25
    webpack2 の tree shaking, 蓋を開けてみたら中では UglifyJS を使っていたので拍子抜けすると共に、自分で作らないところは良いという感想を持った
  • ソフトウェア例え話、格言、小噺 - from scratch

    2016年になってから色んなソフトウェアエンジニアの人と話してきて、その中で3人から聞いた例え話、格言、小噺が面白かったので、僕の中だけで留めておかずに開放しておく。 息継ぎをするには『まず息を吐く』という例え話 水泳で息継ぎをするなら『まず息を吐きなさい』と教わるらしい。これは息を吐かずにどこかで息を貯めてしまうと、ちゃんと息を吸えないという事を意味してる。息を吐くと苦しくなって顔は絶対に水面に出る。 これと同じことがソフトウェアの学習にも言える。 つまりまずアウトプットする、なんでも良い。作ったものをGitHubに公開するとか、発表するとか、ブログやQiitaに書くとか。ちゃんとアウトプットしたものはフィードバックがあり、そのフィードバックを受ける(PRやissue, 質問, マサカリ etc)、どんどん吐き出していくと吸わないとネタがなくなるので、吸い込むためにまたインプットする。

    ソフトウェア例え話、格言、小噺 - from scratch
    t-wada
    t-wada 2017/01/05
    そういえば、牛タン食べながら偶発的なコミュニケーションの話をしたなぁ
  • リクルートテクノロジーズのフロントエンド開発 2016 - from scratch

    前書き このエントリーは Recruit Engineers Advent Calendar の 1日目の記事です。 www.adventar.org リクルートテクノロジーズのフロントエンド開発 リクルートテクノロジーズではいくつもの並行するタスクが走っていて、プラットフォーム基盤と呼ばれる基盤技術開発とインフラソリューションと呼ばれるインフラ開発、後はアプリケーション開発支援などのタスクが存在します。 アプリケーション開発支援の中でもウェブフロントエンド開発は目下のところ重要タスクとされており、色んなやり方をトライアルしています。 基的には、 React Redux Node.js という組み合わせでフロントエンド開発をしています。 主には以前 ubb.jp というイベントで発表したこの資料に記載されている内容でやっていますが、諸々補足します。 リッチなウェブアプリケーションを作るた

    リクルートテクノロジーズのフロントエンド開発 2016 - from scratch
    t-wada
    t-wada 2016/12/09
    足りないピースがあったら自分たちで OSS プロダクトを作って埋めていく姿勢が本当に凄い
  • Node Interactive Europe 2016 に参加しました。 - from scratch

    Node Interactive Europe とは Node.js が Linux Foundation の傘下に入ったのですが、その Linux Foundation の支援を受けて開催される非常に大きなカンファレンスの1つです。アムステルダムで行われました。 とにかく濃い4日間で、今回は Node.js の発表あり、アンカンファレンスあり、Collaborators Meetupありで面白かったです。 First Date (Node Interactive) 初日、カンファレンスにはbreakfast/lunch がついていて、クロワッサンとスムージーがおいしい。 Node Foundation Opening Talk by Mikeal Rogers Node.js のこれまでとこれからを表したまとめ的な話。 Node.js はサーバーだけじゃなくて、フロントエンドにも活用され

    Node Interactive Europe 2016 に参加しました。 - from scratch
    t-wada
    t-wada 2016/10/03
    写真が多く、雰囲気が伝わってくる
  • Node.js における Promise を使った例外処理 - from scratch

    さて、 Node.js のエラーハンドリングは難しいと言われてますが、 2016年現在、つまりNodeの v4 とか v6 が主流になり、 Promise が基的な処理として採用されている状況ではどうでしょうか。ちょっと考えてみます。 一応これの補足です。 qiita.com TL;DR 未だに難しい。ただし、 Promise で改善されている。async-await や zone まで来たらかなり楽になる。 あと、 unhandledRejection が uncaughtException よりも酷いことにならないので、大分マシになっている。 Node.js のエラーハンドリングの難しさ まず JavaScript には同期と非同期のエラーハンドリングのやり方があります。前者は所謂 try-catch による方法、後者は callback を使って第一引数で実現する方法や emit(

    Node.js における Promise を使った例外処理 - from scratch
    t-wada
    t-wada 2016/07/12
    Promise が入った現時点の Node.js における例外処理、 unhandledRejection と uncaughtException の違いなどについて分かりやすく説明されているエントリ
  • ES Modules と Node.js について - from scratch

    書こう書こうと思いながらこのタイミングまでのがしてしまいました。 今一番 Node.js の中で hot な discussion の一つと言えるでしょう、『ES Modules が Node.js の中でどうなるか』です。 ES Modules 現況 ES2015 が発刊されてそろそろ一年です。 ES2015 にある機能は Node.js v6でも 93% 程度カバーされています。モダンブラウザでも大体が90%を超えています。しかし、 ES Modules だけはまだどのブラウザも実装しきれていません(kangax compat table は ES Modules は省かれてます)。 そもそも ECMAScript 2015 自身で定義されたのは構文だけなので、構文はともかく、どうやってモジュールを取ってくるかという Loader の部分がまだ決まりきっていません。 https://w

    ES Modules と Node.js について - from scratch
    t-wada
    t-wada 2016/05/10
    ES Modules が Node.js の中でどうなるか。 CommonJS とどう相互運用していくか。現状について力の入ったまとめ
  • Node.js v6.0 (Current) がリリースされました。 - from scratch

    さて、とうとう皆さん待望の Node.js v6.0 がリリースされました!次のLTS候補です。LTSになるのは2016年の10月からの予定です。v6 の LTS 期間は明示化されてないですが、ルールに照らし合わせれば、LTSになってから 2年半がサポート期間なので、おそらく 2019年4月まではサポートされます。 Node v6.0.0 (Current) | Node.js Node.js v6.0 の主な変更点 ES2015 support の改善 module load性能の改善 Buffer API の new Buffer() コンストラクタの廃止 (セキュリティ上の理由から) ES2015 support の改善 やっぱりこれが一番大きな変化ですね。 node.green を見てもらえればわかるかもしれませんが、 ES2015 のサポートがこれまでは 58% だったのが 96

    Node.js v6.0 (Current) がリリースされました。 - from scratch
    t-wada
    t-wada 2016/04/27
    先ほどリリースされた Node.js v6.0 の主な変更点について
  • DeNAを卒業します - from scratch

    この週末にこの話を書こうと思っていたのですが、筆不精なもので土日を普通に過ごしてしまいました。 さて、表題の通りDeNAを卒業することになりました。 今回は技術的な話ではなく、単純にライフステージの変化の話なので気にならない人は読み飛ばしてください。 DeNAに入社したのは3年半前 yosuke-furukawa.hatenablog.com だいぶ昔の記事ですね。この時は同年代や年下の若いエンジニア達がメキメキと力をつけていく中で「なんとかしなければ」という焦燥感で常に何かしらをウォッチしつつ、新しい技術があれば飛びついて調べ、アウトプットする、というようなことをやってました。(今でもアンテナは張っているつもりです) そんな折に DeNA に誘われて入社できたのは非常にラッキーだったと思っています。新しい技術を積極的に採用しつつも、ある程度冷静かつ成熟した判断をしている部分があり、しかも

    DeNAを卒業します - from scratch
    t-wada
    t-wada 2016/04/19
    Fulltime パパ committer すばらしいな。おめでとうございます!!!
  • JavaScriptの文化とleftpadの話とpadStartについて - from scratch

    無駄にラノベみたいに長いタイトル書いちゃったんですが、まぁやっぱり一言くらいは残しておくかと思ったので書きます。長いのでまとめだけでも見てもらえると良いかもしれません。 leftpadの話はかなり大事になっていて、Node.js界隈を中心としてその他のOSSをやっている全体的に話が波及しています。幾つかの記事を読みました。今回はJSの文化歴史についてちょっとずつ書いていこうかなと思います。 の虫: npmからkikとその他諸々が消されたまとめ 江添さんの話はすごくよくまとまっていて、ネタも含めた上で一番面白い話になっていました、ここで言われている下記の疑問に答えていこうと思います。 もっと憂うべきパッケージがある。isArrayだ。このパッケージは一日88万回もダウンロードされていて、2016年2月だけの一ヶ月間に1800万回もダウンロードされていて、72個ものNPMパッケージが依存し

    JavaScriptの文化とleftpadの話とpadStartについて - from scratch
    t-wada
    t-wada 2016/03/28
    今回の left-pad 騒動の背景にあった JavaScript 特有の事情について明晰に説明されていて素晴らしいエントリ
  • 東京Node学園祭2015を開催しました。 - from scratch

    さてさて、東京Node学園祭2015が開催されました。 すごくすごく楽しかったです。午前中から最後の最後までめちゃくちゃ面白かった。 振り返りながらどういうカンファレンスだったのか語っていこうと思います。 アンケート結果 アンケートに回答していただいた皆様、ありがとうございました。反省するべき点も多いので来年にまた活かします。 さて、アンケートでvoteしてもらった結果、参加者の皆さんが選んだコンテンツのトップ5は以下のようになりました。 1. Electroknit! - Pixel to sweater with Node.js by @kosamari 2. "npm": ">=3" by @maybekatz 2. The State of JavaScript by @domenic 4. NodeDiscussion 5. フロントエンドに秩序を取り戻す方法 〜はてなブログ編集

    東京Node学園祭2015を開催しました。 - from scratch
    t-wada
    t-wada 2015/11/11
    おおお参加者層若いな!
  • Node.js v5.0 がリリースされました。 - from scratch

    Node.js v5.0 がリリースされました!! 今回はどちらかと言うと機能面というより、 Node.js v5.0 の位置づけを中心に解説したいと思います。 機能面も一応載せますが、学園祭前で時間があまり作れないので、さくっと終わらせます。 機能面での変更 ES2015の文法追加 Spread operator が追加 Spread operator が追加されました。 これまで配列をJavaScriptの関数に引数に展開して渡す場合、以下のように記述する必要がありました。 function f(x, y, z) { console.log(x); console.log(y); console.log(z); } var args = [0, 1, 2]; f.apply(null, args); この書き方はあまり直感的じゃなく、また new 演算子と併用できないという問題があった

    Node.js v5.0 がリリースされました。 - from scratch
    t-wada
    t-wada 2015/11/05
    “偶数バージョン = LTSではなく、 Argon, Boron などの LTS 識別名が付いているもの = LTS" "バージョンはあくまでsemverにしたがって上がります。LTSとバージョン番号に直接の関係はあまりない"
  • 東京Node学園祭2015を開催します。 - from scratch

    さてさて、東京Node学園祭2015を開催します。開催も今週土曜日と迫ってまいりました。 今回のエントリはNode学園祭内でどういうことをやるのか事前にシェアしておくことで参加者並びに発表者の皆様にスムーズな参加を促すための紹介エントリです。 NodeSchool 今年もNodeSchoolを開催します。 今年のNodeSchoolには以下のコンテンツが含まれています。 javascripting (JavaScriptのワークショップ、変数宣言から関数定義とかifとかforの書き方まで含まれてる初心者向けワークショップ) learnyounode (Node.jsのワークショップ、NodeのAPIであるfsやhttpを使って実際にNode.jsでCLIを作ったりサーバを作る初心者向けワークショップ) how-to-npm (npmのワークショップ、npmのコマンドの使い方と基的な一連の

    東京Node学園祭2015を開催します。 - from scratch
    t-wada
    t-wada 2015/11/05
    "中の人達に対して意見を直接言う場って日本で暮らしてると無い" "使ってる人と作ってる人の境界が少ないのがやっぱり理想" NodeDiscussion 意欲的な試みで素晴らしい
  • Node.js v4.0.0 がリリースされました。 - from scratch

    NodeConfEUに行ってたりして完全にブログにするのが送れましたが、 Node.js v4.0.0 がリリースされました。 https://nodejs.org/download/release/v4.0.0/ Node v4.0.0 (Stable) | Node.js 個人的には今年ずっとNode.js と io.js をまとめてきたり、時に中の人としてpatchを送ったりしてきたので当に思い入れの深いリリースです。今までで一番リリースの思い入れが深いですね。 何が変わったのか 何回かこのブログで触れてますが、一番変わったのは開発体制と開発方法です。YAPCの発表でも触れましたが、BDFL (優しい終身の独裁者)モデルではなくなり、技術委員会によってけん引するモデルに変わりました。 体制が整った事で、今までよりかなりちゃんとPRはレビューされるようになりましたし、テストも不安定な

    Node.js v4.0.0 がリリースされました。 - from scratch
    t-wada
    t-wada 2015/09/18
    "一番変わったのは開発体制と開発方法" "BDFL (優しい終身の独裁者)モデルではなくなり、技術委員会によってけん引するモデルに変わりました"
  • YAPC::ASIA 2015で「どうしてこうなった? Node.jsとio.jsの分裂と統合の行方。これからどう進化していくのか?」というタイトルで発表してきた。 - from scratch

    YAPC::ASIA 2015 でスピーカーとして参加してきました。 2014年に一度スポンサーセッションでトークしましたが、2015年はCFPを出しつつスピーカーとして参加してきました。自分がNode学園のオーガナイザーになってみてわかりますが、YAPCの規模で毎年カンファレンスを続けるのは当にすごい。スタッフ含めておもてなしと手際の良さが表れていて、素晴らしかった。 あと発表者としては、今回のYAPCの参加者はかなり積極的に質問してきていて、いつもよりも参加してる人達の"質問してやろう"っていう意向が強くて活発な議論ができたかと思います。すごく良かったです。 発表内容 発表の内容は Node.js の歴史と今のNode.jsの開発体制の話、さらに今後のNode v4.0 の話を中心的に話してきました。 Node.js は Ryan Dahl によるBDFL(優しい終身の独裁者)の開発

    YAPC::ASIA 2015で「どうしてこうなった? Node.jsとio.jsの分裂と統合の行方。これからどう進化していくのか?」というタイトルで発表してきた。 - from scratch
    t-wada
    t-wada 2015/08/24
    多くの場合作者が優しい終身の独裁者となって求心力と意思決定の迅速さ、燃料投下等を担うことが多いけど、 Node の場合は Ryan が彼の意思でバトンを次に渡したので、合議制がフィットするといいなとは思う
  • NodeConf Adventure 2015 に行ってきました。(一日目、二日目に起きたこと) - from scratch

    NodeConf に行ってきました。 NodeConf っていうのは Node.js のための勉強会です。 io.js の中心人物である mikeal や、 npmCEO である izaacs 、 hapijs author であり、先日 Walmart を退社した Eran Hammer など、そうそうたるメンバーの中でディスカッションをしてきました。 NodeConf Adventure とは NodeConf Adventureはいわゆる発表者がいて、聴講者が聞くっていうスタイルのカンファレンスじゃありません。 なんというかものすごくメタなカンファレンスで、ワークショップとノウハウの共有をメインとしたディスカッションのための場所です。 アンカンファレンスっていう形式ですね。 Hello NodeConf! pic.twitter.com/MHBVi6Jg4c— Yosuke FU

    NodeConf Adventure 2015 に行ってきました。(一日目、二日目に起きたこと) - from scratch
    t-wada
    t-wada 2015/06/24
    Node.js 日本ユーザグループ会長、いい仕事している
  • Node.js と io.js の統合は最終局面へ - from scratch

    いくつかこの何日間でニュースが出ているので紹介します。 ちなみに、 io.js と Node.js のニュースに関してはこれまで2つ書いたので、まだ良く知らない人はそれをまずはご一読ください。 yosuke-furukawa.hatenablog.com yosuke-furukawa.hatenablog.com さて、次の展開へ、という事でいくつか話があります。 「Join the Node Foundation?」 というissueが mikeal から提案される github.com issue 文を翻訳したものを貼っておきます。 Node Foundationのためのすべての文書が揃った。 TSC Charter (技術委員会の目的) Development Policy(開発ポリシー) Convergence Plan(移行プラン) Project Lifecyle (Wor

    Node.js と io.js の統合は最終局面へ - from scratch
    t-wada
    t-wada 2015/05/13
    Node.js と io.js の再統合とガバナンスの方針、そしてバージョン番号について