2010-6-28 Ruby on Rails Webアプリケーションフレームワーク概要

python多线程实现http代理 python多线程实现http代理文章要求1.py socket模块2.py threading模块3.环境搭建3.1设置代理3.2搭建http简单服务器代码分析1.完整代码2.逻辑结构 文章要求 1.py socket模块 socket模块接触后很简单,我实现的是阻塞性的套接字。 需要了解到,连接套接字,监听套接字,和套接字accept()方法的返回值是元组 数据传递过程sock.recv(1024),sock.send()也不需要转换编码,直接以b"二进制流"传输 2.py threading模块 th 阅读详情

-----------------
1. REST设计原理
-----------------
REST :REprisentational State Transfer,由HTTP式样作者之一在其博士论文中提出的一个设计原理。
运用在Ruby on Rails中是指通过HTTP的get/post方法和URL来表现操作及其操作的对象。

光是看这个概念上的解释还是不够明朗。那么,看看下面这个例子。
比如要表示“删除id为138的文章”这样一个操作,一般的HTTP请求如下:

POST /delete_article.cgi?article_id=138
这是利用CGI构筑的Web页面中典型的HTTP方法和URL的组合,但这并不是REST的原则。
/delete_article.cgi?article_id=138并不是资源(Action对象),而是指位于Sever上名为delete_article.cgi的程序及其传递给它的参数。
这种URL的命名是从Action内部处理来考虑的。
再看看运用REST原理的例子:
DELETE /acticle/138
/acticle/138这样的URL看来,操作(delete)和对象(ID为138的对象)一目了然,这更加符合人的理解思维。


-----------------
2. リソースの登録
-----------------
config/routes.rbファイルの中に
map.resources :cards
という記述は、Cardsというリソースをアプリケーションに登録している意味を表す。
generateでscaffoldを作成すると、自動的にこのファイルに書き換える。
しかし、手動でコントローラとビューを作成しつつRESTfulなURLを扱うためには、自分がoutes.rbファイルにリソースの名前を追加する必要がある。

------------------------
3. リソースとMVCの関連
------------------------
keyakiアプリでは、cardsというリソースが登録され、それへのリクエストをCardsコントローラが受け、Cardモデルを通じてデータベースのCardsテーブルにアクセスして結果を返している。
このように特定の名前を通じて一群のリソース、コントローラ、モデル、データベーステーブルが結びつくことはよくありますが、常にそうであるとは限らない。
http://localhost:3000/cards/1をアクセスするとき、Cardsリソースへのリクエストを処理するのはどのコントローラでしょうか。
map.resources :cardsの場合、同じ名前のCardsコントローラですけど、もし
>script/generate controller Entries index show
のように新しいコントローラEntriesを生成して、そしてconfig/routes.rbを次のように書き換えたら
map.resources :cards, :controller => :entries
http://localhost:3000/cards/1でアクセスすると、例外になる。
この例で、リソースとコントローラの役割を表している。
リソースはアプリと外部世界をつなぐインターフェースであり、コントローラはアプリ内部のオブジェクトです。
実は同じものを扱っているとしても、名前が同じになるとは限らない。

リソース ― アプリを使う人の観点から分かる名前
コントローラ ― アプリを作る人の観点から分かる名前

同様に、コントローラとモデルの名前が異なることも、モデルとデータベーステーブルの名前が異なることもあります。
名前を変える必要ないが、本質的には別々の存在であることを念頭におきながら進めましょう。

-------------------------------
4. Ruby on Railsのコンポーネント
-------------------------------
Ruby on Railsは、次の5つのRubyGemsパッケージに依存しています。

  • ActionMailer
  • ActionPack
  • ActiveRecord
  • ActiveSupport
  • ActiveResource


-------------
5. 命名規則
-------------
通則
DBテーブル
DBのカラム名
主キーと外部キー
コントローラ
ヘルパー
ファイル名
メソッド名/変数名

設定より規約(Convention over Configuration)

以前做CakePHP项目的时候,已经充分体会了这种设计思想。
自己不用像struts去写繁冗的配置文件,而框架按照命名自动去匹配各种文件和项目之间的关联。
刚开始有些不习惯,但是一旦发现其便利性,便可放心地把这些事情交给框架,把自己从以前struts-config.xml的纷乱细节中解救出来,实在是一大轻松。

