206
109

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

わて「なにっ!?韻を踏むだけで保守性があがるやと!?」

Last updated at Posted at 2020-10-25

無職やめ太郎さんの許可はこれから取ります→相互パクリへ

ある日の会社にて

わて「バイトくん、何してるん?シャボン玉楽しいで?」

バイトくん「何いってるんですか、仕事中ですよ。大概にしてくださいね」

わて「げほげほっ、このシャボン玉液ちょっと美味しい」

バイトくん「・・・」

わて「で、何してるん?」

バイトくん「あー、関数を薄くラッパーして、保守性を高めてるんですよ」

わて「ラッパー?わても好きやで。昔はフロアを沸かしていたもんや。フロアっていうかほんとは風呂なんやけどな」

バイトくん「・・・」

わて「にらまんといてや・・・」

薄くラッパーするってなんなん?

バイトくん「例えばここに Http Request をするライブラリがあるんですね」


const sugoiHttpLibrary = new SugoiHttpLibrary();
const url = 'https://qiita.com';
const response = sugoiHttpLibrary.request('GET', url);

わて「これくらいならわてもなんとなくわかるで。Qiita のサイトにアクセスして Htmlデータをもらってきてるんやろ」

バイトくん「そうです。これで別になんの問題もないんですね」
バイトくん「例えば数ヶ月経って、このライブラリに脆弱性が見つかったりして、使えなくなったりすることもあるじゃないですか」

わて「せやね、、き、、脆弱性が見つかったら大変やもんな!」

バイトくん「・・・そうしたら別のライブラリに変えたりするわけで、こうなるわけです。」


const kashikoiHttpLibrary = new KashikoiHttpLibrary();
const url = 'https://qiita.com';
const response = kashikoiHttpLibrary.getRequest(url);

わて「なるほどな、新しいライブラリに変えたらそうなるな。。。ん?呼び出しメソッドが getRequest に変わっとるで!」
わて「これ、たくさんの画面があったらどうなるん?全部直さなあかんの?」

バイトくん「そうなんです。それってとても大変じゃないですか」

わて「え、そんなんやってられへんやん。ライブラリ変更手当を会社に請求せなあかんやん。申請めんどいから大変やん」

バイトくん「そんな手当ないですよ。。たくさんの修正が大変なんです。なので薄くラッパーしておくんです」

どうやってラッパーするん?

バイトくん「こうやるんです」


class HttpLibraryWrapper {
  const sugoiHttpLibrary = new SugoiHttpLibrary();

  function get(url) {
    const response = sugoiHttpLibrary.request('GET', url);
    return response;
  }
}

const httpLibraryWrapper = new HttpLibraryWrapper();
const url = 'https://qiita.com';
const response = httpLibraryWrapper.get(url);

わて「なんか記述長くなってもたやん。こんなんでdopeにライム刻めるん?」

バイトくん「記述が長くなるんですけど、こうすると中身のライブラリ変えた時にはこうなるんです」


class HttpLibraryWrapper {
  const kashikoiHttpLibrary = new KashikoiHttpLibrary();

  function get(url) {
    const response = kashikoiHttpLibrary.getRequest(url);
    return response;
  }
}

const httpLibraryWrapper = new HttpLibraryWrapper();
const url = 'https://qiita.com';
const response = httpLibraryWrapper.get(url);

わて「なんやて!呼び出し側はまったく変わってへんやん!」

バイトくん「そうです。そうしたらたくさんの画面を直す必要なくなるんですよ」
バイトくん「それにライブラリ側の使い方に癖があったりすると、呼び出し側を一般的なメソッド名にできるメリットもあるんです」

わて「ライブラリによっては変わった使い方するものもあるもんなぁ。それを使いやすくするってこともできるんかあ」
わて「バイトくん、頭ええなぁ、、さすがわてが育てただけあるわぁ」

バイトくん「・・・そうですね、いつも感謝はしてます」

その後

わて「あー、できたで!たくさん画面あったけど、ラッパーしてたからライブラリの入れ替え簡単やったわ!」

バイトくん「お疲れ様です」

わて「ラッパーするって大切やな。保守性が上がることで社内(ハコ)のバイブスもアガったと思うわ、マイメン」

バイトくん「これからうるさくなるな・・・」

〜おしまい〜

スペシャルサンクス

@Yametaro さん
記事の書き方パクらせてもらった。
そして自分は何気ない会話でネタを提供していて、
知らず知らずのうちに相互パクリの状況が完成した。

ワイ「なに!?ライブラリをラップするやと!?」

なんだこれw

206
109
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
206
109

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?