この記事では、長年のモバイルエンジニアとしての経験を持つ筆者が、新規プロダクトのバックエンド開発に携わった経験を通して得られた学びと課題について解説しています。
フロントエンド開発とバックエンド開発の間には大きなパラダイムシフトが存在します。バックエンド開発では、無数のクライアントに長期間にわたってサービスを提供するサーバーで動作するコードを記述する必要があるため、パフォーマンスやスケーラビリティ、データベースの知識などが重要となります。
フロントエンドエンジニアはAPI経由でデータのやり取りを行うことが多いため、データベースの知識が希薄になりがちです。しかし、バックエンド開発では、インデックス、正規化、制約、リレーションシップなどの基本的なデータベースの概念に加え、シャーディング、トリガー、デッドロック処理、トランザクション、スケジューリングなどの高度な概念を理解する必要があります。
フロントエンド開発では、ユーザーエクスペリエンスを重視してHTTPステータスコードを処理することが多いですが、バックエンド開発では、標準化されたJSONレスポンスとともに正しいステータスコードを返す必要があります。
マイクロサービスアーキテクチャにおいて、既存のコードを変更することなく、デプロイされたコードに機能を追加/拡張するために使用されるソフトウェアサイドカーの概念について解説しています。
大規模なプロダクト開発では、他のマイクロサービスからデータを取得する必要があり、バックエンド間の呼び出しが発生します。この際、呼び出し先のサービスの障害や停止などを考慮した処理が必要となります。
バックエンド開発では、修正を即座にデプロイできるという利点があります。しかし、本番環境へのデプロイ時には、グラフやダッシュボードを監視し、問題が発生していないか、ユーザーエクスペリエンスに影響が出ていないかを確認する必要があります。
サービスのパフォーマンスやエラー発生率などを監視するために、レスポンスタイム、エラー、スループット、負荷などのグラフを常にチェックする必要があります。
筆者は、ソフトウェア開発に携わるすべての人々が、新しい技術スタックに挑戦し、これまで経験したことのない開発を経験することを推奨しています。
この記事は、モバイルエンジニアがバックエンド開発に携わる際に直面する課題や学びについて、筆者の経験に基づいて解説しています。データベース、HTTPステータスコード、ソフトウェアサイドカー、バックエンド間の呼び出し、デプロイ、監視など、バックエンド開発において重要な概念や注意点について学ぶことができます。
Para outro idioma
do conteúdo fonte
blog.stackademic.com
Principais Insights Extraídos De
by Waleed Arsha... às blog.stackademic.com 10-14-2024
https://blog.stackademic.com/working-on-backend-as-a-seasoned-mobile-engineer-2e2aaf85b019Perguntas Mais Profundas