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

  • 日本語版「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
    toshikish
    toshikish 2024/02/26
  • 「ITエンジニア、包丁研ぎにハマる」の巻 - give IT a try

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

    「ITエンジニア、包丁研ぎにハマる」の巻 - give IT a try
    toshikish
    toshikish 2023/10/31
  • 理想のプロバイダを探し回った結果、OCNのIPv4に行き着いた話 - give IT a try

    はじめに 僕は自宅で長年WAKWAKというインターネットプロバイダを利用してたんですが、最近OCNに乗り換えました。 ・・・というだけなら「ふーん」で終わってしまうのですが、実は3ヶ月ぐらいかけて、 WAKWAK ↓ OCN ↓ BIGLOBE ↓ OCN とプロバイダを転々と切り替えながら、最終的にOCNを(しかもIPv6ではなくIPv4で)利用することに決めました。 このエントリではどういう経緯でこの結論に至ったのかを紹介します。 【もくじ】 はじめに 我が家のインターネット環境の紹介と、おことわり 用語の整理 困っていたこと:Amazon S3のファイルダウンロードが遅すぎる!! IPv6にしてもまだ遅い! iPhoneのテザリングだと夜でも3秒でダウンロードできるんですが? NTTの人が試しにOCNにつないだら、あれ?速い!! IPv4だと速いのに、IPv6だと遅いOCN・・・ 同

    理想のプロバイダを探し回った結果、OCNのIPv4に行き着いた話 - give IT a try
    toshikish
    toshikish 2023/10/22
  • 大阪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
    toshikish
    toshikish 2023/09/11
  • 書き手の意図やコードの背景を残す方法のあれこれ −きれいなコードの次に意識すべきこと− - give IT a try

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

    書き手の意図やコードの背景を残す方法のあれこれ −きれいなコードの次に意識すべきこと− - give IT a try
    toshikish
    toshikish 2023/07/16
  • 僕が考える「良いコード」 - give IT a try

    こんなコードだとわかりやすい 僕が考える良いコードの特徴(条件)を挙げてみると、 ぱっと見たら、だいたい何をやっているのかがわかるメソッド名 ぱっと見たら、だいたい中身が何なのか想像がつく変数名 ぱっと見たら、だいたい何をやっているのかが把握できるメソッドの内の処理フロー 驚きが少ないメソッド 副作用が少ないメソッド(責務が1つしかないメソッド) DRY原則を守っているコード だいたいこんな感じ。 つまり「すんなり読めて、すんなりわかるコード」が理想。 プログラムが小さいうちや、一人で開発しているうちは「汚くてわかりにくいコード」であっても「自分さえわかればOK」で済んじゃうけど、プログラムの規模が大きくなったり、複数人で開発するようになると、「汚くてわかりにくいコード」は絶望的に開発効率を下げる。 こんなコードはわかりにくい たとえば上の反対で、 メソッド名だけ見ても何をやっているのか想

    僕が考える「良いコード」 - give IT a try
    toshikish
    toshikish 2023/07/12
  • 妻がコロナになったので、生まれて初めて家事をワンオペで回そうとしたらめちゃくちゃ大変だった件 - give IT a try

    はじめに ちょっと前の話になりますが、今年の1月頃にが新型コロナにかかりました。 僕と息子と娘は去年の夏にコロナになったのですが、家族ではだけがかからなかったので、「は無敵なんじゃないか」と話していましたが、第8波の大きな波からはさすがのも逃げ切れなかったようです……。 ちなみに去年の夏にコロナにかかった話はこちらにまとめています↓ blog.jnito.com で、我が家においてがコロナにかかって自宅隔離になるというのは、かなりの痛手です。 なぜなら、家事の大半がに依存していたからです。 以前から「かよこ(の名前)がコロナになったらヤバいよな〜」という話は夫婦でときどきしてたんですが、ついにそのリスクが現実になってしまいました😱 というわけで、このエントリではが戦線離脱して僕が一人で家事を回そうとしたときに初めてわかったことや感じたことをあれこれまとめてみます。 我が家

    妻がコロナになったので、生まれて初めて家事をワンオペで回そうとしたらめちゃくちゃ大変だった件 - give IT a try
    toshikish
    toshikish 2023/04/18
  • 雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try

    (この話は最初Twitterに書こうと思ったけど、長くなるのでブログに書くことにしました) 僕はRSpecやMinitestでテストを書くのは得意ですが、常にテストファースト(TDD)で開発するとは限りません。 今業務でやってるタスクはこんなふうに進めてます。 雑に動くものを作る ↓ 見た目をきれいにする&機能を作り込む ↓ テストを書く ↓ リファクタリングする この順番で開発する理由を以下に述べます。 雑に動くものを最初に作る理由 最初は見た目とか、異常系とか、細かい仕様とかを無視して、正常系が一通り動くものを作ります。 これはこれから作ろうとしているものの認識が合っているかどうかをPO(プロダクトオーナー)に確認するためです。 実際に動く画面を見せると「こんな感じでOK」とか「ここはこういうふうにしたい」というフィードバックをもらうことができます。 また、開発者としてもコードを書きな

    雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try
    toshikish
    toshikish 2023/02/16
  • 昨今の「未経験からエンジニア就職!」みたいなトレンドに対して業界歴20年の僕が考えていること - give IT a try

    このブログ記事は動画バージョンがあります。動画で見たい方はこちらをどうぞ↓ www.youtube.com ちょっと前から「もやもや〜」と考えてることなんですが。 なんかここ数年、急にプログラマ(エンジニアと言われることが多いけど)の仕事が脚光を浴び始めた気がします。 「3K(笑)」から「お給料が良くて、自由に働ける、イケてる職業」に!? 僕がこの仕事を始めた頃(20年前)とか、ソニックガーデンに入社した頃(10年前)はまだ「プログラマ?おたくっぽい」「あー、3Kでしょ?きつい、帰れない、給料安いw」みたいな扱いだった気がします。少なくとも日においては。 ところが、この5〜6年で急に「お給料が良くて、自由に働ける、イケてる職業」みたいなイメージに変わってきたんですよね。 それ自体はとてもいいことだと思うんですよ。自分の仕事が「3K(笑)」と馬鹿にされるより、「お給料がいい!自由!イケてる

    昨今の「未経験からエンジニア就職!」みたいなトレンドに対して業界歴20年の僕が考えていること - give IT a try
    toshikish
    toshikish 2022/12/09
  • フィヨルドブートキャンプのメンター陣が語る「このバイブルに育てられた」学びの一冊 - give IT a try

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

    フィヨルドブートキャンプのメンター陣が語る「このバイブルに育てられた」学びの一冊 - give IT a try
    toshikish
    toshikish 2022/12/05
  • マトリョーシカ人形のようなメソッド設計を避ける - give IT a try

    フィヨルドブートキャンプのコードレビューでよく指摘してるシリーズです。 次のようなパンを焼くRubyプログラムがあります。 このプログラムはどういう工程を経てパンが焼かれるのか、ぱっと把握できますか? def main パンを焼く(粉, 水) end def パンを焼く(粉, 水) 焼く(パンを発酵させる(粉, 水)) end def パンを発酵させる(粉, 水) 発酵させる(パンを整形する(粉, 水)) end def パンを整形する(粉, 水) 整形する(パンをこねる(粉, 水)) end def パンをこねる(粉, 水) こねる(粉, 水) end main 上のプログラムは次のように書いても同じように処理されますが、工程の全体像がつかみやすいのはどちらでしょうか? def main 生地 = パンをこねる(粉, 水) 整形された生地 = パンを整形する(生地) 発酵した生地 = パ

    マトリョーシカ人形のようなメソッド設計を避ける - give IT a try
    toshikish
    toshikish 2022/11/28
  • 技術書にありがちな「IT技術は変化するけど、紙の本は更新できない問題」について僕なりの創意工夫を話してきました #DevReljp - give IT a try

    先日のブログでもお伝えしたとおり、「DevRel Meetup in Tokyo #78 〜商業技術書出版を学ぼう〜」という勉強会で「出版したら終わり、にしない技術書執筆」という発表をしてきました。 devrel.connpass.com 当日使ったスライドはこちらです。 どんなことをしゃべったの? 発表の概要はこんな感じです。 内容を随時更新できない紙のと変化の速いIT技術はどうしても相性が悪い 相性の悪さは受け入れた上で、筆者が積極的に読者をサポートする 変化の速い技術は紙のではなく、電子書籍のみとするのも一手 拙著「プロを目指す人のためのRuby入門」の話題を中心に話しつつ、僕がなぜRailsではなくRubyを書いたのかとか、電子書籍オンリーで販売している「Everyday Rails - RSpecによるRailsテスト入門」と紙のの棲み分けについてどう考えているのか

    技術書にありがちな「IT技術は変化するけど、紙の本は更新できない問題」について僕なりの創意工夫を話してきました #DevReljp - give IT a try
    toshikish
    toshikish 2022/09/08
  • 過度な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
    toshikish
    toshikish 2022/08/01
  • 【プログラミング初心者向け】クラスメソッドとインスタンスメソッドはどう使い分けるべき? - give IT a try

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

    【プログラミング初心者向け】クラスメソッドとインスタンスメソッドはどう使い分けるべき? - give IT a try
    toshikish
    toshikish 2022/07/20
  • 学校の勉強とプログラミングの勉強は何が違うか(そして技術書をどう読むべきか) - give IT a try

    これは何? これは僕がメンターをやっているフィヨルドブートキャンプで受講生向けに書いた記事です。 ただ、内容の8割ぐらいは未経験からプログラマを目指している初心者のみなさんにも役立つと思うので、そのまま公開することにしました。 想定読者は「フィヨルドブートキャンプの受講生」なので、フィヨルドブートキャンプの関係者以外の人が読むと「???」となる部分があるかもしれませんが、その点は悪しからず🙏 それでは以下が編です。 はじめに みなさんはフィヨルドブートキャンプに入ってプログラミングの「勉強」をします。また、大半の受講生のみなさんは学校で「勉強」してきたと思います。どちらも「勉強」ですが、実は学校の勉強とプログラミングの勉強は異なる点が多いです。その違いを意識せずに、学校の勉強と同じ感覚でプログラミングの勉強をやると、非効率な勉強をしてしまう恐れがあります。 この記事ではプログラミングの

    学校の勉強とプログラミングの勉強は何が違うか(そして技術書をどう読むべきか) - give IT a try
    toshikish
    toshikish 2021/05/13
  • プログラマがなりたい職業第1位になった話とか、昨今のプログラミングスクール問題とか - give IT a try

    プログラマが小学生男子の「なりたい職業」の1位になったそうです。 【ベネッセ調査】小学生がなりたい職業ランキング「ユーチューバー」は男子2位、女子4位にhttps://t.co/qbIZu9oxwg 1位にはそれぞれ「ゲームクリエイター/プログラマー」と「芸能人」がランクイン。自宅で過ごす時間が増えたことで、より認識されたとも考えられる。 pic.twitter.com/cbWFpnnkZy— ライブドアニュース (@livedoornews) January 6, 2021 まあ、「プログラマとゲームクリエイターを一緒にしていいのか」とか、「女子は全然ランクインしてないじゃないか」とか、「プログラマといっても幅が広いぞ?どの分野のプログラマなんだそれは」とか、その他あれこれツッコミを入れたくなる要素はあるかもしれませんが、個人的には「そうかあ、やっとここまで来たかあ」という嬉しい思いです

    プログラマがなりたい職業第1位になった話とか、昨今のプログラミングスクール問題とか - give IT a try
    toshikish
    toshikish 2021/01/07
  • プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try

    今回のエントリでは先日、僕が勤めているソニックガーデンで話題になったプログラミング関連の小ネタを書きます。 それは何かというと、「プログラミング初心者は変数名やメソッド名を略さない方がいい」という話です。 長い変数名やメソッド名はつい略したくなります。 実際、僕も長い名前を略すときはよくあります。 ですが、略称を使うのは長年の経験から「この略称は一般的だから誤解を招くことはきっと少ないだろう」とか「前後の文脈から、変数の中身は誰が見ても明らかだろう」という想像が付いた場合だけです。 一方、プログラミング初心者の人は経験が浅いため、「一般的かどうか」とか、「誤解が発生しないかどうか」といった判断ができません。 そのため、他の人が見たときに「え、何この変数名?」と思ってしまうような略称を付けてしまう恐れがあります。 たとえば、先日のコードレビューで、初心者の人がrev_noという名前の変数を定

    プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try
    toshikish
    toshikish 2020/10/20
  • 【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
    toshikish
    toshikish 2020/08/07
  • 【新人ITエンジニア向け】僕が仕事をする上で大事にしているポイントあれこれ - give IT a try

    はじめに 社会人になると、いろんなタスクがあちこちからやってきて、対応するのが大変になります。 新卒で入社したばかりの新人ITエンジニアさんも、この先現場に投入されるといろんなタスクがやってきて忙しくなってくると思います。 そこでこのエントリでは、僕が仕事をする上で大事にしているポイントをいろいろと書いてみます。 この先もし、忙しくて忙殺されそうになったときは、このエントリを思い出して読み直してみてください。 このエントリの対象読者 僕はRailsプログラマとして働いているので、同じようにプログラマやITエンジニアとして働いている方を想定読者とします。 ただし、タスク管理という観点においては、技術職であってもそうでなくてもあまり変わりはないかもしれません。 また、タスク管理仕事だけでなく、プライベートでも必要になるスキルです。 (たとえば結婚式の準備とか、勉強会の企画とか) これから書く

    【新人ITエンジニア向け】僕が仕事をする上で大事にしているポイントあれこれ - give IT a try
    toshikish
    toshikish 2020/05/14
  • 【初心者ITエンジニア向け】上手な質問は「相手にエスパーさせない質問」です - give IT a try

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

    【初心者ITエンジニア向け】上手な質問は「相手にエスパーさせない質問」です - give IT a try
    toshikish
    toshikish 2020/04/17