(以下解释纯属完全翻译。。。)
Ruby on Rails采用了Convention over Configuration的设计哲学。
框架对软件设计中各种各样的设置项目采取缺省值,这样开发者必须采取意识的场合就减少了。
Rails的数据库表和类的命名就是这种设计哲学的具体化。
开发者只要遵循这些命名规则,就不用特意去定义还有设置那些可以机械类推的名称。
其结果,代码的记述量减少了,产生误会的机会也减少了。
另外,通过小组共同开发一个项目的时候,开发者之间的产生误解的可能性也减少了。
这种命名规则的存在并不是剥夺开发者自身的自由。如果有必要,开发者也可以违反规则去进行设定。


-------------------------------
6. Railsアプリのディレクト構成
-------------------------------
省略...

----------
7. 環境
----------
Railsの初期状態でdevelopment (開発環境)、test (テスト環境)、production (本番環境)の3つの環境があります。
それぞれの環境の設定ファイル:
config/environmen/development.rb
config/environmen/test.rb
config/environmen/production.rb

それぞれのデータベースの環境設定
config/database.yml

現在環境をソースコードの中で知るには定数RAILS_ENV を参照する。例えば、
if RAILS_ENV == 'production'
    @background_color = '#fff'
else
    @background_color = '#ccc'
end

production環境で動作させたい場合、-eに環境名を指定します。
>ruby script/server -e production



ROS入门(一)——ROS安装(vmware16+ubuntu20.04+ROS-Noetic) 嵌套:ROS可以在Ubuntu上运行,Ubuntu在虚拟机Vmware中安装。 从 虚拟机vmware安装→ubuntu安装→ros安装,逐步介绍安装ROS环境的过程。整个过程是我一步步跟着各种博客安装实现的,亲测可行。 版本: Vmware :Vmware Workstation16 Ubuntu :20.04 ROS :Noetic 其中vmware直接载当前最新版本就好,而ubuntu的版本要注意一下。 在ROS官网(cn - ROS Wiki),我们进入到ROS安装的步骤界面,可以看.. 阅读详情

相关推荐

动态运动模块和黑盒优化的Matlab代码.rar

动态运动模块和黑盒优化的Matlab代码.rar

web开发日语词汇(一)

掲示板 forum/bbs 论坛 フォーラム forum/bbs 论坛 ブログ blog 博客、部落格 ページ page 网页、页面 ウェブページ web page 网页、页面 メール mail 邮件、邮箱 イーメール email 电子邮件、电子邮箱 メールアドレス email address 电子邮箱地址 メールマガジン email

JunXian的博客 9097

Python数据分析7个入门案例

Python数据分析7个入门案例

WEBアプリケーション脆弱性診断

1.クロスサイト・スクリプティングの脆弱性スクリプト例:"><SCRIPT>alert("CHECK")</SCRIPT>2.HTTPレスポンス分割  

键盘上的音符 - VIC & MIAO 220

2010/6/4 初めてのRuby On Rails

Rubyとの初出会い。 この初めての一日で、主にRuby On Railsを概念的に少し勉強しました。 そして、試しにRuby On Railsをインストールして、プロジェクトを作って動かして、結果を見るまでやっていました。 一、RubyRuby on Railsとは? 1) Ruby     オブジェクト指向スクリプト言語である。     名称のRubyは、7月の誕生石ルビーを取って名付けられた。 2) Ruby on Rails(RoR)     オープンソースのWebアプリケーション

微小世界 389

2010/6/22 (一) アプリケーションのカスタマイズと検索機能

今日の半日は『RubyonRailsで作るWebアプリケーション入門』の本の4日目と5日目の部分を参照して、以下のStepでadnoteアプリケーションを作って、そしてテーブルの項目一個追加して、ScaffoldでMVCを作り直した。 そして、画面表示の英語の部分を日本語化しました。例えば、リンクと、ボタンと、タイトルと、メッセージなど。 その上、共通のHTMLファイルとスタイルファイルも少し編集して試した。 最後一番重要なことに、アプリケーションに名前で検索の機能を追加した。 ----------

微小世界 995

2010/6/21(一) Shopアプリケーション

---------------------------- Step 1 アプリケーション新規 ---------------------------- ① >rails shop -d postgresql ② >cd shop ③ >createuser -a -d -U postgres -P shop ④ >ruby script/generate scaffold Area name:string ⑤ >ruby script/generate scaffold Shop shop:s

微小世界 700

2010/6/30 アプリケーション「じゃんけん」

<br />前几天用Ruby on Rails框架做了个剪刀石头布的小应用程序。<br />下面放出程序过程。<br /> <br />-------------------<br />1. Appを作成<br />-------------------<br />>rails janken<br />>cd janken<br />>ruby script/generate controller Top index<br />>ruby script/generate controller Game st

微小世界 661

2010/6/21(二) kaedeアプリケーション

