More Related Content
PDF
PDF
[DL輪読会]Progressive Growing of GANs for Improved Quality, Stability, and Varia... PPTX
ICASSP2017読み会(関東編)・AASP_L3(北村担当分) PPTX
PDF
PDF
PDF
PPTX
What's hot
PDF
クラシックな機械学習入門:付録:よく使う線形代数の公式 PDF
PDF
PDF
モデルアーキテクチャ観点からのDeep Neural Network高速化 PPTX
Sliced Wasserstein距離と生成モデル PDF
Tensorflow Liteの量子化アーキテクチャ PDF
PPTX
PDF
PPTX
PPTX
DLLab 異常検知ナイト 資料 20180214 PPTX
【DL輪読会】WIRE: Wavelet Implicit Neural Representations PDF
PDF
PPTX
PDF
A100 GPU 搭載! P4d インスタンス使いこなしのコツ PDF
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会) PDF
PDF
PDF
文献紹介:Simple Copy-Paste Is a Strong Data Augmentation Method for Instance Segm... Viewers also liked
ODP
高トラフィックサイトをRailsで構築するためのTips基礎編 PDF
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録” PDF
PDF
PDF
CEDEC 2015 Cocos2d-x と社内基盤の付き合い方 〜アップストリームファーストを目指して〜 PPTX
KEY
PDF
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介 KEY
KEY
PDF
PDF
PDF
CEDEC 2015 IoT向け汎用protocol MQTTのリアルタイムゲーム通信利用と実装、そして未来へ… PDF
PDF
Rubyの会社でPythonistaが三ヶ月生き延びた話 PDF
PDF
ドリコム流。教育アプリにおけるゲーミフィケーションノウハウ PDF
PDF
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~ PPTX
スマホマーケットの概要と、マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー) Similar to 実録!Railsのはまりポイント10選
PDF
20080521-Ruby-on-Rails-Security PDF
nomlab_okayamaruby_subslide PDF
Rubyプログラミング教育に対する取り組みと事例紹介 PDF
Rubyの会社でPythonistaが3ヶ月生き延びた話 PDF
PPTX
エンタープライズRuby on Rails ~エンプラでぶち当たった2つの壁と突破法~ PDF
KEY
PDF
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か? PDF
PDF
最適化計算エンジンを備えた Ruby on Rails アプリケーションのアーキテクチャーと進化 PDF
Hyper → Highspeed → Development PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編 2015 PDF
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み PDF
PDF
Tokyo Rubykaigi 01 t-wada PDF
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡 PDF
2012 08-23 Mame Night Jenkins PDF
新入社員のための大規模ゲーム開発入門 サーバサイド編 PDF
More from Drecom Co., Ltd.
PDF
コンテナで始める柔軟な AWS Lambda 生活 PDF
PPTX
PPTX
DRECOM Summer Internship 2019 成果発表 by 鹿内 裕介 PDF
PDF
PDF
PDF
PDF
PDF
rails-developers-meetup-day4 PDF
html5conf2018-sponsor-session PPTX
DApps のユーザ認証に web3.eth.personal.sign を使おう! PPTX
3Dリアルマップを用いたモバイルゲーム開発における課題とその解決方法 PPTX
LoveChainのスマートコントラクトを見てみよう & 非中央集権なトークンのカタチ PDF
PDF
PDF
実録!Railsのはまりポイント10選
- 1.
- 2.
自己紹介
• 藤田 武雄
•株式会社ドリコム
• ソーシャルゲーム事業本部
• アプリケーションエンジニア
• 最近は主に社内ライブラリの開発を
担当
Copyright © Drecom Co., Ltd.
- 3.
- 4.
- 5.
はまり例
a = bor c
• こういう意味にしたかった
a = (b or c)
• 実際の動きは
(a = b) or c
• bの値をaに代入し、それが偽であればc
を評価する
Copyright © Drecom Co., Ltd.
- 6.
- 7.
ちなみにRails本体は
• Contributing toRuby on Rails
• 5.3 Follow the Coding Conventionsに
は
• Prefer &&/¦¦ over and/or
• と書かれている
• http://guides.rubyonrails.org/
contributing_to_ruby_on_rails.html
Copyright © Drecom Co., Ltd.
- 8.
- 9.
- 10.
- 11.
lambdaを渡す
scope :started, lambda{ where('start_at
<= ?', Time.now) }
• lambdaの中身は都度評価される
• edgeではwhereを直接書くやり方は
deprecatedとなった
• https://github.com/rails/rails/commit/
0a12a5f8169685915cbb7bf4d0a7bb48
2f7f2fd2
Copyright © Drecom Co., Ltd.
- 12.
- 13.
- 14.
よくない例
class Baz
defself.foo
@foo ||= bar
end
end
• barがDBから取得した値だとDBを更新
しても返り値が変化しない!
Copyright © Drecom Co., Ltd.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
対策
• その1: validates_length_ofを設定
•その2: 文字数を減らす
• その3: mediumtext(16MBまで)などに
変更する
• どれぐらい増えるか見積もりしておけば
はみ出ないように設計見直しできるはず
• AR::Store(YAML)にも気をつけよう
Copyright © Drecom Co., Ltd.
- 22.
- 23.
- 24.
- 25.
パッチ
module ActiveRecord
moduleConnectionAdapters
module SchemaStatements
def index_name(table_name, options)
if Hash === options
if options[:column]
"#{Array.wrap(options[:column]) * '_and_'}"
elsif options[:name]
options[:name]
else
raise ArgumentError, "You must specify the index name"
end
else
index_name(table_name, :column => options)
end
end
end
end
end
Copyright © Drecom Co., Ltd.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
コード例
CREATE TABLE IFNOT EXISTS
tmp_scores LIKE scores;
TRUNCATE TABLE tmp_scores;
class TmpScore < ActiveRecord::Base; end
TmpScore.import([:user_id, :value, :rank],
scores)
RENAME TABLE scores TO scores_old,
tmp_scores TO scores;
DROP TABLE scores_old;
Copyright © Drecom Co., Ltd.
- 38.
- 39.
- 40.
- 41.
double submit protection
•二重送信を検知してくれるplugin
• 二重送信を防ぎたいフォーム(orリンク)
のあるページでsessionにtokenを保存
し、パラメータにも同じ物をつける
• 次のページでは両者を付きあわせて、
session内のtokenを無効にする
Copyright © Drecom Co., Ltd.
- 42.
- 43.
処理の流れ
user app session memcache
request load
write
ココが問題
response write
Copyright © Drecom Co., Ltd.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.