開発合宿まとめ
開発合宿まとめ
3日目で夜にブログに進捗をあげる元気が完全になくなったので、帰りの機内で開発合宿の顛末を記して、備忘録の代わりとしたい(書き終わったのはさらに2日後)。
3日目
開発合宿は目的や人数によって設定すべき課題が異なる。僕ら二人はVCS-Miradorというアイディアに基づいてデジタルコレクション管理研究支援アプリUrticaを研究の合間に作っているが、相談した結果Electronで開発を進めることになった。その経緯はMirador3がReactに基づいてアプリケショーンとして展開される予定となっているからである。しかし、問題なのはMiradorをいじろうと試みたことがある僕がReactのサーバサイドを支えるnodejsに触ったのは1年前でそれ以後もっぱらコーパスに関心を寄せてpythonしか触っていなかったことと、もう一人の開発仲間は機械学習のエンジニアでガンガンGANを回している(と僕は勝手に思っているが、実際はデータセットを真面目につくって、自然言語処理を機械学習の手法でいろいろなことをしている)ので、「jsみたいな関数型言語!?クロージャは悪い文明!!」という態度表明をしていたことだった。
3日目まではそうしたことに慣れるために彼はElectron本でアプリ作成を行ってみることに、僕はReactのVDOMとComponentの概念を理解してGallicaからManifest.jsonを取ってくるコンポーネントを作ってみるといういかにも実装屋と理論家のマインドでそれぞれ開発準備を行っていた。
教本のチュートリアルアプリを雛形にUrticaの原型となるようなものができあがった。
4日目
この日には雛形で作られたエディタとチャット機能をそれぞれリンクによって紐づけることでいちおうアプリに複数の機能があるという状態にすることができた。しかし、問題はエディタからチャットルームに遷移する際にウィンドウが初期化するので入力したテキストが消えてしまうことがあった。また、Gallicaからフェッチしてきたjsonファイルを描画して表示するのもうまくいかなかった。おたがいに喧喧諤諤の議論をしたものの、互いに論破しあっていくなかで、そもそもjsやreactへの理解がまだまだ足りていないという認識が強まりつつあった。
5日目
基本的にElectron周りを任せっぱなしであったが、エディタの問題を僕がなんとかするということになり、レイアウトやリンクの調整など細かいところをやることとなった。結果的に、エディタの問題はリンク繊維にしている以上、バッファを保存する仕組みを作らないと無理だが、それをメモリに保存しておいて再描画時に出力することを考えないといけないということになった。
あと、突然友人が「アロー演算子すごい! 美しい!」と叫び出し、jsと和解していたことを記しておく。
この日の夜、毎日15時間ほどコーディングし続けていたのでもう無理となって大学関係施設なのにwifiはないがなぜかあった将棋を指す。飛車角落ちで負けたが、面白い将棋となった。
6日目
僕は5日目からgit管理をするのが久しぶりだったので、branchの森で迷っていた。それとは別に、二人でjsDocを書いて締めとしよう、と話し合いできまった。というわけで必要な処理を加えつつ、googleのjsDoc方針に従って今後のアプリ開発に備えた。
結論からいって、1週間集中してjs、react、nodejs、electronを触れられたのはよかった。これくらいまとまった時間がなければなかなか進まなかったのはまちがいない。最終日にウツボの天ぷらを食べたが非常にうまかった。