タグ

ブックマーク / blog.jnito.com (42)

  • 僕がRSpecでsubjectを使わない理由 - give IT a try

    はじめに 僕は折に触れて「RSpecではなるべくsubjectを使わない方がいい」という発言をしています。 Qiitaとか見てるとRSpecのsubjectを愛用している人が多そうな印象なんだけど、僕はほとんど使っていません。「subjectは原則使わない。明らかにメリットがあるときにだけ例外的に使用する」が僕のポリシーです。ほら、RSpecの(元)メンテナさんもそう言ってるし。 https://t.co/Rp5EiIxCVb #Qiita pic.twitter.com/pMlN35ihEG— Junichi Ito (伊藤淳一) (@jnchito) 2019年5月28日 そもそもの話として、RSpecではsubjectは無理に使わない、というのが僕の持論です。なぜなら無理にを使うと、いびつなテストコードができやすいから。基はsubjectなしで書く。明らかにsubjectが有効なと

    僕がRSpecでsubjectを使わない理由 - give IT a try
    clavier
    clavier 2021/10/10
  • 【書評】入門書は卒業したあなたに!"Polished Ruby Programming"を読みました - give IT a try

    はじめに 最近発売されたRubyの洋書「Polished Ruby Programming」を読みました。 このエントリでは書を読んだ感想を簡単にまとめてみます。 書の感想 書の著者はRubyコミッタとして有名なJeremy Evansさんです。 前書きにも明記されていますが、書はRubyの中級者から上級者をターゲットにしたです。日ではどうしてもRubyは初心者向けのが多くなりますが(何を隠そう、僕もそういうの著者の一人😅)、こういう「骨のある技術書」が出てくるのは非常に貴重だな、というのが第一印象です。 表面的なテクニックをなぞるのではなく、プログラムをどう設計すべきか、その設計にどういった良し悪しがあるか、といった点についても深く議論されています。そのため、サンプルコードだけでなく、英文もそれなりに書かれているのですが、使われている英語は比較的平易で、辞書無しでぱ

    【書評】入門書は卒業したあなたに!"Polished Ruby Programming"を読みました - give IT a try
    clavier
    clavier 2021/08/03
  • 【Ruby版】xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - give IT a try

    はじめに テストダブル(Test Double)について、わかりやすく解説した技術記事はないかな〜と探していたところ、こちらのブログ記事を見つけました。 goyoki.hatenablog.com とても詳しく解説されていたので、まさに打ってつけだったのですが、ふだん僕はRubyを使っているのでサンプルコードをRubyにしてみたいな〜と思いました。 そこで今回のエントリでは、原著者の id:goyoki さんの許諾をいただいた上で、上記のブログ記事の説明文を維持したまま、サンプルコードだけをRubyに書き直してみました。(goyokiさん、どうもありがとうございます!) ただし、Ruby版のコードにあわせて説明文を改変した箇所もいくつかあります。 それでは以下がRuby版の「xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の

    【Ruby版】xUnit Test PatternsのTest Doubleパターン(Mock、Stub、Fake、Dummy等の定義) - give IT a try
    clavier
    clavier 2020/08/08
  • Rubyプログラマが何を考え、どうやってコードを書くのか、その過程を動画にしてみました - give IT a try

    はじめに:銀座Rails #12で登壇させてもらいました 去る2019年8月29日、銀座Rails #12で「プログラマがコードを書きながら考えること 」という発表をさせてもらいました。 ginza-rails.connpass.com この発表では「プログラマが書き上げたコード(=完成形)」ではなく、「そのコードをどうやって書いたのか?(=何を考え、どんなツールやテクニックを使って、どれくらいのスピードで書いたのかという点、すなわち、コードを書く過程)」をテーマにしました。 そして、その過程をわかりやすく伝えるために、スライドだけでなく、僕がガチンコでコードを書いていく様子を動画コンテンツとして会場のみなさんにお見せしました。 これまでいろんな勉強会やイベントで発表してきましたが、動画を事前に用意して発表で使ったのはこれが初めてです。 初めての試みなので、どうなるかちょっと不安でしたが、

    Rubyプログラマが何を考え、どうやってコードを書くのか、その過程を動画にしてみました - give IT a try
  • 【Everyday Rails Blog 翻訳】RSpec 3.7.2へのアップグレードとシステムスペック - give IT a try

    はじめに 先日もお伝えしたとおり、電子書籍「Everyday Rails - RSpecによるRailsテスト入門」はRails 5.1とRSpec 3.6に対応しました。 ただし、RSpecについては現在すでにバージョン3.7がリリースされています。 RSpec 3.6と3.7は機能的な差異はほとんどないのですが、一点だけ、「システムスペック」という新しいタイプのテストが増えています。 このシステムスペックについて、原著者のAaronさんがご自身のブログで紹介されているので、その内容を翻訳してみました。 Everyday Railsの読者の方は(もちろんそれ以外の方も)ぜひ参考にしてみてください。 RSpec 3.7.2へのアップグレードとシステムスペック 原文: Upgrading to RSpec 3.7.2 and system specs | Everyday Rails 数ヶ月

    【Everyday Rails Blog 翻訳】RSpec 3.7.2へのアップグレードとシステムスペック - give IT a try
  • 2017年版「Everyday Rails - RSpecによるRailsテスト入門」の翻訳スケジュールについて(2017年10月時点) - give IT a try

    英語版は2017年版のアップデートが完了、日語版はいつ? 僕が翻訳者の一人として販売している電子書籍、「Everyday Rails - RSpecによるRailsテスト入門」に関する2017年10月時点の状況報告です。 Everyday Rails - RSpecによるRailsテスト入門 - Leanpub 英語版の方は先日、Rails 5.1 + RSpec 3.6対応版(2017年版)の執筆が完了しています。 一方、日語版は1つ前のRails 4.1 + RSpec 3.1版になっています。 英語版のアップデートが完了しているので、日語版も早くアップデートしなければ、と考えてはいるのですが、残念ながら翻訳作業はあまり進んでいません。 具体的な日程は未定ですが、これから年末にかけて翻訳を加速させて、年明け(2018年1月~2月頃?)に日語版をアップデートしたいと考えています。

    2017年版「Everyday Rails - RSpecによるRailsテスト入門」の翻訳スケジュールについて(2017年10月時点) - give IT a try
  • RSpecのコードの書き方に関するQiita記事を書きました - give IT a try

    お知らせ Qiitaに「【アンチパターン】Arrange、Act、Assert(AAA)を意識できていないRSpecのコード例とその対処法」という」記事を書きました。 qiita.com この記事はざっくりいうと、こんなRSpecのコードよりも、 describe 'キャンセル処理' do let(:user) { create :user } let(:reservation) { create :reservation, user: user, start_at: '2017-08-10 10:00'.in_time_zone } context '24時間前をすぎるとキャンセル料が発生する' do before do travel_to '2017-08-09 10:00'.in_time_zone reservation.cancel! end after { travel_bac

    RSpecのコードの書き方に関するQiita記事を書きました - give IT a try
  • 【書評】RSpecの初心者から上級者まで役立つ!「Effective Testing with RSpec 3」を読みました - give IT a try

    はじめに 数ヶ月前、RSpecコミッタのYuji Nakayamaさん(@nkym37)から突然連絡がきて、「リードメンテナのMyron Marstonが今度RSpecのを出版するんだけど、Myronが日人のレビュアーを探している。なので伊藤さん、レビュー記事を書いてみない?」というお話を受けました。 「はい、興味あります!書きます!!」ということで、二つ返事でオファーを受けることにしました😄 というわけで、今回読んだのがこちらの「Effective Testing with RSpec 3」です。 Effective Testing With Rspec 3: Build Ruby Apps With Confidence 作者: Myron Marston,Ian Dees出版社/メーカー: Pragmatic Bookshelf発売日: 2017/08/25メディア: ペーパー

    【書評】RSpecの初心者から上級者まで役立つ!「Effective Testing with RSpec 3」を読みました - give IT a try
  • リモート参加もOK!簡単なRailsのお題を使って公開コードレビューをやります!(2017年8月24日)#railsdm - give IT a try

    お知らせ 2017年8月24日(木)の19:30から開催される、Rails Developers Meetup #4で「プロを目指すRailsエンジニアのための公開コードレビュー」という講演をやります。 会場は東京がメインですが、中継で視聴可能な大阪会場と、日全国どこからでも参加できるリモート会場(YouTubeライブ使用)の3箇所に分かれています。 また、僕自身も兵庫県西脇市の自宅からリモートでお話しする予定です。 話す人も聞く人もリモートで参加できる勉強会ってすごいですね。未来的! 申込みページはそれぞれ以下のとおりです。 僕の講演の概要はこんな感じです。 「プロを目指すRailsエンジニアのための公開コードレビュー」 自分が書いたコードは他の人が見たときにどう思われるのか、気になりませんか? この発表では、参加者のみなさんが書いたコードをソニックガーデンのプログラマ、伊藤淳一がその

    リモート参加もOK!簡単なRailsのお題を使って公開コードレビューをやります!(2017年8月24日)#railsdm - give IT a try
  • 【翻訳】「Everyday Rails - RSpecによるRailsテスト入門」の2017年版アップデートについて - give IT a try

    はじめに 先日、僕が翻訳をしている電子書籍「Everyday Rails - RSpecによるRailsテスト入門」の英語版が大幅にアップデートされました。 アップデートの内容は原著者のAaronさんが自身のブログで説明しています。 そこで、このエントリでは日語版の読者のみなさんに向けて、上記ブログの内容を翻訳します。 備考 2017年6月時点ではまだ英語版しかアップデートされていない点に注意してください。 日語版も早めにアップデートする予定ですが、現時点では具体的なスケジュールは未定です。 「Everyday Rails - RSpecによるRailsテスト入門」の2017年版アップデートについて みなさん、新しくなった「Everyday Rails - RSpecによるRailsテスト入門(英語版)」がついに公開されました。これまでのアップデートとは異なり、今回は書を全面的に書き

    【翻訳】「Everyday Rails - RSpecによるRailsテスト入門」の2017年版アップデートについて - give IT a try
  • 関西Ruby会議2017で「Rubyistと技術記事」という発表をしてきました #kanrk2017 - give IT a try

    はじめに 2017年5月27日に開催された関西Ruby会議2017で「Rubyistと技術記事」という発表をしてきました。 このエントリではこの発表の内容や、イベントの様子を紹介します。 当日はこんな会場でした。広い! スライドと発表内容の概要 発表で使ったスライドはこちらです。 スライドを見てもらえば、発表内容はだいたいつかめるはずです。 ただ、僕はスライドに書いていないことも口頭でいろいろしゃべるスタイルなので、細かい内容は会場にいないとわからないと思います。 もし「細かい内容も知りたい!」という人がいたら、Twitter等でコンタクトをください。 一般に公開していないマル秘資料(何?)をお渡しします。 8割ぐらいのみなさんが僕のことを知ってた! 発表の途中で、会場のみなさんに「僕のことを知ってる人はどれくらいいますか?」って聞いてみたら、8割ぐらいの人が手を挙げてくれました! こんな

    関西Ruby会議2017で「Rubyistと技術記事」という発表をしてきました #kanrk2017 - give IT a try
    clavier
    clavier 2017/05/30
  • QiitaにRails 5.1とVue.jsで作るサンプルアプリケーションの記事を書きました - give IT a try

    お知らせ 前回のエントリでも「QiitaにRails 5.1の記事を書いたよー」というお知らせをしましたが、もう一新しい記事を書きました。 今回書いたのは「【動画付き】Rails 5.1で作るVue.jsアプリケーション ~Herokuデプロイからシステムテストまで~」という記事です。 どんな内容なの? Rails 5.1で追加されたJavaScript関連の新機能を使って、下のような簡単なVue.jsのアプリケーションを作成するチュートリアル記事です。 ローカルマシンで動かして終わり、ではなく、Herokuにデプロイしたり、システムテストを書いたりするところまでカバーしています。 さらに、文章で説明するだけでなく、動画でも手順を説明しています。 Rails 5.1で作るVue.jsアプリケーション ~Herokuデプロイからシステムテストまで~ コードもGitHubで公開しています。

    QiitaにRails 5.1とVue.jsで作るサンプルアプリケーションの記事を書きました - give IT a try
    clavier
    clavier 2017/02/28
  • MinitestとRSpec、FixturesとFactoryGirlの良いところ悪いところをコードを書いて比較してみた - give IT a try

    2022.5.4追記) FactoryGirlはFactoryBotという名前に変更されています(参考)。この記事は昔の名前である「FactoryGirl」を使っています。 はじめに 今年のゴールデンウイークはMinitestとRSpec、FixturesとFactoryGirlについていろいろ研究(?)していました。 具体的にはこんなことをやっていました。 Rails Tutorial 第3版を写経した(第3版ではMinitestとFixturesを使っている) Rails TutorialのテストコードをRSpecとFactoryGirlで書き直した Everyday RailsのテストコードをRSpec + FactoryGirlからMinitest + Fixturesに書き直した The Minitest Cookbookを読んだ 今回のエントリではMinitestとRSpec

    MinitestとRSpec、FixturesとFactoryGirlの良いところ悪いところをコードを書いて比較してみた - give IT a try
  • テストコードにまつわる5つのエトセトラ - give IT a try

    はじめに ひとつ前のエントリでRSpecの話を書いたので、それにちなんで最近僕の身の回りで起きたテストコードに関する雑多なエピソードをいくつか書いてみます。 その1:テストコードを書いてない処理で見事にバグを出してしまった・・・!! 僕はソニックガーデンの中では「テスト番長」の異名を持っていて、基的にテストコードはしっかり書くタイプです。 ですが、どうしてもリリースを優先しなければいけないときは、やむを得ずテストコードを後回しにして先にリリースすることもあります。 先日リリースした「テストを後回しにしたコード」は、リリース直後は問題なく動いていました。 その数週間後、別の仕様変更が入り、変更したコードをリリースしました。 「テストは全部パスしているので大丈夫なはず~!」と思ったら、リリースの翌日に変なシステムエラーが発生。 エラーが起きている場所を見て、ガーン。 例の「テストを後回しにし

    テストコードにまつわる5つのエトセトラ - give IT a try
  • ひどいコードをメンテしてきたからこそ実感する、良いコードや良い設計の大切さ - give IT a try

    はじめに 先日、社内で「良いコードの書き方やお作法、プログラミングの原則って、どうやったら身に付くんだろうねえ?」という話になりました。 もちろん、「を読んで勉強する」っていのも勉強法のひとつなんですが、そもそも、もっと強烈なモチベーションがないと、必死になって良いコードの書き方やプログラミングの原則って勉強できないのでは?なんて思ったりします。 強烈なモチベーションというのは、たとえば、 いったい何なん!?このスパゲティコードは!!! なんでこんなコードを俺がメンテしなきゃあかんの!!?? あ~、もう最悪や!!俺はこんなコード、絶対に書かへんぞ!!!! っていうぐらいのモチベーションです。 というか、これは単純に僕のケースですね、はい。 幸い、ソニックガーデンに入ってからは、周りのプログラマがみんなちゃんとしているので、そんな思いをすることはほぼなくなりましたが、前職、前々職ではそんな

    ひどいコードをメンテしてきたからこそ実感する、良いコードや良い設計の大切さ - give IT a try
  • シンプルでわかりやすいコードを書くためにあなたがすべきこと - give IT a try

    はじめに 先日、とある知りあいのRubyプログラマからこんな相談を受けました。(内容はちょっとボカしてます) 社内のコードレビューでもっときれいなコードを書けるようになった方がいい、と言われました。 「きれいなコードを書けるようになれ」と言われても、具体的にどうすればいいかわかりません。 伊藤さんのアドバイスを聞きたいです。 この内容だけだとどんな問題があるのかわからないので、実際に指摘を受けたRailsアプリのコードを見せてもらいましたが、確かに「もうちょっと頑張りましょう」と思うような点がチラホラありました。 ただ、具体的にどうすればいいの、という答えは一言では言えません。 というわけで、今回のエントリではこの悩みを解決するのに参考になりそうな話をあれこれ書いてみようと思います。 (その前に)もくじ かなり長い記事になってしまったので、先に目次を載せておきます。 はじめに (その前に)

    シンプルでわかりやすいコードを書くためにあなたがすべきこと - give IT a try
  • Rubyの良い書き方、悪い書き方がわかる!Software Design 2016年4月号にRubyの入門記事を書きました - give IT a try

    お知らせ タイトルにもあるとおり、Software Design 2016年4月号にRubyの入門記事を書きました。 「今すぐ実践できる良いプログラムの書き方」という巻頭特集で、「第4章 Ruby編 お作法を意識して可読性や保守性を高めよう」というパートを執筆しています。 どんなことを書いてるの? この記事ではRuby初心者によくありがちな「お作法から外れた書き方」と、それに対応する「お作法に則した書き方」を紹介しています。 また、記事の後半ではお作法に沿ったRubyプログラムを書くための考え方や学習方法を紹介しています。 ページ数は全10ページで、なかなかのボリュームです。 対象となる読者は「プログラミング初心者の方」「他の言語を使っていた期間が長い方」といった、つい「お作法」から外れたコードを書いてしまいがちな方です。 「今までは XXX をよく使ってきたけど、Rubyもちゃんと書ける

    Rubyの良い書き方、悪い書き方がわかる!Software Design 2016年4月号にRubyの入門記事を書きました - give IT a try
    clavier
    clavier 2016/03/20
  • Qiitaに正規表現の入門記事を書きました - give IT a try

    お知らせ Qiitaに 初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」 という記事を書きました。 結構がんばって書いたので、良かったら読んでみてください。 初心者歓迎!手と目で覚える正規表現入門・その1「さまざまな形式の電話番号を検索しよう」 なお、タイトルに「その1」と書いてあるとおり、何回かに分けて正規表現を説明していく予定です。 この記事を書いた動機 実践的な正規表現の入門記事を書きたいな~。「/a+bc/は"aaabc"にマッチします」みたいな話は「犬クラスとクラスはほ乳類クラスのサブクラスです。犬はワン、はニャーと鳴く。これがポリモーフィズムです」っていうOOPの説明と同じぐらい無意味だと思うので。(で、いつ書くの?)— Junichi Ito (伊藤淳一) (@jnchito) 2016年1月28日 正規表現ってすごい便利なんですが、

    Qiitaに正規表現の入門記事を書きました - give IT a try
  • デザイナさん直伝のCSSテクニックが満載!「RubyistのためのCSS勉強会」を開催しました - give IT a try

    はじめに さる2016年1月9日、西脇.rb&神戸.rbの合同勉強会として「RubyistのためのCSS勉強会」を開催しました。 主催者の僕自身が「参加して良かった!」と思えるぐらい有益な情報がたくさん詰まった勉強会になったので、今回のエントリではこの勉強会の内容を紹介します。 もくじ ちょっと長いので、先に目次を載せておきます。 はじめに もくじ 講師は合同会社フィヨルドの町田さん! この勉強会で講義してもらったテーマ 座学編 Railsの app/assets/stylesheets 内のディレクトリ構成例 最近注目を集めているAtomic Designについて 3種類のリセット系CSSの特徴について 変更に強いマークアップのルールについて プログラマとデザイナの協業について ハンズオン編 進め方の具体例 1問目:グローバルナビゲーションの作成 2問目:アラート画面の作成 3問目:記事

    デザイナさん直伝のCSSテクニックが満載!「RubyistのためのCSS勉強会」を開催しました - give IT a try
  • 英語力をアップさせる知見がいっぱい!「Rubyistのための英語勉強会」を開催しました - give IT a try

    はじめに 先週の土曜日(2015/8/29)に西脇.rb&神戸.rbの合同勉強会として「Rubyistのための英語勉強会」を開催しました。 nishiwaki-koberb.doorkeeper.jp この勉強会はその名の通り、Rubyist(Rubyプログラマ)の英語に対する苦手意識を克服し、英語力を高めることを目的にした勉強会です。 いちおうRubyist向けとはなっていますが、大半の内容はRubyist以外の人にも役立つものだと思います。 そこで今回のエントリではこの勉強会の内容や発表された知見等を紹介します。 会場は阪神深江のNilquebe(ニルキューブ)さんでした 当日の流れ 当日はこんな感じのタイムスケジュールで進行しました。 13:00~13:30 自己紹介 13:30~13:45 語彙力診断テスト 13:45~14:15 「こういうときに英語ができなくて困る」「英語ができ

    英語力をアップさせる知見がいっぱい!「Rubyistのための英語勉強会」を開催しました - give IT a try