タグ

ブックマーク / morizyun.github.io (65)

  • メタプログラミングRuby第2版 / 第2章オブジェクトモデル [勉強メモ]

    メタプログラミングRubyを読んでいます。完全自分用のメモ記事です。 第2章で特に参考になった部分を中心に書いています。

    メタプログラミングRuby第2版 / 第2章オブジェクトモデル [勉強メモ]
  • Hamlが5分で分るチートシート [Rails初心者チュートリアル]

    今回はRubyの代表的なテンプレートエンジン「haml」を使って、RailsのViewを書き換えてみます。また、Hamlをすでに使っている人向けにも適したTips的なチートシートを作りました! 🍄 RailsのViewとは?Railsでは次のようなMVC(Model, View, Controller)のしくみ使ってWebアプリケーションを作っていきます。 Model(モデル): 主にデータベース(MySQLやPostgreSQL)とのやりとりを担当 View(ビュー): 主にWebブラウザのhtmlの表示を担当 Controller(コントローラ): View(ビュー)とModel(モデル)との間の橋渡しを担当 今回はブラウザで簡単に確認できるViewの部分を変更してみます。 😎 Hamlとは?『Haml』とは簡単にいうとHTMLをより簡単に書くためのビューテンプレートエンジンです。

    Hamlが5分で分るチートシート [Rails初心者チュートリアル]
  • ぼくのかんがえたさいきょうのRailsファースト・ガイド

    すみません、タイトルは釣りです。 Webプログラマーの実務経験ないけど、Railsの勉強始めました的な人にお会いする機会が何度かあって、 僕ができることってなてかなぁと思って考えた文章です。教えることは下手ですので、「もっといい方法があるよ」 といった方がもしいらっしゃったら、ぜひアドバイスもらえるとめっちゃうれしかったりします。 これからしばらくは「はじめてのプログラムはRailsです」といった方が増えるのかもと思います。 そういった人たちがプログラムを楽しいと思ってもらえるようになるとうれしいっす。 (2015-07-20 14:00) 質問をいただけたので書籍リストを追加 🎂 <セクション1> 1日目-11日目まずは触ってみるプログラミングに触ったことがない人や、大学の授業しかプログラムやったことがない人向けのセクションです。 すでに別の言語をやったことがある人はスキップしてくださ

    ぼくのかんがえたさいきょうのRailsファースト・ガイド
  • DBの基礎 - コネクションプーリングについて

    コネクションプーリングについて、わかっていないことが多すぎたので、ちょっとだけ調べたことをメモで残しておきます。 今はまだ触りレベルしかわかっていなのいので、もう少しちゃんと分かるようになりたい! 😀 [スライド] データベースの羅針盤 コネクションプーリングを調べている過程で偶然見付け足資料 『データベース技術の羅針盤』。 とにかくわかりやすくて、俯瞰的にDBの業界を知ることができる資料。すばらしすぎる。 🎂 コネクション・プーリングとは?DBのコネクションを一定数確立しておいて、それを使いまわす手法のこと。 DBへの接続に必要となるオーバーヘッドをカットしてWeb/DBの双方の負荷を下げる。 また、WebとDBの接続を使いまわすことで同時接続数を節約する。 用意した、コネクション数を超えたアクセスは、コネクションに空きがでるまで待たされる。 以下はOracle関連の話ですが、基

    DBの基礎 - コネクションプーリングについて
  • Rubyを使っているプロジェクトのコーディング規約を見てみよう【Ginza.rb #20】

    2015/2/17にみんなのウェディングさんで開催された 『Ginza.rb 第20回 Rubyを使っているプロジェクトのコーディング規約を見てみよう』 に参加してきました。コーディング規約をじっくり議論できる場所はなかなかなかので、かなりおもしろかったです! 🏈 スタイルガイド今回Ginza.rbで一緒に読んだコーディング規約。 Rubyのコーディング規約ruby-style-guide/README.ja.md at japanese · fortissimo1997/ruby-style-guide Railsのコーディング規約rails-style-guide/README-jaJA.md at master · satour/rails-style-guide 🐮 おもしろかった規約議論に聞き入りすぎて、あんまりメモしきれませんでしたが今日から使いたいコーディング規約の俺得メ

    Rubyを使っているプロジェクトのコーディング規約を見てみよう【Ginza.rb #20】
  • 無料でwerckerでRSpecのCI & Capistrano Deploy

    プライベートなプロジェクトでもRSpecをデプロイのたびに実行したくて、『wercker』を使い始めましてた。 個人的には、Bitbucketのプライベートリポジトリを使って、RSpecで継続的インテグレーションしつつ、CapistranoでDeployできる 一連のプロセスが無料でスピーディに実現できるのでプライベートプロジェクトにめっちゃオススメです! 😼 競合サービスとの比較無料で使いはじめることができるCIツールには、『Circle CI』や 『Magnum CI』などがありますが、日語の情報が多く、Bitbucketのプライベートリポジトリが使える点を 考えて、『wercker』を選択しました。 🗽 前提: アプリケーションの環境について今回は以下のアプリケーション構成を対象としています。 - アプリ構成 - Ruby 2.2.0 - Rails 4.2.0 - RSpec

    無料でwerckerでRSpecのCI & Capistrano Deploy
  • Everyday Rails RSpecによるRailsテスト入門でRSpec3に再入門![書評]

    『Everyday Rails - RSpecによるRailsテスト入門』 が、RSpec3に対応したとの噂を聞いて1年ぶりに読み直しました。この書籍は著者や訳者さんが、しっかりとアップデートを続けてくれているので、最新の入門チュートリアル としてRSpecの実践的な使い方が習得できるすばらしいです。 今回は『Everyday Rails - RSpecによるRailsテスト入門』 を読んでいく中で、特に印象に残った部分を中心にピックアップしていきます。ブログ駆動勉強ですw 🍣 Everyday Railsのサンプルソースeverydayrails/rspec_rails_4 - GitHub この書籍ではできるだけRSpecやテストに集中できるようにサンプルソースが用意されています。しかもRails 4対応と至れり尽くせりです。すばらしい! ターミナルで次のコマンドを実行すると、ロー

    Everyday Rails RSpecによるRailsテスト入門でRSpec3に再入門![書評]
  • RSpec3初心者向けの資料まとめ直しました![Ruby]

    TDDでRSpecを書くにあたって、どれだけ効率的に効果的なテストが書けるかは、品質を高めていく上ですごく大切なことだと思います。 今回、RSpec3用のドキュメントやWebサイトをいろいろ読みなおして、最近までに特に良かった記事などを中心にまとめ直しました。 RSpec3に入門しようとしている初心者さんや、普段使っているけどもう一度RSpec3の知識を整理したい人にオススメのマトメです! 🗽 TDD/BDDとは?TDD/BDDにおける「振る舞い」の意味するところとは何なのか RSpecに限定された記事ではないですが、BDDの根的な概念の「振る舞い」についてまとめられた記事です。 これを知っておくことで、ここから先の話がかなりスムーズに理解できるようになると思います。 🎂 まずテスト書いてからコード書くシンプルなチュートリアルはじめてのRSpec - まずテスト書いてからコード書くシ

    RSpec3初心者向けの資料まとめ直しました![Ruby]
  • 「3分Gemクッキング」というタイトルでLT発表しました! 

    社内勉強会ですが、『3分 Gem クッキング』生まれて初めてLT的な発表をしてきました。 基的には最近まとめていた、RubyGemsの作り方やOSSに携わると使える無料のサービスなんかの紹介が中心です。 🤔 伝えたいこと僕の周りのエンジニアは実力はあるのに、ブログやQiitaの記事を書いたり、GitHubで活動したり、オープンソースに貢献することに対して、 ちょとおよび腰なところがあるなと思っています。 でも、GitHubに自分のコードを公開したり、OSSにちょっとしたPull Request(Pull Request)を出したり、自分でライブラリ を作って公開することは、やってみるとすごく簡単だし、それによって得られるメリットもたくさんあると思っています! 僕自身もその経験をして、少しでもその良さを伝えたいという想いから、この発表をしました! ちなみに、Rakuten Tech Co

    「3分Gemクッキング」というタイトルでLT発表しました! 
  • RubyGemはめっちゃ簡単に作れる! 

    今回はbundle gem test_gemの方を説明していきます。Rails Pluginの詳細は次のサイトに解説があります! rails pluginコマンドで簡単に出来るgemの作成方法 🚜 作成されたファイルの概要今回作成されたファイルの簡単な説明。 bundle gem test_gem -t create test_gem/Gemfile create test_gem/Rakefile create test_gem/LICENSE.txt create test_gem/README.md => このgemの説明や使い方を記述 create test_gem/.gitignore create test_gem/test_gem.gemspec => このgemの説明や依存関係などを記述 create test_gem/lib/test_gem.rb => プログラムを記

    RubyGemはめっちゃ簡単に作れる! 
  • 酒と涙とRubyとRailsと

    asin: 4797363827 title: “[Rails高速化] ページキャッシュ、N+1対策、SQLチューニング” category: Rails 🐯 tags: [Rails, Ruby, Gem]『Cookpadではユーザーへのレスポンスタイム 200ms/reqを目標にしている』に感銘を受けて書き始めたこの記事ですが、『パフォーマンス・チューニングやオススメGem in 「Rails勉強会@東京 第88回」』でいろいろ教えてもらったり、最近関わっているサイトのリニュアールで試行錯誤したので、忘備録も兼ねて記事をアップデートします! 🚕 目次(1) N+1問題の対策 (2) Railsのキャッシュについて (3) 開発中ならrack_mini_profiler (4) 運用中なら断然NewRelicがおすすめ (5) mysqlの簡単チューニング 🚌 (1) N + 1問

    酒と涙とRubyとRailsと
  • Garage RailsでOAuth認証付きのRest APIをお手軽開発! 

    CookpadさんがOSSで先日OSSで公開されたGarageはRestfulなAPI + OAuth(Doorkeeper)をワンストップで提供してくれるgemです。 ちょうど触る機会が出てきたので、今回四苦八苦しながら使ってみたのでそのメモです! 🎂 今回のサンプル実装今回はOAuthで認証して、次のシンプルなAPIにアクセスできるようにするまでのサンプルを作成します。 GET /v1/users => ユーザーのリスト出力 GET /v1/users/:id => 個々のユーザー情報の出力 🎃 Gemの追加Gemfileに以下を追加して、bundle install。 gem 'garage', github: 'cookpad/garage' gem 'responders', '~> 2.0' # If you use Rails4.2+ group :development

    Garage RailsでOAuth認証付きのRest APIをお手軽開発! 
  • AWS/VULTR + AnsibleでベーシックなRailsサーバを簡単構築

    Ansibleはサーバ構築時の手順をコードにできるOSSです。今回は最近構築した自分のサーバのコード『morizyun/centos_ansible_rails - GitHub』を紹介します。 このAnsibleを使うとCentOSを使っているサーバに次のような環境をたったの数コマンドで構築できます。 * サーバ: Nginx * DB: MySQL or PostgreSQL * Firewall: iptables * サーバ監視: NewRelic * Ruby: RVM & Rails * SSH: Mosh * 開発に必要なライブラリのインストール 🗽 動作条件AWSやVULTRで動作確認がなんとなくできている状況ですが、多分CentOS系のOSなら動く気がします。 VULTRの場合は拙著『[VULTR 日リージョン/MEM 768MB/SSD 15GB VPS $5/月!

    AWS/VULTR + AnsibleでベーシックなRailsサーバを簡単構築
  • Capistrano 3系でRails 5.1のデプロイ[rbenv][ruby2.4]

    デプロイツールのデファクトスタンダードとなった『Capistrano3』。stagingやproductionといった複数環境へのデプロイを標準で対応していたり、bundleやmigration、pumaとの連携なども抜群です。 かなり乗り遅れてしまいましたが、最近ようやくRails 5.1をcapistrano3系でデプロイしました。ずっとHerokuやElastic Beanstalkにばっかり頼っていたのでちょこちょことハマって苦労しました。今後忘れないための忘備録メモっす! rbenv, rvmの両方に対応しました。オリジナルのcapコマンドの作り方も書きました!

    Capistrano 3系でRails 5.1のデプロイ[rbenv][ruby2.4]
  • Java初心者向け資料を全力でまとめてみた!

    最近仕事Javaを触り始めました。正直Javaは今まで研修的なことしかやってこなかったので、かなり苦戦していますが、新しい言語を学ぶ楽しさのおかげで毎日がめっちゃ充実しています! ということで、最近ネットで探しているJavaの入門用資料を中心にまとめてみました。 🐰 Java基礎文法最速マスタJava基礎文法最速マスター 言語系の最速マスタ記事。めちゃくちゃわかりやすくてクオリティが高い。素敵すぎる! 🐠 Javaを使うなら必ず覚えておきたいデータ構造 - 配列・リスト・マップ Javaを使うなら必ず覚えておきたいデータ構造 - 配列・リスト・マップ Javaを使うなら理解しておきたいアルゴリズム - 抽出・ソート・結合・集計 (リスト&マップ編) Javaの配列、リストはめちゃくちゃよく使うので、早い段階で理解しておきたい! 🗽 mixi/Javaの文法の基礎A.02. Java

    Java初心者向け資料を全力でまとめてみた!
  • 【Web全般】GET メソッドと POST メソッドの違い(簡易全体像)

    今回はGETメソッドとPOSTメソッドの違いについて。 Webで普通に使ってきていたGETメソッドと、POSTメソッドの違いについて勉強したのでそのメモです。 こういった基礎的な部分をしっかり勉強していくことで、応用につなげていきたい! 🐹 HTTPリクエストについてHTTPリクエストは、大きく3つの部分に分かれる。 1) HTTPリクエスト行 2) HTTPヘッダー行 3) HTTPリクエストのボディ部 🚜 GETメソッドについて* リクエストURLの後にパラメータを付与してデータを送付する * データを取得するときに使用する。副作用がない、常に結果が同じになるような処理に用いる * URLの文字数は、IEでの制限があり2048文字 🗽 POSTメソッドについて* HTTPリクエストのbody部にパラメータ(データ)が含まれる * テキストデータでもバイナリデータでも送信できる

    【Web全般】GET メソッドと POST メソッドの違い(簡易全体像)
  • 幅優先探索 | アルゴリズム[Ruby/Python][AOJ 0129]

    『幅優先探索』をRuby/Pythonで解いてみました。AIZU Online Judgeで対応している問題は『Seven Puzzle』です。 🏀 概要深さ優先探査の説明は『通勤・通学中に理解する深さ優先探索と幅優先探索』、 『アルゴリズム図鑑:iOS & Androidアプリ』が分かりやすかったです。 要点は次のとおり。 根ノードで始まり隣接した全てのノードを探索。階層(根ノードからの距離が近い順)にルートを調べる 🐯 サンプル問題(AOJ)Seven Puzzle Aizu Online Judge。1-7までの数字と、1つ空白のあるパズルをとく問題。 😀 Rubyコード 01234567がそろった状態(ゴール)からスタートして、0を移動させる 幅優先探索で過去に到達していない状態になったら、手数(移動数)を記録 すでに到達済の状態であれば、スキップ(幅優先探索なら手数が同等か

    幅優先探索 | アルゴリズム[Ruby/Python][AOJ 0129]
  • 共通部分文字列をカウント | アルゴリズム [AOJ 528][Ruby/Python][文字列操作]

    引き続きプログラミングの基礎体力づくりと、Pythonの勉強を兼ねてアルゴリズムを勉強中です。今回は『共通部分文字列をカウントする方法』について勉強しました。AIZU Online Judgeで対応している問題は、『Common Sub-String』です。アルゴリズムというよりは頭の体操的なパズル問題ですが、ある程度速度の早いプログラムを書くのには工夫が必要だなと痛感しています。 🏈 AOJ問題Common Sub-String Aizu Online Judge。2個の文字列が与えられたとき、 両方の文字列に含まれる文字列のうちもっとも長いものを探し、 その長さを答えるプログラム。 🍄 Rubyコードloop do s, t = gets.chomp, gets.chomp rescue break s, t = t, s if s.length > t.length max_l

    共通部分文字列をカウント | アルゴリズム [AOJ 528][Ruby/Python][文字列操作]
  • devise/cancancanを使ってログイン機能を実装する[Rails 4.1] - 酒と泪とRubyとRailsと

    最近初めて、Rails内だけでユーザーの管理、ログインをする機能を実装しました。簡単にネットで調べた限りでは、『devise』と『cancancan』を使う方法が一番シンプルでしっくりきました。 こういった一般的な機能を実装するときにはRailsには当に多様なライブラリがあるのが強みだなとつくづく感じます! (07-02 21:55) 設定の追記やlocaleファイルのダウンロードなどを追記 🎂 次試すメモ『mcasimir/devise-i18n-views』で翻訳したdeviseのviewを生成できそう。次試してみます! 🍮 GemのインストールGemfileに次のコードを追加して、bundle installを実行。

    devise/cancancanを使ってログイン機能を実装する[Rails 4.1] - 酒と泪とRubyとRailsと
  • Python初心者入門資料まとめ! 【Pythonスタートブック書評】

    統計の勉強をしていく中で、Pythonの数値計算を将来できるようになりたいと思うようになり、Pythonの勉強を少しずつ始めました。で、そんなダメ系エンジニアにも優しく、最初に読むといいと評判の『Python スタートブック』を読みました。 ついでにネットの無料の資料もいくつか集めてみたので良かったら、よかったらこのゴールデンウィークに新しい言語を勉強してみてください! 😸 環境構築Python開発環境構築 徹底解説 Mac限定ですが、Pythonのモダンな開発環境の導入手順です。かなりシンプルに導入できるので、初心者でもスムーズに始められると信じていますw 🗻 動画Python入門 安定のドットインストール。新しい言語をやるときにはいつも大助かりです! 🐮 文法 & TipsPython基礎文法最速マスター Python 2.6系の基礎的な文法が洗練されて、まとめられています。ほか

    Python初心者入門資料まとめ! 【Pythonスタートブック書評】