元底辺エンジニアが語る、エンジニアとしての生き様、そしてこれからの生き方

生き様099. DIY精神とDRY原則の狭間で

»

マウスを求めて三千里

ITエンジニアがこだわる三種の神器があると言われています。

それは、「椅子」「キーボード」「マウス」です。(白栁調べ)

椅子とキーボードは、長く使っていたいい感じのものが壊れたのですが、次のいい感じのものが見つかりました。

僕は余りマウスには有線以外こだわりがありませんでした。
ですので、500円ぐらいのジャンクマウスを長く使い捨てていました。

その後色々あって、今は【有線】【腱鞘炎防止】【静音】をポイントに探しています。
その条件のマウスは、1つしか見つけられていないのです。

最近、このマウスに重大な問題を発見してしまいました。
それは、マウスホイールの空転です。
ホイールのゴム部分が緩んできて、軸の部分との摩擦が無くなるようです。

マウス分解して、ホイールを接着するか...。
他のマウスのホイール部品と交換することができるのか...。
はたまた、他のマウスを使うのか...。

僕のマウス探しの旅は長そうです。


DIY精神

ITエンジニアたるもの、「手を動かす気概」がなくてはいけません。
動作が不明確な時、技術で行き詰まった時などがありますよね。
その時、一番有効な手段は「手を動かして確認する」です。
かなり多くの人は「ぼーっと考えている/悩んでいるふり」をしているだけです。

「必要な時に、必要なことのために、自らの手を動かす」
これはまさに『Do It Yourself (DIY)』の精神そのものです。

とはいえ、世の中手を動かせば解決するケースばかりでもありません。
忙しい、必要な機材が手元にない(開発中等)など、ありますよね。
それなら、お金を払って、他人の手を動かして確認すればいいのだと考えています。


DRY原則

とはいえ、何でも手を動かせばいい、というわけではありません。
特に、プログラミングを覚えたばかりの人が陥りがちです。
自分で実装することに拘わって、他人が実装済みの処理を利用しなかったり、
都度コードを書いてしまったりすることは、よくあります。
多くのプログラマが通る道でもあります。

その際に有効なマネジメント技法が『Don't Repeat Your Self(DRY)原則』です。

ただ、何でも共通化すればいい、というわけではありません。

共通化できるコードを見極め、必要な箇所を部品化し、
メンテナンス性を上げると共に、品質の向上を目指す。
それが『DRY原則』の本質です。

『DRY原則』を勘違いしている人は、こういうコードを書きがちです。

 public boolean untiDRY(int pattern) {

     // 共通の処理(前部)

     switch (pattern) {
     case 1: 
         // 個別処理1
         break;

     case 2: 
         // 個別処理2
         break;

        ︙
     }

     // 共通の処理(後部)
 }

これもまた、多くのプログラマの通る道です。
「一部のコードが重複するから」といって、無理やり同じ処理に押し込めるのが正しいコード設計でしょうか?
本当に、それはメンテナンス性を向上させ、拡張性を担保しますか?
案外、『DRY原則』というのは難しいものなのです。


まとめ:車輪の再発明

自ら進んで手を動かすことは尊いことです。
ですが、「車輪の再発明」をする必要はありません。

「車輪の再発明」を避けるのが『DRY原則』の本質です。
何でもかんでも、共通化すればいいというわけではないのです。

しかし、「車輪の再発明」が有用なケースもあります。
それは「学習を目的とする」場合です。
その場合でも、参考になるライブラリやAPIのソースを参照しながらやりましょう。
良いお手本があるのに、1から考え直すのはバカらしいことです。
1から考えるのが目的だ、というのならば話は変わりますが。

DIYとDRY。全く違うことを言っている様で、その本質はとても近いと感じています。

以上!




主催イベント宣伝

2021年7月23日(金)に恒例のオンラインイベントを主催致します。
その名も【超ショート】90秒LT会【2021Summer】です。

夏本番を控えて暑さが増してくるこの季節。
ちょっとヒヤッとする体験をお話して、納涼しませんか?
もしくは、オンラインイベント登壇の試しに、90秒でお話してみませんか?
夏らしいアツい話題は、共通テーマの「推し紹介」でお願いします。
また、どんなイベントになるか見てみたい、という方も参加歓迎!!
他人の目標や登壇を聞くだけでも、勉強になりますよ!

