Angular Dartのチュートリアルをようやく終えました。仕事の昼休憩の時間と、夜中に少しずつ進めていたので3日くらいかかったと思います。
やってみた感想
まんまなぞっていっただけなので、理解が怪しいところがたくさんありますが、感想などを上げていきます。ちなみに私はAngular未経験者です(JSでも)。Reactもやってないですし、Vueもやってないです。Knockout.jsをプロダクトで使っているので、MVVMには慣れているほうだと思います。
便利な点
コンポーネント単位でhtml, css, dartがまとめられるのは、わかりやすくていいと思います。再利用性も増すので、細かいコンポーネントを気軽に作れるのが嬉しいですね。
不便な点
Angular Dartでは、アノテーションで色々指定していくのですが、指定項目が多くて初心者的には、そこがかなり混乱します。多機能であるがゆえに、使う機能を宣言するのが面倒というか…。まぁ普段Railsやっているので、便利なgemのinclude用メソッドを呼び出すようなものだと考えたら、そんなでもないのかな?という気もしてきます。
あとはサーバサイドが絡んだチュートリアルではないので、そのあたりはどうするのが正解なのかなというのがまだよくわかっていません。Angularのrouterで使うルーティングと本当にあるURLが被ってはいけないからWeb APIだけにしてhttp://localhost:8080/api/v1/posts
みたいにRESTでJSON返すのが正解なんでしょうけれども。
Streamが便利そう
Angular Dartとは関係なくてDartのほうなんですが、検索でStreamを使ったサンプルがありました。検索キーワードの入力途中で結果を返すやつで、最後の検索結果を取り出して返すので、重複リクエストが発生しても最後のリクエストの結果が反映されるというふうに書かれていました。Streamは他の言語でも耳にすることはあったのですが、実際に使ってみるという機会があんまりなく、よく理解していませんでした。正直、コードを読んでもやっていることはわかるがなんでそうなるのかがわからないという感じでした。
このStreamの説明ページを読んで、await for
で処理を行って結果を返すというのと、チェーンメソッドのあたりの説明を読んで、結構わかった気がしました。使いこなせるよう頑張ろうと思います。合わせてFuture周辺のドキュメントも読んでおきたいと思います。