0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Angularで約3年開発してみて上手くいったこと、上手くいかなかったこと

Posted at

はじめに

この記事がQiita初投稿となります。
拙い文章となりますがもしよかったら見ていってください。
それと私はAngularを今回触りましたが、React/Vue.jsなど他のSPAについてはよく知らないため、Angularでいい悪いと思ったことが他のフレームワークでも当たり前のことだったら教えていただけると嬉しいです。

プロジェクト概要

  • 大企業で10年以上使われていた基幹システムのリプレースプロジェクト
  • 多いときで10人くらいの規模のプロジェクト
  • Angularには当時一緒に開発していたベンダーの意向で決定
  • 最初はアジャイル開発という話だったが、結局ウォーターフォールで開発がすすめられた

本題

まずは上手くいかなかったことから

上手くいかなかったこと

最近のフレームワーク等のバージョンアップのスピードに企業のフットワークが着いていけない

最近のフレームワークやライブラリのバージョンアップのスピードは昔と比べてかなり早く、ウォーターフォールの開発に1年以上かけていると危うくリリース時にはサポート終了間近ということがある。
今回もたった3年ほどでAngular Materialの大規模改修が2度入り、それなりに苦労をした
ウォーターフォール開発のためソースに変更がないタイミングを中々見つけることができず、PGが一通り完了したタイミングでバージョンをあげることになった。

結論

どんどん変わる環境についていけるように日々の情報収集やスキルアップを怠らない
アジャイル開発のほうが相性がいいかも・・・?(ここはやったことないので分かりません)

経験者がいないのにAngularを選んでしまった

日本では圧倒的にAngularの人気がないことが以下のGoogleTrendsの内容からわかる
Google トレンドで「Angular, React, Vue.js - 日本、過去 12 か月間」の 人気度の動向 を見る
image.png
そのため情報収集をする際に日本語の記事が見つかりにくく、あまり得意でない英語の記事を読むことになった。

結論

技術的に特定のフレームワークがよいなどがなければ人気のものを選ぶほうが楽そう

AIエディタの導入ができなかった

こちらも企業に求められるような問題だが、入っていればかなり変わったと思うので書いておく。
途中からCopilotChatが導入されたためAIとの対話自体はできるようになり、個人的にはかなり作業がスムーズとなった。
前述した英語の記事等も勝手に翻訳して教えてくれるため困ることが少なくなった。
しかし、プロジェクト全体を把握してヒントをくれるわけではないため、都度コピペ等を行うのが若干手間だった。
また、スキルの低いメンバはChatに投げるコードの範囲を誤っていたりして思いのほか効率が上がっていないように見えた。
個人的にはAIエディタ導入の大きな強みとしてテストコードの作成だと感じているが、プロジェクト当初の遅延からずっと手動テストが続けられてしまっているためデグレが幾度となく発生していた。

結論

AIエディタを導入しよう
人の単価1%くらいで導入できて作業効率5%上がるだけで大儲け

上手くいったこと

Angular Materialがある

個人的にはとても使いやすいと思った。
サンプルが充実していて困ったときには大体のことが解決できた。
見た目も比較的簡単に綺麗になるためデザイナーがいないにも関わらず地味な画面にはならなかった。
今回Figmaなども使えなかったためとても助かった。

結論

Angular Materialは使いやすい

蜜結合/疎結合について深く考えるキッカケになった

私自身はこれまであまり疎結合に作るということの具体的な手法の経験が足りなかった。
Angularではコンポーネントを分けて製造を行うことで資源の再利用などを積極的に行えるようにした。
その際、最初は子コンポーネントが親に依存するような形を含めて作ってしまった。
そのような作りだと使いまわす際の制限が生まれ、修正も行いにくくなるためやってはいけないケースだということを学んだ。

結論

コンポーネントが分かれやすいのでより疎結合に作ることが重要になる

まとめ

Angularのフレームワーク自体はとてもいいものでもう一度同じプロジェクトを今の知識で始めたら圧倒的にいいものが作れるという自信がある。
せっかく得た知識を活用してまたAngularのプロジェクトに参画したいと思っている。
これからの時代、AIを開発やプロダクトにも上手く活用できるかがカギになると感じている。

ここまでお読みいただきありがとうございました。
誰かの参考や考えるキッカケになったら嬉しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?