カレンダー

2024/03
     
2930
31      

広告

Twitter

記事検索

ランダムボタン

高い抽象度

by 唐草 [2017/03/14]



 ここのところライブラリを作るのが苦手だと痛感している。
 ここで言うライブラリは、図書館のことではない。むしろ、図書館を建てる個人ってなんだよ?という話だ。ぼくが言っているのは、コンピュータ界隈のライブラリ。
 コンピュータというかプログラムの世界でライブラリと呼ばれるものは、ざっくりまとめると「よく使う機能の集合」という意味に近い。イメージとしては、便利ツールのようなものだ。
 ひとつ例を挙げよう。プログラムを書いていると、ファイルの読み書きというのは頻出の操作だ。アプリを使っているときに何気なく保存をしているが、裏ではいくつものコードが動いている。保存ダイアログを出したり、上書き確認をしてきたりというのは、おなじみだろう。滅多に見られないものとして、ディスクの空き容量チェックとかそんなコードも動いている。
 これを毎回、1から書くのは面倒。だから、使い回せる形で準備しておこうという発想となった。そう言うよく使う機能の集合が、ライブラリと呼ばれる。Web界隈ではJavascriptの使い方を革命的に進化させた"jQuery"なんかは、有名なライブラリのひとつだ。
 ぼくも仕事でプログラムを書いている。でも書いているコードは、ある目的に特化したアプリケーション向けでしかない。先に挙げてきたような汎用性を重視した使い回せるコードを書いた経験は、まったくない。
 でも次の案件は、今までに無く抽象度の高い内容となった。ぼくからすると、ライブラリを作ってくれと頼まれているのとほぼ同義である。
 これまでは、汎用性を無視して好き勝手にコードを書いてきた。ところが、次の案件では今までのやり方が全然通じない。求められる高い抽象度に対して、どうアプローチするべきなのかが見えてこない。
 数学で例えると、問題を解く側から、公式を作る側へ移されたような感じだ。