レヌルの最初のスラむス

「䜕のこずを蚀っおいるの、モヌフィアス」



䞖界のフレヌムワヌクの数は驚くべき速床で増加しおいたす。 それらの数千人はすでに珟圚です。 幞いなこずに、䞀番䞋の-それほどではない。 Web開発者の䞖界党䜓は、1぀たたは別のフレヌムワヌクを奜むいく぀かのグルヌプに単玔に分割されおいたす。 私はひよこやホリバヌが奜きではないので、神は圌にもっず良いものを䞎えおくださいたす。 Ruby on Railsに぀いおASP.NET開発者ず話をしたいだけです。



なんで



私の話をしたす 2004幎からASP.NETを曞いおいたす。 私はこのシステムの倚くの隅々を知っおおり、それ自䜓が玠晎らしいこずを知っおいたす。 .NETでの3぀の倧きなプロゞェクトを生き延び、珟圚も安定しお動䜜し続ける10のサむトから執筆したした。 フレヌムワヌクに぀いお話すず、.NETが私をすべお満足させたした。 最倧のプロゞェクトでは、最も耇雑な問題の解決策を芋぀けたした。 だから、6幎埌に私は芋たかったのですが、垂堎には他に䜕がありたすか 圓然、RoRに出䌚った最初のこずです。





この蚘事は、経隓豊富なプログラマヌを察象ずしおいたす。 コンパむラヌずむンタヌプリタヌを区別できない堎合は、Googleを䜿甚した方が良いでしょう。





䜕に興味がありたしたか 私はこのスクリヌンキャストを芋たした。 RoRを䜿甚しお15分でブログを䜜成する方法に぀いおスマヌトに説明しおいたす。 さお、私はあなたがすべおがずおも楜しいず蚀うなら、詊しおみる䟡倀があるず決めたした。

叙情的な䜙談。 Windows所有者がQuickTimeをむンストヌルせずにmovファむルを芖聎するには、Quick Timeの代替バヌゞョンを入手しお Media Player Classicをむンストヌルする必芁がありたす。 ほずんどのルビヌスクリヌンキャストはMac OSで䜜成されおいたす。 私自身は焌けたブリヌダヌであり、少し手を加えなければなりたせんでした。 繰り返したすが、これはホリバヌに関する蚘事ではありたせん。



トピックに戻りたす。



甚語ず必芁なものに぀いお話したしょう



Rubyは、高速で䟿利なオブゞェクト指向プログラミングのための高レベルのむンタプリタ蚀語です。 この蚀語には、オペレヌティングシステムに䟝存しないマルチスレッド実装、厳密な動的型付け、ガベヌゞコレクタヌ、およびその他の倚くの機胜がありたす。 Rubyは、Smalltalkぞのオブゞェクト指向のアプロヌチで、構文がPerlおよびEiffelに䌌おいたす。 たた、この蚀語のいく぀かの機胜はPython、Lisp、Dylanから取られおいたす。



.NETで1幎間開発しおきたプログラマヌなら誰でも、Rubyを理解し、すぐに孊ぶこずができたす。 そしお、この䞻題に関しお曞かれたかなりの数の蚘事がありたす。 停止したせん。



ワンクリックむンストヌルを䜿甚しおWindowsにRubyをむンストヌルできたす。



通垞のAPPDATAディレクトリずは異なり、RubyのすべおはCドラむブなどに眮く方が良いこずに泚意しおください。 これにより、システムのさらなる䜜業が容易になりたす。



プラグむンなしのRubyは、ルビヌのノヌカットに䌌おいるずすぐに蚀わなければなりたせん。 したがっお、宝石が開発されたした。

RubyGemsは、Rubyプログラムおよびラむブラリの暙準圢匏自己完結型のgem圢匏、gemsむンストヌルを簡単に管理するために蚭蚈されたツヌル、およびそれらを配垃するサヌバヌを提䟛するRubyプログラミング蚀語のパッケヌゞマネヌゞャヌです。



実際、.NETでは、通垞のパッケヌゞマネヌゞャヌのような眮換を芋぀けるこずができたせん。 .NETの抂念は、誰もがむンストヌラを䜜成し、.NETのパッケヌゞを圌に喜ばれる圢で配垃するずいうものです。 Rubyでは、すべおがはるかにシンプルで優れおいたす。 たずえば、ロシアで人気が高たっおいるfacebook.comずいうサむトがありたす。 facebook.comには、プログラムで䜿甚できるAPIが蚘述されおいたす。 誰かがすでにこのAPIのラッパヌを曞いおいたす。 いいね ここでは、PowerShellで次のコマンドを入力しお䜿甚できたす。

  gem install facebooker 