MVC モデル - Model     データベースを操作するためのクラスです。    ビュー - View     画面への表示・出力などの処理を行うものです。 コントローラ - Controller     ビューが必要とするデータを揃え、ビューを選択するところまでです。 データベースを作成する >rake db:create データベースを削除する >rake db:drop テーブルとモデルの命名規約 原則として、データベースのテーブルごとにモデルを1つずつ作成します。

微小世界 586

2010/6/16 迷いながら。。。

本でRubyの文法をざっと勉強しました。 そして昨日やったプロジェクトの上で、もっと機能いれました。 ただRubyの文法を試すため、第二のページで今の時刻を取って、時刻によって、「こんにちは」じゃなくて、「おはよう」とか「こんにちは」とか「こんばんは」と入力名前を表示することでやっていました。 その後、データベースのほうでもすこしやってみました。だけど、わかりませんでした。 感想:Ruby on RailsCakePHPはすごく似ているもっともっと感じられます。

微小世界 425

2010/6/21(三) Summaryしようか

<br />いままで作ったアプリケーションを総括します。<br /><br /> ---(1)---<br /> アプリ名:    hello<br /> 実行:        ○<br /> DB名:        なし<br /> アクセス:    http://localhost:3000/hello/name1<br /> 概要:        名前を入力して、実行すると、次の画面で入力した名前を取得して表示する。<br /> ---(2)---<br /> アプリ名:    hel

微小世界 401

2010/6/17 DBに繋がった

Ruby on RailsとPostgreSQLの繋がりでいろいろやってみましたけど、最初はなかなか分りませんでした。 参照する本の中はMySQLを使っていますから、参照できません。 ネットにはいろいろ書かれているけど、成功の保証少ない感じです。 でもでも何となくすこしずつわかるようになってきました。 以下のヒントがあります。 1)プロジェクトフォルーダ/log/development.log でエラー情報が見えます。 2)config/database.yml にデータベースの設定が必要で

微小世界 312

2010/6/15 十日後にRuby on Railsに再会

<br />週末、Ruby on Railsに関する本を買いました--RubyonRailsで作るWebアプリケーション入門』。<br /> 比較と選択余地がありませんでした、あそこRuby on Railsに関する本がこれ一本しかなかっただから。<br /><br /> 6/4第一日目Rubyを接することからこの日の午前中までの間、別の作業でやっていました。<br /> 十日間以上過ごして、Rubyのほうもうだいたい忘れてしまいました。<br /> 上司から前インストールしたRuby一回全部消し

微小世界 303

RabbitMQ的消息如何实现延迟发送?

假设我们有一个需求:用户下单以后,如果 30 分钟没有支付,就关闭订单。用户下单↓发送消息↓消费者马上收到↓马上执行关闭订单显然不对。用户下单↓发送消息↓等 30 分钟↓消费者再收到↓关闭订单延迟消息消息发送以后,不要马上让消费者消费,而是等一段时间以后再让它被消费。延迟消费因为消息可能已经进入 RabbitMQ 了,只是暂时不让消费者拿到。10:00 用户下单↓RabbitMQ↓消息先放着↓10:30↓消费者拿到消息↓关闭订单。

qq_31532983的博客 272

一条消息的旅程:RabbitMQ 学习与实践(四)

本文系统讲解了 SpringBoot 整合 RabbitMQ 的实战应用。内容涵盖基础环境依赖与连接配置,并通过完整的配置类、生产者及消费者代码,深入演示了四大常用消息模式:Work Queue 工作队列模式(任务分发与竞争消费)、Publish/Subscribe 发布-订阅模式(Fanout 广播)、Routing 路由模式(Direct 精确匹配)以及 Topics 通配符模式(灵活规则匹配),帮助开发者快速掌握 SpringBoot 环境下的消息队列开发与架构设计。

2401_85198927的博客 268

AI Agent 核心三件套原理详解笔记:记忆、规划、工具调用到底怎么干活,通俗拆解 ReAct 与 Function Calling,附文献引用

零基础看懂现代 AI Agent 底层架构:大脑(大模型)、备忘录(记忆)、工作计划(规划)、手脚(工具)四角色拆解,ReAct 推理行动交织、Function Calling 结构化指令通俗讲解,全程无公式,关键论断均附 arXiv/官方文档文献角标,另附 10 分钟口播音频文稿与排版精良的网页版。使用方法:先读《学习路径导读》再按顺序阅读正文六节,看文末参考资料按需溯源;口播稿可直接用于短视频配音。部分内容由 AI 辅助生成。

上一篇: 2010-6-23 Report File Output功能追加
下一篇: 2010-6-28 无奈。
geyuye
博客等级 码龄16年 0粉丝 15原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值