ITmedia NEWS > STUDIO >

ITmediaの記事配信システムを作った男 ベルリンからエンジニアの舞台裏とテレワーク原体験を語る(3/3 ページ)

» 2020年06月05日 12時02分 公開
[Masataka KodukaITmedia]
前のページへ 1|2|3       

2000年代初頭のCMS構築

 開発者として筆者はアイティメディアではCMS(Contents Management System、記事作成システム)開発とログ解析システム開発を主に担当した。インフラ面でAWSがなかった時代、プログラミングにおいても現在のようなフレームワーク(Python/Django、Ruby on Rails、PHP/Larabelなど)みたいな、「車輪の再発明」をしなくても済む便利な技術、「データベースを意識せずに開発者は創造的な開発に集中できてハッピー!」的なサービスは存在しないので、データベースをERモデル(Entity-relationship Diagram、データベースの設計図)とDDLから設計し、データベースを操作する“大河ドラマ”SQLをゴリゴリと書き、その上でビジネスロジックを全てゼロからコーディングしていた。O/Rマッピング(オブジェクト関係マッピング)の発想が出てくる数年前の話だ。

 CMSだって現在だったら、WordPressで事足りるものを作ったのかもしれないと思うこともある。当時、さすがにWordPressのようなフリーソフトはなかったが、商用で販売されているCMSがあるというので一度は導入したものの不具合が多発して編集者たちは総スカン。結局はCMSを自社開発する選択をした。そして、このCMS開発経験で、筆者はエンジニアとしてとても多くのことを学んだ。

 筆者はMVC(モデル・ビュー・コントローラー)というデザインパターンのMに当たる部分の主担当だった。物理的なデータベース管理から、そしてデータを管理するERモデルの設計開発保守、そしてそのデータベースを操作する全てのモジュール開発である。

 よく「ERモデルは、現実社会のビジネスロジックをシステムに投影したもの」といわれる。簡単に言えば、「その会社が何でお金を稼いでいるか/稼ごうとしているか、どういう仕事をしているか、その企業戦略と経済活動の根本を十二分に理解して、データベースを設計しましょう」ってことだと筆者は考えている。

 エンジニアのなかには、会社の営業活動に対してあまり理解せず、自らのエンジニアとしての自己満足でシステム開発を進める人も居ないわけではないので、筆者は、このERモデルに関する教訓は、エンジニアが常に自らに問い直すべき、非常に大切な課題と考えている。

 さて、アイティメディアにおけるCMS開発の場合、その利用者はまず、ITmediaの編集者たちだ。その編集者たちの仕事をよくよく理解し、どうすればシステムが彼女/彼らの仕事に役立つのか、できる限り会社の同僚と話をし、その意見をデータベースに投影することに努めた。データをどのテーブルに格納するかなどの設計における判断は、「その後、どういったビジネスが発生する可能性があるか?」「どのような構成にしておけば、将来発生する仕様変更や、機能拡張に強いか?」「そのために最もシンプルなデータベース・デザインは何か?」などなど、ある程度、二手三手先を読んだ設計努力が必要だと思う。

 CMSが出来上がるまでの過渡期には、ブリッジ的に編集者ドリブンでフロントエンドが作られたこともあった。

 アイティメディア勤務時代は、Mさん贈呈のMIDIギターとともに、このCMSデータベースのERモデルを机の前面に貼っていた。しばしばやって来る編集者たち、「小塚さん、今度、こういう企画したいんです。それで、今のCMSをこのように変えてほしいアイデアがあるんです」という声にできる限り真摯に向き合い、素早く回答し、それを最も簡易な方法で迅速に実装するためには、ERモデルと常々向き合うことが大事なのだ。だってそれは会社の仕事を投影したものなのだから。そして、実際に同僚のMとともに、スピーディにその声に応えられた時の喜びは、ITエンジニアという仕事を続ける一番のエネルギーにもなった。

 その後、15年以上が過ぎ、現在外国で生活してコロナ禍でミュージシャンとしてライブ活動の仕事を失ったとき、「せっかくできた時間で、ずっとペンディングしていたジャーナリストとして仕事をやってみたい」という気持ちがあった。ジャーナリストとしての経験は学生時代から音楽雑誌の「ミュージックマガジン」などに書いていた経験があった。またITエンジニアであるにもかかわらず、ITmediaで映画評などを書かせてもらっていたこともあった。

photo 先ほど掲載した記事ワッペンの片隅には何故か自分の似顔絵が描かれている(デザイナーG氏制作)

 ベルリンにおけるコロナ禍に関する自分の記事が、初めてITmediaで公開されたとき。「あれ、なんで、MSNなど他のサイトにも記事が上がってんだろ?」って思ったが、過去、営業部門から記事フィードシステム作成の相談を受けながら、一時苦労してそれを開発した記憶が蘇った。「あー、これ自分が昔開発した記事フィードシステムだ」。ちょっと感動した。

 ドイツはロックダウン緩和でライブ活動が再開しつつある。正直、ライブ活動ができない3カ月間、昔の仲間と昔自分が作ったシステムに助けてもらった感じである。

 自作CMSはデータベース周りのトラブルが結構多く、土曜日早朝からメンテナンスのためにたった一人で早朝から出社することも多かった。CMSリリース直後、データベースが壊れたことがある。ほぼ3日徹夜で必死でデータ復旧した。執筆者のマスターテーブルなどバックアップがないものは紙にプリントアウトされた情報から、再入力した。

 あれだけ苦労したCMSが長い年月を経て、自分に「恩返し」をしてくれた。過去の仕事は絶対に今の自分を裏切らない。そう思うのだ。

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.