現在、登壇参加者・視聴参加者を募集しております。 上記のイベント名が、イベントのConnpassページへのリンクとなっております。
そのページから、参加登録をお願いします。

また、このイベントは3ヶ月ごとの開催を予定しています。
今回ご都合が悪い方は、是非次回、10月のイベントへの参加をご検討下さい。
宜しくお願い致します。




ミニコーナー:こちらヤマネコシステム技術部三課!

ここは日本のどこかにあるかもしれない「ヤマネコシステム」社。
そこはかとなく、ブラックの香りがするこの会社の日常を、少し覗いてみましょう。

登場人物

三課:受託開発&新サービス開発
 ヒノモト : 主人公 アラサーエンジニア
 ホンドくん : 同僚 どっちかが1年先輩だった気がする
 オラフ先輩 : 社内事情通、噂好き

マスク2

ホンドくん「あー、うっとおしい!早くマスクなしの生活に戻りたい!!」
ヒノモト「デルタプラス株の流行で、ワクチン接種が進んでいた国でもマスク対応が見直されているらしいよ」
ホンドくん「じゃぁ、当分マスクは外せないのか......」
ヒノモト「そもそも、ワクチン打ったからって新型コロナのウイルスのキャリアになる可能性はあるからね」
「発症しないだけで、ウイルスを拡散しないためには、今までと同じ対応が必要だと思うよ」
オナガさん「最近、近所でもマスクしない人ちらほら見かけるようになってきましたね」
ホンドくん「じゃぁ僕もマスクするのやめようかな!」
ゴリタ主任「通勤中と就業中のマスク着用は業務命令だぞ?」
ヒノモト(業務命令なら、マスク手当とか出して欲しいよなぁ)

(つづく)




ITエンジニアの視点で、時事ニュースを5分間で紹介する動画を平日毎日公開してます。
「日々の生活の中にエンジニアリングがある」からこそ、
身近な時事ニュースから学ぶことが重要です。

#ほぼ日ITエンジニアニュース

Comment(8)

コメント

M321-2

単なる興味ですが、マウスを有線にこだわる理由が気になります!
書き方から強い理由がありそうに見えました。

また腱鞘炎対策といえばトラックボールが思い浮かびますが、
採用されていない理由はなにかあるのでしょうか?

M321-2

返信ありがとうございます。
トラックボールはすでに使われているのですね、納得です。
無線も古いものはそういう問題があったのもわかります。


自分はここ10年ほど無線を使い続けていますが、1,2ともかなり改善されているように感じています。
今はLogicoolの MX anywhere 3 (とゲーム用にG502WL)をメインに使っているのですが充電の持ちがすごく伸びています。


このマウスは去年の11月にテレワーク用に購入し、ほぼ毎日仕事とプライベートで使っていますが、2度しか充電していません(購入直後を入れると3度)。
一度のフル充電で3ヶ月以上持つ感じでした。用途的に負荷は軽いですが(SE業兼サブPC用)、1日10時間以上使っています。
以前に使っていた2つ前のバージョン(MX anywere)では2-3週間程度で充電が必要だったので5倍以上持つようになりとても驚いています。
またプライベートの用途がサブPC用なので数分-数十分程度触らないことも多いのですが、こちらもストレスなく復帰しています(こちらは体感なので参考にはならないと思いますが…)。


このあたり(特にバッテリー持ち)は近年の改善が目覚ましい部分だと感じています。
そのためそろそろ有線へのこだわりは見直してもいい時期ではないかと思います。
(ゲーミング用途でさえ無線が有線を上回る性能を出す時代ですし)
まあ安いものではないので機会と予算が揃ったときにはぜひ。

ちけんち

私も有線マウス派なのですが、理由は「軽いから」です。
このあたりは製品によって違うと思いますが、なんとなく無線の方は電池を搭載する関係か、重いのが多い印象です。最近の無線マウスは技術の進歩で軽くなっているのもあるんでしょうかねぇ。

もしもし

再発明する車輪はなぜか四角くなりがちな私です。直そうとすると三角になるという。
レシピ通りに作らずにゴミを製造する、料理音痴に通じるものがあるのかもしれない。

(トラックボールは Kensington 派)

コメントを投稿する