タグ

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

  • マトリョーシカ人形のようなメソッド設計を避ける - give IT a try

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

    マトリョーシカ人形のようなメソッド設計を避ける - give IT a try
    iga_k
    iga_k 2022/11/28
    わかりやすい!
  • 義母の家に現れたヘビと格闘した話(と言いつつ、僕は何もやってない件) - give IT a try

    (注:この記事の文にヘビの写真は出てきません。文には。) はじめに:突然の電話 僕が住んでいるのは兵庫県西脇市っていう田舎町です。 田舎なので自然が豊かです。ポジティブに言えば。 自然が豊かということは野生の動物や雑草とも日々対峙しなければいけない、ということを意味します。 さて、昨日、突然のお母さん(=僕の義母)から電話がありました。 「家の中にヘビが出た!早く来て!!」 とのことです。ひえ〜、ヘビ!! 義母の家は同じ町内なのですぐ近くにあります。 とりあえず、僕は義母の家に向かいました。 ヘビとご対面🐍 話を聞くとヘビはどうやら洗面所に出没したようです。 おそるおそる洗面所のドアを開いて中を覗いてみると・・・。 いた! 洗面所に置いてある棚の物陰から、こっそり顔だけ出してます。 顔だけ出てるとヘビというよりトカゲみたいでなんかカワイイ。 いや、そんなこと言ってる場合じゃない。

    義母の家に現れたヘビと格闘した話(と言いつつ、僕は何もやってない件) - give IT a try
    iga_k
    iga_k 2022/06/20
    へび対応
  • 僕が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
    iga_k
    iga_k 2022/06/13
    subjectの功罪
  • Ruby 3.0に完全対応、だけじゃない!?改訂2版「プロを目指す人のためのRuby入門」が発売されました🍒 - give IT a try

    はじめに 以前からこのブログでもお伝えしてきたとおり、拙著「プロを目指す人のためのRuby入門(通称チェリー)」の改訂2版が日2021年12月2日に発売されました🎉 改訂2版では表紙のさくらんぼの数が1個から2個に増えているのがポイントです。「改訂2版だから、さくらんぼが2つ」と覚えてください🍒 Amazonでは昨日から購入可能になっているようです。 プロを目指す人のためのRuby入門[改訂2版] 言語仕様からテスト駆動開発・デバッグ技法まで Software Design plus 作者:伊藤 淳一技術評論社Amazon 書店の入荷は発売日から数日遅れることがあります 書店の場合は発売日から数日遅れて入荷されることがあるので、「あれ、もしかしてこの店には入ってこないのかな?」と思った人も諦めずに店員さんに入荷予定を聞いてみてください。 ちなみにhontoというサイトを利用すると、

    Ruby 3.0に完全対応、だけじゃない!?改訂2版「プロを目指す人のためのRuby入門」が発売されました🍒 - give IT a try
    iga_k
    iga_k 2021/12/10
    RBSとdebug.gemの解説ありがたや!伊藤さんは新しいRubyのバージョンが出るたびにWebでフォロー記事を書いてるの、本当にすごいと思う。
  • 学校の勉強とプログラミングの勉強は何が違うか(そして技術書をどう読むべきか) - give IT a try

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

    学校の勉強とプログラミングの勉強は何が違うか(そして技術書をどう読むべきか) - give IT a try
    iga_k
    iga_k 2021/05/13
    伊藤さんの記事、めっちゃええやんだ。学校の勉強との対比相違ってのは気づかなかった。
  • フィヨルドブートキャンプのメンターとしてやっていること、感じていること #fjordbootcamp - give IT a try

    はじめに このエントリはフィヨルドブートキャンプ Part 2 Advent Calendar 2020 22日目の記事です。 昨日はYuki Watanabeさんの「Gitちんぷんかんぷんな私がGitを学ぶ!そこから学習のコツを見つけるところまで」という記事でした。 フィヨルドブートキャンプのアドベントカレンダーにはPart 1もあります。 さて、僕は2020年2月からフィヨルドブートキャンプでメンターをやっています。 僕がメンターをやってみようと思ったのは、プログラマ界隈で定期的に話題になる「プログラミングスクールって、ちょっとどうなのよ?」というややネガティブな評価について、実際に中の人の立場で体験していろいろ考えてみたいと思ったからです。 フィヨルドのお二人とは以前から知り合いですし、フィヨルドブートキャンプについてはネット上であまり悪い噂を聞かない(むしろポジティブな評価の方が多

    フィヨルドブートキャンプのメンターとしてやっていること、感じていること #fjordbootcamp - give IT a try
    iga_k
    iga_k 2020/12/23
    伊藤さんが熱く語るメンターのおしごとだ!
  • チェリー本発売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
    iga_k
    iga_k 2020/11/25
    印税情報だ!
  • ケルヒャーの延長パイプを使って、家の壁をきれいにしてみた - give IT a try

    築12年の我が家、南側の壁は何もしなくてもきれいなままなんですが・・・ 日が当たらない北側の壁(2階の窓の周りとか)はだんだんと黒ずんできました😢 1階の汚れは脚立等を使って掃除ができそうなものの、2階の汚れはどうやってきれいにすればいいのかわかりません。 親戚のおばちゃんに話したら「ハウスメーカーに頼んだら壁の掃除してくれるらしいで〜」と言われたので担当の人に電話したんですが、「足場を組んだら最低でも20万はかかりますね😑」と言われ、「えー、20万はちょっと・・・」となってしまいました。 でもどうしてもきれいにしたい!!とが熱望するので、いろいろ作戦を考えました。 そこでふと思ったのが、「ケルヒャーに何か高所作業用のオプションがあったりしないかな?」ということです。(注:我が家は以前からケルヒャーは持っています) 調べてみました。 ありました!!「ケルヒャー 延長パイプ 4m」!!

    ケルヒャーの延長パイプを使って、家の壁をきれいにしてみた - give IT a try
    iga_k
    iga_k 2020/09/21
    ケルヒャー便利〜!
  • 【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
    iga_k
    iga_k 2020/08/07
    Ruby版ありがたや!
  • Rubyプログラマが何を考え、どうやってコードを書くのか、その過程を動画にしてみました - give IT a try

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

    Rubyプログラマが何を考え、どうやってコードを書くのか、その過程を動画にしてみました - give IT a try
    iga_k
    iga_k 2019/09/10
    初学者から中級者、上級者へ力をつけるときに必要な教材ってたくさんあるんだけど不足していて、そこへこういう新しくて有用な試みを打ってくる伊藤さんすげえなって思う。
  • Tama Ruby会議01で「テストコードの役割」について発表してきました #tamarubykaigi01 - give IT a try

    はじめに 2019年7月6日、渋谷のGMO Yoursさんで開催されたTama Ruby会議01で「なぜテストを書くの?(または書かないの?) 〜テストコードの7つの役割〜」という発表をしてきました。 スライドはこちらです。 このエントリではこの発表の紹介やイベントの感想を書いていきます。 この発表テーマを選んだ経緯 スライドの9枚目にも書いたとおり、もともとは「RSpecを題材にしたテックな話を」とお願いされていました。 しかし、ネットなどを見ていると、「テストって難しい」「RSpecがわからん」と言っているプログラミング初心者さんたちは、テストについて何か根的な思い違いをしているんじゃないか?という漠然とした疑問や懸念を僕は持っていました。 テストにおける「土台となる考え方」を会場のみなさんと共有したかった そういう状態でRSpecのテクニック的な話をしてもどこか歯車がかみ合わないと

    Tama Ruby会議01で「テストコードの役割」について発表してきました #tamarubykaigi01 - give IT a try
    iga_k
    iga_k 2019/07/07
    伊藤さんのテストについての発表、なかなかこういう風に良くまとまった資料がないのでこっから加筆して本になったりしないだろうか。(チラッチラッ
  • アウトプットのネタに困ったらこれ!?Ruby初心者向けのプログラミング問題を集めてみた(全10問) - give IT a try

    はじめに:「初心者は何をアウトプットすればいいの?」問題について 以前から何度か書いているのですが、Ruby初心者の方で「Rubyの勉強を始めました!アウトプットがんばります!」と言いつつ、実際はアウトプットしているのは、ほとんど書籍や他のサイトに書かれている内容を右から左へ丸写ししただけ、という方をよく見かけます。 その話題については、以下の記事で詳しくまとめているので、興味がある方はこちらをご覧ください。 blog.jnito.com qiita.com まあ、それはそれでさておき、「じゃあ、どうしたらいいの!?何をアウトプットすればあんたは満足するのさ!?」と思われる方も中にはおられるでしょう。 もちろん、その質問に対する回答についてはいろんなアプローチが考えられるのですが、今回は僕からひとつ、「アウトプット迷子」になっているプログラミング初心者さんに向けて、こんな提案をしてみたいと

    アウトプットのネタに困ったらこれ!?Ruby初心者向けのプログラミング問題を集めてみた(全10問) - give IT a try
    iga_k
    iga_k 2019/05/03
    これは良い問題集!
  • 初の海外カンファレンス参加&初のRubyConfをできるだけ詳しくレポートします #RubyConf2018 - give IT a try

    はじめに このブログで先日お伝えしたとおり、2018年11月13日から15日にかけてロサンゼルス(LA)で開催されたRubyConf 2018に参加してきました。 このエントリではRubyConfに行っていない人にも雰囲気が伝わるように、現地の写真やセッションの感想、英語の難易度といった観点で参加レポートを書いてみようと思います。 とりあえず、めちゃくちゃ長くなってしまったので、先に目次を載せておきます。 はじめに 写真で見るRubyConf RubyConfで印象に残っていることベスト3 1. 日IT系イベントや勉強会に比べて女性の参加者が多い 2. 想像していたほどテクニカルなカンファレンスではなかった 3. 海外でもRubyが愛されていることを肌で実感できた 印象に残っているセッションの感想等 ■ 1日目 OPENING KEYNOTE - Yukihiro Matsumoto

    初の海外カンファレンス参加&初のRubyConfをできるだけ詳しくレポートします #RubyConf2018 - give IT a try
    iga_k
    iga_k 2018/11/26
    現地レポートありがたや〜〜〜
  • 【問題提起】篠原嘉一氏に情報教育の講演を依頼する前に考えていただきたいこと ~ITエンジニアから見た、情報教育のあり方について~ - give IT a try

    要約(僕の主張) 篠原嘉一氏の講演内容には、IT関連の知識がない人にはわかりづらいウソや間違い、極論が多く含まれているため、適切な情報教育だとは言いがたい。よって改善を強く希望する。 学校側は「生徒をネットのトラブルから守りたい」という思いが優先されるため、ITエンジニアよりも「情報の正しさ」がないがしろにされてしまうのかもしれない。だが、ITエンジニアとして、そして保護者として、学校は子どもたちに正しい情報を伝える努力をしてほしい。 我々ITエンジニアも情報教育を学校に丸投げするのではなく、正しい知識を伝えるために、主体的に情報教育に協力していく必要がある。 はじめに Image: http://www.mrf-ip.com/blog/0067/ 先日、息子が通っている中学校で開催された情報教育講演会に参加してきました。 これは中学校の全生徒と、任意参加の保護者で、情報教育(主にSNS

    【問題提起】篠原嘉一氏に情報教育の講演を依頼する前に考えていただきたいこと ~ITエンジニアから見た、情報教育のあり方について~ - give IT a try
    iga_k
    iga_k 2018/06/05
    問題提起とそれに対する自分のアクションの結果、そして解決提案がありとても良い記事。伊藤さん良い仕事をされている。
  • 【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
    iga_k
    iga_k 2018/03/13
    Railsのデフォルトにシステムテスト入ったから、そっちのレールに乗った方が長生きできる(かも)案件、だけど、この記事は移行方法まで書かれててめっちゃありがたし!!!(翻訳も大変ありがたし!)
  • 技術書を書きたいITエンジニア必見!?「プロを目指す人のためのRuby入門」の舞台裏をお見せします - give IT a try

    前回のブログでも書いたとおり、僕は2017年12月6日から10日まで東京に滞在していました。 そこで出会ったRubyプログラマのみなさんからよく聞かれたのは「あの(=プロを目指す人のためのRuby入門)って、書くのにどれくらいかかったんですか?」という質問です。 たしかに、Rubyのコードを書く人は多くても、を書く人はあまりいないと思います。 そこで、このエントリでは執筆の様子がある程度わかるように、「プロを目指す人のためのRuby入門」(チェリー)の執筆裏話を書いていこうと思います。 プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ) 作者: 伊藤淳一出版社/メーカー: 技術評論社発売日: 2017/11/25メディア: 大型この商品を含むブログを見る ちょっと長いので先に目次を載せておきますね。

    技術書を書きたいITエンジニア必見!?「プロを目指す人のためのRuby入門」の舞台裏をお見せします - give IT a try
    iga_k
    iga_k 2017/12/15
    最高の知見。めっちゃ参考になる!
  • 筆者自らが語る「プロを目指す人のためのRuby入門」のこだわりと見どころ - give IT a try

    このブログでもすでに何度か紹介していますが、いよいよ2017年11月25日に僕が執筆した「プロを目指す人のためのRuby入門」が発売されます。 僕の手元には一足先に見誌が届きました! 表紙は真っ赤なチェリーが目印です。 背表紙もよく目立つ赤色! 写真ではわかりにくいですが、普通の赤色ではなく、少しピンク色がかった個性的な赤色です。 すでに東京都内を中心に、一部の書店では先行発売が始まっています。 ジュンク堂書店 池袋店(池袋) 三省堂書店(神保町) 書泉ブックタワー(秋葉原) 有隣堂 ヨドバシAKIBA店(秋葉原) 紀伊國屋書店 新宿店(新宿) 丸善 丸の内店(丸の内オアゾ) 丸善 ラゾーナ川崎店(川崎市) 書泉ブックタワーでは早くもコンピュータ書のベスト3に入ったらしいです。 (まだ先行発売期間中なのにすごい!) 【書泉ブックタワーコンピュータ書ベスト】11/12-11/18付

    筆者自らが語る「プロを目指す人のためのRuby入門」のこだわりと見どころ - give IT a try
    iga_k
    iga_k 2017/11/20
    執筆時の話、めっちゃ参考になる!ありがたい!
  • 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
    iga_k
    iga_k 2017/11/07
    新版翻訳正座待機
  • 初校のゲラ(試し刷り)が届きました ~「プロを目指す人のためのRuby入門」制作レポート - give IT a try

    アレが届きました 昨日、何やらでっかい封筒が僕宛に届きました。 「もしやこれは」と思って中を空けてみたところ・・・じゃーん! 現在制作中の書籍「プロを目指す人のためのRuby入門」のゲラが入っていました。 ゲラというのは紙面の出来映えを確認するための試し刷りのことです。 こんな感じで完成品と同等の紙面が大きな紙に印刷されています。 これをじっくり読んでいき、修正すべき箇所がないかチェックしていきます。 いわゆる校正作業っていうやつですね。 最初の校正作業なので、これを初校と呼ぶそうです。(へー) ちなみに印刷された紙のゲラだけでなく、PDFデータも一緒にもらっています。 編集者さんからは「紙とPDF、どっちがいいですか?」と聞かれたんですが、ディスプレイで見たときと紙で見たときで印象が変わりそうな気がしたので、両方もらうことにしました。 デジタルデータがようやく形になってきた 去年の終わり

    初校のゲラ(試し刷り)が届きました ~「プロを目指す人のためのRuby入門」制作レポート - give IT a try
    iga_k
    iga_k 2017/08/04
    たのしみ!
  • 「エンジニア病」を抱えたあなたに効く「デザインの考え方」 ~ソニックガーデン・デザインメンター対談のまとめ~ - give IT a try

    はじめに 先日、僕が勤務しているソニックガーデンのブログ記事で、弊社プログラマとデザイナーさんの対談記事が公開されました。 【前編】エンジニアの会社でデザインがうまくいくワケ〜「エンジニア病」にはダメ出しされよう 【中編】プログラミングとデザイン、やっていることはわりと同じ〜「デザインは感覚じゃない」 【後編】デザインできるプログラマの育てかた〜「デザインメンター制度」のキモは理由で納得! インタビューに登場する町田さん(@machida)と赤塚さん(@ken_c_lo)は僕もよく知っているとても素晴らしいデザイナーさんです。 素敵なデザインができるのはもちろん、HamlやSassなどプログラマ寄りの技術知識も豊富に持ち合わせていますし、物腰も柔らかくてとても相談しやすい方たちです。 業界の各方面から引っ張りだこなのも十分頷けます。 ところで、上の記事の中に出てくる「デザインメンター制度」

    「エンジニア病」を抱えたあなたに効く「デザインの考え方」 ~ソニックガーデン・デザインメンター対談のまとめ~ - give IT a try
    iga_k
    iga_k 2015/01/28
    コントリパイセンも開発しているtmixはesaの非公式グッズショップです。