昔は全部無料でWebテキストが読めたが今は1000円くらいで購入することになってる。今でも進化しながらメンテナンスされており神。

はじめに 1週間ほど前、内閣府の「国民の祝日」CSVがひどい、みたいな話が話題になっていました。 参考: 【悲報】内閣府の「国民の祝日」CSVがひどいと話題に なぜ「ひどい」と言われていたのかというと、普通のプログラマが期待する「日付と名前が上から下に並ぶCSV」ではなく、「2016年の列 => 2017年の列 => 2018年の列」のように年単位で列方向(横方向)に繰り返すフォーマットになっていたからです。 (しかも一番下に「月日は表示するアプリケーションによって形式が異なる場合があります。」みたいな注意書きが入ってる!) まあ、ひどいと言えばひどいんですが、これを扱いやすいフォーマットに変換するプログラムを作るのはなかなか面白そうだなと思いました。 というわけで、そんなプログラムを作りました! 国民の祝日.csvをパースするプログラム、とりあえずコードは書いた。https://t.co
いま Ruby をやってるひとなら、オブジェクト指向設計を学ぶ・復習するのに最適な本だと思う。まさに実践ガイド。一度身につけておくと、言語問わずに使える知識。すぐに仕事に活かせてとても役に立ったと感じた。 こんなひとにおすすめ 自分がそうでしたという意味で。 オブジェクト指向設計はなんとなく知ってるけど実践のイメージが湧いてない オブジェクト指向設計というと継承の親子関係のイメージしか浮かばない 実装をしながら「いいと思って書いてるけど、これは本当にいいのかな…」と迷うことが多い とくに Rails を使っていて設計や実装に迷うことが多い 「Rails における良い設計」の表面的な部分に振り回されている気がする オブジェクト指向設計実践ガイド ~Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方 作者: Sandi Metz,?山泰基出版社/メーカー: 技術評論社発売日: 20
Rubyで始める、すこし本気のプログラミング入門。「プログラミングってそもそもどういうこと?」からスタートして、最後には自分だけのRubyインタプリタをRubyで作ってみよう。Rubyを使ってゼロからプログラミングを学びながら、プログラムとは何か、プログラミング言語とは何かを味わうRuby入門の連載企画。 2017年01月18日 09時00分 プログラミング+ 第9回 インタプリタの完成、そしてブートストラップへ はじめてのプログラミングでRubyを学びながらRubyインタプリタを作っていく連載の最終回。 自分だけのRubyインタプリタを完成させていきましょう! 2016年12月21日 18時00分 プログラミング+ 第8回 関数を実装する(後編) 機能限定版のRubyインタプリタ(MinRubyインタプリタ)を作りながらRubyとプログラミングを学ぶ連載、今回は前回に引き続き「関数」の実
rubyを書き始めて間もない頃、 「なんで NoMethodError なんだ...。あ、メソッド定義にself 付けたら通った。」 みたいなことがありました。 rubyの本を読んでいると、そのあたりがハッキリとイメージできるようになったのでまとめておきます。 参考にした本 年明けからひたすらRuby本を読んでいます。読了したのは以下。 現在は Effective Ruby を読んでいます。 これらを読んでいくと、中途半端に理解していた部分がカチッとハマるのでオススメです。 ※ 今回のコードは ruby 2.2.0 で試したものです。 オブジェクトとクラスの関係 サンプルコードを見てみましょう。 class C def c_instance_method @my_var = 1 end end obj = C.new 当初、自分はオブジェクトとクラスの関係を以下のように考えていました。 (
はじめに 先日、とある知りあいのRubyプログラマからこんな相談を受けました。(内容はちょっとボカしてます) 社内のコードレビューでもっときれいなコードを書けるようになった方がいい、と言われました。 「きれいなコードを書けるようになれ」と言われても、具体的にどうすればいいかわかりません。 伊藤さんのアドバイスを聞きたいです。 この内容だけだとどんな問題があるのかわからないので、実際に指摘を受けたRailsアプリのコードを見せてもらいましたが、確かに「もうちょっと頑張りましょう」と思うような点がチラホラありました。 ただ、具体的にどうすればいいの、という答えは一言では言えません。 というわけで、今回のエントリではこの悩みを解決するのに参考になりそうな話をあれこれ書いてみようと思います。 (その前に)もくじ かなり長い記事になってしまったので、先に目次を載せておきます。 はじめに (その前に)
この記事は CAMPHOR- Advent Calendar 2015 の 17 日目の記事です。 こんにちは。@shotarok (Twitter: @shotarok28) です。3月までは京都で学生をしていて、今年の4月から東京の FreakOut という広告の会社でソフトウェアエンジニアをしている CAMPHOR- OBです。 Quine って何?みなさん「Quine」という言葉を聞いたことがありますか? Quine とは、こんなプログラムのことです。 ※1 クワイン(英: Quine)は、コンピュータプログラムの一種で、自身のソースコードと完全に同じ文字列を出力するプログラムである。 出典: wikipedia クワイン_(プログラミング) 定義を読むだけでは、ぱっとはわからないので、実際にプログラムが動いているところを見てみましょう。 この gif をみると ruby プログラ
なぜ読んだか メタプログラミング Ruby を読んだ ので、この勢いで Ruby のことをもっと深く知りたかった。 どうだったか エキサイティングな体験だった。 この本には Ruby が Ruby コードをどうやって実行しているのか、ということが書いてある。字句解析してトークン列に変換して、構文解析してAST(抽象構文木)ノードに変換して、コンパイルして YARV 命令列に変換して、それを YARV(仮想マシン) が実行する....どうやって?ということが書いてある。 登場する Ruby のコードは単純なものばかりだが、その背後にあるしくみ、C のコードは複雑だ。にもかかわらず、この本を読んでいると自分がそれをいとも簡単に理解したかのような錯覚に陥るので爽快感がある。ワクワクする。それはきっとこの本の著者の説明が驚異的に上手なのと、豊富な図のおかげだろうと思う。 著者の Pat Shaug
— 環境 — Ruby 2.2.2 Rails 4.2 ※ 2015/11/12 記事の末尾に追記しました。 リファクタリング前のコード 単純化してますけど、具体的には以下のようなサンプルで、最初に書いたのが次のようなコード。 class Person def initialize(name, age) @name = name @age = age end def get_old @age += 1 end end class Female < Person MARRIAGE_AGE = 16 def marriageable? @age >= MARRIAGE_AGE end end class Male < Person MARRIAGE_AGE = 18 def marriageable? @age >= MARRIAGE_AGE end end taro = Male.new('
RubyのProcの説明は巷に溢れているから今更感があるけどここ数回Procを使ったネタを書いていたらProcがかわいくなっちゃってもっとみんなにもProcのこと知ってもらいたいという欲求が生まれてきたからProcについての基本的なことを僕なりのやり方でここに書くよ。長いよ。 Rubyの関数(メソッド) Rubyにおいて関数(メソッド)はファーストクラス(オブジェクト)ではありません。つまり文字列や数字や配列などの他のオブジェクトとは異なって、Rubyではそれを直接変数に代入したり、他の関数に渡したりすることはできません。 def square(n) n * n end sq = square # squareメソッドを変数sqに代入してみる # ~> -:1:in `square': wrong number of arguments (0 for 1) (ArgumentError)
私は普段主にC#やjavascriptを使ったりしているのですが、巷で話題のRubyにもそろそろ手を出そうと基礎を勉強し始めました。勉強の過程でRubyって今まで触れてきた言語と思ったより違うなぁと感じました。こういう違いを俯瞰できたら勉強しやすいと思ったのでこの記事を書いた次第です。 これをおさえておけば、ある程度ソースが読めるかも、という見慣れない構文や決まりなどをまとめています。あれもこれもと書いていると長くなってしまいました...。概要をまとめただけで、詳細は他のページや記事に任せるようにしています。 「これは他の言語にも共通じゃないか」と思われることもあるかもしれませんが、ご容赦ください。 ※バージョンはRuby2.0を想定 変数 変数の種類は、変数名の前にpublicとかprivateをつけるのではなく、変数名に特徴を持たせることで識別する。 ローカル変数 スコープが変数がかか
Stay Relevant and Grow Your Career in TechPremium ResultsPublish articles on SitePointDaily curated jobsLearning PathsDiscounts to dev toolsStart Free Trial7 Day Free Trial. Cancel Anytime. Ruby’s philosophy is based on a strong primitive which is programmer happiness. Ruby strongly believes in programmer happiness and it has provided many different ways to make it so. Its metaprogramming capabili
I read Thomas Reynolds’ My Weird Ruby a week or two ago, and I loved it. I’d never heard of the Contracts gem, but after reading the post and the well-written docs, I couldn’t wait to try it out. I’d been doing some functional programming as part of our ongoing programming challenge series, and saw an opportunity to use Contracts to rewrite my Ruby solution to the One-Time Pad problem. Check out m
Aug 27, 201013 likes2,724 viewsAI-enhanced description The document discusses using Ruby to create domain-specific languages (DSLs). It provides examples of internal DSLs in Ruby, like Rails routes and migrations, which take declarative, natural language forms. The document encourages writing code in a DSL-like style by using declarative programming, blocks, and methods that represent special conc
デバッグ中の発見 とあるマルチスレッドプログラムをPythonで書いていた際に遭遇した誤使用です。C/C++等の言語を使った場合には起こらない仕様なので、知っておくと役立つ時がくるはずです。これはPythonだけでなく、Rubyでも同様のことが起こるので、Rubyistさんも是非気をつけていただければと思います。 @ahaha_traderさんのご指摘により、C/C++でも同様のことが発生することを教えていただきました・・・。不勉強をお詫び申し上げます。 このブログを見ているような方々だとバグが生じる実際のコードと、結果をまずお見せしたほうが良いと思うので、サンプル用に作ったコードがこちらです。 バグが生じるソースコード import Queue import threading class MultiThreadIncrement(object): def __init__(self,
By, Grzegorz Witek They're everywhere. They're on the leaf that falls from the tree straight on your head. They're on the building you pass everyday morning. They're on the socks you wear today and in the code you write. Patterns. Design patterns are defined as general, reused solutions to recurring design problems. The term, coming from architecture, appeared in software development 20 years ago
Rubyといったオブジェクト指向言語を学ぶと、メソッドの定義方法としてインスタンスメソッドとクラスメソッドという2通りの定義方法があることを学ぶと思います。しかし、言語自体のガイドブックには「定義方法にインスタンスメソッドとクラスメソッドがある」と書いてあるだけで、大抵その使い分けについては書かれていません。 そういう訳で、このエントリではその使い分けについて少し考えてみたいと思います。理論的に厳密な使い分けを目指すというよりは、そもそも使い分けの検討が全くつかない!という方に向けて、その指針の一助となることを目指します。 インスタンスメソッドとクラスメソッドとはそもそものところ、Rubyといった「オブジェクト指向の考え方」を実装した言語の機能です。その機能がなぜあるのか?というそもそものところは、オブジェクト指向の考え方にさかのぼることになります。 そこで、インスタンスメソッドとクラスメ
This presentation shows how to apply functional programming principles to Ruby. It covers some theoretical principles but also code examples.
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く