読者です 読者をやめる 読者になる 読者になる

俺の報告

RoomClipを運営するエンジニアの日報(多分)です。

日報 #3 - 開発環境からみるアーキテクチャの抽象化について

本日の報告。

少しスタイルを変えて、僕の好きな抽象的な話もしてみます。

何事も試行錯誤ですね。

あと、本文は10〜15分程度で書くことを心がけた。

適当にしないともたないからね。

 

今日やったこと。

1. 開発環境の構築

2. 一部バグフィックス

3. jsのアーキテクチャ変更

 

特に1について。

 

開発環境を別のパソコンに構築した。

思った以上に苦戦したので、その点を適当に整理して記す。

 

まず凄い具体的な話として、引っかかった部分を記す。

 

1. MAMPへのmemcachedなどアプリインストール

2. ロードDBの構築

3. local固有のconfigをgitignoreする

 

macMAMP上でmacportを利用してmemcachedをインストールすると、下記のようなエラーを返すことがある。

PHP Startup: memcache: Unable to initialize module

Module compiled with module API=xxxxx

PHP    compiled with module API=xxxx

これは1つのパターンだが、終ぞ理由は分からなかった。

いろいろ調べたが、結局brewでもってmemcachedをインストールして何とかした。

この原因は未だ分からず。

また、MAMPを使っているとmysqldのようなプロセスに対してソケットをつかってDBアクセスができなくなるので、

なんだか微妙だなと思った。

 

DB構築やlocalのコンフィグなどは色々と秘匿事項が多いため割愛。

 

 

で、この一連の苦闘を終えた後思ったこと。

今日の問題を抽象的に考えると、当たり前だが、

開発環境は構築対象となる環境に依存してはならないわけだ。

今はVagrantやらcomposerやらがあり、一発でドンみたいな構築方法もあるそうだ。

逐次そういった技術も採用していきたい。

 

でも例えばVM上に環境構築するとか、ちょっと未来にありそうなAMIがローカルでインスタンス化出来るとか、

そういうことが出来たとして、きっとそれでも閉塞にぶつかるんじゃないかと思うと、なんだか不思議な気分になる。

プログラミングの進化過程が手続きとデータの抽象化にあったのをメタファーにするならば、

アーキテクチャの進化過程も構成要素たちの抽象化によってなしうるとして、

では完全に抽象化されたアプリケーションとはなにかと思いを巡らすと、

結局「計算機」としての純粋性しか残らないように思える。

単純な計算機を複雑に組み合わせ、人が扱いやすいようにし、その複雑性を回避するために、結局単純な計算機に戻ろうとするが、

再び人が扱いやすいように変形した結果、複雑になり、、、の繰り返しなのではないかな。

人の処理が計算機のような振る舞いであれば、計算の純粋性をただただ高めるだけで利便性はうなぎ登りだ。

しかし、開発者はそれを求めないんだろうな。

あぁ、それにしても飯を食い過ぎた。

お腹が重たい。