gem install facebookerコマンドを入力するこずの意味に぀いお。 私だけで、熱心なブリヌダヌに関しおは、垞にst迷に至りたした。 gems実行可胜ファむルを探す必芁があったためです。 必芁なのはフォルダヌC\ Ruby \ binにありたす



すぐにこのGemsを最新バヌゞョンに曎新するこずをお勧めしたす。将来的には非垞に圹立぀からです。

     PS C\ Ruby \ bin> gem update --system




もう少し甚語を远加すれば、プログラミングを開始できたす。



Ruby on Railsは、Rubyプログラミング蚀語で曞かれた゜フトりェアフレヌムワヌクです。 Ruby on Railsは、Webアプリケヌション甚のアヌキテクチャモデルModel-View-Controllerを提䟛し、Webサヌバヌおよびデヌタベヌスサヌバヌず統合したす。

コントロヌラヌでのリク゚スト凊理ずデヌタ出力、デヌタベヌスでのドメむンリフレクションにより、動的なAJAXむンタヌフェむスの開発に同皮の環境を提䟛したす。

Ruby on Railsはオヌプン゜ヌス゜フトりェアであり、MITラむセンスの䞋で配垃されおいたす。



そしお、ここに私たちのヒヌロヌがいたす 実際、Ruby on RailsがRubyずどのように異なるかをただ理解しおいない堎合は、次の方皋匏を提案しおください。

dotNET => 'ASP.NET Framework'

Ruby => 'Ruby on Rails'






もっず理解できるず思いたす。 そしお、私たちには蚀語があり、この蚀語で䜜業しおWEBアプリケヌションを䜜成できるフレヌムワヌクがありたす。 もう少し、あなたは始めるこずができたす。

フレヌムワヌクをむンストヌルしお構成した埌は、サヌバヌを起動し、動䜜を確認するだけです。 ここで、システムにApache、sqlLiteたたはMySQLをむンストヌルする方法に぀いお話を始めるこずができたす...しかし、これは長すぎお退屈です。 生掻を楜にする2぀のオプションがありたす

1 Instant Railsは、Apache、Sequel、Ruby with Railsを含む、運甚甚にすでに構成されおいるサヌバヌです。 アヌカむブをディスクに展開し、バッチファむルを開始し、数回誓い、Apacheずあなたの心が望むすべおを蚭定したす。 プラスは、このすべおの幞犏のむンストヌルが非垞に簡単であるこずです。 DenWERでさえ、この喜びず比范しお、ひどく混乱しおいるようです。 このオプションは、Notepad ++を最適な開発環境ず考える開発者にずっお理想的であるこずに泚意しおください。



2 Aptana-これは、Visual StudioたたはSharp Developなしでは生きられない人に必芁です。 これはすでに本栌的なスタゞオであり、RoRでの曞き蟌みを可胜にし、プログラマヌの生掻を倧幅に簡玠化したす。



譊告スタゞオは、ディレクトリ名にロシア語の文字が含たれおいないフォルダヌに配眮する必芁がありたす。 フレヌムワヌクの䞀郚では、ロシア語の意味を理解しおいたせん。 できるだけディスクの近くに眮くこずをお勧めしたす。



あなたが以前にそれをやったこずがなければ、スタゞオ自䜓がRubyを眮くこずを提案したす。 たた、Aptanaは、javascriptをデバッグするためにFirefox 1.5以降が必芁であるこずに気付くでしょう。



すべおがあなたの遞択です。 圌女が人生を楜にしおくれたので、私はアプタナず働きたす。 䞊蚘のように、開始する前に、Gemsを曎新する必芁があるこずをすぐに蚀いたす。



Windows 7の幞せな所有者のために-Aptanaは管理者暩限の䞋でのみ安定しお動䜜したす。 これをお勧めしたす。



たあ、すべおが䌝えられおいるようで、プロゞェクトを開始できたす。







Aptanでは、これはすべおRails Explorerりィンドりでマりスを右クリックするこずで実行されたす。 繰り返したすが、プロゞェクト党䜓は、ディスクのルヌトにできるだけ近く、ロシア文字のないフォルダヌに配眮するのが最適です。



あなたが熟緎したプログラマヌなら、レヌルをいじっお、マりスの右ボタンではなくコン゜ヌルを介しお自分自身に眮くこずができたす。

  PS C\ Ruby \ bin> rails testblog 


実際、本質的には、チヌムはたったく同じです。 どちらも、䜜成するサむトのフレヌムワヌクを䜜成したす。 違いは、Aptanaはこのビゞネス甚のサヌバヌも起動するこずです。 ちなみに、圌女がこれを行わない堎合は、[りィンドり]> [ビュヌを衚瀺]> [サヌバヌ]をクリックしお修正できたす。



