タグ

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

  • イミュータブル時代の言語としてのClojure - Qiita

    この記事はRich HickeyのClojureのコンセプトを示したリソースへのリンク集です。 このリンクを追っていけば、LISPであることやBetter Javaであることなんてものは表面的な特長に過ぎず、イミュータビリティ(とシンプルさ)こそが最大の特長であるということに気付かされます。 ClojureはOut of the Tar Pit (PDF) という論文に基づいて、状態とふるまいを分離するように言語設計されています。レースコンディションのような偶発的におこりうる問題は、状態とふるまいが一体となった混沌から生まれるのであって、これを分離してどうしても避けることの出来ない状態の管理だけ特別に扱うという考え方です。 オブジェクト指向が状態を安易に変更できてしまうのは、「状態」と「アイデンティティ」が密結合しているためです。ある2つのオブジェクトが同一かどうかは、問題領域に依存してい

    イミュータブル時代の言語としてのClojure - Qiita
  • Chrome 43からDOMの属性がJSのプロトタイプチェーンに移行します - Qiita

    Chrome 43およびそれ以降のバージョンにおいて、DOMの属性(値)がJavaScriptのプロトタイプチェーンに移行されます。これにより、突っ込んだことをやっていた場合に、今まで動作していたコードが動かないということが発生する可能性がありますので、事前に変更内容を知り、対策をしておくことが求められます。HTML5Rockの更新情報として掲載されていましたので、さっそく日語訳をしてみました。心当たりがある方は、ぜひ以下の内容を読んでいただいて、コードの修正などに取り込んでいただければと思います。 原文: http://updates.html5rocks.com/2015/04/DOM-attributes-now-on-the-prototype DOM属性は今後プロトタイプチェーンに Chromeチームは、最近「DOM属性をプロトタイプチェーンに移動しています」とアナウンスしてい

    Chrome 43からDOMの属性がJSのプロトタイプチェーンに移行します - Qiita
    ir_takt
    ir_takt 2015/04/15
    ふーむ
  • microservicesに分割する際に注意するべき5つのこと - Qiita

    はじめに マーティンファウラーがmicroservicesの記事で、小さな役割をもったサービス群にアプリケーションを分割することを提案しています。 cookpadが、サービスをマイクロサービス群に分割していることの記事が注目を浴びており、最近急速にバズワード化しているように感じます。 バズワード化して、ポイントが損なわれる前にいくつかの注意点をまとめておきます。 1.インフラコストは基的に増大する microservicesは、今まで単一のアプリケーションコードで行われていたことを複数のサービスサーバーに分割して管理・運営していくことです。ですので、プロセスを跨いだ通信が大量に発生します。その結果、サーバー台数は増大します。 つまり、インフラコストの増大と開発速度の高速化のコスト感覚をバランスして判断していく必要があります。疎結合性が高まり、アーキテクチャとしては美しく感じますが、実施に

    microservicesに分割する際に注意するべき5つのこと - Qiita
  • 認証局を立ててぼろもうけしたいんですが>無理な理由を理解しよう - Qiita

    SSLの認証局とか証明書とか勉強し始めはホント難いよね このへんのSSL/TLSの仕組みって勉強し始めの頃は凄く難しく感じるのよね。分かりやすく解説してくれてるサイトってあんま見たこと無いし。 んで、 >>300,304 みたいなことは僕も昔考えたことあったわー、と懐かしみを覚えたのでレスってみた。 証明書を発行できるかどうかは証明書のフラグで決まっている、という >>303 の指摘も重要よね。 以下2chスレより引用 丁寧過ぎると評判のレスをしてるID:UyEJo1f2が僕なわけだがw 2chだとそのうち倉庫に行っちゃうかもしれないのでここにメモ。 【認証局】SSLに関するスレ 2枚目【ぼろ儲け】 http://hayabusa6.2ch.net/test/read.cgi/mysv/1286532904/298-309 298 :DNS未登録さん:2013/05/31(金) 13:31

    認証局を立ててぼろもうけしたいんですが>無理な理由を理解しよう - Qiita
  • Reactjsのチュートリアルを読んで浮かんだ疑問とそれに対する答え - Qiita

    Reactjsのチュートリアルを読んでみて、大雑把なReactjsの使い方を把握したのですが、疑問に思った点がいくつかあったので調べてみました。 前提 筆者のReactjs力がどれくらいかと言うと 存在は知ってたが、中身は全く知らなかった VirtualDom - なぜ仮想DOMという概念が俺達の魂を震えさせるのかを読んだ だけの状態です。つまりコンセプトは知っているが、細かい話は何も知らなかった状態です。その状態で前述のチュートリアルを読んだ感じです。 var CommentBox = React.createClass({ render: function() { return ( <div className="commentBox"> Hello, world! I am a CommentBox. </div> ); } }); React.render( <CommentBox

    Reactjsのチュートリアルを読んで浮かんだ疑問とそれに対する答え - Qiita
    ir_takt
    ir_takt 2015/04/08
    "どうやってcomponentの解決をしている?" / "propsとstateの違いは何?" / "propsとstateの使い分けは?" / "component終了時にメモリリークを防ぐには?"
  • npm で依存もタスクも一元化する - Qiita

    タスク管理 package.json にはパッケージの依存を書いて npm install するのが基だけど、 タスクの管理をどうするかというのは、別途また考えないといけない。 自分は gulp が良いと思っているが、 grunt や jake や make を使う人もいる。 また、たくさんオプションをつければほぼ一つのタスクが実行できてしまう browserify, jsh/eslint, mocha などのコマンドを提供するツールもある。 そして、 npm にも一部それらをサポートする npm run 機能があるので、そこに Unix ワンライナーを書くこともできる。 今回は、「どのタスクツールが最良か」みたいな話ではなく、それらをどうやって実行するか、または npm との棲み分けとか構成の流儀について、最近良いと思っているやり方について書いておく。 各方針で問題点を書いていくが、

    npm で依存もタスクも一元化する - Qiita
  • もうgulpで憔悴しない - 低依存gulpfileのレシピ - Qiita

    【追記150805】さらに憔悴しないための有用な記事『アカベコマイリ | gulp なしの Web フロントエンド開発』が掲載されましたので、こちらもお勧めします。 こんにちは、@armorik83です。皆さん、Grunt / gulp使ってますか。おなじみなので、ここでは説明はしません。 この記事の要点 なぜGrunt / gulpは憔悴に至るのか、経緯と問題点 npm run-scriptの仕組みについて package.jsonにscriptを羅列することに対する是非 シンプルなgulpfileについての提言 経緯 さて、先日このような記事が界隈で広まっていました。 Grunt/Gulpで憔悴したおっさんの話 この記事については同意できるところと、そうでもないところと、両方有りました。ただ、Grunt / gulpを使っていて色々歯がゆさを感じている方は昨今増えているだろうと感じます

    もうgulpで憔悴しない - 低依存gulpfileのレシピ - Qiita
    ir_takt
    ir_takt 2015/04/04
    再利用したいタスクなんて極少数しかないので、その時流行ってるboilerplateに付属してるビルドツールに必要なタスクだけ追加する方針にした。なんとかなってる
  • なぜ仮想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
  • React.jsがVirtualDOMを採用していて嬉しい事 - Qiita

    今回はReact.jsのVirtualDOMについて簡単に触れておきたいと思います。 VirtualDOMについては別途AdventCalendarがあるので詳しくはそちらを見てください。自分もReact.jsのVirtualDOMの実装について書いています。 当は↑だけでいいのですが、このAdventCalendarのどこかで触れておきたかったので重複する部分も多いですが簡単に触れておきます。 VirtualDOMの嬉しい点 JavaScriptを使ってDOMを操作して画面の表示を切り替えていくようなアプリケーションの場合、ユーザー体験を損ねないためにも更新されるDOMは最低限にしたくなります。 例えばBackbone.jsを使っていると、基的にはView単位でrenderするのでViewを細かく分割していくことが必要になります。そうなるとViewが増えて複雑さが増してきて辛くなって

    React.jsがVirtualDOMを採用していて嬉しい事 - Qiita
    ir_takt
    ir_takt 2015/03/31
    Backbone.jsはViewが増えて(Viewごとに状態管理するため)複雑さが増してきて辛い、Reactはトップ以外のViewが状態管理しないので複雑になりにくい、という話かな
  • Componentを拡張してみる - Qiita

    今回はちょっとした小ネタとして、既存のComponentを拡張したようなComponentを作りたい時の話をしたいと思います。 それには、v0.12で追加されたJSXのspread attributesを使うと簡単に出来ます。 テキスト付きの画像Component 例として、テキストと画像をセットにしたImageTextというComponentを考えてみたいと思います。 I/FとしてはimgのComponentに渡すものにプラスしてテキストで考えてみます。 var ImageText = React.createClass({ render() { return ( <span>{this.props.text}<img src={this.props.src} width={this.props.width} height={this.props.height} /></span> );

    Componentを拡張してみる - Qiita
    ir_takt
    ir_takt 2015/03/31
    “onClickを{...other}の前に持ってくるとonClickの挙動を上書きされてしまいます。” むずい
  • React 雑感 - Qiita

    3/22 (日) の rebuild.fm で React の話をしようと思っているが、その前に頭を整理するために React 雑感。雑感なので殴り書き。 React はこれ一つで複数の課題を解決しようとしている。そのため、人と議論してると話のコンテキストがぶれやすい。ざっくりは フロントエンドのプログラミングパラダイムを、サーバーサイドのような富豪的なスタイルに変える コンポーネント (雑に言うと独自タグ) 指向で UI を組み立てる ステートレスコンポーネントやメッセージパッシングで疎結合性を高めることにより、イベントの依存関係地獄を解消する。また結果的にテスタビリティを高める あたりだろうか。 React というと最初に目につくのは VirtualDOM だけれども、VirtualDOM は 1 や 3 を達成するために障害となった技術的課題を解消するためのテクニックであってそれ以上

    React 雑感 - Qiita
  • Git でマージ済みのブランチを一括削除する - Qiita

    すでにマージ済みのブランチをまとめて削除するには以下のようにする (master ブランチを checkout していると仮定する) $ git branch --merged | grep -v '*' | xargs -I % git branch -d % Deleted branch foo (was ce1b0d5). Deleted branch bar (was 7623b2b). Deleted branch baz (was d4c396d).

    Git でマージ済みのブランチを一括削除する - Qiita
    ir_takt
    ir_takt 2015/03/23
  • Angular 2のDocsをゆるく翻訳してみた - Qiita

    こんにちは、@armorik83です。 明後日2015年3月21日はng-japanですね。私も出席します。500名の参加枠はすでにキャンセル待ちとなっています。ng-japanは日初となるAngularのカンファレンスで、これに先駆けて先日3月5-6日にng-conf 2015が開催されAngular 2の様子が更に明らかになったことから、期待のカンファレンスと言えます。(TypeScriptの@vvakame先生もスピーカとして登壇されます! これは楽しみだ!) 今回は、2日後に控えたng-japanのための予習として、angular/angularリポジトリに公開されているDocsをゆるく翻訳していきます。時間的制約のため、忠実な翻訳ではないことをご了承ください。誤りがあれば指摘してください。 2015年3月19日現在、参照したcommitはe0710c4613#です。 READM

    Angular 2のDocsをゆるく翻訳してみた - Qiita
  • React.js 実戦投入への道 - Qiita

    最近話題のReact.jsですが、実戦投入に当たっては結構重たい選択を迫られることになります。 ざっくり言えば、テンプレートエンジンを捨ててReactしますか?それともReactあきらめますか?という選択です。 記事ではReactの基思想とこうした選択肢が生まれてしまう背景を述べるとともに、後半では「どちらもあきらめない」という(若干シミュレーションRPGあるある感のある)第三の方策について案を提示します。 Reactの基 最初に、Reactの基的な仕組みについてまとめておきます。 Reactは公式ドキュメントが非常に充実しているので、始める際はぜひQuick Startのドキュメントに目を通すことをお勧めします。 Getting Started Tutorial Thinking in React 後述しますが、Reactを使ってアプリケーションを作る際の設計方法についての記載が

    React.js 実戦投入への道 - Qiita
    ir_takt
    ir_takt 2015/03/16
    "stateはそれを使って描画を行うすべてのComponentの上位に位置するComponentが保持する必要がある。" つらそうな匂いがする
  • パフォーマンスまわりのAPIについて - Qiita

    Navigation Timing とか Resource Timing とか、パフォーマンスまわりのAPIについて自分で整理できていなかったので、これを機会にまとめてみました。

    パフォーマンスまわりのAPIについて - Qiita
  • SpringBootで作ったRestAPI/Webアプリのテストを書いてみた - Qiita

    前回のエントリ「SpringBoot+Doma2+Gradleを試してみた。」のテストを書いてみたので公開してみる。 RestAPI → RestAssured Webアプリ → Geb もちろん題材は「はじめてのSpring Boot」にある顧客管理システムです。 ソースコードはこちら。 https://github.com/nyasba/domaboot RESTAPI部分 ここはに出てくる内容とほぼ同じです。 準備 rest-assuredをgradleの依存関係に追加するだけです。

    SpringBootで作ったRestAPI/Webアプリのテストを書いてみた - Qiita
  • Effective Javaのまとめのまとめ - Qiita

    はじめに Effective Java関連の記事をまとめ。 他にも見つけたら追加していこうと思います。 また、内容に誤り、問題がありましたら訂正しますので、コメントまたはプルリクエストをお願いします! Effective Javaって? JavaでプログラミングをするすべてのSE必読の書籍です。 Effective Java 第2版 Effective Javaは全Javaプログラマ必帯と言って良い名著.. Effective Java 第2版 が今月発売されるようです Java中級者以上なら読むことがマナーであると言われるJavaの必読書。 [書評]Effective Java 第2版 Javaを使う上で知っておいたほうが良い知識・注意した方がいいテクニックを紹介した Effective Java 第2版 数々のブログやサイトで評価されAmazonのレビューやランキングでも常に上位に存

    Effective Javaのまとめのまとめ - Qiita
    ir_takt
    ir_takt 2015/03/01
  • AngularとBrowserifyの微妙すぎる関係 - Qiita

    この記事の内容はいささか、古くなってしまっているようです。投稿からしばらくして、AngularもCommonJS対応を強化して、以前よりはrequireとの相性が改善しています。ただ、筆者自身はもうAngularから離れてしまったのでキャッチアップしきれていません。 うっかりこの記事にたどり着いてしまった方は、@armorik83さんによる詳説「AngularJSモダンプラクティス」にあるCommonJS + Browserifyスタイルを好む方はの項を参照することをお勧めします。 AngularJSとBrowserify、この二人の関係、かなり微妙です。もうどうしてくれようかってくらい。例えるなら宗教の違う恋人のようなものです(適当)。CommonJSに慣れた人には、AngularのDIが正直お邪魔。かといって、Angularの根幹に関わる部分なので使わないわけにもいかないし、と距離感に

    AngularとBrowserifyの微妙すぎる関係 - Qiita
    ir_takt
    ir_takt 2015/02/26
    めんどい
  • AngularJSのパフォーマンス改善入門 - Qiita

    これまでAngularJSでアプリを作ってきた中で、いくつかパフォーマンスの問題に遭遇しました。 それらの問題は、AngularJSの仕組みを十分に理解できていないために、よくないコードを書いてしまって発生しているものでした。 というわけで、AngularJSの内部構造を解説しつつ、パフォーマンスを改善するコードの書き方を紹介したいと思います。 計測できないものは改善できない パフォーマンス問題に取り組むには、ソースコード修正の前後でパフォーマンスを計測し、改善の効果を計測することが重要になります。 というわけでまずはツールの紹介です。 AngularJSでは、Batarangという便利なツール(Chrome Developer Toolsの拡張機能)が用意されています。 利用方法はとても簡単で、下記のChromeウェブストアからインストールして、Chrome Developer Tool

    AngularJSのパフォーマンス改善入門 - Qiita
  • AngularJSのベストプラクティスに従っていますか? -- angular-hintの使い方 - Qiita

    最近、AngularJSリファレンスという書籍を書いていたのですが、紙面や時間の都合上書けなかったこともたくさんありました。 というわけで、書籍に書ききれなかった内容を落ち穂拾い的に紹介していきたいと思います。 今回はangular-hintというツールを紹介します。 https://github.com/angular/angular-hint これは、Angularチームの1人が開発しているツールで、AngularJSを使って開発したアプリケーションに組み込んで実行すると、エラーを検出してくれたり、ベストプラクティスに従っているかどうかをチェックしてくれたりします。 ただし、説明文にWIP(Work In Progressの略)と書いてあるので、まだ開発中のようです。 angular-hintを組み込むとアプリケーションが動かなくなることもあるのでご注意ください。 angular-hi

    AngularJSのベストプラクティスに従っていますか? -- angular-hintの使い方 - Qiita