タグ

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

  • 日本語版「Everyday Rails - RSpecによるRailsテスト入門」が発売10周年を迎えました 🎉 - give IT a try

    僕が翻訳しているRSpecの入門書「Everyday Rails - RSpecによるRailsテスト入門」は2014年2月に発売されました。 blog.jnito.com そう、発売からちょうど10年が経ったのです。 いつの間にか10年!僕も全然気付いていませんでした!! おかげさまで書は何度となくアップデートを重ねつつ、RSpecの定番の入門書としてたくさんの人に読んでいただいています。 現時点での読者数はのべ6800人以上です。ご購入してくださったみなさん、当にどうもありがとうございます! これまでの歴史 どういう流れで書が翻訳され、現在に至ったのかを簡単にふりかえってみましょう。 2012年5月 原著「Everyday Rails Testing with RSpec」がLeanpubで発売 2013年10月 僕が原著を読み、その感想をブログに投稿 blog.jnito.co

    日本語版「Everyday Rails - RSpecによるRailsテスト入門」が発売10周年を迎えました 🎉 - give IT a try
  • 「ITエンジニア、包丁研ぎにハマる」の巻 - give IT a try

    はじめに:包丁が切れない! 僕は全然料理をしない(できない)んですが、料理が大好きです。 しかし、包丁が切れないことに不満を持っていて、「包丁が切れない、新しい包丁が欲しい」とずっと嘆いていました。 もちろん、毎日使う道具なので新しい包丁を買うことぐらいは全然構わないのですが、新しい包丁を買う以外に、「包丁を自分で研ぐ」という選択肢もあります。 いや、いちおう簡易シャープナーはあるんですよ。こんなやつが。 グローバル スピードシャープナー GSS-01 グローバル(Global)Amazon しかし、曰く「シャープナーを使っても翌日には切れ味が落ちる」とのことです。 なので、シャープナーではなく、ダメ元でいいから砥石を使ってちゃんと自分で一度研いでみよう、という話になりました。 よし、YouTubeで勉強だ! 砥石で包丁なんて一度も研いだことがないのですが、とりあえずYouTubeで

    「ITエンジニア、包丁研ぎにハマる」の巻 - give IT a try
    Watson
    Watson 2023/10/30
  • 大阪Ruby会議03でHotwireを使ったモーダルUIを15分で作ってみました&基調講演裏話 #osrb03 - give IT a try

    はじめに 2023年9月9日に開催された大阪Ruby会議03で、基調講演(キーノート)を担当させてもらいました。 regional.rubykaigi.org 当日使った資料はこちらです。 発表のタイトルは"Enjoy Ruby programming, Enjoy Ruby community!"でした。 今回の基調講演ではちょっと攻めた取り組みとして、「Hotwireを使ったモーダルUIを15分で作る」というテーマでライブコーディングもしてみました。 www.youtube.com ライブコーディングには思わぬトラブル付きものですが、今回は何とかノートラブルで実装できました! 時間も15分以内(たぶん12〜13分ぐらい?)に収まりました〜😄 基調講演をするにあたって意識したこと 今回、基調講演を担当するにあたって「IT系カンファレンスの基調講演はどういうものであるべきか」を自分なりに

    大阪Ruby会議03でHotwireを使ったモーダルUIを15分で作ってみました&基調講演裏話 #osrb03 - give IT a try
    Watson
    Watson 2023/09/11
  • 書き手の意図やコードの背景を残す方法のあれこれ −きれいなコードの次に意識すべきこと− - give IT a try

    はじめに 先日、こんなエントリを書きました。 blog.jnito.com 上の記事の中で、僕は「きれいなコードだけではすんなりコードが理解できないこともある」というような話を書きました。 もちろん、ある程度の規模になってくるといくらがんばっても「すんなり」では済まない場合も増えてくるけど、それでも最初に挙げた特徴を兼ね備えたコードとそうでないコードでは、開発効率に雲泥の差が出てくる。 僕が考える「良いコード」 - give IT a try きれいなコードを書くことはいつでも大事ですが、きれいなコード「だけ」では大きなコードを理解するのは難しいです。 そこできれいなコードを書くことに加えて、僕が意識しているコードを理解しやすくする工夫について書いてみようと思います。 ただし、ここで書く内容はあくまで僕が普段心がけていることです。 現場の文化やコードの規模や歴史、開発チームのスキルや人数、

    書き手の意図やコードの背景を残す方法のあれこれ −きれいなコードの次に意識すべきこと− - give IT a try
    Watson
    Watson 2023/07/16
  • 僕たちは本当のSQLite3を何も知らない(柔軟なデータ型と外部キー制約の罠について) - give IT a try

    「えっ、SQLite3ってこんな仕様なの!?」と最近ビックリしたことを紹介します。 たとえばこんな2つのテーブルがあったとします。 CREATE TABLE blogs ( id int primary key, title varchar(32) ); CREATE TABLE comments ( id int primary key, content varchar(32), blog_id int, foreign key (blog_id) references blogs(id) ); ポイントはcommentsテーブルのblog_idにはblogs(id)への外部キー制約が貼ってあることです。 もちろん、blog_idもblogs(id)も、どちらもint型です。 で、以下のようなSQLを発行します(blog_idの値に注目)。 -- blogsにデータを追加 INSERT

    僕たちは本当のSQLite3を何も知らない(柔軟なデータ型と外部キー制約の罠について) - give IT a try
  • フィヨルドブートキャンプのメンター陣が語る「このバイブルに育てられた」学びの一冊 - give IT a try

    はじめに ちょっと前に「「このバイブルに育てられた」駆け出しエンジニアだった頃に読み込んだ、学びの一冊をご紹介」というweb記事が話題になっていました。 type.jp たぶん、長年ITエンジニアをやっている人なら1冊か2冊はそういった「バイブル」があると思います。 そこでフィヨルドブートキャンプのメンターに「あなたが「このバイブルに育てられた」と思う一冊は何ですか?」という質問をしてみました。 なお、回答者はメンターだけでなく、アドバイザー(メンターではないが、受講生の学習状況を確認できる企業関係者)や卒業生も含まれています。 というわけで、以下がその回答です! 【もくじ】 はじめに メンターの伊藤淳一さん=「情熱プログラマー」 メンターのinoueさん=「リーダブルコード」か「アジャイルサムライ」 メンターのべーたさん=「でもわかるC#プログラミング」と「ノンデザイナーズ・デザインブ

    フィヨルドブートキャンプのメンター陣が語る「このバイブルに育てられた」学びの一冊 - give IT a try
    Watson
    Watson 2022/12/05
  • 過度なDRYは読みやすさの敵!?「リーダブルテストコード」という発表をしました #vstat - give IT a try

    先日、このブログでもお伝えしましたが、「VeriServe Test Automation Talk No.3」というオンラインイベントで登壇してきました。 veriserve-event.connpass.com 申込者数はなんと1000人を超えていて、大変驚きました。 僕は「リーダブルテストコード」というテーマで発表しました。スライドはこちらです。 Twitterでたくさんシェアされたり、はてなブックマークがたくさん付いたり、こちらもすごい反響でビックリしました。 で、どんな内容だったの? ひとことで言うなら「テストコードを徹底的にDRYにしようとしちゃダメよ!」というお話です。 このネタは昔からQiitaやTwitterとかでことあるごとに話してきましたが、この勉強会であらためてなぜダメなのか、DRYに書かず、どう書くべきなのか、という話を力説してみました。 優秀なプログラマほど、「

    過度なDRYは読みやすさの敵!?「リーダブルテストコード」という発表をしました #vstat - give IT a try
    Watson
    Watson 2022/08/02
    テストコードをテストするものが必要になるんでな
  • 【プログラミング初心者向け】クラスメソッドとインスタンスメソッドはどう使い分けるべき? - give IT a try

    はじめに ruby-jpのSlackで以下のような質問が投稿されていました。 クラスメソッドとインスタンスメソッドの具体的な違いがわかりません。 現状「クラスメソッドはクラスから実行でき全体に関する処理を書くときによく使うもの。インスタンスメソッドはインスタンスから実行でき、個別具体的な処理を書くときに使うもの。」という理解をしています。そして実装の際に「これはクラスメソッドとインスタンスメソッドどちらで書くべきなのか」悩むケースが多いです。 上記を踏まえて質問です。 クラスメソッドとインスタンスメソッドの具体的な違いを皆さんはどのように定義しているか どこからがクラスメソッドでどこからがインスタンスメソッドなのかの境目はどのあたりにあるか をお伺いしたいです! クラスメソッドとインスタンスメソッドの使い分けは僕がメンターをやっているフィヨルドブートキャンプでもよく見かける質問です。 そこ

    【プログラミング初心者向け】クラスメソッドとインスタンスメソッドはどう使い分けるべき? - give IT a try
    Watson
    Watson 2022/07/21
  • ITエンジニアがお金に関する本を10冊近く一気に読みあさってみた - give IT a try

    はじめに:お金は稼げてるけどお金には無頓着な44歳ITエンジニア 僕はプログラマとして働いていて、株式会社ソニックガーデンのお給料やら、副業のフィヨルドブートキャンプのメンター料やら、執筆・翻訳した技術書(「プロを目指す人のためのRuby入門」と「Everyday Rails - RSpecによるRailsテスト入門」)の印税やらで、日人の平均からすればそこそこいい年収を得ています。 具体的な金額は書けませんが、ここ数年は毎年1000万以上の年収がある、という感じです(機会があればこのへんの話も詳しく書きたい)。 が、基的にお金には無頓着で生きておりまして、それゆえに毎年自分でもビックリするぐらいの税金を(泣きながら)払っております😭 あと、資産運用的なこともやっておらず、貯金がメインなので(浪費がメインという説もあり)、「あー、お金は稼いでるけど、そこからあとの使い方はなんかあんま

    ITエンジニアがお金に関する本を10冊近く一気に読みあさってみた - give IT a try
  • 「プロを目指す人のためのRuby入門 改訂2版」を地元の西脇市図書館に寄贈しました - give IT a try

    第1版に引き続き、「プロを目指す人のためのRuby入門 改訂2版(通称・チェリー)」を僕が住んでいる西脇市の図書館に寄贈しました。 たしかに寄贈しましたよ、の図寄贈したのはちょっと前で蔵書登録されるのを待っていたのですが、昨日西脇市図書館の蔵書検索をしてみたら貸し出し可能になっていました。 第2版が検索結果一覧に上がってきてます。ちなみに第1版は現在貸出中のようです😄西脇市民の方はもちろん、西脇市周辺の図書館なら西脇市図書館から取り寄せることもできると思うので、興味がある方はぜひチェックしてみてください〜。 全国の図書館に展開中!? 西脇市以外の図書館でも「プロを目指す人のためのRuby入門 改訂2版」が借りられる図書館は増えてきているようです。 改訂版チェリー、以下の図書館に置いてあるみたいです!図書館なら無料で読めちゃいますね🤗 ・入新井図書館 ・浜竹図書館 ・蒲田駅前図書館

    「プロを目指す人のためのRuby入門 改訂2版」を地元の西脇市図書館に寄贈しました - give IT a try
    Watson
    Watson 2021/12/29
  • 僕が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
    Watson
    Watson 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
    Watson
    Watson 2021/08/04
  • 【学生限定】電子書籍版のチェリー本を5名様にプレゼントします! #プロを目指す人のためのRuby入門 - give IT a try

    お知らせ 突然ですが、プレゼント企画のお知らせです。 学生の方限定で電子書籍版の「プロを目指す人のためのRuby入門」(通称・チェリー)を5名様にプレゼントします! 気になる!応募してみたい!という方は以下の説明を読んだ上でご応募ください〜😄 「学生」って具体的にどんな人ですか? 普段、学業をメインに生活している人のことです。具体的には、以下のような人たちを対象にしています。 小学生 中学生 高校生 / 高専生 予備校生 大学生 / 大学院生 専門学校生 なんで学生限定なんですか? これからの将来を担う若い人たちにプログラミングをたくさん勉強してもらいたいからです! 現在プログラミングスクールに通っています。私は学生に含まれますか? すいません、プログラミングスクールに通っている方は対象外とさせてもらいます🙏 ただし、大学生をやりつつプログラミングスクールに通ってます、という方は大学

    【学生限定】電子書籍版のチェリー本を5名様にプレゼントします! #プロを目指す人のためのRuby入門 - give IT a try
    Watson
    Watson 2021/02/17
  • Zennに書いた記事の収益をRubyアソシエーションに寄付しました - give IT a try

    お知らせ 以前このブログでもお知らせしたとおり、昨年末にRuby 3.0の新機能紹介の記事をZennに書きました。 zenn.dev QiitaではなくZennに書いたのは記事の収益をRubyアソシエーションに寄付するためです。 お気づきかもしれませんが、Part 2はQiitaではなくZennを使って書きました。 その理由は読者の方が記事に対してお金を振り込めるからです!・・・といっても僕がそのお金を独り占めするわけではありません。 2021年1月31日までに集まったお金Rubyの普及と発展のためにRubyアソシエーションに寄付する予定です。 【アウトライン版】サンプルコードでわかる!Ruby 3.0の主な新機能と変更点 - give IT a try 上にも書いたとおり、「2021年1月31日まで集まった収益を寄付する」という方針だったので、アナウンスどおり先日Rubyアソシエーショ

    Zennに書いた記事の収益をRubyアソシエーションに寄付しました - give IT a try
    Watson
    Watson 2021/02/10
  • チェリー本発売3周年記念!? 技術書の商業出版と同人誌、どっちが儲かるの問題について - give IT a try

    はじめに 3年前の今日、2017年11月25日に僕が執筆したRubyの入門書「プロを目指す人のためのRuby入門」(通称チェリー)が発売されました。 つまり、今日でチェリーが発売されて3年になります!(拍手〜!👏👏👏) プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで Software Design plus 作者:伊藤 淳一発売日: 2017/11/25メディア: Kindle版 ありがたいことにチェリーは自分でも予想できなかったぐらい、たくさんの人に読んでもらえました。 すでに増刷も4回行われています。購入してくださったみなさん、当にありがとうございます!😆 概して技術書は賞味期限が短く、3年も経つと内容が古くなって使い物にならなくなることもよくあります。 ですが、チェリーRuby質的な部分にフォーカスしているので、大半の内容は2

    チェリー本発売3周年記念!? 技術書の商業出版と同人誌、どっちが儲かるの問題について - give IT a try
  • 【JS完全に理解した】JavaScript PrimerとプログラミングTypeScriptとレガシーフロントエンド安全改善ガイドを読んでみた - give IT a try

    はじめに 僕は仕事Ruby on Railsを使ってWebアプリケーションを開発しているので、JavaScriptはそれなりに使えます。 ですが、サーバーサイドで使っているRubyに比べると、JavaScriptの習熟度はそれほど高くありません。 とくに、文法が一気にブラッシュアップされたES2015(ES6)以降の知識は「なんとなく把握はしているが、あくまでなんとなく」といった感じです。 また、最近よく名前を聞くようになったTypeScriptも「名前は知っているが使ったことはない」というのが現状です。 というわけで、「そろそろちゃんと勉強しておかないと」という思いから、以下のを購入してみました。 JavaScript Primer 迷わないための入門書 (アスキードワンゴ) 作者:azu,Suguru Inatomi発売日: 2020/06/10メディア: Kindle版プログラミ

    【JS完全に理解した】JavaScript PrimerとプログラミングTypeScriptとレガシーフロントエンド安全改善ガイドを読んでみた - give IT a try
  • 【初心者ITエンジニア向け】上手な質問は「相手にエスパーさせない質問」です - give IT a try

    はじめに この春からITエンジニアになったみなさん、どうもおめでとうございます。 これからたくさん勉強して、立派なエンジニアを目指していきましょう! ・・・と言っても、最初はわからないことだらけだと思います。 一人では解決できない壁にぶち当たったときは、他の人を頼って質問した方が学習効率が良いです。 とはいえ、質問するときは上手に質問しないと、自分も答える人も無駄に時間をってしまいます。 というわけで、今回のエントリでは「上手な質問」について書いてみたいと思います。 なお、ここで想定している質問は、社内掲示板のようなオンラインでの非同期な技術系Q&Aを想定しています。 ですが、基的な考え方は対面で質問する場合も変わらないと思います。 まずはネットで質問のセオリーを学ぼう 上手な質問のしかたについては、すでにネット上に優れた資料があります。 これらの資料に目を通してもらえれば、僕が言いた

    【初心者ITエンジニア向け】上手な質問は「相手にエスパーさせない質問」です - give IT a try
    Watson
    Watson 2020/04/17
  • BOOTH動画の売上金の一部を京アニと佐賀県と千葉県に寄付しました - give IT a try

    はじめに:動画のご購入、ありがとうございました! このブログでも以前お伝えしたとおり、先日、「プログラマがコードを書きながら考えること 〜動画でわかるWebクローラー開発〜」という動画をBOOTHで販売開始しました。 jnito.booth.pm blog.jnito.com こちらの動画は、この1週間でたくさんの方々に購入していただきました。 中にはブースト機能を使って購入金額を上乗せしてくださった購入者の方もいました。 購入してくださったみなさん、どうもありがとうございました!(ちなみに現在も販売中です) 売上金の一部を寄付することにしました で、もともとは普通に僕個人の収益にさせてもらう予定だったのですが、思いがけない臨時収入になったこともあって、売上金の一部を寄付することを思いつきました。 あまり大きな額ではありませんが、今回は以下の3つの団体・自治体にそれぞれ5000円ずつ寄付さ

    BOOTH動画の売上金の一部を京アニと佐賀県と千葉県に寄付しました - give IT a try
    Watson
    Watson 2019/09/17
  • Rubyプログラマが何を考え、どうやってコードを書くのか、その過程を動画にしてみました - give IT a try

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

    Rubyプログラマが何を考え、どうやってコードを書くのか、その過程を動画にしてみました - give IT a try
  • Rails 6リリース記念!?Qiitaにいろいろ記事を書きました - give IT a try

    先日、Rails 6が正式にリリースされました。 ついにRails 6が正式リリースされたようです!🎉 Rails 6.0: Action Mailbox, Action Text, Multiple DBs, Parallel Testing, Webpacker by default, and Zeitwerk | Riding Rails https://t.co/pHoJb68B97— Junichi Ito (伊藤淳一) (@jnchito) 2019年8月16日 だから、というわけでもないのですが、Rails関連の記事をいくつか書いてQiitaにアップしています。 Railsアプリのアップグレードの手順 1つ目はRailsアプリのアップグレード(バージョンアップ)の手順です。 永久保存版!?伊藤さん式・Railsアプリのアップグレード手順 - Qiita qiita.com

    Rails 6リリース記念!?Qiitaにいろいろ記事を書きました - give IT a try
    Watson
    Watson 2019/08/19