やわらかテック

興味のあること。業務を通して得られた発見。個人的に試してみたことをアウトプットしています🍵

開発所感

【Ruby】boolean型の値を渡すだけの関数にはキーワード引数を付与してあげよう

ある日のこと。Rubyのコードを読んでいるとboolean型の値が引数となる関数の呼び出し処理を見て「なんじゃこりゃ...」という気持ちになりました。簡単な例を紹介します。 def say_hello(is_morning) if is_morning puts 'おはようございます' else puts 'こ…

【Ruby】配列が特定の要素を含むかを判定するならany?ではなくinclude?を使うべし

ある日のこと。Rubyのコードを読んでいると配列の要素が特定の値を含んでいるかどうかの判定にinclude?を使っている箇所とany?を使っている箇所があることに気づきました。 lst = [1,2,3,4,5] puts lst.any?(1) # true puts lst.include?(1) # true たしかに…

4人以上のミーティングってほとんどいらない説

少し前にShopifyのCOO(最高執行責任者)のカズ(Kaz)さんが以下のツイートをされていました。 Meetings are a bug. Today, we shipped a fix to this bug at @Shopify. To start 2023, we're cancelling all Shopify meetings with more than two people. Let'…

【ええな〜コード】OSSのコードから学ぶ設定値(configure)の作り方

こちらは「ええな〜コード」の記念すべき第一本目の記事です。「ええな〜コード」とはOSSのコードから勉強・参考になる箇所を抜粋して、記事として紹介するという趣旨の不定期シリーズです。 今回はよくある設定値(configure)について「ええな〜」と思うコー…

type-c対応のモニター(BenQ GW2785TC)を買ったら配線が消え去った

ついに買いました 以前の記事でモニターの配置を紹介しつつ「実はtype-c対応の外部モニターが欲しい!」と記載しました。 結局、記事を書いてたらめちゃくちゃ欲しくなってしまって、その日に衝動的に買ってしまいました。 www.okb-shelf.work 購入したのはB…

日々、自分のベストプラクティスは変化している

ある日のこと、久しぶりに過去に自分が実装した機能のコードを見ていると「何だこのコードは...」と悪い意味で驚愕しました。内容はデータベースから取ってきたデータをひたすら加工し、集計して最終的に画面に表示するというものです。 ひたすら加工と書い…

Nature Remo mini 2をコンセントへ直挿しすることに成功した

師走のせいか、最近はよく買い物の衝動に駆られています。とはいっても服や趣味のものを買ったりではなく、相変わらず配線をスッキリするためのアイディアを試行錯誤しています。前回の記事でモニターの配置についての話と、type-cに対応した外部モニターが…

リモートワーク3年目のエンジニアがたどり着いた最強のモニター配置

近年、多くの方がリモートワークをされているかと思います。自分もその一人で、WEBアプリケーションの開発を担当しているエンジニアですが、2019年にリモートワークへの移行が決定して、すでに3年の月日が経ちました。当時は自宅に職場と同等、それ以上の作…

社内で毎日開催している輪読会を紹介して頂きました

自分が主催して、運営している社内輪読会についてインタビューを受けて、Wantedlyの記事にして頂きました。「運営している」と言いましたが、すでに形式化されて、参加メンバーがファシリテーターをしてくれるので、自分がやっていることはもうほとんどなか…

未経験エンジニアにインフラエンジニアを勧めているのマジか

yahoo知恵袋にて回答中 ちょっとした気分転換や「誰かの役に立てれば」という思いで、不定期でyahoo知恵袋にて質問へ回答をしています。自分が回答しているのは、回答がない・少ない質問が主です。こういった質問は内容が複雑であったり、文章量が多い、答え…

リモートワークの一番のデメリットは「見て盗む」がやりづらいこと

自分は、いわゆるビジネス書というのはあまり読みませんが、立ち寄った書店でいつもは通らない棚をふらふらしていたところ、僕が尊敬してやまない落合博満さんの書籍「決断=実行」を見かけたので即購入しました。 決断=実行作者:落合 博満ダイヤモンド社Amaz…

ActiveRecordにてSELECT * FROM table_nameを避ける方法について

