Comments (5)
指摘の通り各話情報の増加頻度は非常に高いので,どこかの段階で episodes.yml
を分割しなければならない.
将来的にファイル数を抑えて episodes.yml
を分割する方法としては,例えば以下のやり方がある(細かいところはもっとベターなやり方があるだろう).
- どこかの時点で,
episodes2.yml
などとして,別のファイルに各話情報の半分を移す episode-locations.yml
ファイルを用意して,そのファイルに id からファイル名へのマッピングを書く
from animedb.
書いてある分け方だと、結局episodes.yml
がかなり大きくなると思います。
現状、animedb.yml
が、751,688行あって、1作品あたりepisodes
を除いて20行なので、
751688 - (20 * 10334)
= 545,008行程度になるはずです。
また、episodes.yml
の成長スピードもかなり早く、週に60本以上放映しているため、
episodes
の情報をフルに入力した場合7行あるので、60 * 7
= 420行以上毎週増えていくことになります。
※ 毎週入力できればですが。
結局、ランダム文字列のIDを付与した後に編集作業を行うとすると、
animes.yml
を、追加したい作品名で検索し、id
を見つけるepisodes.yml
を、id
で検索し、追記箇所を見つけるepisodes.yml
に追記する
という手順になるため、episodes/$id.yml
というように、
episodes
ディレクトリ下にanimes.id
のyamlファイルを作っても手間は変わらず、
ファイルサイズを小さくできるのでいいのでは?
from animedb.
@eru
厳密に作業効率がどう変わるかを論じるのは難しいが,基本情報と各話情報を分けると,少なくとも基本情報については見通しが良くなる.
そのため,ファイル分割を前提とした上で,さらに各話情報の編集効率を上げるために,その「各話情報を作品ごとにファイルで分ける」という方式を提案していると解釈する.
その方式を採用すると,ファイルサイズは小さくなるが,当然ファイル数が多くなる.ファイル数が10^3〜10^4 オーダーになってくると,一つのディレクトリで管理することは難しい.
そうなると,年代・クールなどの基準によってさらにディレクトリを分けることになるだろうが,今度はプログラムでデータを扱うのが煩雑になってくる(どのディレクトリに該当ファイルが存在するかをシーケンシャルに確認する必要がある,etc.)
Linux カーネルでもファイル数は 53,647 個程度らしい(ref: 増え続けるLinuxカーネルコード、2016年第1四半期の総行数は2100万超 | マイナビニュース).
Anime DB は今の段階では極少人数で管理すること,これからスタッフやキャラクターも追加することを考慮すると,その判断は少なくとも時期尚早であると思う.
from animedb.
現状のanimedb.yml
ファイルの編集も、エディタで編集していてファイルサイズが大きすぎて、問題が出るような状態ではないので、見通しの良さを求めて分割するのであれば、元の案でいいと思います。
仮に、episodes
をディレクトリに分けて格納するという方法をとるのであれば、animes.id
の頭2文字と使って、Z5bwa8ArLg5
であれば、Z/5/Z5bwa8ArLg5.yml
などにすれば、処理しやすくていいかも知れません。
ここまで書いて、いまさら気づいたのですが、ファイルシステムによっては、ファイル名の大文字・小文字を区別しないので、そこで衝突が起きる可能性があるため、提案した方法は難しいですね…
from animedb.
#46 (comment) の計算で行くと,週に420行増えるとして,作品の増加率を無視すると,1年で 21,840 行しか増えないのか.
episodes
への大規模なマージ作業は基本的には過去の作品のみで完結するので,単純入力作業なら1ファイルで当分良さそう.
from animedb.
Related Issues (20)
- MADB から加筆・修正した差分を明らかにする HOT 2
- Added hit numbers to animedb entries HOT 2
- 「識別名」でない識別子を作品に振る
- Annict から取得した `episodes` の `prefix`,`title`,`literal_title` を修正する HOT 1
- 2017Q1(2017冬アニメ)を入力する
- 2016Q4(2016秋アニメ)の終了日を記入する
- 汎用IMEテキスト辞書形式の読みをカタカナでなくひらがなにして欲しい HOT 2
- 「AはB」の表記揺れについて HOT 1
- みんなのうた「(題名)」の表記揺れについて HOT 2
- その他IME辞書として使ってみて気づいた点について HOT 4
- CSVファイルの誤記について HOT 1
- Windowsが未対応の文字(WAVE DASH等)を変更して欲しい HOT 2
- 2017Q1(2017冬アニメ)の終了日を入力する HOT 2
- 2017Q2(2017春アニメ)を入力する HOT 2
- 2017Q3(2017夏アニメ)を入力する
- 2017Q4(2017秋アニメ)を追加する HOT 3
- 2018Q1(2018冬アニメ)を入力する
- 2018Q2(2018春アニメ)を入力する
- [提案] 日時の表記形式をISO 8601に準拠してはどうか
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from animedb.