タグ

ブックマーク / qiita.com/mysticatea (9)

  • JavaScript にも "マルチスレッド プログラミングの頻出問題" がある。 - Qiita

    元ネタ: eslint/eslint#10405 このルール提案は「アトミックではない変数の更新を警告したい」というものです。 アトミックではない変数の更新というのは、マルチスレッド プログラミングの最初の方に出てくるアレです。または、RDB のトランザクションの説明で出てくるアレです。 JavaScript のコードはシングルスレッドで動くのに、アトミックではない変数の更新なんてあるの? と思ったらありました。スレッドを自由に作成できる言語と違って、どこでも自由に別処理が割り込んでくるわけではありません。しかし、yieldやawaitによって、式の途中で別処理が割り込んでくることがありえるのです。 See the Pen Threading problem by Toru Nagashima (@mysticatea) on CodePen. 肝はここです。 次のように動作します。 変数

    JavaScript にも "マルチスレッド プログラミングの頻出問題" がある。 - Qiita
    efcl
    efcl 2018/06/04
    async/awaitでのrace conditionについて `total += await getFileSize(file) `は `var prevTotal = total; total = prevTotal + await getFileSize(file)` であるため
  • eslint-plugin-vue を作っている話 - Qiita

    4日朝に Vue.js #1 アドベント カレンダーを見たら3日のぶんが空いていたので急遽書きました。 私は .vue ファイルを静的検証するための ESLint Plugin を開発しています。 eslint-plugin-vue ( ESLint についてはこちら: ESLint 最初の一歩 ) このプラグインを使うと、.vueファイルのテンプレート部分について、リアルタイムで構文エラーを検出したり、v-bind 等のディレクティブの使い方が間違っていたときに指摘してくれたりします。また、公式の Vue.js スタイルガイド に沿うように自動成形することもできます。 🏃 試してみる eslint-plugin-vue を簡単に試してみるために、オンライン デモがあります (1度アクセスすれば、以後はオフラインでも使えます)。ここでコードを入力して、どのようなエラーが出るのか、どのよう

    eslint-plugin-vue を作っている話 - Qiita
    efcl
    efcl 2017/12/05
    Vue向けのESLintプラグインである`eslint-plugin-vue`の紹介とオンラインデモについて
  • ESLint プラグイン紹介: eslint-plugin-eslint-comments - Qiita

    eslint-plugin-eslint-comments は、ESLint ディレクティブ コメント (/*eslint-disable*/のようなやつ) を使うときのベストプラクティスをまとめた ESLint の追加ルール集です。 ESLint ディレクティブ コメントを使うときは、意図せず有用な警告が抑制されてしまうことを防ぐため、可能な限り影響範囲が狭いように記述すべきです。 このプラグインのルールは、そのための手助けをしてくれます。 インストール ESLint プラグインですので、npm を利用してインストールします。 ESLint をグローバル (--global) にインストールしている場合は、同じくグローバルへ。ESLint をローカル (--save-dev) にインストールしている場合は、同じくローカルへインストールしてください。

    ESLint プラグイン紹介: eslint-plugin-eslint-comments - Qiita
    efcl
    efcl 2017/02/13
    ESLintのコメントについてのルール。 disableしっぱなしのミスなどを見つけたりできる
  • ESLint v2.1.0 ~ v2.3.0 までの変更点 - Qiita

    前 v2.0.0 | 次 v2.4.0 ESLint v2.3.0 released: https://t.co/4tRvrg5UGM — ESLint (@geteslint) 2016年3月5日 v2.1.0とv2.2.0では、v2.0.0リリースに入ってしまった誤検出やクラッシュのバグ修正が行われました。v2.3.0から通常の隔週リリースに復帰しています。 質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。 日語の Issue 管理リポジトリ: https://github.com/eslint/eslint-jp チャット: https://gitter.im/eslint/eslint-jp ピックアップ: ECMAScript 2016 (ES7) をサポートしました。 設定ファイル.eslintrcの中で、0, 1, 2の代わりに"error", "warn"

    ESLint v2.1.0 ~ v2.3.0 までの変更点 - Qiita
    efcl
    efcl 2016/03/05
    ESLint v2.1.0からv2.3.0での変更点
  • npm-scripts で使える便利モジュールたち - Qiita

    npm はパッケージ依存管理ツールであると同時に、便利なタスク・ランナーです。 体はごく基礎的な機能だけを持ち、npm が管理するパッケージと Shell の力を組み合わせてタスクを定義します。「npm-scripts で利用する CLI コマンドは npm で管理できる」という分かりやすさが気に入っています。 npm-scripts には以下の特徴があります。 多くのツールが CLI を持っているためにラッパープラグインが不要です。Gulp ラッパー プラグインは非公式であることも多く、メンテナンスが継続するか不安な場合があります。 簡潔です。Gulp で書くと数十行だった処理が数行になるなんてこともよくあります。 複雑なことをするには向いていないです。 環境変数の扱いに難があります。 この記事では、私が npm-scripts を書くときによく利用している便利ツールたちを紹介します。

    npm-scripts で使える便利モジュールたち - Qiita
    efcl
    efcl 2016/02/07
    npm run-scriptで使える便利コマンド集
  • 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
    efcl
    efcl 2015/12/15
    ESLInt 2.0での変更点について。 解析パス周りの変更。
  • ESLint のカスタムルールを作ろう! (その1) - Qiita

    はじめに ESLint の魅力の1つに、自分のプロダクトに合わせた独自ルールを作成することができるという点があります。 これから数回に分けて独自ルールの作り方・使い方を解析していきます。 この記事では、簡単なルールを作りながら、ESLint のルールの基的な仕組みを解説します。 ここでは ESLint の基的な使い方は扱いません。 ESLint の基についてはESLint 最初の一歩等を御覧ください。 no-literal-call この記事では、最初の目標としてリテラルを関数呼び出ししている場合に警告するルールを作っていきます。 その過程で必要な知識を解説していくつもりです。 今回題材にするソースコードはこちら。 これは有効な JavaScript コードですが、実行すると必ず TypeError になります。 文字列を関数呼び出ししているので、当然ですね。 しかし ESLint

    ESLint のカスタムルールを作ろう! (その1) - Qiita
    efcl
    efcl 2015/12/12
    ESLintのルールの作り方
  • ESLint 最初の一歩

    We're excited to announce that ESLint v6.0.0 has been released: https://t.co/EO4ZrZIMYM — ESLint (@geteslint) 2019年6月22日 ESLintJavaScript のための静的検証ツールです。コードを実行する前に明らかなバグを見つけたり、括弧やスペースの使い方などのスタイルを統一したりするのに役立ちます。同様のツールとしては JSLint, JSHint 等があります。 ESLint の特色は、 すべての検証ルールを自由に on/off できる 自分のプロジェクトに合わせたカスタムルールを簡単に作れる 豊富なビルトイン ルール (5.0.0 時点で 260 個) に加えて、たくさんのプラグインが公開されている ECMAScript 2015 (ES6), 2016, 201

    ESLint 最初の一歩
    efcl
    efcl 2015/10/22
    ESLintの使い方、設定方法、ES6関連のルールについて
  • Streams 仕様読んだ - Qiita

    Streams 雑感 WHATWG Streams の仕様を読みました。 雑感です。 第1印象は「常識に囚われてはいけないのですね!」でした。 仕様は ES6 で実装してから書いてるようで、既に動く実装があります。 ES6 Classes を使って書かれており、主要なクラスはReadableStream, ReadableStreamReader, WritableStreamの3つ。 Promise まず特筆すべき事は、 Streams はイベントを一切持たないという点です。 ワオ。 従来の JavaScript はイベント駆動です。DOM も XHR も WebSockets も EventSource もイベントを通知します。しかし、この新しい Streams はaddEventListenerを持っていません。代わりに、Promiseをイベントのように使っています。 これにはちゃん

    Streams 仕様読んだ - Qiita
    efcl
    efcl 2015/03/23
    Streamはイベントを持たないで、パイプをしてデータを渡したり、ReadableStreamReaderを使い読み込む。
  • 1