タグ

ブックマーク / qiita.com (257)

  • VirtualDOMのカレンダー | Advent Calendar 2014 - Qiita

    About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)

    VirtualDOMのカレンダー | Advent Calendar 2014 - Qiita
    t-wada
    t-wada 2014/12/08
    何だこの強者しかいない感は……
  • これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita

    これはTokyuRuby会議08にて発表した資料を元にQiita向けに再編集したものです。 元々Advent Calendarと共用にしようと思って、どう考えても5分で話せない資料でLTしたのでした。 最初に RubyのテスティングフレームワークとしてはトップクラスにメジャーなRSpecですが、内側の実装が黒魔術感に溢れていて非常に読み辛い。 そしてカスタマイズするにも学習コストが高いという話を聞きます。 最近「RSpec止めますか、人間(Rubyist)止めますか」みたいな風潮が出ていてバリバリのRSpec派の私としては見過ごせない感じになってきたので、いっちょRSpecがどんな感じで動いてるのかを大まかに解説していくことで、世の中に対して再びRSpecを啓蒙していこうと思うわけです。 この話はrspec-core-3.1.7辺りをベースにしています。 起動 rspecのコマンドエンドポ

    これを読むとRSpecの裏側がどうやって動いているのか分かるかもしれないぜ - Qiita
    t-wada
    t-wada 2014/12/01
    これはまさに RSpec Hacking Guide だ
  • React.jsとは - Qiita

    このAdvent Calendarについて 今年になって急に盛り上がってきたように感じるReact.jsですが、「ちょっと前まではAngular.jsって言ってたのに!」っていう人も多いと思うので、Advent Calendar形式で簡単に紹介していきたいと思います。 React.jsの重要な要素であるVirtualDOMについては別にAdevent Calendarがありますのでそちらも是非見てください。 ※既に↑のAdvent Calendarがあったため、これは1人で書くように作ったものなので書く人が誰もいなかったわけではないです。 React.jsについて なぜ盛り上がってきたのかは正直よくわかっていないのですが、個人的にはgithubのatomがパフォーマンス向上のためにReact.jsを使うことにしたという記事を見て興味を持つようになりました。 React.jsはFaceboo

    React.jsとは - Qiita
    t-wada
    t-wada 2014/12/01
    “今年になって急に盛り上がってきたように感じるReact.jsですが、「ちょっと前まではAngular.jsって言ってたのに!」っていう人も多いと思うので、Advent Calendar形式で簡単に紹介していきたいと思います”
  • 一人React.js Advent Calendar 2014 - Qiita

    React.jsについての基的なところを書いていきます! 公式読めばわかるようなことが多いですがReact.jsに興味をもつきっかけにでもなれば...。 v0.12.1で確認しています。 こっちは一人で書くように作ったものなので書きたい人はVirtualDOMに書くといいと思います。 (書く人がいなくて1人で書いているわけではない) この記事は古いので下記の更新情報も参考にしてください http://blog.koba04.com/post/2015/03/05/react-js-v013-changes/ http://blog.koba04.com/post/2015/09/22/react-js-v014-changes/ http://blog.koba04.com/post/2016/03/09/react-js-v15-changes/ http://blog.koba04.

    一人React.js Advent Calendar 2014 - Qiita
    t-wada
    t-wada 2014/12/01
    これは強い……! React.js のことなら @koba04 先生に聞けばよさそう
  • なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita

    追記: 情報が色々と古くなったため、2020年に書き直した版へのリンクを張っておきます。 この記事は VirtualDOM Advent Calendar 2014 - Qiita の初日です。 初日ということで、基調講演風に、Virtual DOMとはなにか、なぜ僕はこんな興奮しているのか!という話から。 Virtual DOMとはなにか 既存の概念で当てはめると、JavaScriptのMVC, MVW(Whatever)フレームワークのViewに位置します。が、その程度では終わりません。仮想DOMとは世界を革命する力であり、このjQueryのDOM操作で汚れきったフロントエンドを救う救世主なのです。 現時点で自分が知っている限りは、以下の実装を指します。 facebook/react 最も使われてるFacebookの実装 Matt-Esch/virtual-dom Altenative

    なぜ仮想DOMという概念が俺達の魂を震えさせるのか - Qiita
    t-wada
    t-wada 2014/12/01
    “「設計と速度が両立する」から” "VirtualDOMによって「パフォーマンス面で問題を出さずに」常にゼロから状態を構築する、ということが可能になった" 最近 React.js + Flux を毎日触っている。確かに良い。
  • Facebook Flowの初見の感想 - Qiita

    mizchi君の記事を見て、だいぶ感想が違ったので書くことにした。 なお、僕はTypeScript信者であることを踏まえてこの記事を読んでほしい。 あと、最初はまじめに記事にしようと思ったけどダルくなってきたのでメモをそのまま投げる。 TypeScriptより良い型推論 Flowパイセンの一番偉いところはTypeScriptより型推論が強いところだと思った。# /* @flow */ function foo(x) { return x * 10; } foo('Hello, world!'); 関数foo内部のxは、* 演算子を利用しているのでnumberであると推論している。 これが実際の利用箇所でstringを引数にしているので怒ってくれるわけだ。偉いな! Flow is a static type checkerと謳っているとおり、完全にpure JavaScriptで書かれている

    Facebook Flowの初見の感想 - Qiita
    t-wada
    t-wada 2014/11/19
    "Flowパイセンの一番偉いところはTypeScriptより型推論が強いところ" “完全にpure JavaScriptで書かれているプロジェクトに対して、新しいlintの一種であるかのように導入できるのは大きなアドバンテージ”
  • facebook/flowファーストインプレッション - Qiita

    前々から出すよ出すよ詐欺してたflowがやっと出た。大雑把にはfacebook製のTypeScriptだと思っていれば良いです。 まだnpmで提供されてなくて、 Flow | Getting started with Flow で実行バイナリが配られてる。 npmで提供されてない理由は、たぶんocamlで書かれてるから。Future Planにjs_of_ocamlでコンパイルされたものが提供されると書いてあった。 DLして適当なパス通った場所に置いてつかう。 TypeScriptとの比較 思想はTypeScriptと同じなので、大枠は一緒だといってよい。 ぱっと見気になったのは、Nullableの書式が違うのとかあるけど、もっと大きな違いもたくさんある。 FlowとTypeScriptにあるもの declareキーワードによるアノテーション ES6 classes Generics ここ

    facebook/flowファーストインプレッション - Qiita
    t-wada
    t-wada 2014/11/19
    “Flowの名前空間は commonjs requireで require('path/to/file') した先の型を読んでる模様。browserify/node.jsフレンドリー” 賢い
  • react-jadeでjadeテンプレートから仮想DOMを出力する - Qiita

    常日頃Reactに足りないのはテンプレートエンジンだ!と主張していたのだけど、react-jadeは試した感じ信頼できそうな感じだった。 jade公式なんで信頼できそう。信頼できそう、とは変なパースミスとか起こらないだろうという意味 jadejs/react-jade var React = require('react'); var jade = require('react-jade'); var dummyTemplate = 'button(onClick=onClick) this is button'; var template = jade.compile(dummyTemplate); var Foo = React.createClass({ onClick: function(){ console.log('clickcckckckckc'); }, render: f

    react-jadeでjadeテンプレートから仮想DOMを出力する - Qiita
    t-wada
    t-wada 2014/11/12
    “jade公式なんで信頼できそう” "ちゃんと関数インスタンスを関数インスタンスとして渡せる!ってのが多分他のテンプレートエンジンとのいちばん大きな違い"
  • 作りたいものを作るには結局大量のコードを書かないといけないことについて - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    作りたいものを作るには結局大量のコードを書かないといけないことについて - Qiita
    t-wada
    t-wada 2014/11/11
    "コードを書くのが遅い人は、腰も重くて、作業に着手する前にあれこれいろいろ考えて時間を無駄にした挙句、コーディングを始めてみてもなかなか進められずに、途中で挫折してしまったりする"
  • BaaSはまだ戦国時代だったのか、まとめ。(執筆中) - Qiita

    ここ数年、iOSやAndroidアプリのバックエンドとして、mBaaSが盛り上がりを見せています。ただ、すでに複数のサービスが終了の憂き目にあっていて、どのタイミングで手を出すかは悩むところかもしれません。また、一周まわって、改めてWebサイトのバックエンドとしても選択肢に。 大手による買収と、淘汰 「BaaSありすぎ」と言われて久しいですが、未だ新規参入もあり、全体像はかなりつかみにくくなっています。Parse, Cocoafish, StackMob, GoInstantなどは大手に買収され話題を呼びました。ただ、Parseがサービス継続、Cocoafishがブランド変更(Appceleratorの一部へ)、他はサービス停止と明暗が分かれています。 サービス名 対応SDK 無料枠 有料プラン 提供期間 備考

    BaaSはまだ戦国時代だったのか、まとめ。(執筆中) - Qiita
    t-wada
    t-wada 2014/11/01
    なるほど mBaaS は一周回った感じがあるな #jserinfo
  • 仮想DOMライブラリの「virtual-dom」だけでMV*なビューを書く - Qiita

    virtual-domという、(その名の通り)仮想DOMの生成とdiffを行うシンプルなJavaScriptのライブラリがあります。 GitHubのexampleを見るとわかるのですが、このライブラリのみでも、シンプルな形で動的なビューを実現することができます。 このシンプルさがとても魅力的で、実際に使ってみたのですが、 分かったことをまとめたいと思います。 仮想DOMって? Reactなどで以前から採用されていて、最近流行している感じの 仮想DOM ですが、 重い物のDOMとは別に、仮想のDOM(ただのJSオブジェクトなので軽い)のツリーを構築する 仮想DOMの構築を状態が変更されるたびに行って、前回の仮想DOMとのdiffをとって実DOMに適用する という形で動的なビューの実現に利用されます。 仮想であるので、ブラウザ上だけではなくサーバーサイドのHTMLレンダリングにも使えます。

    仮想DOMライブラリの「virtual-dom」だけでMV*なビューを書く - Qiita
    t-wada
    t-wada 2014/10/31
    仮想 DOM ライブラリの virtual-dom だけを使うことで仮想 DOM の利点を明らかにするエントリ
  • Swiftでの文字列比較におけるUnicode正規化を巡る注意点 - Qiita

    Stringの比較は正規化をかけた上で行われる Swiftの文字列比較は,Unicode正規化をかけた上で行われます。 たとえば,次の例をご覧ください。 let gaC = "\u{304C}" // 「が」の結合形 let gaD = "\u{304B}\u{3099}" // 「が」の分解形 // NSString としての文字数(UTF16での文字数)は異なる (gaC as NSString).length // => 1 (gaD as NSString).length // => 2 // String としての比較 gaC == gaD // => true (!!) これは,こちらのサイトによると, Depending on your requirements, this may or may not be what you want, but it is certainl

    Swiftでの文字列比較におけるUnicode正規化を巡る注意点 - Qiita
    t-wada
    t-wada 2014/10/27
    ここでもまた、沢山の涙が流れそうだ……
  • [翻訳]なんでGoってみんなに嫌われてるの? - Qiita

    原文:http://npf.io/2014/10/why-everyone-hates-go/ 酔っぱらった勢いで訳出してるので、違ってたら修正リクエストください。 訳者の1行でわかるサマリ それって、Goのシンプルな言語哲学が、ML系言語好きのアイデンティティを挑発しちゃってるからじゃないの? いや、実際みんなって訳じゃないんだろうけど。最近、なんてGoをみんなそんなに批判的なのかって言うquoraの質問が出たもんで。(わるい、普段はquoraへのリンクを張らないんだけど、それがこの記事のきっかけだからね。)この質問への回答を見るまえにもう、僕には、次みたいなことが書かれていることがわかってた: Goは70年代に立ち往生した言語だ Goは40年間に及ぶプログラミング言語研究の成果を無視してる Goはブルーカラーの凡夫のための言語だ Go使いはJava1.0で仕事しても大丈夫なんだろう。

    [翻訳]なんでGoってみんなに嫌われてるの? - Qiita
    t-wada
    t-wada 2014/10/17
    “人は、その人のアイデンティティの一部となっている事について、実りある議論はできない” "クールエイド(信じ込んでいるのを馬鹿にしやすい)ポイント" 示唆に富んでいる
  • Test::Unitでテストを書く - Qiita

    テストの書き方 基 今までのTest::Unitと変わらないので,classで書く.ただ,昔のTest::Unitとは違い,TestCase毎に呼ばれるstartupやshutdownなどが増えている. require 'test/unit' class TestSample < Test::Unit::TestCase class << self # テスト群の実行前に呼ばれる.変な初期化トリックがいらなくなる def startup p :_startup end # テスト群の実行後に呼ばれる def shutdown p :_shutdown end end # 毎回テスト実行前に呼ばれる def setup p :setup end # テストがpassedになっている場合に,テスト実行後に呼ばれる.テスト後の状態確認とかに使える def cleanup p :cleanup

    Test::Unitでテストを書く - Qiita
    t-wada
    t-wada 2014/10/16
    Test::Unit も知らない間に機能が増えているのだなぁ
  • ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い - Qiita

    ActiveRecordでN+1クエリを潰すためにeager loadingを行う場合、preloadやincludesやeager_loadが役に立つ。 Preload, Eagerload, Includes and Joinsという記事にそれらの違いがよくまとめられているんだけど、includesが挙動を変える条件があまり正確に書かれていなくて自信が持てなかったし、そもそも記事が古いのでRails4.1.5のソースを読んで調べた。 せっかく調べたので、全体を通して日語でまとめてみようと思う。 User.joins(:posts).where(posts: { id: 1 }) # SELECT `users`.* FROM `users` INNER JOIN `posts` ON `posts`.`user_id` = `users`.`id` WHERE `posts`.`id

    ActiveRecordのjoinsとpreloadとincludesとeager_loadの違い - Qiita
    t-wada
    t-wada 2014/10/10
    Rails 使いにはかなり参考になるまとめ
  • 体で覚えるVue.js - ViewModel生成編 〜 JSおくのほそ道 #022 - Qiita

    こんにちは、ほそ道です。 今回はMV**なフレームワークのひとつであるVue.jsを取り上げてみます。 さて、どこから手をつけたら良いものかと思案にくれた結果、序論や諸注意点をアレコレ展開する前にまずはビシバシと弄って、ヒジョーにシンプルなサンプルをいっぱい作って体にしみ込ませてみるのがイイんじゃないかと思いました。 ボリュームがあるので何回かに分け、今回はビューモデルを生成するパターンをまとめます。 「考えるな、感じろ」の精神でやった後にどう考え学習すべきかや、どう設計すべきかなどの私見は述べられたら良いなと思っております。 ViewModel生成編 ディレクティブ編 インスタンスメンバ編 グローバルメソッド編 フィルター編 v-repeatネスト編 全体の目次はこちら ザックリとしたVue.js概念 IE8以下には非対応 MVVMアーキテクチャにフォーカスしている MVVMとはモデル(

    体で覚えるVue.js - ViewModel生成編 〜 JSおくのほそ道 #022 - Qiita
    t-wada
    t-wada 2014/09/29
    様々なコード例で学ぶ Vue.js 入門
  • スペルミスでエラーが出たら、正しい名前を教えてくれる gem を作った - Qiita

    class User attr_accessor :first_name, :last_name def to_s "#{f1rst_name} #{last_name}" # f1rst_name ??? end end user.to_s # => NameError: undefined local variable or method `f1rst_name' for #<User:0x0000000928fad8> # # Did you mean? #first_name #

    スペルミスでエラーが出たら、正しい名前を教えてくれる gem を作った - Qiita
    t-wada
    t-wada 2014/09/28
    これは便利そうだ
  • 技術的負債 - Qiita

    この文章の目的 開発者とステークホルダーが「技術的負債」という言葉で正しくコミュニケーションをとれるようになることをゴールとする。技術的負債については色々な所で語られるが、実際の現場では技術的負債が管理されてない事が多いのでは無いだろうか。この場で技術的負債という言葉についての知見をまとめ、たたき台とする事で、ゴールに到達する第一歩としたい。 対象読者 開発者 責任者/見積もりに対して決定権を持つ人 技術的負債とは何か 技術的負債とは、コード・設計の状態を表す見積もりのための言葉である。継続的に開発を行う上で理想状態から離れたものを負債という比喩で表していている。 たとえば、省略可能なプロセスを飛ばす事で開発の高速化を行う事があり、初期開発を高速に行う開発者の中には意識的・無意識的問わずこれを行っている事例が多々存在する。このようにして抱えられた技術的負債は長期的に見た場合に問題を引き起こ

    技術的負債 - Qiita
    t-wada
    t-wada 2014/09/27
    "この文章の目的: 開発者とステークホルダーが「技術的負債」という言葉で正しくコミュニケーションをとれるようになることをゴールとして設定する" 難しい問題に正面から取り組んでいる
  • isomorphicなJavaScriptプロジェクトのパッケージ管理 - Qiita

    Node.jsでフロントエンドもバックエンドもJSのプロジェクトをはじめる際に、 それぞれのパッケージ管理をどのようにするか悩んだ記録。 要件としては、 1.フロントエンドもrequireでmoduleの探索をしたい 2.フロントエンドとバックエンドでパッケージ管理を分けたい 1を満たすためにcomponent.jsかbrowserifyか悩んだ。 browserifyは作りが怖かったが、component.jsはもっと怖かった。 browserifyを単純に使うとnode_modulesを共有してしまうので、 2が満たせない。debowerifyというpluginがあるようなので、 フロントエンドはbower_components/にという方針でやってみた。 // バックエンドの依存管理 package.json // バックエンドのパッケージ置き場 node_module/* // バ

    isomorphicなJavaScriptプロジェクトのパッケージ管理 - Qiita
    t-wada
    t-wada 2014/09/16
    Isomorphic な JS プロジェクトでフロントエンドに browserify を使うとバックエンドと package.json が混ざりそうだけど、どうする? という話。
  • ちょっとしたフロントエンド開発のセットアップ - Qiita

    最近だとGrunt使ったりgulp使ったり、またはGoogleのWeb Starter Kit使ったりしてセットアップすることが多いと思います。 ただ、何かを新しいフレームワークを試したりしたいだけのときにこれらの設定ファイルとか無駄に増えるのもイヤだなと思ったりしていて、最近はbrowserifyとbeefy使ってやっています。 https://www.npmjs.org/package/browserify https://www.npmjs.org/package/beefy 各種変換とLiveReloadが出来れば十分なので。 例はこんな感じ。 https://github.com/koba04/react-boilerplate 設定ファイルがpackage.jsonだけになるのでシンプルです。 package.json 設定はこんな感じでしておくだけです。scriptの設定をし

    ちょっとしたフロントエンド開発のセットアップ - Qiita
    t-wada
    t-wada 2014/09/16
    grunt や gulp を使わずに、 browserify と beefy だけを使って小規模のプロトタイピングをすぐに始められるようにしようという話。バランスが取れていていいな。