さお、今http// localhost3000 /絶察に䞍必芁なペヌゞがありたすが、これはすべおがうたく機胜しおいるず喜んで蚀っおいたす。 実際、このペヌゞには、最初のデヌタベヌスを正しく䜜成しおアクセスする方法に関するチュヌトリアルがありたす。 続けおみたしょう。混乱しないようにデヌタを远加したす。



したがっお、ここで新しいプロゞェクトを䜜成しおいたす。





そしお、それを䜜成したした





いく぀かの事実に泚目したいだけです。 第䞀に、.NETでしか曞けず、Apacheを芋たこずがない堎合は、サむトのルヌトがパブリックフォルダヌであるこずを知っおください。 青でマヌクされおいたす。 Railsは、このフォルダヌにさたざたな゚ラヌペヌゞスタブ、むンデックスペヌゞなどをgeneしみなく提䟛したした。 たあ、これは非垞に䟿利です。



ちょうど将来の䞖代のために、Rubyでは自動テストシステムに倚くの泚意が払われおいるこずに泚意しおください。 テストフォルダは玫色でマヌクされおいたす。 アプリケヌションのテストが本圓に重芁であるこずを知っおいるだけで、Rubyを䜿甚するずこのルヌチンを自動化できるこずを忘れないでください。



Railの䞻な喜びは赀でマヌクされおいたす。 これは、コントロヌラヌ、モデル、ビュヌの3぀の最も重芁なフォルダヌを含むArrフォルダヌです。

厳密に蚀えば、MVCはすべおのRailの本質です。 結局のずころ、アプリケヌションはそれらの䞊に構築されたす。 このアプリケヌションの小さな郚分を構築したしょう。



そのようなタブが芋぀からない堎合は、[りィンドり]> [ビュヌを衚瀺]> [ゞェネレヌタヌ]をクリックしたす





ペヌゞhttp// localhost3000 /の䟋に埓っお、scaffoldレシピを生成したすtitlestring authorstring descriptiontext



すごい ここで私には、意味が倱われ始めおいるようです。 足堎ずは䜕ですか ここでは、これだけで理解する必芁がありたす 私の意芋では、足堎はRailsの最倧の利点の1぀です。 私の人生では、デヌタにアクセスする倚くの手段を芋おきたした。 デヌタを管理できる2぀の自䜜フレヌムワヌクを䜜成したした。 ASP.NET Entity Frameworkを䜿甚したしたが、... Scaffoldはそのシンプルさずパワヌに感銘を受けたした。 順番に行きたしょう。



足堎 -足堎; チョッピングブロック; 絞銖台; 凊刑

足堎に行く/マりントする-ブロックの䞊に頭を眮きたす。 絞銖台で人生を終わらせる

足堎に持っおいく-絞銖台に持っおいく

足堎に送る-死刑刀決




そしお、ここには冗談がないわけではありたせん。 開発者が䜕を考えおいたかはわかりたせんが、この蚀葉の翻蚳は心配しおいたす。



足堎 -森のあるペむン

家は屋根裏郚屋に足堎されおいたした。 -森は家の屋根裏郚屋に䞊んでいた。

2サポヌト、サポヌト、負荷負担

3補品を高いステヌゞに配眮也燥、動物に察する保護


それは良いです。 足堎は負荷を運ぶものです。 この堎合、足堎はデヌタベヌスぞのアクセス機胜を想定し、プログラマヌの脳の苊痛を完党に奪いたす。



どのようなチヌムで埗点したしたか

゚ッセンス レシピ

フィヌルドタむプ

タむトル文字列

著者文字列

説明テキスト



そしお、デヌタアクセスレむダヌに新しい゚ンティティを䜜成したした。

移行フォルダヌはdbフォルダヌ内に䜜成されたした。このフォルダヌには、゚ンティティを最終的なデヌタベヌスに移行できるスクリプトが衚瀺されおいたした。



クラスCreateRecipes <ActiveRecord ::移行
   def self.up
     create_tableレシピdo | t |
       t.stringタむトル
       t.string著者
       t.text説明

       t.timestamps
    終わり
  終わり

   def self.down
     drop_tableレシピ
  終わり
終わり




このクラスはフレヌムワヌクによっお自動的に䜜成され、2぀のメ゜ッドがありたす。 䞊䞋。 これらのメ゜ッドは、ベヌスにロヌルバックし、ベヌスからロヌルバックするために䜿甚されたす。 ぀たり、scaffoldを数回倉曎するず、Upメ゜ッドを順番に呌び出す移行スクリプトのいく぀かのバヌゞョンが䜜成されたす。 これにより、デヌタベヌスを管理し、通垞はサヌバヌ補品にロヌルオヌバヌできたす。



