グッドからグレートへの行き方

これはマルチパートシリーズの紹介であり、フロントエンド開発プロセスをより効率的でスケーラブルにすることを検討します。

UnsplashのŠtefanŠtefančíkによる「ラップトップと紙のシートについてブレーンストーミングする人々のグループ」

優れた製品を構築することは、しばしば単独の努力ではありません。最も精巧なセットアップには、クリエイティブ、マーケティング、製品、テクノロジーの複数チームが関与します。たとえあなたが1つの会社であったとしても、ユーザーとやり取りして、ユーザーに何が役立つかについてのフィードバックを収集する必要があります。品質と機能の改善に役立つ循環設計プロセスのこの反復フレームワークは、一般的にアジャイル反復ワークフローと呼ばれます。

反復が速くなればなるほど、製品は良くなります。
Smartsheetによる「アジャイル反復ワークフロー」

フロントエンドチームが最初にWebベースの製品の構築を開始したStashAwayでは、立ち上げまでの期間が短縮され、製品開発および管理プロセスはそれほど厳しくありませんでした。製品が成熟し、さらに多くの機能が検討および追加されるにつれて、製品のより優れた、よりスケーラブルなフロントエンドアーキテクチャを構築するプロセスを強化および強化しようとしています。現在の設定では、機能の提供や国の拡張に関して効果的に拡張することはできません。

優れた製品を作成するには、反復ワークフローを完成させる必要があります。これについては多くの製品管理文献がありますが、これはこのシリーズの記事の範囲ではありません。私たちが探求したいのは、プロトタイピングと構築フェーズでの反復をより速くする方法であり、それを行うには、チームの内部プロセスの開発と承認を正式にし、クリエイティブチームと製品チームとより効率的にコラボレーションできるようにする必要があります。前述のように、より広範な製品の反復ワークフローと連携して、継続的な統合と配信フローを利用することで、それを達成できると考えています。

最終的に、方法を命令的にコーディングするのではなく、アプリケーションで実行したいことを表現する宣言型プログラミングパラダイムにアプローチすることを目指しています。そのためには、ビルディングブロックを作成するための基礎を築く必要があります。

UIコンポーネントの開発が別のアクティビティになるように、UIとアプリケーションロジックに対する関心の分離を拡張することから始めます。共通のユーティリティ、独自のユニットスイート、受け入れテスト、回帰テストとともに、独自の中央リポジトリがあります。さまざまなWebサイトやWebアプリ向けに、UIコンポーネントが再利用可能、作成可能、テーマ対応になりました。 Storybookで使用すると、インタラクティブパターンライブラリを作成できます。

UIコンポーネントの外観と動作が本来のとおりになり、楽しく重要なもの(アプリケーションとその動作方法)に集中できるようになると確信しています。 UIコンポーネントを使用して同じプロセスをアプリケーション固有のプロジェクトに適用し、より具体的なテストスイートでカバレッジを最大化できます。これらのテストスイートを使用した場合にのみ、コードのプッシュと展開に対する開発者の信頼を高め、その代わりに反復の速度を向上させることができます。

構成可能なコンポーネントのこの中央リポジトリを使用して、アイデアをプロトタイプ化したり、廊下でのユーザーテストを行ったり、新しい機能をより速いペースで提供することもできます。

ソフトウェアテストレベル

あなたは、テストが重要であるというメッセージを私たちが家に打ち込んでいることに気づくでしょう。ソフトウェアテストはソフトウェア開発の大きなトピックですが、連続配信プロセスの円滑な運用に不可欠な4つのレベルのテスト(ユニット、統合、システム、受け入れ)に焦点を当てましょう。

単体テストを使用して、ソフトウェア内の最小のテスト可能なユニットである個々のコンポーネントを検証します。私たちの場合、これらは通常UIコンポーネントまたはユーティリティヘルパーメソッドです。統合テストは、個々のコンポーネントがグループとしてテストされるときに行われます。たとえば、これはボタンや表示画面を備えた電卓などの機能を意味し、ボタンの押下に応じて正しい番号が表示されることを確認できます。 APIの場合、エンドポイントはデータベース接続を確立して一連のデータを取得できます。

ユニットおよび統合テストでは、通常、ステージング展開に入る前に、ほとんどの重大なバグを取り除きます。内部および外部のテスターが、機能およびビジネス要件(システムおよび受け入れテストのドメイン)への準拠について、完成した統合システムを評価する時間を節約します。ソフトウェアが4つのレベルのテストに合格すると、実稼働環境に展開できます。

これは、フロントエンドチームのプロセスをより効率的にするための計画の概要です。 StashAwayでのフロントエンド開発に関する後続の投稿で、実装の詳細について説明します。乞うご期待!

私たちはチームに参加する優秀な技術者を常に探しています。詳細についてはウェブサイトをご覧ください。お気軽にお問い合わせください。