おやまのエンジニアリングブログ

某ゲーム開発会社のフルスタックエンジニアしてます

サーバーとクライアントの時刻をシンクロさせる方法

本来ならNTP使ってろって話なんでしょうが、クライアントがNTP使ってる保証無いですし、絶対に合わせる必要があったので今回実装せざるを得なかったので実装しました。 まずサーバー側の時刻を正とした場合、一番単純な実装方法として、サーバーの時刻をクラ…

Rails のおすすめ Gem 一覧 2014

自分にとって、Railsで開発する時の喜びの一つは、rubygemsを使ってビジネスロジックの実装が安易にできることです。過去にいくつものプロジェクトを立ち上げてきましたが、必ずお世話になるgemがいくつかあります。今日はそのgemたちを紹介します。better_e…

Rails PluginでRspecを使う環境の構築方法

Railsのプラグインのテストを書くのに、rspecを使いたかったので実装方法をまとめました。1. まず、railsのジェネレーターを使ってファイルを一式作成。 とりあえず、クラス名はMyGemにします。 rails plugin new my_gem --skip-test-unit --dummy-path=spec…

コードレビューの時に使う略語集

最近会社で大量のコードレビューをしているのですが、似たような内容を一行一行タイプしている事がアホらしくなってきています。もっと良いやり方はないかなーと考えていたら大学生の時に最初に受けたプログラミングの授業を思い出しました。その授業では、…

多言語対応ウェブアプリを作る前に知っておきたい事

はじめに 最近仕事で、他言語対応(主に英語)のアプリを初めて作った訳ですが、事前準備を色々したにもかかわらず、翻訳、コーディング、サーバー構築などあらゆる分野で大変苦労したので気をつけたい点を共有します。ちなみに自分が担当した部分は、日→英→…

プログラマーにおすすめする Sublime Text 3プラグイン ベスト5

もうずいぶん前から使っているSublime Textですが、最近プラグインを使って作業を効率化することにハマっているので、現在使っている便利なプラグインを紹介します。 1. Package Control 絶対外せないのがこれ。これは他のプラグインのインストール・アンイ…

Turbolinksを実装するにあたっての注意点

はじめに Rails 4になってTurbolinksやpjaxなどの非同期通信を使ってページを更新する方法が広く知られるようになりました。自分も積極的にプロジェクトに取り込んだのですが、結構癖があり、実装するにあたって色々考慮が必要だったのでその実装方法をまと…

Javascriptのイベントハンドラーについて調べてみた

ユーザーがクリックした時に最初に実行されるイベントはどれだろう?という疑問が浮かんだので色々調べてみました。MDN(Event - Web API interfaces | MDN)やここ(Javascript - Event order)によるとどうやらイベントの実行順番は自分でコントロールでき…

jQueryで通信が失敗した時にリトライする方法

$.ajaxを使う際に、通信が切断された時のハンドリングによく困ります。 なので切断された場合、私はユーザーにダイアログを出して再送信を行ってもらうようにしています。あまり知られていませんが、失敗した時のリクエストと全く同じ内容で再送信することが…

HTTPステータスコードを使ってAJAX通信を整理する

クライアントサイドでAJAX通信をハンドリングするときに HTTPのステータスコードを使うと可読性がアップする上にサーバーもクライアントも 整理できるので非常に便利であることが最近わかったので ここに使い方をここにまとめておきます。実装例は以下のとお…

「後で直す」を援助する shame.css

CSS

後で時間があったら戻って治す。そう自分に言い聞かせて、適当なコードを書いてしまう。でも、いつの間にか忘れてしまったり、他人が編集→影響範囲が不明確に→修正不可なんてことになってしまっていることが殆どではないでしょうか。 これが長期に渡って繰り…