Rails Developers Meetup 2019(2019/03/22 - 23)
Rails Developers Meetup 2019(2019/03/22 - 23)
株式会社LITALICO のklrutsaです。 『LITALICO Advent Calendar 2016』13日目の記事です。 はじめに 私が遭遇した、Railsアンチパターン集です。 笑えるよりも、笑えないコードのほうが多いですが、よろしくお願いします。 前回の、負債を抱えすぎたRailsアプリのリファクタリング - Qiitaでは、複雑な状態遷移への対応方法を書きましたが、その他の負債をどうしたかみたいなことについて書いてみます。 一般的に書いてはいけない、とまではいえないかもしれないですが、 個人的には書かないほうが良いと思っているコード集です。 default_scope class Article < ActiveRecord::Base default_scope { where(status: 'publish') } end 要点 プログラマの認識している動作と実際の
2018.07.30 週刊Railsウォッチ(20180730)Rubyの速い書き方集、最近登場のRailsアプリたち、RubyWorld Conference受付開始ほか こんにちは、hachi8833です。やっとGobyにRipperライブラリをマージしました。 束の間の涼しい夏日のウォッチ、いってみましょう。 各記事冒頭には⚓でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ ⚓【お知らせ】週刊Railsウォッチ「公開つっつき会 第1回」今週8/2(木)開催 今週木曜日です。引き続き参加をお待ちしております!🙇懇親会にて軽食&ビールもお待ちしています🍺。 【宣伝】弊社で毎週やっているRuby/Rails/Web開発関連の最新survey会である週刊Railsウォッチのオフライン公開勉強会を8/2(木)に開催します。10人以下のひっそりとした規模で試しにやっ
#はじめに 最近、プロジェクト管理業務が業務の大半を占めており、 プログラムを書く機会がなかなかありません。 このままだとプログラムがまったく書けない人になってしまう危機感(迫り来る35歳定年説)と、 新しいことに挑戦したいという思いから、 Ruby on Rails チュートリアル実例を使ってRailsを学ぼう 第4版を学習中です。 業務で使うのはもっぱらJavaなのですが、Rails楽しいですね。 これまでEvernoteに記録していましたが、ソースコードの貼付けに限界を感じたため、 Qiitaで自分が学習した結果をアウトプットしていきます。 個人の解答例なので、誤りがあればご指摘ください。 ##8.3 ログアウト ###本章での学び ####セッションの破棄 セッションの破棄は、destroyアクションで行う。 ####セッションの破棄 セッションからユーザIDを削除するために、de
2014/5 更新 バージョン覚えてないけど、多分Ruby:2.0、Rails:3.2 前提 RailsのDBMSを初期設定のSQLiteからMySQLに変える方法です。ここを参考にしました。 大事な所を他サイトに丸投げしたざっくりなまとめですが悪しからず… MySQL設定 インストール まずは、MySQLを公式サイトからダウンロードします。 手順はこのサイトに詳しく書いてあるので参照してください。 初期設定 インストールしたら、MySQLを起動して初期設定をします。 詳しくはドットインストールでどうぞ。 作業ユーザー作成 次に作業ユーザーを作成します。 以下を見ていただくと分かるのですが、作業ユーザーはdevelopment、test、productionの3つ必要になります。(developmentとproductionは同じユーザーでも設定上は大丈夫ですが、本番環境も見据えてprod
ずいぶん前のことだが、Webアプリケーション開発フレームワーク「Ruby on Rails」が00年代後半にブームを巻き起こしたとき、強い主張を持つソフトウェアとしてRailsは多くの議論を呼び起こした。その中でも最大のものはプログラマの生産性に関するもの。当時、すでにいくつも存在していたJavaベースのWebアプリケーション開発フレームワークに比べて、Ruby on Railsは10倍の生産性を達成できるという主張だ。 Rubyの生産性はJavaの10倍――。この主張が多くのエンジニアの琴線、もしくは逆鱗に触れた。「さすがに10倍は大げさだ」、「いや、現実に設定ファイルやコードを書く行数が劇的に減るのだから、そのぐらい当然だ」と意見が分かれたのだ。 2005年のリリースから約10年。Railsの生みの親で、今もプロジェクトをリードするデイビッド・ハイネマイヤー・ハンソン氏は当時を振り返り
概要 1年間Ruby on Railsのプロジェクトをやってきて、ためになった書籍やサイトをまとめてみた。 他に何かオススメがあったら教えてください。 初めてのruby 配属されて初の業務前に先輩に進められた本がこれ。 初めてと名が付いているが、難しかった記憶がある。 パーフェクト Ruby on Rails part1,2はある程度わかっていたが、part3,4辺り…特に9章はまとまった資料がなかったので、すごく参考になった。 少しだけ書けるようになった自分にとっては、次の段階にあがるための良いきっかけとなった。 Everyday Rails - RSpecによるRailsテスト入門 ある程度プロジェクトに慣れてきたあたりの時に、日本語訳が発売されたので購入した。 今までは、プロジェクト内の既存のテストを模倣するように書いていたが、読んでからは意図をもって書けるようになったと思う。 Ra
※この内容はRailsで書かれたWantedlyのプロジェクトに参加することを想定していて、一部Railsのデフォルトでない機能の解説もありますが、使っているgemもメジャーなもので割と汎用的な内容になっていると思うので、是非参考にしてみてください。 URLを見ればだいたいどこを変更すればいいかわかると言うこと Ruby on RailsはMVC(Model View Controller)にもとづいて設計されていて、ディレクトリ構造的にもapp/以下に綺麗に分かれている。 MVCって何?って人は、ググってみてほしいが、割と宗教論争になりかけているので、モデルはDBの各テーブルに関連していて、ビューはHTMLの部分に近くて、コントローラーはビュー用にモデルを引っ張ってくるつなぎ役だと思ってれば大体合っている。これ以上は深く考えずにコードを読んだほうが良いと思う。 Router でもコード的
Railsアプリケーション開発を完全にDocker化する Tweet Degica のすべてのサービスは Rails で開発しており、そのうちの一部は Docker を使用した本番環境にデプロイしています。しかし開発者個人の開発環境にはいまだに Docker を導入できていません。最も大きな障害は spring を docker コンテナ内で上手く扱う方法が確立されていなかったことですが、この問題は docker-compose を工夫して利用することで解決可能であることがわかりました。 ということで、今回は rails アプリケーションの開発環境を完全に docker 化する方法を紹介します。 完全に、というところがポイントです。この方法を使えば docker 以外のツールを一切ホストマシンにインストールせずに rails アプリの開発を行うことができます。 (ちなみに、弊社の本番環境は
# -*- coding: utf-8 -*- worker_processes Integer(ENV["WEB_CONCURRENCY"] || 2) timeout 15 preload_app true # 更新時ダウンタイム無し listen "/tmp/sockets/unicorn.sock" pid "/tmp/sockets/unicorn.pid" before_fork do |server, worker| Signal.trap 'TERM' do puts 'Unicorn master intercepting TERM and sending myself QUIT instead' Process.kill 'QUIT', Process.pid end defined?(ActiveRecord::Base) and ActiveRecord::Base
# -*- coding: utf-8 -*- # ワーカーの数 worker_processes 2 # ソケット listen '/tmp/unicorn.sock' pid '/tmp/unicorn.pid' # ログ log = '${my_app}/log/unicorn.log' stderr_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT']) stdout_path File.expand_path('log/unicorn.log', ENV['RAILS_ROOT']) preload_app true GC.respond_to?(:copy_on_write_friendly=) and GC.copy_on_write_friendly = true before_fork do |server,
#はじめに Railsで開発をするとき、RDBへのデータ操作はActiveRecordを介して実施する。DBデータの変更がオブジェクトの変更に抽象化されるため、SQLを知らなくてもデータベースへのデータの書き込み、取り出し、上書き、削除といった操作ができることができるのだけど、SQLをある程度知っている人には辛かったりする。(このSQLを書くためには、 ActiveRecordでどう書けばいいんだ?的な)なので、ここの記事にまとめておく。 #前提 扱うモデルは下のようなテーブルとする。 usersテーブル mysql> desc users; +-----------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-
(訳注: 2016/3/2、頂いたフィードバックをもとに記事を修正いたしました。) Ruby on Railsは最近、急激に注目を集めていますが、その原因はほとんど、この言語が斬新なテクノロジーとしてもてはやされたことと、タイミングにあります。技術的な優位性は時間の経過とともに失われますから、タイミングがよかっただけでは、一過性のブームに終わり、このムーブメントの隆盛は長続きしません。従って、「Railsがいかにして、適切な技術としての位置を維持し続けるるだけでなく、影響力とコミュニティを拡大し続けてきたのか」をより多くの人に説明していく必要があります。そして、その維持・拡大を可能にした/していく要因は、物議を醸すことさえあるRailsの基本原則にあると考えています。 この基本原則はここ10年ほどの間に進化を続けてきましたが、最も強固な柱となっているルールはやはり、公開当初から制定されてい
私たちの救世主DHH™は最近の Full Stack Radioのインタビュー で、 Basecamp の最新版で彼がどのようにRailsのコントローラを書いたかを説明しています。下記は、彼のすばらしい話を書き取ったものです。 これまでに思うようになってきたのは、「RESTの原則に従うには、どのタイミングで新たなコントローラを作るべきかを一度決めたら、ほぼ異例なくその原則を遵守するべきだ」ということです。いつだってその方がうまくいくんです。自分の作ったコントローラの状態を悔やむのは決まって、作ったコントローラの数が少なすぎた時です。多くの処理を任せようとしすぎてしまうんです。 そこでBasecamp 3では、ある程度理にかなったサブリソースがあれば、毎回コントローラを分割していきます。フィルタなどの場合ですね。例えば画面があって、それがある状態になっているとします。もしこれにいくつかのフィ
3年ほどRailsを書いてきてある程度知見が溜まってきたので、忘れないためのメモとしてKPTと導入例を交えながらダラダラと書いています。 見出しの命名規則は クラス名/ディレクトリ名の単数形をupper camel caseにしたもの + KPT です。 Keepは今後も使うもの、Problemは開発規模によっては問題が発生する(した)もの、Tryは現在使用していないが使用したほうが良いと思っているものです。 これらすべてを導入すれば上手くいくというわけでもないので、開発規模に合わせて適切に採用していくと良いと思います。 DDDやデザインパターン等見聞きはしているものの詳しいわけではないので間違っている部分等あるとは思うのでその辺りはコメントでご指摘お願いします。 はてブコメント欄で頂いた指摘内容等についてはまとめの後でまとめて返答を記載しています。 Asset (Keep) app/as
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く