サービスが出てきている。使って作るべきかの判断が強いられている。これらの判断について個人的に思うことを記す。開発を全て自前でできればいいに越したことはない。利用するか外部APIサービスを利用するかの判断になることだろう。外部APIサービス)について比較/考察する。駆使して実現するって方法がある。この方法はエンジニアにとってはコントリビュートの機会を得られるし、自分が"エンジニアとして成長している"感覚を得ることができる。最新技術に触れながら、サービスも成長していくという意味では理想に近いかもしれない。駆使してサービス運営している企業は多く見受けられる。浸かって開発する方法には以下のようなリスクが存在する。バージョンアップ/メンテナンスを全て自分の責任で行う必要がある。ミドルウェアの更新に追従していかなければならない。ソースや仕様を深くまで理解する必要がある。投げるよりも自分でコーディングしてプルリクすることが求められる。これは場合によって多くの時間をかける必要が出てきてしまう。基本的にはOSSのメンテのための担当者が必要になる。最初の流行に乗っかってイケてるライブラリやミドルウェアを導入したはいいけど、担当者がいなくなって誰もメンテ/バージョンアップできなくなってしまったということが起こりうる。利用は、気軽に利用できる反面、こうしたリスクがあるので慎重に検討して利用したいところだ。サービスを使えば先述のようなデメリットを解消できる。サービス側にサポートを依頼することができる。サービスを使うことを検討してもいいのではないかと思う。完全に無料であるけど、外部APIサービス側は基本的に有料だ。これを高いと見るか安いと見るかは人それぞれだけど、一般的にその技術に対してのサポートがつくと思えば、そのためのスペシャリストを1人雇うことと比べて許せる金額の範囲内であることが多い。外部APIサービスはソースコードがクローズドになっているため、例えばバグの報告をしたところで外部APIサービスの行動に委ねる必要がある。外部APIサービス側のやる気や勢いがなくなっていれば、問題の修正に時間がかかったり、いつまでたっても問題が治らない問題も起こりうる。自分でソース読んで直した方が早かったってオチになる可能性もなくはない。自前でOSSを利用した方がよかったってことも起こる。サービス側に完全に委ねられているので、急に値上げされてしまったり、そのAPI自体がクローズされてしまったということも起こりうる。これら問題に対応するには、信頼できる外部APIサービスを選ぶしかない。自分(たち)が外部APIサービスに対して重要と思われる存在になることで、より外部APIサービスを有利に仕向けることができるようになる必要がある。外部APIサービス側にとって重要な存在になることの重要性を説明するために、簡単な例をあげよう。いう問題がよく挙げられる。リージョンを全ユーザーで使えるようになるのかってのは、完全に運営側に委ねられている。とって重要な存在だと思われることにある。利用がますます広まっていけば、十分この対応がいつかなされる可能性があるわけだ。通じたコミュニケーションが存在するけど、外部APIサービスの利用者同士でコミュニケーションをとって存在を強くさせていくことが求められる。コントリビュートすればそれだけ自分の理想に持っていくことができるけど、外部APIサービスの場合は自分たちが外部APIサービス側にとって重要な存在であると思ってくれなければ、彼らを動かすことはできない。これに関して結局はどのくらいのお金をその外部APIサービスに支払っているかって話で存在の強さが決まる訳なんだけども、1社で存在感を出すにはどうしても限界があるのでコミュニティを通じてみんなの力で重要な存在になっていければいいんじゃないかと思っている。コントリビュートと同じように外部APIサービスのコミュニティ運営をやっている。コミュニティ活動やイベント開催を通して利用ユーザーが密に交流できるようにしている。外部APIサービスの利用について簡単に比較してみた。サービスの機能やサポートに委ねる両者をうまく使い分けて適材適所ができるようになるといいんじゃないかな。