Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

プロトタイプの仕様議論 #7

Open
ksato9700 opened this issue Jun 14, 2015 · 12 comments
Open

プロトタイプの仕様議論 #7

ksato9700 opened this issue Jun 14, 2015 · 12 comments

Comments

@ksato9700
Copy link
Member

#3 とも関連しますが、aozora.jsonやhinagataの仕様を煮詰めたり、kosakuinのあるべき姿を模索するためにプロトタイプづくりを進めたいと考えています。具体的には

  • パッケージ受け付け、配布サーバ
  • パッケージ投入スクリプト

をまずは考えています。仮に前者を pubserver (publishing server)、後者を aopm (AOzora package manager)と呼びます。これらのツールが満たすべき要件とそれを実現するための仕様をここで議論し、プロトタイプに実装していきたいと思います。

@ksato9700
Copy link
Member Author

なお、pubserver に関しては ksato9700/pubserver で少し作り始めています。

@ksato9700
Copy link
Member Author

pubserverをファイルアップロード対応してみました。

簡単な説明を READMEに書きましたが、zipファイルで包んだテキストとaozora.jsonを送るだけです。アップロードしたメタデータとファイルは/books API経由で見られます。サンプルの仮パッケージはコチラ

もちろんaozora.jsonのフォーマットも仮ですし、テキストもaozora.txtという名前決め打ちですが、ファイルアップの仕組みの確認のために取り敢えずそれで実装してあります。実際にはテキストファイルの名前は任意で複数ファイル可、それをaozora.jsonで指定するのかなと思います。詳細はaozora.jsonで議論させてください。

それで、このpubserverのソースをkosakuin配下に持ってきたいのですが、簡単なプルリクエストではうまくいかない気がします。どうしたら良いでしょうかね。 @takahashim さんあたりの知恵を拝借したいところですが...

@takahashim
Copy link
Contributor

@ksato9700 issueやpull request、Wikiなどを引き継がないのであればforkしてaozorahack下に持ってくるのが簡単なんですが、それでも構いませんか?

@ksato9700
Copy link
Member Author

なるほど。いや、それでも良いかなと思ったのですが、またリポジトリが増えてしまうかなと。ま、説明書きをちゃんとすれば大丈夫ですかね。。。issues, PR, Wikiなどは使っていないので大丈夫です。

@cognitom
Copy link
Member

思ったよりもリポジトリの移管が大変なので、乱立を気にせず、ポコポコ立てちゃうのも手かもしれませんね。

APIサーバと、公開サーバは別という想定でも良いように思いました。例えばですが...

  • 公開サイト: kosakuin
  • APIサーバ: kosakuin-api
  • パッケージ投入スクリプト: kosakuin-cli (あるいは aopm)

みたいなリポジトリ構成はわかりやすいかも?

@ksato9700
Copy link
Member Author

でも、きっとAPIサーバと公開サーバは一緒になるんじゃないかと思います。実際、pubserverでそういう実装になっちゃってます。aopmは分けれるかもですね。それをkosakuinの下で始めても良いのですが。

@cognitom
Copy link
Member

ですね。なんとなく、公開サイトとAPIを違う言語で書く余地を残したいような...? SPAっぽくするなら、フロントとAPIという構成もアリ。
ま、ひとまず、kosakuinの中に入れておいてあとで分けるのでも、構わない気もしてきました。

@ksato9700
Copy link
Member Author

サクッとkosakuinの下に入れられればそれでも良かったのですが、自分でリポジトリ立てて始めてしまったので、aozorahackに持って来るにはそれをそのままforkするのが一番ラクみたいなんですよね。

まずはそうして、取り敢えず全部入りのごちゃ混ぜでプロトタイプするというのでいかがでしょうか?

ある程度まで行くとどうせ作り直したくなるので、その際に機能分割した形で本番実装の為のリポジトリを立てるということで。

@takahashim
Copy link
Contributor

ここでいう「公開サイト」が何を意味しているのかわかりかねますが(#1 (comment) で言うと「青空文庫サイト」になりそうだけど、APIがあるのもここだけなのでちょっとよく分からない)、青空文庫のwebサイトや、それに準じるサイト(β版的なものや私家版的なものを集めたサイトとか)については、完全に静的な構造にしておきたいという要望は少なからずあるかと思います。が、そこでも動的な機能が欲しいという意見も確実にありそうで、これは決着がつかないかと。

APIサーバにしても、Goでやりたい人とJSでやりたい人とJavaでやりたい人とかが出てくると合意がとれる気が全くしない(それぞれ一長一短ある)ので、とりあえず個別の方針はレポジトリ毎に作って、必要な機能は複数のレポジトリにまたがって連携させるような形になるかなあ、と思っています。

@takahashim
Copy link
Contributor

というわけで、pubserverはpubserverで取り込んでおきますね

@cognitom
Copy link
Member

先日、 @ksato9700 さん @key-amb さんとで話していた時は、ひとまず裏青空文庫的な勝手サイトを目指して、揉んでみようという話になっていました。「夜空文庫」という名称案も。

完全に静的な構造

は確かに。その場合、

  • API
  • 静的サイトジェネレータ
  • 出力データ置き場 (gh-pages)

みたいな構成になるでしょうか。静的サイトジェネレータは、ツールさえ整ってくればmakegulpでも構わないかも。

@ksato9700
Copy link
Member Author

@takahashim さん
pubserverのforkありがとうございます。今後はこちらを本拠地とします。

そして、仰るように各種言語でやりたい人が出てくるのかなと思います。そういう方々にも興味を持ってもらう意味でも、オープンな仕様をプロトタイプを通じて固めて行ければなと思っています。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants