タグ

rubyとRubyに関するntaooのブックマーク (73)

  • Rails のアーキテクチャ設計を考える - Qiita

    はじめに ここ一年くらいずっと Rails の何がダメでどうすれば良くなるのかを考えていました。 Rails を使ってそれなりの規模のアプリケーションを作ったことがある人なら、メンテナンスのしづらさを感じたことがあるのではないでしょうか。 メンテナンスの問題は Rails 以外の開発でも発生することですが、実のところメンテナンスしやすいアプリケーションはどうすれば作れるのでしょうか? この難問に対して私も答えを持っていませんが、考え続けています。 少なくとも、 Rails Way や Rails Tutorial をベースにしたアプリケーション開発は、業務で用いるには簡単すぎるように思います。 「レールに乗る」という言葉がありますが、私は考え方を変えました。 Rails は規模の大きいフレームワークですが、土台に過ぎません。 Rails Way の設計方針は小規模な開発では有効ですが、規模

    Rails のアーキテクチャ設計を考える - Qiita
    ntaoo
    ntaoo 2015/12/24
  • マルチスレッド/プロセスまとめ(Ruby編) - Qiita

    プログラムの実行単位 固有のメモリ空間を持つ(リソースを共有しない) マルチプロセスの場合、物理/仮想メモリ領域間のアドレス解決のオーバーヘッドが高い。 プロセスの実行単位 共通のメモリ空間を持つ(リソースを共有する) マルチスレッドの場合、物理/仮想メモリ領域間のアドレス解決は発生しない。 ユーザースレッド ユーザー空間(アプリケーションが利用するメモリ空間)を利用 1つのプロセスに複数のスレッドがあっても、1つのスレッドしか実行されない。 OSカーネルを介さないスレッド切り替えのため、スレッド切り替えに伴うオーバーヘッドが少ない。 仮想VM上で実行されるスレッドをグリーンスレッドと呼ぶ。 カーネルスレッド カーネル空間(カーネルが利用するメモリ空間)を利用 1つのプロセスに複数のスレッドがある場合、同時に複数(CPUコア数分)のスレッドを実行できる。 OSカーネルを介するスレッド切り替

    マルチスレッド/プロセスまとめ(Ruby編) - Qiita
  • モノリシックなRubyからGoによるマイクロサービスへ | POSTD

    過去9年わたりWebアプリケーションを開発してきたNiket氏( @nexneo )は、2013年からGoを使って作業をするようになりました。この講演では、彼がどのようにRubyのモノリシックアプリケーションを分解しつつ、Goで記述されたマイクロサービスへと至ったかについて説明しています。講演のスライドは、 speakerdeck.com/nexneo/joy-of-single-purpose-services-in-go で閲覧可能です。 Single purpose servicesというのは、単一の問題を解決するサービスのことです。 一般的に マイクロサービス としても知られています。 Niket氏は、学校側が親御さんたちと連絡したり成績表や出席を管理したりするための人気オンラインプラットフォーム、 Beehively の開発者です。BeehivelyはRubyベースのアプリケーシ

    モノリシックなRubyからGoによるマイクロサービスへ | POSTD
    ntaoo
    ntaoo 2015/04/11
  • Google Compute Engine、ワンクリックでRuby on Rails開発スタックをインストール可能に

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Google Compute Engine、ワンクリックでRuby on Rails開発スタックをインストール可能に
    ntaoo
    ntaoo 2014/09/02
  • Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 | POSTD

    この記事を書き上げるには、相当長い時間がかかりました。来は今年の年明け、 Rubyの死 やデイヴィッド・ハイネマイヤー・ハンソンの TDDは死んだ がアップされて騒ぎになる前に投稿するつもりだったのです。昨年末に書いたツイートを見てください。 > Rubyにはもう飽き飽きした。理由はいろいろあるが、特にその副作用と、ステータスが可変なせいで大量のユニットテストを書かされるのにはウンザリだ。 @abevoelker Rubyの開発に関しては、大勢の人が心のどこかで何かおかしい、何かが欠けていると思っているようですが、たいていの人は責める対象を間違っています。Rubyで書いたアプリがとんでもない代物になったって? それはあなたがきちんとテストコードを書かなかったか、テスト駆動開発(TDD)の指針に則って開発しなかったからです。もしくは、正しいデザインパターンに切り分けるための知識が不足してい

    Rubyにはウンザリ!動的型付け、副作用、およびオブジェクト指向プログラミング全般からの考察 | POSTD
    ntaoo
    ntaoo 2014/08/29
    可燃性高い
  • 「単語が目に飛び込んできてすごい速度で文章を..」ってやつをRubyでやると...

    こんな感じかな。 ruby -e 'trap(:INT){print"\e[?25h\e[0;0H";exit(0)};x,y=[`tput lines`,`tput cols`].map{|n|n.to_i/2};print"\e[?25l";ARGF.read.scan(/[\w.]+/).unshift(*%w(3 2 1 0 Go!)).cycle{|w|c=w.size/2;w=w.dup;cw=w[c];w[c]="\e[31m#{cw}\e[0m";print"\e[2J\e[#{x};#{y-c}H",w;sleep(0.3)}' TEXT Hosted by Gifzo TEXT Ruby is a dynamic, open source programming language with a focus on simplicity and productivity.

    ntaoo
    ntaoo 2014/03/01
  • タイピングの心理学

    ntaoo
    ntaoo 2014/03/01
    大昔のmailing listのやつがなぜかありがたがられているあれに対するツッコミ。
  • anyenvで開発環境を整える - Qiita

    私の場合、開発環境では複数の言語のコードを書いたり実行したりします。 例えば perl, ruby, nodejs, python など。 これらを利用するために、plenv, rbenv, nodebrew, pyenv などを利用していました。 しかし、遅ればせながら anyenv というものがあると聞いたので、こっちに乗り換えました。 **envを2つ以上使ってる人はこれ使うのが良いと思います。おすすめ。 http://blog.riywo.com/2013/06/22/155804 https://github.com/riywo/anyenv インストールは簡単 README.md のとおりにやればOK # ------------------------------------------------------------------------ -# plenv +# an

    anyenvで開発環境を整える - Qiita
  • cohakim's blog » RubyからGoogle Adsense APIにアクセスして収益を取得する

    概要 RubyからGoogle AdsenseAPIを叩いて収益を取得する方法を調べたのでメモ Googleではここ数年の間にサービスの大きな統廃合がありました。収益が見込めそうにないと判断されたサービスが次々と廃止されていく一方で、デベロッパーセンターが開設され、ドキュメントの追加が行われたり、APIを一元管理するためのコンソールが用意されるなど、生き残ったサービスについては開発環境の整備が進みました。 開発環境の整備が進むのは誠にありがたいことなのですが、整備が急速に行われたために、チュートリアル的な利用情報がなかなかみつからず、取っ付きにくい膨大な数のリファレンスと使い慣れない開発ツールに翻弄されて、思うように開発が進まないのが悲しいところです。 とりあえず今回はGoogle AdsenseAPIを叩いて収益を取得するところまで頑張って調べたので記録に残しておきます。 想定読者と

  • GitHub - egonSchiele/contracts.ruby: Contracts for Ruby.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - egonSchiele/contracts.ruby: Contracts for Ruby.
    ntaoo
    ntaoo 2014/01/25
  • Loading...

    Loading...
    ntaoo
    ntaoo 2014/01/25
    こういった型annotationすごくほしいしRailsだったらdevelopment modeのみ有効というふうにできそう。でもこれが必要と感じるならそもそもRubyでなくScalaなどを選択すべきでは。
  • [その1] Rubyプログラマー向けのGo言語の解説 - ワザノバ | wazanova

    http://www.sitepoint.com/go-rubyists-ii/1 comment | 0 pointsGlenn Goodrichが、Rubyプログラマー向けにGo言語のinterfaceとWeb.goを紹介しています。1回目はまずは、interfaceから。 The Fallacy of Inheritance 継承は些細な修正も実装が面倒になり、コードが複雑になる可能性があります。例えば、Horseクラスと二つのサブクラス、GallopingHorseとSadHorseがあったとします。(その二つはステートの違いだけでなく、まったく性格の違うサブクラスかもしれません。)sadな雰囲気で、gallopをしているhorseがいる場合はどうするか?それぞれのクラスである振る舞いがロックアップされることになるかもしれません。また、type間の関係を考慮しなくてはいけなくなるの

    ntaoo
    ntaoo 2014/01/09
  • Rubyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - 病みつきエンジニアブログ

    今まで何度もスクレイピングとかクローリングをしてきたので、マエショリストの端くれとしてコツを公開すべきかなあ、と思い、公開します。 今日の題材は、CNET Newsです。私はウェブ文書にタグ付けをするという研究をしているのですが、そのための教師データとしてクローリングをします。 photo by Sean MacEntee 要件定義 CNET Newsから全ニュースを保存し、その文をデータベースに保存します。これは、次のようなフローに書き下すことができます。 全URLを取得し、データベースに保存 データベースにある全URLをダウンロードする 保存した全ページを解析して、文をデータベースに保存する という流れです。これらは独立していますから、それぞれどの言語で解析しても構いません。しかし後述しますが、「あとから追いやすくする」「適材適所」といったあたりを気をつけて、言語選択をするべきだと

    Rubyとか使ってクローリングやスクレイピングするノウハウを公開してみる! - 病みつきエンジニアブログ
  • てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ!RubyRails ちょっと煽り気味のタイトルにしてみましたが、Railsで開発する時は意識的にOOPに寄せないとオブジェクトの力が活かせなくなるよってことと、Railsが提供しているクラスの責務を分割することを支援してくれる機能について話をします。 ActiveRecordの性質 Rails開発においては、モデル層にロジックを書いてコントローラーは薄くしろ、というのはしつこく言われているので、概ね浸透してきていると思います。 それに加えて、最近私が結構しつこく主張しておきたいのが、モデル = ActiveRecordでは無いよ、ということです。 ActiveRecordは成り立ちから言うと、ロジックとDBへの永続化をまとめてカプセル化するアーキテクチャパターンから来ています。

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita
    ntaoo
    ntaoo 2013/12/12
    これも結局本来persistence層であるactive recordが中心になっている。カジュアルなメタブロをするruby文化はどうしても好きになれない。コメントで紹介されているようなもっと普通の方法のほうがいいのでは。
  • Ruby Geocoder

    Complete Ruby geocoding solution. easy to use • supports Ruby 2.x and JRuby • compatible with ActiveRecord, Mongoid, MongoMapper • result caching • proxy support • multi-lingual • Nominatim, Google, Bing, Yandex, MaxMind, and more • works with Rails, Sinatra, any Rack framework • command line interface

    ntaoo
    ntaoo 2013/12/03
  • living as a gem ソムリエ - @banyan's blog

    gem ソムリエとは何だろうか? @kyanny 氏の書いた gem ソムリエになる方法 が日で最も gem ソムリエについて言及した記事だ (というかこれしかない)。 Ruby / Rails で開発をしている人なら誰でも大なり小なり gem ソムリエなのだと思う。 Rails のコミュニティ (エコシステム) は毎日のように新しい gem が出てくる。(もちろん他の言語 / コミュニティもそうだとは思うけど) フィードを追っかけ、ぱぱっと GitHub のソースを見たりして、吟味し、息もつく暇もなくまた新しい gem が出てくる。 一番人気、デファクトスタンダードの重要性 これは gem に限ったわけではないけど、色々なことにおいて一番人気のものにのっかることはとても大切なことだと思う。 なぜなら使う人が多ければ多いほど、便利なものが増え、同じ問題に困っている人が多く、その解決方法も

    ntaoo
    ntaoo 2013/11/11
  • Reddit - Dive into anything

    ntaoo
    ntaoo 2013/11/08
  • Redirecting…

    Redirecting… Click here if you are not redirected.

    ntaoo
    ntaoo 2013/11/08
    "Ruby is a dying language."
  • OCamlとRubyで同じプログラムを書いてみた

    以前書いたとおり、OCamlとRubyで簡単な家計簿プログラムmohを作った。全く同じというわけではなく、後に作ったRuby版のほうが機能を追加したりしているけど、面白い経験だったので感想を書いてみる。 客観的な比較 サイズを行数で比較すると、OCaml版は279、Ruby版は360で、Ruby版の方が機能が増えていることを考えるとほぼ同じくらいといえると思う。ただし、Rubyはユニットテストが作成に不可欠だったので、それを加えると499行とOCaml版に比べて倍くらいになる。まあユニットテストはOCamlでもした方がいいのだろうが、あとで述べる通り、しなくても動いてしまったのでユニットテストはしていない。いずれにしても、どちらも同じくらいコンパクトな言語だといえると思う。 OCamlのいいところ これからは主観の入った比較となる。 よくOCamlは「コンパイルが通ればバグはないと言わしめ

  • More Ruby than Ruby talk at KRUG - Adam Pohorecki

    A few days ago a tweet reminded me about a talk I gave on the 6th of August on KRUG: One trend I'm observing is a lot of rubyists being fed up with messy ruby ecosystem are getting excited or even switch to clojure. — Piotr Solnica (@_solnic_) October 15, 2013 I ❤ Ruby I have been programming in Ruby professionally for over four years now. When I was starting out, there were probably mere dozens o

    ntaoo
    ntaoo 2013/10/23
    clojureに興味が湧いてきた