ActiveRecordって本当に便利ですよね。SQLを隠蔽して、データベースへのCRUD操作をオブジェクトとメソッドで完結させることが出来ます。一例として、usersテーブルから権限(authority)がadminのレコード一覧を取得する操作は以下のようになります。 (※分かり…

OSSのコードを読んでたらコードの書き方が変わった

最近はRubyとRubyOnRailsを使って仕事をしています。RubyやRailsは日本語の情報量が特に多く、やりたいことの多くはGoogleで調べると既に誰かがやっていたり、ライブラリがあったりと誰かが作ったありがたい...コードを使わせて頂くことがよくあります。 し…

【書評】「リーダーの作法」は当たり前のことを当たり前にやろうという本だった

リーダーの作法ってどんな本 2022年6月にオライリーから「リーダーの作法 ささいなことをていねいに」という書籍が発売されました。表紙はミツバチです。 www.oreilly.co.jp 元々、海外では「The Art of Leadership small things, done well」という名前で発…

そもそも疑問に思うことがないという事実

心理的安全性の重要性について知る 日々の開発の中で、お互いに新機能に対して意見を言い合うことなどがあるかと思いますが、自分が所属するチームではなかなか、意見が出ずに意見交流が発生しないことが多々ありました。 これに対して自分の答えの1つとして…

【エンジニア教育の壁】ティーチングとコーチングの違いを教えてもらった

どこまで教えてあげれば良いのか問題 教育というのは非常に難しく、私が担当したエンジニア教育についても全く同じことが言えます。 その一例として「どこまで教えてあげれば良いのか分からない」という問題があります。自分の中では答えがあるものの、相手…

あえて無言でいたら怒っていると勘違いされた

この記事の概要 [前回の記事] 沈黙が怖くて、自分からいつも喋り出してしまっていた 自分ばかりが喋ることでメンバーの意欲をそいでしまっていた 外部メンターの方からのアドバイスを元に「あえて無言でいるウィーク」を行なった メンバーの意欲を引き出すこ…

あえて無言でいることが重要だと気づいた

この記事の概要 バグを減らすためにモブプログラミング(3人以上で1チームを作って開発を進める手法)を導入した 積極的にアイディアや意見を出すメンバーとあまり喋らないメンバーに分かれてしまった 沈黙の時間が訪れた時に「気まずいなぁ...」と思い、自分…

型のある言語は一度は経験するべきだと思った出来事が起きた

型があるのが良いのか この話題は度々、議題に上がり、多くの人が討論をしています。 個人的な近年の傾向としては、golangやTypeScrpitの流行、PythonやRubyが型アノテーションが導入されるなど、型のある言語(静的型付け言語)への需要が高まっているように…

【読書レビュー】「岩田さん 岩田聡はこんなことを話していた。」を読みました

どんな本なのか タイトルにもある「岩田さん」とは、とある人物の実名です。 「岩田 聡」さんは皆さんがご存知の任天堂(Nintendo)の社長をされていた方で、我々がよく知る「Nintendo DS」や「Nintendo Wii」「カービィシリーズ」「スマッシュブラザース」な…

プロダクトにおいて営業と開発は対等であるという意識の重要さ

お客様の声 プロダクトが売れ始めて、ある程度、成長を続けていくとお客様から様々な声が上がってきます。 www.okb-shelf.work 中でも最も多いのは新機能の開発要望です。小さな変更からプロダクトのコンセプトを覆してしまうような大きな変更まで大小様々で…

ハッキリと「この機能必要ですかね」と言うことが一番重要だった話

お客様が増えると要望は増え続けていく⏫ 現在、国内でHRテックのアプリケーションの開発を担当しています。 ありがたいことに、今となってはかなり多くのお客様に使って頂いておりまして、成長期を抜けて成熟期に突入しました。 www.nri.com そんな運営中の…

怖いコードレビューを楽しくするために自分が使っている絵文字を集計してみた

コードレビューって...怖いんだって いつものようにTwitterを徘徊していると、Rubyのチェリー本などで有名な伊藤淳一さんがこんなツイートをされていました。 「なぜここで1を加算してるんでしょうか?」とか、「シャドーイングってご存じですか?」みたいな…

特に意味のないデフォルト引数が保守性を低下させるので注意

機能追加の依頼がきた いつものように業務をこなしていると、スケジュール管理機能にとある機能追加の依頼が来ました。 内容としては複数のスケジュールを作成する関数で祝日での場合には、祝日に該当する日にはスケジュールを作成しないようにしたいとのこ…

動的型付け言語(Ruby)でも関数の戻り値の型は可能な限り統一した方が良い

出会いは突然に いつものように眠い目を擦りながらコードレビューをしていると以下のようなコードに遭遇しました。 (※部分的に書き換えてあるので、実際には動作していないコードです) def fetch_companies(setting_id) setting = Setting.find_by(id: setti…

ファシリテーターをまかせたら普通にみんなやってくれた

リモートワークのファシリってつらい 現在、弊社ではコロナ対策として、完全リモートワークに移行しており、よほどのことがない限りは在宅にて勤務をしております。開発業務がメインなのですが、スクラムマスターという立場上、ファシリテーターとして主体的…

【API設計】jsonを返す時はできる限りフィールドのkeyを統一してあげよう

APIの仕様書が送られてきた 外部連携させて頂く企業様から、新規に追加されるAPIの仕様書を頂きました。ユーザーが登録しているカテゴリの総数と、その内訳を取得することが出来るAPIだそうで、新たに追加されたとのことです。しかしながら、蓋を開けてみる…

開発者が複雑だと思う機能はユーザーには使いこなせない

プロジェクトの肥大化 自分が参加しているプロジェクトが早いもので、スタートから2年が経ちました。 ありがたいことにお客様の数は増え続けており、今でも多くのお客様に使って頂いております。初期の頃と比べると、かなり機能がリッチになりました。 元々…

ボーイスカウト・ルールが保守開発に役立った話

コードはどんどん汚くなっていく プロジェクトのスタート時にどれだけ入念に設計をしてコードを書き始めたとしても、プロジェクトの年数が経つにつれて、コードの状態は悪くなってきます。 新機能追加 既存仕様の変更 メンバーの入れ替わり リリース日が変更…

「なのでは」「ではないかと」って言い方やめてくれ

単純に不快 なんでわざわざ「なのでは」とか「ではないかと」っていう文章を送ってくるのか理解出来ません。 これが攻撃的な言い方に感じるのは自分だけでしょうか。日々、マウントをとってくるような人が使っているイメージがあります。 「なのではないでし…