タグ

ブックマーク / medium.com/@r7kamura (8)

  • arel 9.0.0の一部を読んだ - r7kamura - Medium

    activerecord への理解を深めるために、arel 9.0.0 のコードを読んだので、arel が SQL で表現された文字列を生成する流れについてここにまとめておきます。 サンプルコードarel の README では、簡単なサンプルコードとして、以下のコードが紹介されています。この記事では、このコードを見ながら説明を進めていきます。 users = Arel::Table.new(:users) query = users.project(Arel.sql("*")) query.to_sql抽象構文木の構築、文字列への還元上記のコードは、SELECT * FROM “users” に相当する SQL 表現を文字列として生成するためのコードです。まずは全体像を把握するために、このコードの全体の流れについて説明していきます。それぞれの部分の具体的な実装については後述します。 ar

    HolyGrail
    HolyGrail 2018/04/10
  • 個人で運用している Web サービスをどう管理しているか 2018年版 - r7kamura - Medium

    個人で運用している幾つかの Web サービスについて、自分がどう管理しているかを振り返る。 実験には Heroku を利用習作につくったアプリやβ版段階のアプリは、Heroku で動かしている。Heroku を使う場合のより具体的な条件としては、データベースが明らかに無料枠に収まりそうで、24時間動いていなくてもまあ誰にも怒られそうないような場合。Slack 用の Bot や、nippo という日報専用サービスのクローズドβ版などを主に置いている。 メリットに感じている部分は、無料で使えること。デメリットに感じている部分は、サーバが US に配置されることと、データベース系の Add-On が高くつくこと。例えば日語圏向けのサービスだと、通信時間がそこそこ長くなり、結果的にサービスの体験が悪くなる(昨今の平均的な Web サイトの速度はまだまだ遅いので、それと比較すると悪くなるというほど

    HolyGrail
    HolyGrail 2018/01/24
  • Gyazo の Web API の設計変更 - r7kamura - Medium

    業務委託として現在 Nota 社の Gyazo のサーバサイドの開発をお手伝いさせてもらっているのですが、その中でやっていることについて幾つか紹介したいと思い、今回は開発環境で全面的に Docker を使うようにしたという話について書こ… ここでは、Web ブラウザやその他のクライアントから HTTP を介して利用し、JSON などのデータフォーマットでクライアントアプリケーションとやり取りを行うようなエンドポイントのことを Web API と呼んでいます。 Jbuilder からの移行これまでのコードでは、JSON を生成するために Jbuilder というライブラリを使っていました。これは DSL を用いて JSON を生成するライブラリで、Rails の場合は ActionView と協調して動きます。 Jbuilder からの変更の理由は幾つかあるのですが、主要な理由を挙げると、以

    HolyGrail
    HolyGrail 2017/12/26
  • Gyazo 開発環境の Docker 化 - r7kamura - Medium

    The easy way to save screenshots, GIFs, and websites. Make everyone happy by sharing smarter, faster, and with your… 単純にスクリーンショットを保存するだけなら OS の機能だけでも十分ですが、GIF 動画を保存できたり、いつどこでどんなアプリケーションを利用しているときに撮影したのか、あるいは画面にどんな文字が写っているかといった情報を元に検索できたり、保存した画像をコレクションという単位でまとめて共有できたりと、Gyazo を使って保存しておくと意外と便利なことが多く、個人的にも重宝しているサービスの1つです。 我々が開発環境で Docker を使うメリットGyazo のサーバサイドの実装には、プログラミング言語の観点で見ると RubyGoJavaScript などが

    HolyGrail
    HolyGrail 2017/12/13
  • nippo の Gemfile (2017-12-02版) - r7kamura - Medium

    Rails で使っている gem の知見が欲しいという話をいただいたので、いま開発している nippo という Web アプリの、2017年12月2日時点で master に commit されている Gemfile の中身を解説する。 定義順序について説明してから、個々の gem について簡単に説明する。 定義順序まず group 指定の無いもの、次に group 指定付きのものという順で定義している。細かいけど group それぞれも辞書順。複数の group を同時に指定する場合は、それらを繋げたものを順序指定時のキーとしてソートする。こういうルールなので、gem メソッドの引数の :group オプションは利用しない。 意図的に順序を気にして定義しないといけないケースが存在するので、各 group ごとにまず順序を気にしないといけないやつを記述して、後に辞書順のやつを記述するように

    HolyGrail
    HolyGrail 2017/12/08
  • docker-compose を利用して開発しているアプリを Circle CI 2.0 でテストする

    普段から docker-compose を利用して開発しているアプリケーションを、Circle CI 2.0 に対応させる作業を行ったので、今回必要になった設定をまとめておきます。 アプリケーションの概要このアプリケーションでは、フロントエンドに Node.js を利用しており、バックエンドに Ruby on Rails を利用しています。それぞれ docker-compose で Node.js と Ruby のサービスを動かしており、Circle CI でも docker-compose を利用してテストすることにしました。 設定内容設定と言っても、以下のようなファイルを用意するだけです。Circle CI では docker-compose を利用できるので、普段から docker-composeを使っているのであれば、ほとんど余分な設定無しにテストを実行できます。 まず Git

    HolyGrail
    HolyGrail 2017/11/28
  • RSpec で単一の example を共有するためによく利用しているコード - r7kamura - Medium

    RSpec で細かく context を分けてテストケースを書いていると、複数の Example Group 間で単一の Example を共有したいケース、つまり異なる context で同じ it のブロックを共有したいケースによく遭遇します。 context "without current user" do it "returns 200" do is_expected.to eq(200) end endcontext "with current user" do include_context "with current user" it "returns 200" do is_expected.to eq(200) end endこの目的のために、shared_examples (あるいはその alias) を利用することができますが、shared_examples に付ける

    HolyGrail
    HolyGrail 2017/11/27
  • Incrementsを退職します – r7kamura – Medium

    IT エンジニア退職するときに添えられることが多い東亜飯店の画像今月いっぱいで Increments 株式会社を退職します。今日が最終出社日で、残りは有給消化です。 Increments では何をやってたの?Increments と言えば Qiita を運営している会社というイメージですが、Qiita の開発に直接携わる機会はほとんどなくて、技術基盤や Qiita:Team の開発に携わったりしていました。 分かりやすい例を幾つか挙げると、Qiita API v2、トップページのフィード、通知購読、絵文字リアクション、タスクリスト、qiita-elasticsearch、qiita-markdown、アクセス権限付きグループ、サポートサイト、チーム統合機能の開発や、UI 刷新、絵文字画像セット移行、ログインセッション永続化、Docker 移行、VPC 移行、Terraform 導入、We

    Incrementsを退職します – r7kamura – Medium
    HolyGrail
    HolyGrail 2017/06/06
    オッ
  • 1