2019年04月10日に初出の投稿

Last modified: 2019-04-10

Lambda and redirects are the best. I can just put my scripts in a folder and they automagically work.

Netlify Dev | Netlify

こういう出来合いの開発環境って、Windows なら LAMP が使われてるけど、OS に制約されない環境を考えたら、自力で作って Git を使うか CI サービスを使うか、あるいはウェブサーバと全く同じ環境を Docker とか仮想化で組むくらいしか知らない。

この Netifly っていうのは、サービスにローカルマシンを合わせるという点では仮想化に近いんだろうし、恐らく最近の流行である serverless 開発(別にレスポンスにサーバを使ってないなんて意味じゃなく、「サーバを意識しないで済むという意味で『ない』ように見える」という意味だ)の一つなのかもしれないが、どうもこう、そもそもなんでそういう環境に対応しなくてはいけないのかという前提が全くなくて、npm、つまりは Node.js というローカルで動く JavaScript プラットフォームが当然のように要求されるというのは、情報セキュリティという観点で言うと非常に気味が悪い。昔、メールに Windows Scripting Host のコードを添付する「マクロウイルス」という古典的な攻撃手法があったけれど、ローカルで JavaScript のコードが Java Web Start アプリケーションやデスクトップ・アプリケーションのごとくブラウザのエンジンなしに動くというのは、それなりにリスクがある。

それと、上記の引用は冒頭に投稿されたコメントの一部だが、"Lambda and redirects" というのがよく分からない。ラムダ関数なんて別に珍しくもなんともないし、リダイレクトができたからって、それが何なのか。ドキュメントを見ると単なる Alias のことみたいだが、そんなのローカルでウェブサーバや処理系を構築してたらなんでも動くだろう。それに、設定方法があまりにも特殊で、httpd とは別のウェブサーバの configuration を覚えなくてはならない。これでは生産性もクソもないし、このサービス以外では全く役に立たない configuration なので、IaaS としては移植性がゼロの単なるロックインになってしまう。

CI とかコラボレーションというのは、もちろん必要なことだとは思う。僕らのように単独で開発する状況ばかりではなく、おおよそシステム開発というものは複数人で行う方が多いだろう(コーダやフロントエンド・エンジニアとのコラボレーションという意味であれば、僕も社内の人々とコラボレーションはしている)。しかし、そのためにコーディングの規約を作ったり共同で使うソースのリポジトリを用意するのはいいが、ここまで汎用性のない設定項目を覚えなくては使えない CI サービスというのは、やはりどれほど先進的な機能を持っていたとしても導入するのは難しい。既に使える人々だけで開発チームを組めるという幸運か、あるいはこのサービスの設定を覚えて駆使できるまでの学習コストを払ってもいいていどの潤沢な工期や予算があるプロジェクトでもなければ、小規模のプロダクションであればあるほど、採用はしづらいと思う。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook