難しいが強力! Rubyのメタプログラミング、self、特異クラス/メソッド、オープンクラスとモンキーパッチ:若手エンジニア/初心者のためのRuby 2.1入門(12)(1/4 ページ) オープンソースのオブジェクト指向プログラミング言語「Ruby」の文法を一から学ぶための入門連載。最新版の2.1に対応しています。今回は、Rubyの「黒魔術」といわれるメタプログラミングの概要、self、特異メソッド、特異クラス、オープンクラス、モンキーパッチなどの使い方をコード例を交えて解説します。
![難しいが強力! Rubyのメタプログラミング、self、特異クラス/メソッド、オープンクラスとモンキーパッチ](https://cdn-ak-scissors.b.st-hatena.com/image/square/bbbea82045795ebee7aa3ba9c53db35fde1383c4/height=288;version=1;width=512/https%3A%2F%2Fimage.itmedia.co.jp%2Fait%2Farticles%2F1501%2F06%2F240_news028.jpg)
てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ!RubyRails ちょっと煽り気味のタイトルにしてみましたが、Railsで開発する時は意識的にOOPに寄せないとオブジェクトの力が活かせなくなるよってことと、Railsが提供しているクラスの責務を分割することを支援してくれる機能について話をします。 ActiveRecordの性質 Rails開発においては、モデル層にロジックを書いてコントローラーは薄くしろ、というのはしつこく言われているので、概ね浸透してきていると思います。 それに加えて、最近私が結構しつこく主張しておきたいのが、モデル = ActiveRecordでは無いよ、ということです。 ActiveRecordは成り立ちから言うと、ロジックとDBへの永続化をまとめてカプセル化するアーキテクチャパターンから来ています。
はじめに Railsにも対応しているJavaScriptのサーバサイドレンダリング用ライブラリairbnb/hypernovaが、airbnbからリリースされました。 この記事では、シンプルなRailsアプリを構築し、これまたシンプルなReactコンポーネントをサーバサイドレンダリングで表示するまでのチュートリアルを解説します。 ReactによるSPA(シングルページアプリケーション)も増え、Google等の検索エンジンでもある程度はページ内容を解釈してくれるらしいですが、サーバ側でHTMLをレンダリングして出力するサーバサイドレンダリングを利用すると、より正しくページ内容を解釈してもらえます。 Hypernovaとは A service for server-side rendering your JavaScript views Hypernovaは、JavaScriptコンポーネント
こんにちは。技術部 開発基盤グループの諸橋です。 クックパッドでは昨今の多くのWeb企業と同じように、GitHub EnterpriseのPull Requestを使ったコードレビューを広範に実施しています。わたしたちのコードレビューでは、ソースコードの字面にとどまらず、サービスの機能として魅力的かどうかや、保守性を含めた設計が適切かといった議論に発展することも良くあります。 きょうはそんななかで話題に上がった「現在時刻」の扱いかたに関する設計の話を書きます。 背景 サービスを開発・運営している我々には、時間帯によって出し分けたり、特定の期間のみに表示したいコンテンツがたくさんあります。 そのたびにデプロイし直すというのはつらいので(特に24:00に出なくなるコンテンツなど)なんとかしたくなりますが、一方で時限式のコンテンツはその時になるまでちゃんと動いているか確証が取れないので怖いです。
日本生まれのプログラミング言語「Ruby」。Rubyでプログラミングすることにかけては自信のある開発者の方も多いと思いますが、Rubyで使われている"記号"がどのような名前で呼ばれているかまでは押さえている方は少ないかもしれません。 「What do you call this in Ruby?」は、このRubyのプログラミングで使われているさまざまな記号の英語での呼び方をまとめたドキュメントです。びっくりするような名前や、一つの記号に複数の呼び名がつけられている記号があることがわかり興味深い情報となっています。 ▲例えばハッシュ記法で使用する「=>」は、hashrocket、 heavy arrow、fat arrowといった名前で呼ばれていることがわかります。特にhashrocketは検索してみると日本語で情報もみつかるので結構メジャーな呼び方のようです。 比較に使用する「<=>」は、
投稿推進部の外村(@hokaccha)です。 クックパッドブログの開発でRails上にECMAScript6などのモダンなJavaScript開発環境を導入した経験を元にノウハウを紹介したいと思います。 RailsはSprocketsというgemでJavaScriptやCSSをコンパイルする仕組みが提供されています。Sprocketsによるasset管理の仕組みは非常によくできており、AltJSのトランスパイルやファイルの結合、minifyなど、assetのコンパイルに必要な機能を一通り備えています。 しかし、JavaScriptにおけるモジュールの依存関係の解決や、ライブラリの管理などについてはモダンなJavaScript開発と乖離してきているのが現状です。そこで、Railsでも以下のようなことを実現できることを目標に環境を作りました。 ECMAScript6のシンタックスを使う モジュ
最近仕事でRailsのコードレビューをする時間が長くって、いろいろ指摘するんですが、 Railsって「Railsチュートリアル」には書いていないのに覚えないと仕事にならないこと多すぎだなと気付かされます。 どこでどんなふうにすれば、プロになろうとしている人が最短距離で知識を獲得できるかはわからないですが、 今思っている特に大事だなと思うことつらつらと書いていきます。 😀 プログラミングの重要な要素まず、Railsの前にプログラミングで全般的に特に重要と思っている要素を紹介します。 - リーダブルなコード - ネーミングルールについて - 言語・フレームワークのルール - 変数のスコープについて - プロジェクトの設計思想 - オブジェクト指向・コードの再利用性 - 正しいテストケースを作る プロジェクトによって変わるので、すべては書きませんが、ぜひ意識してどこを学ぶべきかを考えてみてくだ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く