タグ

ブックマーク / r7kamura.hatenablog.com (7)

  • 掲示板のJavaScriptこういう風に最適化しました - ✘╹◡╹✘

    最近Rails掲示板つくってて、サボって後回しにしていたJavaScriptの最適化をやりました。 掲示板の構成 Webpackを使っている Reactを使っている Server-Side Renderingをやっている Railsを使っている Sprocketsを使っていない 作業内容 webpack-bundle-size-analyzerで容量の大きいpackageを調査 HTTPクライアントに利用していたjQueryを撤廃 HTTPクライアントにaxiosを採用 lodashを一部しか読み込まないように変更 moment.jsの不要なlocaleを読み込まないように設定 変更結果 これでminify後の容量が770KB→476KBに。gzip圧縮状態では202KB→125KB。 $(npm bin)/webpack --profile --json | webpack-bundl

    掲示板のJavaScriptこういう風に最適化しました - ✘╹◡╹✘
  • 全てがJSONになる - ✘╹◡╹✘

    TL;DR JSON Schemaを使ってこういうことが実現可能になった。 ダミーAPIサーバの提供 ドキュメントの自動生成 APIクライアントの動的定義 APIサーバのバリデータの動的定義 APIサーバのレスポンスの自動テスト JSON Schemaとは JSON SchemaというのはあるJSONのデータ構造を記述するための方法および書式の仕様で、 JSON SchemaもJSONで記述される。 これを利用すれば、リソースベースの(=RESTfulライクな)APIの仕様が簡便に記述できる。 例えば、我々のAPIレシピとユーザというリソースを扱っていて、 それぞれCRUDのAPIを備えており、レシピはidとtitleとdescriptionという属性を持つ、 という旨をJSON Schemaで表現できる。 なんで最近ちょっと流行ってんの Mobile First、 Service Or

    全てがJSONになる - ✘╹◡╹✘
    saka39
    saka39 2014/06/10
  • Ruby Patterns - ✘╹◡╹✘

    この記事には、Rubyを書いているときに「これは言語化されたり公式化されたりしていないけれど基的には必ずこのパターンに則ってプログラムを書いているな」ということをふと思い出したときにやってきてそのパターンを書く。多分3パターンぐらいで終わると思う。ウケが良ければ思い出す確率が高くなると思う。題材さえあれば何も考えずに書けるので、これを書くコストは全然高くない。 名前が"?"で終わるメソッドは必ずtrueまたはfalseのどちらかを返す trueとfalse以外(例えばnil)が返る可能性がある場合は、必ず式の先頭に!!を付けてtrueかfalseになるようにしてる。 このパターンを守ることがとても大事だという風には全く考えていないけど、もしhas_user?がuserを返すとして、has_user?という名前のメソッドがUserオブジェクトを返すというのは一体どういう意味を持っているのだ

    Ruby Patterns - ✘╹◡╹✘
    saka39
    saka39 2014/01/23
  • DRY原則とテストの可読性 - ✘╹◡╹✘

    DRY原則に従おうとするほど、テストコードがどんどん読みづらくなる。 The RSpec Bookに答えがあるかと思って読んでみたものの、「あるある」と一言述べているだけだった。辛い。 テストコードが読みづらくなる例を示すために、1つRubyのライブラリをつくった。 値とパターンを与えてValidationを行う機能を提供するライブラリ。 実装60行、テスト120行なので、詳しく見たければすぐ読めると思う。 最近不意ながらキラキラネームの命名力が上がってきたと思う。 avalon - A validator implementation for Ruby https://github.com/r7kamura/avalon 冗長だが読みやすい例 letもsubjectもローカル変数も何も用いずに率直に書いたテストコード例がこちら。 冗長だが読みやすく、テストコードを見ればライブラリの使い

    DRY原則とテストの可読性 - ✘╹◡╹✘
    saka39
    saka39 2012/09/03
  • Vimで挿入モードから抜ける時に英数入力に切り替える - ✘╹◡╹✘

    昨日からHHKBを使い始めたついでに、キー設定を色々入れ替えるためKeyRemap4MacBookというアプリを使い始めました。『Vimで挿入モードから抜ける時に英数入力に切り替える』というのが前からやりたくて、KaoriYaさんのMacVimだとそういう設定がvimrcで出来たんですが、CUIvimではIMを操作する良い方法が分からずに設定できていませんでした。このアプリで無理やり実現出来たので快適です。 設定方法 KeyRemap4MacBookは独自でXMLを書いて、あるキーを特定のキーと結び付けることが出来ます。またその設定が有効になるアプリも選択できます。今回の場合は、Terminal上でEscキーをEscキー+英数キーという設定にすればOKですね。Ctrl+Cも使うので同時に設定しておきます。 まずKeyRemap4MacBook Preference Paneからpriva

    Vimで挿入モードから抜ける時に英数入力に切り替える - ✘╹◡╹✘
    saka39
    saka39 2012/02/15
  • 小さなマイクロブログ『mio』を作っています - とある技術の備忘録

    Ruby これは何?小規模のグループで緩くコミュニケーションを取るための、Twitterクローンなマイクロブログです。Rails製です。このGW中に作りました。予め決められたグループで運用することを想定しているため、twitterに比べるとFollow機能等がありません*1が、その分グループ運用に適した他の機能も加わっています。 Timeline Wiki - Show Wiki - Edit なぜ作った?大学の研究室で日々の成果や意見等をつぶやくことで、学生や教員間で進捗を管理しつつコミュニケーションを取り、良い研究室生活を送ろう、という目的のもとで作りました。研究室でなくとも、友人間のグループや小規模なプロジェクト等、色々な用途に使えるのではないかと思っています。 また、Rails3を使ってまともなWebアプリを作ってみたかったので、その学習も兼ねています。コードはこちら(github

    saka39
    saka39 2011/05/06
  • httpd.confについて調べたのでまとめたよ - とある技術の備忘録

    最近学科の友人3人とサーバ/セキュリティについての勉強会を週1で行っていて、毎回何か調べてくることになっており、今回は apache の設定について少し調べてきました。初心者がまとめたので間違っている部分があるかもしれませんが、勉強の役に立てて頂ければ幸いです。 httpd.confはどこにある? 最小限のhttpd.conf 3つのセクション セクション1: GlobalEnvironment セクション2: MainServerConfiguration セクション3: VirtualHosts モジュールの追加 外部設定ファイルの読込み サーバリソースの監視方法 httpd.confはどこにある? OSによって異なりますが、以下の階層に置いてある可能性が高いです。 CentOS、FedoraなどRed Hat系 /etc/httpd/conf/ SUSE系、MacOSX /etc/a

    httpd.confについて調べたのでまとめたよ - とある技術の備忘録
  • 1