Skip to content
uupaa edited this page May 30, 2017 · 83 revisions

WebModule は JavaScript で部品を作るための金型であり、巨大な建造物を安全に建築する方法を示した工法(フォーマット)です。
環境に応じてダイナミックに変化する部分(コードやフォーマット)に重きを置かず、より抽象的でソリッドな部分(エンジニアリングの哲学)を軸足としたマイクロフレームワークでもあります。

哲学が存在しない世界では何が起きたか。何が起きているか

あなたは、そびえ立つ九龍城のように、継ぎ足し継ぎ足しが繰り返され、「もう一体どこから手を付けたら…」 「なぜ動いているのか不思議」 なコードの山と対峙し、途方に暮れた事はありませんか?

そして 「テストは無い」 「自動テストはないが人力テストはある」 「人力なのでテストに丸々3日かかる。そしてコツが要る」 と言われたり、「設計? ありませんよ? コードがドキュメントです、だってドキュメントをメンテするの大変じゃないですか。JavaDoc のような物で十分ですよ」 と言い訳をする人が居たり、上司から 「前任者は飛んだので、引き継ぎなしで頑張ってくれ。大丈夫、君ならできる」 「訳あってコードはほぼフリーズ状態だ。必要最小限の修正にとどめてくれ。リファクタリングは許可できない」 と言われたり、または、これらと似たような状況に遭遇し、ただただ虚無感に包まれた事はありませんか?

この手の問題は実はとてもありふれています。 あなたがエンジニアの高みを目指すのであれば、正面からこれに取り組み、解決すべき課題と言えるでしょう。

WebModule が提供するもの

WebModule は、

  • JavaScript や AltJS で書かれており
  • Mobile Web Application 向けに最適化された
  • シンプルで
  • テストがあり
  • どこでも動作し
  • 品質が数値化され
  • 仕様と実装が分離した
  • 良質のドキュメントがある

そんな部品群を量産するための、新しいフォーマット(開発フロー, 関連ツール)を提供します。

まずは、WebModule の スライド概要 をご覧ください。

WebModule をベースとしたモジュールを開発する具体的な流れについては ワークフロー考え方 を、 WebModuleで書かれたモジュールの一覧は ModuleList を参照してください。

WebModule の目的

WebModule の目的はモジュールをロードする機能を提供したり、モジュールローダーが読み込めるようなコードの書き方をレクチャーするといったものではありません。

WebModule はモジュール作成後のライフサイクルも含めた保守と品質管理、コンテンツ作成のためのワークフローを大きく前進させる確かなソリューション、JavaScript の開発に有用と思われるパターンイディオムを提供することです。

WebModule とチーム開発

チームで開発を行う際は、チームメンバーそれぞれが作業を進めるためのルールとフォーマットの存在を意識する事が大切です。 フォーマットも何もない状態から開発を進めようとしても、各自の意識のすれ違いに時間と体力を消耗してしまい、目的に集中する体制を整える前に恐らく疲れてしまいます。

モジュールを単位とした機能分割が必要です。
モジュールを開発の基本的な単位と位置付ける事で、チームメンバーによる並行開発と、API Specを契約としたテストが可能になります。

  • モジュールに適切な粒度に分割する
  • API Spec を先に決める ⇨ API(契約)に基づいた並列開発が可能になる
  • 作成したモジュールの再利用が可能になる

さらに、

  • コードの品質を評価する方法がある ⇨ 正しく安全なコードが残る
  • 必要な範囲を自動でテストできる ⇨ コストを掛けずに品質を担保できる
  • 簡単にデプロイできる。どこでも動く事が保証されている ⇨ 安全にデプロイできる

これらはチームで開発を進めるためには必須となる考え方です。

取り入れてみてください

これまで1〜3人規模でシステムを開発してきた方には、上で述べたような事は異文化であり、最初から全てを飲み込むのは難しいと思います。しかし、これらは複数人で開発をする上では避けて通れません。

WebModule は様々なエッセンスでできています。 最初から全てを飲み込むのではなく、部分的に採用できそうな部分がありましたら、ぜひ貴方のプロジェクトにも取り入れてみてください。