全2610文字
PR

 プログラミング不要、すなわちノーコードでアプリを開発・運用・分析できるプラットフォームが「Yappli」だ。最近はテレビCMの積極的な出稿で一般への認知度を高めている。導入企業は600社を超え、2022年5月時点でのアプリ数は730弱、アプリの総ダウンロード数は同年1月に1億を超えた。

 Yappliを提供するヤプリが創業したのは2013年(当時の社名はファストメディア、現社名は2017年から)。創業時のYappliのサービスは、同社の共同創業者である佐野将史氏(現取締役)がプログラミング言語「PHP」を使ってほぼ独力でつくり上げた。

 Yappliのシステムは、大きく「コンテンツ管理システム(CMS)」と「アプリ用API(アプリケーション・プログラミング・インターフェース)サーバー」から構成される。ユーザー企業のアプリ運用担当者は、CMSを使ってアプリのデザインや機能を設定し、この情報がデータベースに保存される。アプリは、APIサーバーを経由してデータベースの情報を読み出し、デザインや機能に反映する。これにより、ユーザー企業独自のアプリを実現する仕組みだ。

Yappliのシステム構成
Yappliのシステム構成
[画像のクリックで拡大表示]

創業時のPHPコードが技術的負債に

 佐野氏がPHPで書いたコードは一風変わった特徴を持っていた。フレームワークを使わない、いわゆる「生のPHP」で書かれていたのだ。しかもクラスや関数をほぼ使わず、テストも用意されていなかった。現在、CMSを担当するプロダクト開発本部エンジニアの森谷洋祐氏は、これを「天才が書いたコード」と評する。佐野氏の頭の中では、きちんと整合性が保たれていたという意味だ。

 本来クラスや関数を使うべきところは、他のコードをインクルード(取り込み)することで機能を実現していた。「ルール自体は明確」(森谷氏)なので、他のエンジニアがYappliに機能を追加するときは、このルールに従ってPHPのコードを書いていた。

 こうした無駄をそぎ落としたコードの書き方は、少しでも早くシステムを完成させなければならない創業フェーズには最適だった。ところが、Yappliの拡大フェーズではこれが裏目に出た。ユーザー数の増加によりシステムへの負荷が高まり、2017年ごろにはシステムが頻繁にダウンするようになってしまったのだ。

 既存のPHPコードは重複が多く、修正の際には複数箇所のコードを直さなければならなかった。またテストもなく静的解析もできなかった。保守性に大きな難があったのだ。「これでは5年、10年は戦えない」という強い意見がエンジニアの間から出た。

 たび重なるトラブルに対処するため同社は、それまでの「攻めの開発」の姿勢を改め、いったん新機能の開発を中断し、システムの改善に専念する「守りの開発」を選択した。インフラの強化や事故検知の仕組みの強化などに加え、PHPで書かれたシステムそのものを刷新することにした。新しいシステムの構築言語として選んだのが「Go」だ。

 Goを選んだ理由は、まず型が厳密である点だ。最近のPHPでは型の機能が整備されてきているが、当初から使っていたバージョンのPHPは型によるチェックが十分ではなく、実行して初めてエラーが分かることもあった。「それはもう許されないフェーズになっていた」(森谷氏)