タグ

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

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

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

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

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

    僕が考える「良いコード」 - give IT a try
  • JavaやC#の常識が通用しないRubyのprivateメソッド - give IT a try

    衝撃を受けたできごと 最近Rubyを勉強しています。 JavaやC#でオブジェクト指向プログラミングの基はマスターしてるから、Rubyもそのあたりは楽勝〜!・・・と思っていたら、JavaやC#の常識が全く通用しない振る舞いに遭遇してかなり衝撃を受けました。それは、 privateメソッドはサブクラスからも呼び出せる ・・・ということです!!がーん。 たとえば、JavaやC#だと自分のクラス内でprivateメソッドが使われていない場合、不要なメソッドとして削除できます。(リフレクションを使って呼び出される可能性はここでは無視ね) しかし、Rubyでは誰かがサブクラスを作って呼び出している可能性があるので、privateメソッドを削除する場合は注意が必要です。メソッド名を変更する場合も同様ですね。 また、知らずに親クラスと同名のprivateメソッドを定義すると、予期せず親クラスの実装をオ

  • 「RSpec で example の外で定義したローカル変数を使うのはアリか?」に対する僕の見解と解決策 - give IT a try

    はじめに 先日、「RSpec で example の外で定義したローカル変数を使うのはアリか?」というブログ記事を拝見しました。 ブログの作者である「きいあむ」さんは、「exampleの外で定義したローカル変数を使うのもアリなのでは?」というスタンスで記事を書かれています。 ですが、僕は「うーん、これはちょっと・・・」という感が否めません。 そこでこのエントリでは上記ブログ記事の内容に対する、僕の見解と考えられる解決策を書いていきます。 RSpecでテストを書くことがある人は参考にしてみてください。 上記ブログの簡単なまとめ さくっと要点を把握したい、という方のために、きいあむさんの意見を簡単にまとめておきます。 RSpecでは値を共通化するために、インスタンス変数やletを使います。 たとえば、何も考えずに愚直テストを書くとこんな感じになります。 describe User do it

    「RSpec で example の外で定義したローカル変数を使うのはアリか?」に対する僕の見解と解決策 - give IT a try
  • 雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try

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

    雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try
  • プログラミング初心者はgit commitする前に必ずdiffを自分でレビューするクセを付けよう - give IT a try

    プログラミング初心者向けのTipsです。 まあ、タイトルに書いたとおりなんですが、プログラミング初心者は(というか、プログラマならみんな)git commitする前にdiffを自分でチェックするようにしましょう。 それはなぜか? しょーもないミスを自分で見つけるためです。 しょーもないミスというのは例えば、消し忘れのコメントや、デバッグ用に書き込んだprint文、無駄な空行、おかしなインデント、管理対象外とすべき一時ファイルや隠しファイル等々です。 def create @book = Book.new(book_params) puts @book.title # ほら、デバッグ用のputsが残ってるよ!! if @book.save redirect_to @book, notice: '登録しました' else render :new # インデントが1文字ズレてるよ!! end e

    プログラミング初心者はgit commitする前に必ずdiffを自分でレビューするクセを付けよう - give IT a try
  • 【プログラミング初心者向け】クラスメソッドとインスタンスメソッドはどう使い分けるべき? - give IT a try

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

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

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

    ITエンジニアがお金に関する本を10冊近く一気に読みあさってみた - give IT a try
  • 学校の勉強とプログラミングの勉強は何が違うか(そして技術書をどう読むべきか) - give IT a try

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

    学校の勉強とプログラミングの勉強は何が違うか(そして技術書をどう読むべきか) - give IT a try
  • プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try

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

    プログラミング初心者は変数名やメソッド名を略さない方がいいよ、という話 - give IT a try
  • 教えてリモートワーク・伊藤淳一さんの場合 〜ストレス解消編〜 - give IT a try

    この記事はフィヨルドブートキャンプの 「ちくしょう、勉強だ。」 キャンペーンの一環として書かれたインタビュー記事です。 エントリは第2回の記事(後編)になります。 前編(仕事環境編)はこちらにありますので、まだ読んでない方は先にこちらをどうぞ。 blog.jnito.com Q8. リモートワーク中のストレス解消法について教えてください いろいろあります。ざっと挙げるとこんな感じです。 ギターを弾く 運動する(家の中で) 外を散歩する 愛犬とたわむれる 家族と話す・の手料理べる いい機材を揃える よく寝る (番外)暗い話題のリンクをクリックしない それぞれ以下で説明していきます。 ギターを弾く 趣味でギターを弾いてます。別に上手くはないのですが、いい機材を揃えているので僕ぐらいの腕前でもとてもいい音がします。いい音を聴くとそれだけで、「はあ〜、幸せ〜」な気分になれます。 今弾いてい

    教えてリモートワーク・伊藤淳一さんの場合 〜ストレス解消編〜 - give IT a try
  • Rubyプログラマが何を考え、どうやってコードを書くのか、その過程を動画にしてみました - give IT a try

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

    Rubyプログラマが何を考え、どうやってコードを書くのか、その過程を動画にしてみました - give IT a try
  • Rubyプログラマが中学校で情報モラル講演会をしてきたよ - give IT a try

    はじめに 先日、Rubyプログラマが職である僕が、なぜか地元・兵庫県西脇市の中学校で情報モラル教育に関する講演をしてきました。 このエントリではなんでそんなことになったのか、そしてどんなことを話したのか、といった話を書いていきます。 【もくじ】 はじめに 講演を依頼されたいきさつ 去年の情報モラル講演会は当にひどかった 今年は誰かな〜? → えっ、僕!? 当日使用したスライド この講演で伝えたかったこと 「スマホやSNSは怖い」だけでは終わらせない トラブルに遭遇したら大人に頼る(一人で解決しようとしない) リスクを語るときは、必ず予防策と対処法をセットで伝える テクニカルな解決策(設定の変更等)は重視しない 大人だって失敗したり、ちゃんとできてなかったりすることを伝える 生徒さんたちの感想 その他の裏話等 「経験がない&時間がない」で、かなり準備が大変だった 信頼が置ける専門家の方た

    Rubyプログラマが中学校で情報モラル講演会をしてきたよ - give IT a try
  • 【問題提起】篠原嘉一氏に情報教育の講演を依頼する前に考えていただきたいこと ~ITエンジニアから見た、情報教育のあり方について~ - give IT a try

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

    【問題提起】篠原嘉一氏に情報教育の講演を依頼する前に考えていただきたいこと ~ITエンジニアから見た、情報教育のあり方について~ - give IT a try
  • Ruby関西 勉強会で「プロを目指す人のための例外処理(再)入門」という発表をしてきました #rubykansai - give IT a try

    はじめに 2017年1月13日(土)に開催された第80回 Ruby関西勉強会で「プロを目指す人のための例外処理(再)入門」という発表をしてきました。 会場はすごくきれいで快適な、大阪梅田のグランフロントにあるAimingさんでした。 (どうもありがとうございました!) このエントリでは僕の発表内容と、勉強会中のエピソードを書いていきます。 発表スライド 当日使用した僕の発表スライドはこちらです。 例外処理については過去にいろいろ痛い目に遭わされているのと、間違った使い方をしている初心者さんをよく見かけるので、「お願いだから正しく使って!!」という気持ちでこのスライドを作りました😅 例外処理にまつわる僕の体験談については「当にあった怖い話」としてスライド内で紹介していますw その他にも例外処理のバッドプラクティスやベストプラクティスなど、例外処理を書くときは絶対に押さえておきたいポイント

    Ruby関西 勉強会で「プロを目指す人のための例外処理(再)入門」という発表をしてきました #rubykansai - give IT a try
  • WEB+DB PRESS Vol.99の「良いコード」を本気でコードレビューしてみた - give IT a try

    はじめに Twitterを見てたら、気になる雑誌の特集を見つけました。 WEB+DB PRESS Vol.99の「Rubyで学ぶ!良いコードって何だろう?」という特集記事です。 WEB+DB PRESS Vol.99 作者: ?橋健一,谷口禎英,井大登,山崎勝平,大和田純,内村元樹,坂東昌哉,平田敏之,牧大輔,板敷康洋,大?浩崇,穴井宏幸,原口宗悟,久田真寛,ふしはらかん,のざきひろふみ,うらがみ,ひげぽん,池田拓司,はまちや2,竹原,片田雄樹,渋江一晃,WEB+DB PRESS編集部編出版社/メーカー: 技術評論社発売日: 2017/06/24メディア: 大型この商品を含むブログを見るRuby大好き!きれいなコード大好き!!な僕にとっては、この特集は読まずにはいられません! 早速買って読んでみました。 お~、なるほど、たしかにいいことが書いてある! うんうん、そうそう・・・あれ?この

    WEB+DB PRESS Vol.99の「良いコード」を本気でコードレビューしてみた - give IT a try
  • 「レンジで字が消える!」というYouTube動画を真似した息子がノートを黒焦げにした話(※追記あり) - give IT a try

    2016.10.30 追記:おわび この記事は元々、YouTubeをよく見ているお子さんを持つ保護者のみなさんに向けて、注意喚起をしたいと思って書いた記事でした。 ですが、YouTubeの利用規約には「サービスは13歳未満の子供による利用を意図していません。あなたが13歳未満の場合、YouTubeウェブサイトを利用しないで下さい。」との記述があります。 お恥ずかしいことに私はこの利用規約をちゃんと確認していませんでした。 利用規約を確認しないまま、子どもにYouTubeを視聴させてしまったことは、私の完全な注意不足でした。 大変申し訳ありませんでした。 また、記事の中で「おそらく動画を投稿した人たちはそこまでの危険性があるとは自覚していないのでしょうが、もう少し想像力を働かせて上記のような問題点に配慮してほしかったなと思います。」と書きましたが、私もこのブログを公開することで動画を投稿

    「レンジで字が消える!」というYouTube動画を真似した息子がノートを黒焦げにした話(※追記あり) - give IT a try
  • もくもくしすぎない「もくもく会」!?Rubyプログラミングキャンプ 2016を開催しました - give IT a try

    はじめに 2016年10月1日と2日に、僕とAkiさんで主催しているRubyコミュニティ「西脇.rb&神戸.rb」のイベントとして「Rubyプログラミングキャンプ 2016」を開催しました。 これは泊まりがけで2日間たっぷりRubyプログラミングを満喫しようというイベントで、今年で3回目になります。 今回のエントリでは、このイベントの開催レポートをお送りします。 開催地は三木ホースランドパーク・エオの森 開催地は今年も兵庫県三木市にある、三木ホースランドパーク・エオの森でした。 Rubyプログラミングキャンプは毎年こちらで開催させてもらっています。 宿泊施設付きの研修センターがあり、Wifiも使えるので、開発合宿には打ってつけの施設です。 合宿の基テーマは「ロングもくもく会」 この合宿の基テーマは毎年「ロングもくもく会」です。 つまり、2日間かけて参加者各自がやりたいことをじっくりやる

    もくもくしすぎない「もくもく会」!?Rubyプログラミングキャンプ 2016を開催しました - give IT a try
  • シンプルでわかりやすいコードを書くためにあなたがすべきこと - give IT a try

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

    シンプルでわかりやすいコードを書くためにあなたがすべきこと - give IT a try