タグ

関連タグで絞り込む (157)

タグの絞り込みを解除

JavaScriptとJavascriptに関するhigedのブックマーク (158)

  • 優秀なJavaScriptの開発者になるための5か条 | POSTD

    (注記:7/15、いただいた翻訳フィードバックを元に記事を修正いたしました。) 子供の頃、私の興味は互いに関係性のない様々な分野に及んでいました。数学歴史も大好きでした。 ルネッサンスマン 、つまり 博学者 と言う、複数の分野に秀でた人になりたいと思っていました。これはとても難しい課題で、私は突如として、器用貧乏な人になってしまう危機に直面したのです。 私は特定の分野に特化しなくては、と考え始めました。そうすればたとえルネッサンスマンにはなれなくても、少なくとも、器用貧乏にならなくても済むと思ったのです。どうしたらソフトウェア開発をするのに必要な広い知識を保ちながら、1つの分野で専門性を高めることができるのでしょうか。 この記事では、過去5年間、私が良いJavaScript開発者になるために使ったテクニックとリソースの概要をお伝えしようと思います。 最近の多くのWeb開発者は、ある共通の

    優秀なJavaScriptの開発者になるための5か条 | POSTD
  • JavaScriptでbind()を使って部分適用する | POSTD

    JavaScriptの中にはコードをもっとシンプルで見やすくできるパターンがあるのに、あまり使われていないものがあります。皆さんも Function.prototype.bind はご存じでしょう。頻繁に使われていた var that = this や var self = this の代わりになる関数です。よくあるのが以下のような例です。 this.setup = function () { this.on('event', this.handleEvent.bind(this)); }; 第1引数が bind (束縛)され、返される関数内で this として働きます。あまり知られていませんが bind は複数の仮引数を取ることができ、 bind された関数が呼び出されると bind される後続のすべての仮引数は、その仮引数リストの前に付加されます。 つまり以下のように、関数を部分適用す

    JavaScriptでbind()を使って部分適用する | POSTD
  • Nodeでプライベートな(exportsされてない)メソッドのテスト - ぶれすとつーる

    だいたいこの記事のまんまですが大雑把な訳記事だと思ってください。 こんなファイル(app.js)があったとする。 //app.js exports.testableMethod = function () { complicatedMethod(untestableMethod); }; var untestableMethod = function (a, b) { return (a + b); }; testableMethodはexportsされてるのでテストできますね(まぁ参照エラーでるけど) こういう時untestableMethodのテストって結構至難の業でexportsされてるメソッド経由でテストしてたり、テスト用に var local ; exports.test = local = {}; local.privateMethodA = fucntion () {}; と

    Nodeでプライベートな(exportsされてない)メソッドのテスト - ぶれすとつーる
  • Node.js の Stream API で「データの流れ」を扱う方法 - Block Rockin’ Codes

    追記 11/12/6 少し誤字脱字を修正、加筆 11/12/7 koichik さんにコメントで頂いたリンクと、その内容について追記 11/12/7 edvakf さんに頂いた指摘を修正 文 この記事は、JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) の 4 日目の記事です。 Node.js には Stream という API があります。 Stream はとても重要な技術で、 「Stream を制するものは、 Node.js を制す」と言っても過言ではありません。 実際、 Stream は Node.js が得意とする I/O の部分を使いこなすために、 押さえておくべき技術なので、今回はこの Stream について紹介したいと思います。 参考 Jxck's OutPut - Node.js の Stream I/O のお

    Node.js の Stream API で「データの流れ」を扱う方法 - Block Rockin’ Codes
  • node.js でファイル操作 (Streams) - 酔いどれコード

    今まで JavaScript ではファイルを扱うコードを書いたことはなかった(そもそも扱えないし)。node.js ではファイルも扱うことができる。今回は Stream インタフェースを試してみた。 % node -v v0.5.0-pre イベントの確認 まずは、イベントがどのような順番で起きるか確認してみる。入力ファイルの内容を pipe を使ってそのまま出力ファイルへ流し込む。 コード input.txt ABCDEFGHIJKLM zyxwvutsrqpon 1234567890streams1.js var fs = require('fs'); var read = fs.createReadStream('./input.txt', {bufferSize: 32}); var write = fs.createWriteStream('./output.txt'); rea

    node.js でファイル操作 (Streams) - 酔いどれコード
  • Object.observe()とNode.jsのイベントループの関係 - ぼちぼち日記

    1. はじめに 最近 Chrome で Object.observe() がデフォルトで有効になりました。 Reland "Enable Object.observe by default" again コミットログを見ればわかりますが、2回 revert された後の3度目の正直のコミットです。 確かに Object.observe() は非常に強力なAPIですけど、ES6の仕様候補の機能に入っていません。(ES.harmony or ES7?) ちょっと前に大幅な仕様見直しがあったので、こんな苦労してまでよくデフォルトで有効にするなぁと不思議でした。 しかし今日 AngularJS 2.0 のリリースを見て合点いきました。PolymerのMLにも流れてました。 AngularJS 2.0 polymer-dev PSA: ES Object.observe now on by defau

    Object.observe()とNode.jsのイベントループの関係 - ぼちぼち日記
  • 今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog

    ソフトウェアを正しく理解する唯一の方法はコードを読むことです。 ドキュメントを読めばそのソフトウェアが何を実装しているか分かりますが、どのように実装されているかまでは分かりません。 開発中に何らかのトラブルに悩まされたときや、効率的なコーディングをしたいと思ったとき、下位レイヤのソフトウェアを理解しておけば素早く対処できるシーンが多くあります。 ただ、コードを読むことは簡単なタスクではありません。 現代的なソフトウェアはそれなりの規模のコードを含んでいることがほとんどです。アーキテクチャ間の差異を吸収するためのコードなど、質的な機能を理解する上ではあまり重要ではないコードも含まれています。 何らかの問題が発生してからコードを読もうと思っても、準備なしでは関連する箇所を探すだけでかなりの労力が必要な作業となります。 従って、普段からコードを読んでおくことが重要です。 また、コードを読むにあ

    今日から始めるNode.jsコードリーディング - libuv / V8 JavaScriptエンジン / Node.jsによるスクリプトの実行 | Tokyo Otaku Mode Blog
  • Node.jsのイベントループを理解する | POSTD

    (訳注:2015/8/4、いただいた翻訳フィードバックを元に記事を修正いたしました。) Nodeの”イベントループ”は高スループットのシナリオを操作する中枢で、ユニコーンや虹で満ちあふれているような魅力的な場所です。そしてこのイベントループのため、バックグラウンドで任意の処理の実行が可能でありながら、Nodeは質的に”シングルスレッド”になるのです。この記事では、イベントループがどのような処理を行うのかを説明していきます。そうすれば皆さんも、この魔法を使いこなせるようになるでしょう。 イベント駆動型プログラミング イベントループを理解するためにまず必要なのは、イベント駆動型プログラミングのパラダイムを理解することです。イベント駆動型プログラミングは、1960年代から広く知られてきました。現在は主にUIのアプリケーションに使用されています。JavaScriptでは主にDOMとのやりとりで利

    Node.jsのイベントループを理解する | POSTD
  • expressでapp全体の設定値をroutesで使う(module間で変数を受け渡す)方法いろいろ - すぎゃーんメモ

    Expressでテンプレートからプロジェクトを作ると、現在の最新版2.5.4では . ├── app.js ├── package.json ├── public │ ├── images │ ├── javascripts │ └── stylesheets │ └── style.css ├── routes │ └── index.js └── views ├── index.jade └── layout.jade 6 directories, 6 filesのようにファイルとディレクトリが作られる。app.jsが体で、 var express = require('express') , routes = require('./routes') var app = module.exports = express.createServer(); ... app.get('/',

    expressでapp全体の設定値をroutesで使う(module間で変数を受け渡す)方法いろいろ - すぎゃーんメモ
  • JavaScript設計の世代と近未来の話。(JavaScriptおれおれAdvent Calendar 2014 – 24日目) | Ginpen.com

    JavaScriptおれおれAdvent Calendar 2014 – 24日目 個人的に、こんな感じで認識してますって話。書くにあたりあんまり精査してないので勘違いありそう。やさしく教えてください。 もちろん個々人では先取りしてあれやこれややってる人もいて、そういう人たちは特に今でも第一線で頑張っているように思う。 原初 設計なし DHTML (Dynamic HTML) NoScript 設計なしに書いていた時代。 もちろん個別のアルゴリズムとかはあったんだけど、アプリケーションというよりはウィジェットとかそういう規模のもの。 あれよあれ、マウスカーソル追っかけるやつとかそういうの。もちろんまともに考えられたものもあったけど、少数派。JavaScriptといえば「よくわからない派手で邪魔なもの(を作るやつ)」という認識。ブラウザーの設定やプラグインでスクリプトの実行を停止している閲覧

    JavaScript設計の世代と近未来の話。(JavaScriptおれおれAdvent Calendar 2014 – 24日目) | Ginpen.com
  • JavaScriptの設計について考える - 機能ごとに分類する / Lei Hau'oli Engineer's Blog | レイハウオリエンジニアブログ

    はじめに JavaScriptは、WebページにユーザインタラクティブなUIを実装するためのプログラミング言語です。この言語は、文法が単純であるため、プログラミング経験のない初心者でも、比較的容易に学習することができます。JavaScriptのフレームワークの1つであるjQueryの出現により、学習コストは更に下がりました。 Webが普及し始めた頃は、WebサイトのコンテンツやUIは非常にシンプルでした。よってJavaScriptで実装する機能も、多くの場合、ごく単純なものに限られました。しかしブラウザの表現能力の向上によって、リッチなWebサイトを構築することができるようになると、JavaScriptの役割も大きく変わってきました。それまでの補助的な役割から、サービスを実現するために欠かせないものになりました。HTML5で、新たにcanvasやインラインSVG、indexed DBなどが

    JavaScriptの設計について考える - 機能ごとに分類する / Lei Hau'oli Engineer's Blog | レイハウオリエンジニアブログ
  • MVVMフレームワーク「Knockout.js」が超絶便利!!その概要と使いどころなどについて|もっこりJavaScript|ANALOGIC(アナロジック)

    前置き Knockout.jsとは? そもそもMVVMパターンとは? Knockout.jsを使うとどのようにコードが変わるか? メリット、デメリット サポートブラウザ 使いどころ 私の中のJavaScript歴史で、Knockout.js(のっくあうと)との出会いはjQueryを知った時以来の衝撃でした。 ページの再読み込みではなくJavaScriptによるDOMのリフローを頻繁に行うようなWEBアプリケーションを作成する場合、アプリケーションの規模が大きくなるにつれHTMLマークアップとJavaScriptコードが随所で絡み合ってしまい、次第にコードのメンテナンスや機能拡張が困難になっていきます。そんな経験をしたことのある人は結構多いのではないでしょうか。 ここで紹介する「Knockout.js」はそんな問題を劇的に改善してくれるJavaScriptフレームワークです。 来このブロ

  • “use strict”(厳格モード)を使うべきか?|もっこりJavaScript|ANALOGIC(アナロジック)

    変数の使用の単純化 withの使用の禁止 strictモードではwith文が使えなくなります。代替の手段としては、オブジェクトに短い名前の変数を割り当てて、その変数を用いて対応するプロパティにアクセスすることができます。 eval内で宣言された変数のスコープ 非strictモードでは、eval("var x ;")の様に、eval関数内で定義された変数のスコープは、evalが含まれるスコープ(関数、またはグローバルスコープ)まで広がりますが、strictモードでは、eval内で定義された変数を周囲のスコープに広げません。 単純名の削除の禁止 strict モードでは delete name を構文エラーにします evalおよびargumentsの単純化 strictモードでは「eval」「arguments」という名前がキーワードとして扱われるため、これらのキーワードに対して言語構文でのバ

  • JavaScript イディオム集

    JavaScriptでは、初見の人にはさっぱりわからないけれども、ある程度慣れた人は当たり前に使うイディオムが結構たくさんあります。知ってしまえば何てことはないので、私の知っている限りのイディオムとその意味を解説します。 (7/3追記: twitter等で教えていただいた内容を追加しました) +v (数値化) var v = "123"; console.log(+v + 100) // 223 console.log(v + 100) // 123100 vを数値化する方法では最もメジャーです。parseFloat(v) に比べて高速なのに加えて、parseFloatとは細かい挙動が異なります(例えば空文字列の場合、parseFloatならば NaN になりますが、 +v の場合はゼロになります)。必ず数値になることが保証されており、文字列などで数値化出来ない場合はNaNが返ります。 v

  • JS自動レビューツール"jswatchdog"を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。kintone 開発チームの天野 (@ama_ch) です。すっかり春らしくなりましたね。 少し前に JS の自動レビューツール jswatchdog をオープンソースで公開しましたので、こちらで紹介させていただきます。 使い方 https://kintone.github.io/jswatchdog/ 上記の URL を開き、左側のエディタに JS コードを貼り付けるだけです。 右側に修正が必要な箇所が表示されるので、適宜修正します。 特徴 バリバリの開発者じゃなくても使いやすい一画面完結の Web インターフェース lint ツールでお馴染みの構文チェックの他、知らずに脆弱性を作り込むことを避けるため、XSS の可能性がある箇所にも警告を表示 内部的には、JS の静的構文チェックツールとして ESLint と JSHint を組み込んでいます。 さらに XSS の可能性があ

    JS自動レビューツール"jswatchdog"を公開しました - Cybozu Inside Out | サイボウズエンジニアのブログ
    higed
    higed 2015/04/12
    “を”
  • Zoo of blue and red

    前回の続きですが、 gl.drawElementsとgl.drawArraysを使って画像を描画してエフェクトをかけちゃいます。 今回のサンプル画像も東京ドロンパです。 gl.drawElementsで色んなエフェクトをかける 下記サイトを参考にさせていただきました。 GLSLはこちらに記載しあるもので、時間経過と共にパラメータを更新し再描画している感じです。 http://ics-web.jp/lab/archives/5535 ※ サンプルのために描画した下記サイトは、Google Chromeで閲覧下さい。 (Web Componentsやら使ってしまったので閲覧できる環境に制限が。。 ・うずを巻く http://experiment.itinao.net/webgl/blog/01_uzu_texture.html ・モザイク状態から徐々に鮮明になっていく http://exper

    Zoo of blue and red
  • ページ読み込み後にjavascript(jQuery)を実行する方法

    こんにちは。まりもです。 ひさしぶりにweb系の備忘録です。 わざわざ記事にすることじゃないかもしれませんが、javascriptなんて全然理解してなくてjQueryもなんとな〜く使ってる無能コーダーな僕には有用な事で、しかも物忘れが激しいので残しておきます。 jQueryのプラグインを多用してると、その実行のタイミングが思い通りに行かなくてイラッとする事ってあると思う。 例えば、ブロックの高さを揃えるプラグインや、画像のサイズを一定にして並べてくれるギャラリーなど。 他にも、CSSでブロックの大きさを制御しているのに、htmlCSSjavascriptの読み込みタイミングが微妙にずれてレイアウトが崩れることもある。 ハイスペックなマシンで高速インターネット接続だと大丈夫だったりするけど、汎用スペックマシンの共有ネットワークだったり、スマホやタブレット端末だと処理が追いつかないから崩れ

    ページ読み込み後にjavascript(jQuery)を実行する方法
  • atom - A hackable text editor for the 21st Century

    AI & MLLearn about artificial intelligence and machine learning across the GitHub ecosystem and the wider industry. Generative AILearn how to build with generative AI. GitHub CopilotChange how you work with GitHub Copilot. LLMsEverything developers need to know about LLMs. Machine learningMachine learning tips, tricks, and best practices. How AI code generation worksExplore the capabilities and be

    atom - A hackable text editor for the 21st Century
  • JavaScriptでカリー化 - 檜山正幸のキマイラ飼育記 (はてなBlog)

    JavaScriptでカリー化。ありがち、つうか実際にあるでしょうね。小ネタと思ってやりはじめたら、意外と混乱した。一種のメタプログラミングのはずだが、実際にはテキスト加工処理。 内容: カリー化ってなに? カリー化を行う関数を作る:準備 カリー化を行う関数を作る:テキストのパッチワーク カリー化を行う関数を作る:組み立て ●カリー化ってなに? 2引数の関数f(x, y)に対して、「gがfのカリー化」だとは、f(x, y) = g(x)(y) が常に成立すること -- ゴチャゴチャ説明するより実例実例: functio sum(x, y) { return x + y; } このsumのカリー化の例: function curried_sum(x) { return function (y) {return sum(x, y);} } curreid_sum関数は1引数で、戻り値として関数

    JavaScriptでカリー化 - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • applyとcallの使い方を丁寧に説明してみる - あと味

    JavaScriptに、applyとcallというメソッドが用意されていますが、自分なりにapplyとcallの丁寧に説明をしてみようと思ってこのエントリーを書くなどをしてみます。 applyとcallは非常に似たメソッドなので、まずはcallから説明します。 callメソッドとは? callメソッドは以下のように呼び出します。 methodA.call(thisArg, [, arg1 [, arg2, ...]]); methodAには任意の関数(メソッド)を指定します。 callの引数は第一引数にmethodAのthisとしたいオブジェクトを指定して、第二引数以降はmethodAに渡したい引数があれば、カンマ区切りでそれぞれ指定します。 callメソッドは、すべての関数が共通して持っているメソッドです。すべての関数はFunctionクラスのオブジェクトで、callはFunction.

    applyとcallの使い方を丁寧に説明してみる - あと味