String A String object holds and manipulates an arbitrary sequence of bytes, typically representing characters.
String A String object holds and manipulates an arbitrary sequence of bytes, typically representing characters.
エピソード1 初めに この記事は一応、Ruby入門者向けの記事ですが同時にテスト駆動開発入門者向けともなっています。 対象レベルによって以下のように読み進められれば効率が良いかと思います。 Ruby入門者でプログラミング初心者・・・とりあえずコードの部分だけを写経しましょう。解説文は最初のうちは何言ってるかわからないと思うので5回ぐらい写経してRubyを書く感覚がつかめてきてから読み直すといいでしょう。もっと知りたくなったら参考図書にあたってください。と言っても結構お高いので「リーダブルコード」と「かんたんRuby(プログラミングの教科書)」といった初心者向け言語入門書から買い揃えるのがおすすめです。 Ruby経験者でテスト駆動開発初心者・・・コード部分を写経しながら解説文を読み進めていきましょう。短いステップでテスト駆動のリズムが感覚がイメージしていただければ幸いです。もっと知りたくなっ
Posted by naruse on 25 Dec 2019 We are pleased to announce the release of Ruby 2.7.0. It introduces a number of new features and performance improvements, most notably: Pattern Matching REPL improvement Compaction GC Separation of positional and keyword arguments Pattern Matching [Experimental] Pattern matching, a widely used feature in functional programming languages, is introduced as an experim
はじめに Rubyは毎年12月25日にアップデートされます。 Ruby 2.7については2019年11月23日にpreview3がリリースされました。 Ruby 2.7.0-preview3 リリース この記事ではRuby 2.7で導入される変更点や新機能について、サンプルコード付きでできるだけわかりやすく紹介していきます。 ただし、Ruby 2.7は多くの新機能や変更点があり、1つの記事に収まらないのでいくつかの記事に分けて書いていきます。 本記事で紹介するのはパターンマッチ(もしくはパターンマッチング)です。 前編と後編にわかれています パターンマッチは説明する内容が多いので、次のように前編と後編の2部構成になっています。 前編 = パターンマッチの概要、case文っぽい使い方、配列やハッシュとのマッチ、変数への代入 後編 = 自作クラスをパターンマッチで活用する方法、パターン名の整理
Ruby 2.7 アドベントカレンダーの2日目の記事です。(更新が遅いのは仕様です) qiita.com パターンマッチング パターンマッチングは Ruby 2.7 での目玉機能と言ってもいいでしょう。 ただし現時点では experimental で、使用すると次のメッセージが出力されます。 warning: Pattern matching is experimental, and the behavior may change in future versions of Ruby! パターンマッチングは配列やHashなどの構造のパターンとオブジェクトをマッチングするためのものです。 パターンマッチングは case...in 構文を使用します。 case に指定したオブジェクトのパターンが、in で指定したパターンと一致していれば、パターンに指定した変数に対応する値が代入されて、in 部
Ruby 2.7 アドベントカレンダーの1日目の記事です。 qiita.com Ruby は毎年クリスマスにバージョンが上がります。 今年も順調にいけば 12/25 に Ruby 2.7 がリリースされる予定です。 2.7 がリリースされるまで毎日少しずつ変更点を見ていきます。 ソースは NEWS(とか git log とか)です。 Ruby 2.7 までに復活したもの キーワード引数のハッシュのシンボルでないキー flip-flop 構文 Ruby 2.7 で入りそうだったけど入らなかったもの パイプライン演算子 メソッド参照演算子 Ruby 2.7 までに復活したもの キーワード引数のハッシュのシンボルでないキー Ruby 2.6.0 で キーワード引数のハッシュのキーがシンボルでない場合はエラーになったんですが、2.6.2 でその挙動が取り消されてエラーにならなくなりました。 2.7
Ruby Advent Calendar 2019 1日目の記事になります。 本記事では Ruby 2.7 で実装される Numbered parameter っぽい機能をピュアRuby で実装してみたいと思います。 またこの記事の実装は以下の記事を参考にして書いています。 Rubyのブロックつらい問題を解決する暗黙のブロックパラメータ - Qiita 4年以上前にこういうのが書かれていたのすごい。 Numbered parameter とは Numbered parameter、略してナンパラです。 ナンパラは『暗黙的にブロックの引数を参照する構文』になります。 通常ブロックで引数を受け取る場合、仮引数を定義して受け取ります。 # it という名前の仮引数を定義して、それで引数を参照する [1, 2, 3].map { |it| it.to_s + it.to_s } # => ["11
コツコツ続けて早10年。 「ちょっとした善意」でRubyコミュニティを支えるメンテナー 株式会社グルーヴノーツ近永 智之さん 公開日:2019.11.1 ウェブ系のシステム開発で人気が高く、今や世界中で幅広く利用されている国産のプログラミング言語、Ruby。 全国に先駆けてその振興を図ってきた福岡県では、Ruby技術者による最大級の国際会議「RubyKaigi 2019」が開催されるなど、今や全国有数のRubyコミュニティが形成されるまでに至っています。 その国際会議で基調講演をおこなった、nagachikaさんこと近永智之さん。 CRuby(C言語で実装されたRuby)のコミッタであり、安定版(開発版ではなく一般利用を前提にしたもの)のメンテナーという、ルビイストには知られた存在です。 約10年になる有名ブログ「ruby trunk changes」を継続しながら、株式会社グルーヴノーツ
こんにちは、最近ruby-vipsに惚れ込み始めたエンジニアの宮原です🐕 先日、医師専用コミュニティサイト「MedPeer」で使用されているRubyをVersion 2.6.5にアップデートしました🎊 今回は、Rubyアップデートを行った際にハマった箇所について紹介と解説をしてみたいと思います。 また、類似の内容で発表もさせていただいておりますので、合わせてご一読いただければと思います。 今回紹介するハマりどころは、ActiveSupport::DurationのバグとSidekiqの安全な再起動についてです。 🐛Durationのバグ 最新のdevelopを取り込み、Rubyアップデートのブランチで作業しているとReceived 'killed' signalというエラーが発生し、CIのRSpecが途中で終了してしまう事象に遭遇しました。 3並列目でメモリを食いつぶし移行のテストが
🔗 正規表現は文字列メソッドより「遅い」 新しい話ではなくて恐縮です。 Rubyに限らず、一般に正規表現は言語の文字列マッチメソッドより低速になります。 複雑なパターンを調べたい場合は正規表現を使うことになりますが、特に「開始文字列」「終了文字列」とのマッチを単純にチェックするだけなら、String#start_with?やString#end_with?でマッチを取る方が可読性の上でも速度面からもおすすめです。 本記事ではtrue/falseを返す文字列マッチメソッドについてのみ言及していますが、文字列の取り出しや置換といった操作についても、専用メソッドの方が正規表現よりも一般に高速なので、「正規表現は次なる手段」と考えるようにしています。 🔗 文字列マッチ専用メソッド(単機能、高速) String#start_with? (Ruby リファレンスマニュアル) String#end_
※この記事は2019年8月に取材・撮影した内容です 私たちが使う便利なアプリの数々は、“プログラミング言語”によって作られています。言語の種類は数え切れないほど存在していますが、「多くの人々に利用されているもの」となると、ごくわずか。優れたプログラミング言語を生み出せる人物は、世界的に見ても一握りなのです。 その数少ない人物のひとりが、日本にいます。プログラミング言語・Ruby(ルビー)の作者である、ソフトウェア技術者のまつもとゆきひろ( @yukihiro_matz )さんです。使い勝手の良さや生産性の高さから、まつもとさんの生み出したRubyは世界中で高い評価を受け、まつもとさん自身も世界中のコンピュータエンジニアから「Matz(マッツ)」の愛称で知られるようになりました。 では、まつもとさんは戦略的に、現在のキャリアを築き上げてきたのでしょうか。その答えは「NO」です。むしろ、「自分
HamlitというRubyで使うテンプレートエンジンをメンテしてて、ちょっと前に思いついたけどこれまで実装してなかった最適化のアイデアを昨日それに実装したので、それについてちょっと書きたい。 github.com StringTemplate というテンプレートエンジン amatsuda/string_template というテンプレートエンジンがあって、 これは "the fastest template engine for Ruby" であると主張されている。 I think I just invented the fastest template engine for Ruby (Rails). Please enjoy! https://t.co/N056SReLh2 https://t.co/74MdR5DINj— Akira Matsuda (@a_matsuda) Dece
NaCl 松江本社のyharaです。こんにちは。Webアプリケーションの高速化技術を競うコンテスト「ISUCON」に弊社メンバーで参加し、予選を突破して本戦に出場できることが決定したので、簡単ですが参加記を書こうと思います。 ISUCON9 2日目結果と本選出場者決定のお知らせ : ISUCON公式Blog 15位のチーム「yarunee」が我々です。最終スコアは11,160 イスコインでした。この記事によると予選突破チームのほとんどはGo言語を使用していたようですが、弊チームは一番使い慣れている言語ということでRubyで参加しました。 ISUCONとは ISUCONは2011年から行われているコンテストで、課題となるアプリケーションが与えられ、それを(挙動を大きく変えない範囲で)最も性能が出るよう改造できたチームが優勝、というイベントです。 今回はAlibaba Cloudのクーポンが参
はじめに 駆け出しプログラマだった頃の自分に教えたい、8つのプログラミング技法について纏めます。本エントリでは主にRubyを用いますが、ここで紹介する技法はあらゆる言語に適用できます。 8つの技法はリーダビリティと関心の分離の2つに分類できます。サンプルコードを添えて可能な限り具体的に解説していきます。 対象読者 コードを書くのに慣れてきた人 けどもっと良い書き方はないか?と考えている人 リーダビリティ - Readability リーダビリティとは、アーキテクチャに関係しない純粋なコーディングの綺麗さです。可読性とも呼ばれます。私達は仕事時間の相当量をコードの読解に当てています。コードの読解は短期記憶をフル活用するため、コーディング作業そのものよりも知的負担が大きくなりがちです。同僚の書いたコードは勿論、先週の自分が書いたコードでさえ記憶の奥底から掘り出すのに時間が掛かることもしばしばで
morishitaです。 先日、Rubocop Performance の速度比較について3回に分けて書きました。 tech.actindi.net tech.actindi.net tech.actindi.net どんな言語でも多かれ少なかれあることですが、Rubyでも同じ結果を得るのに複数の実装方法があり、読みやすさ、わかりやすさ、文字数・行数の多少、実行速度などの点でそれぞれ良し悪しがあるなぁ。とやってみて改めて思いました。 メンテナンス性の観点からは書きやすい、読みやすい、わかりやすいコードを書けばいいと思います。 ただ、ユーザにとってより良いサービスの提供を考えると速さは正義、ちょっとでも速い実装方法を選択したいものです。 で、上記のエントリを書きながら、これとこれはどっちが速いんだろうと思ったいくつかを計測してみました。 計測について 計測には BenchmarkDriver
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く