heroku config:add API用のSecret Key等をファイルに普通に記述すると、GitHub等にpushしたい時に公開されてしまう。 Herokuでそういう値を保存したいときには、下記のコマンドで環境変数を設定できる。 $ heroku config:add FOO=bar $ heroku console 'ENV["FOO"]' bar .env Herokuはforemanの機能を利用しており、/path/to/root/.envの値も環境変数に設定してくれる。 ローカルで開発する場合でもformanを使えば.envを環境変数に設定してくれるが、foremanのコマンドでRailsを起動する場合はirbやpryが上手く動かなくなるので、ローカルではforemanを使わずに普通に起動した方がいいと思う。 .envを見てENVを設定するスクリプトを、/path/to/i
Vagrant の有用性については、Vagrant で開発環境構築を自動化しよう で、熱く語ってみたのだが、一つだけ足りない機能があった。それは、仮想サーバのひな形であるベースBOXの作成は自動化されておらず、Vagrant に必要な環境を整えるのは意外と面倒なことであった。 veewee は、Vagrant の ベースBOX を自動作成するためのツール。vagrant コマンドのプラグインとして動作する。ディストリビューションが配布しているインストールイメージを元に完全に自動で Vagrant の仮想サーバとして必要な環境を作成してくれる。 今回は、 MacOS X 10.6 VirtualBox 4.1.0 vagrant 0.8.6 veewee 0.2.0 で動作を確認してみた。 インストールや使い方は、 https://github.com/jedi4ever/veewee の
githubでコードを見ていたところ、定数を扱う設定ファイルのようなものがあったので使ってみた。まだまだrails知らないこと多いな。 binarylogic/settingslogic · GitHub 環境 MacOSX 10.6.7 Ruby 1.9.2 Rails 3.0.5 設定方法 Gemfileに以下を追加します。 gem 'settingslogic' インストール。 $ bundle install app/models/settings.rbを作成 class Settings < Settingslogic source "#{Rails.root}/config/application.yml" namespace Rails.env # これを記述すると動作環境により設定ファイルを読み込んでくれます end config/application.ymlを作成してこ
以下の文章は、Mike Perham 氏のブログ記事を翻訳したものです。原文は2012年5月5日に公開されました。 Five Common Rails Mistakes http://www.mikeperham.com/2012/05/05/five-common-rails-mistakes/ Railsをそれなりに仕事で使ってきて多くの Rails アプリを見てきて、悪い Ruby コードを読み書きした。この記事では、だいたいすべての Rails のコードベースで見られる共通の間違いを5つ挙げる。 1. スキーマの仕様がないマイグレーション データモデルはアプリケーションのコアだ。スキーマに制約がないと、データはコードベースに存在するバグにより徐々に蝕まれていき、フィールドに値が入っているか信頼できなくなる。ここに Contact スキーマがあるとしよう。 create_table
This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.
広木 大地/ エンジニアリング組織論への招待 @hiroki_daichi O/R MapperとりわけActiveRecordによって、Model/Entityの区別がつかない人ってのが増えたうえに意味不明な思い込みでMVC批判してみたりとかMVACとか言い出してる状況に名前をつけたいな。 広木 大地/ エンジニアリング組織論への招待 @hiroki_daichi Entityとは、システム設計上のデータの一塊としての実体をさしていて、DBのRowとは本質的には無関係。ModelはMVCパターンにおいて、Controllerからeventをうけとり、Viewに修正を通知するインタフェースであり、実装としてビジネスロジック/ドメインを持ってる 広木 大地/ エンジニアリング組織論への招待 @hiroki_daichi 簡単のためにEntity = Row = Modelとして動的言語によっ
前回「『データの永続性』に配慮した設計」までに、ドメイン層、パーシステンス層のパターンについて説明してきました。いろいろなパターンがありそれぞれ特徴があります。O-Rマッピングの役割を考えて、実現したいモデルに最適なパターンはどのように組み合わせればよいのでしょうか。今回は、O-Rマッピングの役割と、それを実現するためのドメイン層とパーシステンス層のパターンの組み合わせについて考えてみます。 インピーダンス・ミスマッチングとは? オブジェクト指向で設計を行った場合に一番難しいことは、ドメイン層とパーシステンス層の設計です。 オブジェクト指向分析・設計では、上流工程で分析・設計したモデルの構造(概念モデル)において、継承やポリモーフィズムなどの抽象化を駆使し、できるだけ本質を見極めたシンプルなモデル構造を構築することにより、拡張性・保守性を実現します。そのため、ビジネスロジックの保守性・拡張
ドメイン層とパーシステンス層の組み合わせ ドメイン層のパターンはパーシステンス層のパターンと組み合わせて使用します。どのような組み合わせが考えられるかを見てみましょう。 (1)パターン1 Transaction Scriptは手続き型の処理なので、必要なデータをデータベースからその都度参照・更新することになります。そのため、行レベルかテーブル単位でのデータを扱うのが一番適しています。パターンとしてはTable Data GatewayかRow Data Gatewayが適しています。また、サービス層とドメイン層のサービスプロセスとビジネスロジックは、手続き型の処理を行うために分離が難しくなります。 基本的には、論理テーブル構造をそのままサービス層で利用するようになります。そのため難しいO-Rマッピングは行わず、オブジェクトプールも利用することはありません。 (2)パターン2 Table M
前回の「データベースことはじめ(前編)」では、システムの論理的な階層の中でドメイン層をどの様に実装するかということで、PoEAAのアーキテクチャパターンを元に見てみました。今回は、パーシステンス層のアーキテクチャパターン+αを見ていきます。 まずパーシステンス層を見る前に、今回の話題とは直接ではないですが、間接的に関わってくる層のサービス層に関して少し触れておきたいと思います。サービス層は、ドメイン層配下のビジネスロジックをユーザインタフェース層やアプリケーション層から利用するためのインタフェースとして機能します。一般的にトランザクションロジックやセキュリティロジック、ドメインロジックのワークフロー等のドメインロジックとは直接関係ないロジックを含むのみで、大きなドメインロジックを含むことは好ましくないとされる層です。 では、パーシステンス層です。ここまで、役割的には、データアクセスの実装を
2010 年 3 月 「安全なウェブサイトの作り方」 別冊 安全な S Q L の 呼び出し方 本書は、以下の URL からダウンロードできます。 「安全な SQL の呼び出し方」 http://www.ipa.go.jp/security/vuln/websecurity.html 目次 目次.....................................................................................................................................................................................................2 はじめに.................................................
SQLインジェクションについて書くときに以下のメッセージを必ず含めて欲しいです。 単にプリペアドステートメントを使え 絶対に文字列結合でSQLを構築しようとしてはいけない IPAの「安全なSQLの呼び出し方」を読むこと なんでこんなことを書くかというと、同僚が献本されてた「プロになるためのWeb技術入門」なる本のSQLインジェクションの項で、SQLインジェクションの対策として以下のように書いてあったからです*1。 a) 値をバリデーションする b) プリペアドステートメントを使う ダメです。間違っています。単に間違っているだけでなく救いがたく間違っています。正しいSQLインジェクション対策はこう書くべきです。 単にプリペアドステートメントを使え 文字列結合でSQLを構築するな イケてない本を書く人はなんで値のバリデーションをプリペアドステートメントよりも先に書くんですか?値のバリデーション
すべての Microsoft 製品 Global Microsoft 365 Teams Copilot Windows Surface Xbox セール 法人向け サポート ソフトウェア Windows アプリ AI OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox とゲーム PC ゲーム Windows ゲーム 映画とテレビ番組 法人向け Microsoft Cloud Microsoft Security Azure Dynamics 365 一般法人向け Microsoft 365 Microsoft Industry Microsoft Power Platform Windows 365 開発者
Webブラウザ上で使えるプログラミング言語は限られたものだけだ。JavaScript、ActionScript、Javaアプレット、ActiveXなどだろうか。それ以外のRubyやPerl、Python、PHPといった言語はサーバサイドで使うしかなかった。 HTMLのソース。確かにRubyだ。もちろん実行できる しかしその可能性が広がるかも知れない。HTMLにRubyやPython、そしてXAMLといった言語がそのまま書け、そして実行できるのだ。 今回紹介するオープンソース・ソフトウェアはGestalt、Webブラウザ上でRuby/Python/XAMLを実行可能にするライブラリだ。 種明かしをすれば、使っているのはSilverlightだ。Silverlightは言わずと知れたマイクロソフトの技術であり、.NET系だ。そしてGestaltはIronRubyやIronPythonといった.
渋谷.rb[:20120215] で Ramaze と Sequel について発表しました。ありがとうございました。 http://speakerdeck.com/u/kyanny/p/shibuya-rb-20120215-ramaze-sequel まとめだけ書くと、 Ramaze は覚えることが少ない・全容を把握しやすいのがよい Sequel は dataset がとてもよい。 SQL 的な「行の集合」を集合のまま扱えるので (行オブジェクトの配列ではなく) どちらも使い始めるまでの設定とか前提となるものをほとんど必要としないので、プロトタイプ作りとか、思いついて 10 分後には飽きてしまいそうな小さいコードをちゃちゃっと書くのに向いてると思いました (ちなみに一緒に参加した同僚は「むしろ二層のモデルの上層部分を dataset の表現力でカバーしたり DataMapper パターン
PofEAAのWikiです。Martin Fowler氏とAddison-Wesley Pub Coの許可を得て、 パターンカタログの翻訳を行っています。bliki_jaと同じくどなたでも参加可能ですので、是非参加してみてください ;-) ※このサイトは書籍の邦訳とは一切関係ありません。 ■ PofEAAのパターンカタログ and PofEAAのパターンカタログ(邦訳版)ここから読み始めるとよいでしょう。対応表もあります。 ■ 読書会 第12回の開催予定は未定です。 ■ PofEAA読書会メーリングリスト読書会に関する話題を扱っていますが、読者会への参加を強制するものではありません。興味のある方の参加は随時受け付けています。
Ruby Object Mapper is an open-source persistence and mapping toolkit for Ruby built for speed and simplicity. Learn MoreSupport rom-rb SponsorsWe are looking for sustainable sponsorship. If your company is relying on rom-rb or simply want to see rom-rb evolve faster to meet your requirements, please consider backing the project through our campaign on opencollective.com/rom.
原文: http://www.martinfowler.com/eaaCatalog/dataMapper.html Mapper (473) レイヤは、オブジェクトとデータベース間でデータを移動させる。データは、オブジェクト、データベース、およびMapperから独立させる。 解説の全文は『PofEAA』 165 ページを参照。 オブジェクトとリレーショナルデータベースは、 異なるメカニズムでデータを構成している。 オブジェクトの多くの部分(コレクションや継承など)は、 リレーショナルデータベースでは表すことができない。 多くのビジネスロジックを伴ったオブジェクトモデルを構築する場合、 データおよびデータに付随する振る舞いをうまくまとめるために、 このメカニズムを使うことは非常に大切である。 これによりスキーマが異なったままとなる。 つまり、オブジェクトスキーマとリレーショナルスキーマは
基本的には、ここの内容をそのままGitHubに登録してpagesの設定をすれば良い。例えば「Reveal.js、Markdown、Githubでスライドを作成する。」が良くまとまっている。だが1つ謎の事象が起きて悩んだ。 index.htmlの中に、直接markdownを書く時には良いのだが、以下のようにdata-markdown属性でmdファイルを指定すると、不可思議な動作をする。 <section data-markdown="./md/firstpage.md" data-separator="\n---\n$" data-vertical="\n--\n"> <script type="text/template"> </script> </section> 最初にcommit/pushした時は表示されるものの、変更してcommit/pushしても変更が反映されなかったり、そもそも
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く