さらに、これはSQLではないこずに泚意しおください。 これは、珟時点では完党にDBに䟝存しないこずを意味したす。

config / database.yamlを開き、その内容を確認しおください。

 SQLiteバヌゞョン3.x
 gem install sqlite3-rubyOS X Leopardでは䞍芁
開発
  アダプタヌsqlite3
  デヌタベヌスdb / development.sqlite3
  プヌル5
  タむムアりト5000

 譊告「テスト」ずしお定矩されたデヌタベヌスは消去され、
 「rake」を実行するず、開発デヌタベヌスから再生成されたす。
 このdbを開発たたは本番ず同じに蚭定しないでください。
テスト
  アダプタヌsqlite3
  デヌタベヌスdb / test.sqlite3
  プヌル5
  タむムアりト5000

生産
  アダプタヌsqlite3
  デヌタベヌスdb / production.sqlite3
  プヌル5
  タむムアりト5000




本圓にいい 異なるサヌバヌで異なるタむプのデヌタベヌスを実行するこずもできたす。



わかった ゚ンティティがあり、デヌタベヌスの説明はありたすが、これたでのずころ、この゚ンティティのデヌタベヌス構造はありたせん。 したがっお、プロゞェクトを右クリックし、Rake> db> migrateを遞択したす



もう少し理論。 レヌキずは䜕ですか

Rakeは、プログラムコヌドのアセンブリを自動化するためのツヌルです。 SCons、Make、およびApache Antに䌌おいたすが、いく぀かの違いがありたす。 このツヌルは、Rubyプログラミング蚀語などで蚘述されおいたす。 RakefilesmakeナヌティリティのMakefiles類䌌物はRuby構文を䜿甚したす。 Rakeの著者はJim Weirichです。

Rakeは、匿名のRuby関数のブロックを䜿甚しお、Ruby構文を䜿甚しおさたざたなタスクを定矩したす。 ファむル操䜜タスク甚の関数や、コンパむル枈みファむルを削陀するためのラむブラリ「クリヌンアップ」タスクなど、基本的なタスクのラむブラリがありたす。 Makeず同様に、Rakeはテンプレヌトに基づいおタスクを合成するこずもできたすたずえば、タスクを自動的にアセンブルしお、ファむル名テンプレヌトに基づいおファむルをコンパむルしたす。




そしお、私たちがやったこず-真空䞭の球䜓゚ンティティをデヌタベヌスにrakeで移行したした。 圌はずおもいい人です。 この゚ンティティぞのアクセスコヌドを蚘述するだけで、人生を楜しむこずができたす。



しかし、ここにRailsの䞻な冗談がありたす。 足堎は銬鹿ではありたせん。 そしお、゚ンティティアクセスコヌドを提䟛しただけでなく、既にそのためのMVCを䜜成したした。 localhost 3001 / recipesに安党に移動し、そこにあるものを確認できたす。 たた、デヌタベヌスぞの暙準的なアクセスタむプがあるため、基本的な倉曎を加えおデヌタベヌスを操䜜できたす。 いろいろず遊べたす。



どうしたの コヌドはどこにあり、どのように機胜したすか すべおが敎っおいたす

Appフォルダヌに移動しお、プロゞェクトのモデル、コントロヌラヌ、ビュヌにあるものを確認したす。 ゚ンティティを操䜜するために必芁なものはすべお揃っおいたす。 Railsでは、倉数ずファむルの名前に倚くが結び぀いおいるこずに泚意しおください。 したがっお、recipes_controller.rbを調べるず、元々ビュヌに関連付けられおいない倚くの単玔なコヌドが芋぀かりたすが、コメントはフレヌムワヌクがアクセスするファむルを瀺しおいたす。



それでは、遊び心のあるペンのすべおのコヌドをプログラマヌに枡し、おもおなしをしたしょう。



抂説したすべおのデヌタの埌、蚘事の冒頭で䟋ずしお挙げたビデオファむルを確認できたす。 もっず理解しやすくなりたす。



さらなる研究のために、私はお勧めしたす

バヌクレヌでの玠晎らしい6時間の講矩。 パヌト1



Rubyに関する200以䞊のスクリヌンキャストのコレクション http : //railscasts.com/



䞊蚘で説明した内容をより深く理解するために、この蚘事をお勧めしたすguides.rails.info



匕甚しおくれたりィキペディアに感謝したす。

ご枅聎ありがずうございたした。 この蚘事がおいしいRoRを味わう機䌚になるこずを願っおいたす。



この蚘事は、特にHabr向けで、Habr専甚です。



All Articles