アプリケーション開発は日々ますます複雑になっているようです。 これらの複雑さは、エンドユーザーエクスペリエンスの向上につながる可能性がありますが、全体的な生産性を妨げる可能性もあります。 間違いなく、効果的なツールは、これらの課題にはるかに簡単に取り組むのに役立ちます。 優れたツールはユーザーフレンドリーで、クロスプラットフォームで動作し、多言語をサポートしています。
さらに、最高のツールは、シームレスに関与し続けながら、実際に楽しく使用できます。 これが、統合プラットフォームをアプリケーション開発にとって非常に価値のあるものにしている理由ですが、優れたソリューションを見たとき、どのように認識しますか?
ツールとプラットフォームを評価する際に探すべきものは次のとおりです。
1)コラボレーションとユーザーフレンドリーな環境
1 つのユニファイド ワークスペース内で作業している場合でも、複数のワークスペース内で作業している場合でも、強力なコラボレーションを促進することが不可欠です。 開発プロジェクトには多くの利害関係者がいます。 また、個々の機能、特に製品全体については、多数のチームメンバーからの貢献に依存しています。
ここで役立つのが開発環境です。 環境は、チームがロードマップに沿ってタスク、プロジェクト、マイルストーン間をまとまって移行するのに役立ちます。 また、開発者がアプリケーションのソースコードをエンドツーエンドで管理するのにも役立ちます。 理想的な開発環境を探すには、開発サーバー、ステージング サーバー、および運用サーバーをバンドルする環境を含める必要があります。 さらに、ツーリング全体のフットプリントを削減できる包括的な環境を探してください。 次の環境機能に優先順位を付けます。
- タスクの自動化
- ライティング
- テスティング
- デバッグ
- パッチ
- 更新
- コードのコンパイル
- コードのマージ
- 進行中のコードの表示とピアレビュー
アプリケーション コードの各スニペットは不可欠であるため、共有が非常に役立ちます。 さらに、GitHub、GitLab、Bitbucket などの複数のリポジトリをサポートできる環境は、チームがより効果的にコーディングするのに役立ちます。 また、独自の要件を持つさまざまなテクノロジを活用することもできます。 多数の機能を単一のソリューション(IDEなど)に統合できれば素晴らしいと思いませんか?
全体として、日常のタスクに取り組むのに役立つ環境が必要になります。 すべての技術的利害関係者を歓迎する必要があります。 また、日常的に楽しんで使用するものでなければなりません。 優れたツールは摩擦を減らします—そして環境があなたの顔に笑顔をもたらすことができるという考えは今のところフェッチされていません。 コミットする前に、まず「ニーズ」チェックリストを作成し、ワークフローを評価することを忘れないでください(しゃれは意図されていません)。
2)ラズベリーの互換性
Kubernetes(K8s)がそれほど重要な理由は何ですか? 現在、 世界中で390万人以上のグローバルK8s開発者.この採用は、マイクロサービスとコンテナ化と歩調を合わせて成長しています。 Kubernetesが世界をリードするコンテナオーケストレーションプラットフォームであることは驚くべきことではありません。
実際、昨年のCloud Native Computing Foundation(CNCF)調査の回答者の67%がK8を本番環境で使用しています。 世界的には、バックエンド開発者の31%もK8を活用しているため、あなたも活用する可能性はかなり高いです。 Kubernetes の統合が必要な場合は、Kubernetes が組み込まれたツールやプラットフォームが必要になります。
3) 幅広いOS・ハードウェア対応
当たり前のように思えますが、開発ツールが役立つには、マシンと互換性がある必要があります。 デスクトップOSに適したダウンロードパッケージを選択する必要があります—Windows、macOS、またはLinuxディストリビューションを実行しているかどうか。
コラボレーションの観点からは、すべての主要なオペレーティングシステムをサポートするアプリケーションははるかに価値があります。 この柔軟性は、さまざまなワークステーション設定を持つ開発者がそれを使用できることを意味し、採用を促進するのにも役立ちます。 お気に入りの開発者ツールを誰もが使用できる場合、ロビー活動を行うのははるかに簡単です。 さらに、1つのプラットフォームで他の開発者と一緒に作業することは、2つの根本的に異なるOS固有のツール間に「架け橋」を構築するよりもはるかに簡単です。
OSはさておき、多くのアプリには、AppleのMシリーズArmプロセッサなど、特定のハードウェアコンポーネントに合わせたバイナリがあります。 代替パッケージは x86 アーキテクチャを好むかもしれません。 これらのカスタマイズされたインストールは、ユニバーサルインストールでは得られないパフォーマンスの最適化を提供できます。 また、効果的に動作するために必要な低レベルのアクセス許可とシステム アクセスをアプリケーションに付与するためにも不可欠です。
4)多言語サポート
コンテナーを使用する前は、目的の言語またはフレームワークを開発用コンピューターにローカルにインストールする必要がありました。 これには、多くの場合、各言語に固有の独自のパッケージマネージャーが必要でした。 残念ながら、バージョンのアップグレードに失敗すると、特定の言語が使用できなくなり、削除が困難になる可能性があります。 これにより、時間の経過とともにOSが肥大化し、最終的には新規インストールが必要になる可能性があります。
今日、あります 何百ものプログラミング言語 さまざまな人気があります。 それらすべてをサポートできるツールはありませんが、適切なツールは、JavaScript、Python、Java、C、C ++、C#、PHPなどの最も重い打者をサポートする必要があります。 5年前でさえ、多くの開発者が 平均7言語 プロジェクトごと。
最も重要な言語は、現在使用している言語です。 そして、それはすぐに変わる可能性があります! それを考慮してください スウィフトとラスト 非常に望まれている言語ですが、Kotlinも勢いを増しています。 ツールは、制限的ではなく、開発スキルセットを成長させ、拡張できるようにする必要があります。 結局のところ、開発はしばしば探索的なプロセスです。
5)簡単なデバッグ
関数型コードを書くのは難しいですが、「クリーンな」コードを書くことはさらに難しい場合があります。 最高の開発者でさえ間違いを犯し、ソースコードが拡大するにつれて、それらの小さなグレムリンを発見するのはますます難しくなります。 ソフトウェアのバグは、開発が進むにつれて特定(および修正)するのに膨大な時間がかかることがあります。 開発者の総帯域幅の最大50%.
また、コーディングの問題がコアサービスに悪影響を与える可能性があるため、ユーザーを念頭に置く必要があります。 残念ながら、見逃したバグは停止を引き起こし、非常に現実的な方法で人々に影響を与える可能性があります。 したがって、バグは深刻な結果をもたらす可能性があり、デバッグはすべてのユーザーにとって非常に重要であることを覚えておくことが重要です。
適切なツールは、このプロセスを合理化する必要があります。 シフトレフトテストとリアルタイムリンティングは、生産前の問題をキャッチするための優れたアプローチです。 開発者はここで全体的により良い仕事をしていますが、まだ改善の余地があります。 たとえば、開発者は通常、 1,000 行のコードあたり 70 個のバグ.15 個のバグが、そこから運用環境のエンド ユーザーに届きます。
バグの修正には、コード行を記述するよりも 30 倍の時間がかかる場合があるため、自動化、コラボレーション、およびターゲットを絞ったデバッグ機能が重要です。 デバッグ時間をすべて他の開発タスクに費やすことができます。 その後、新機能のリリースとユーザーエクスペリエンスの向上に集中できます。
6)シームレスな技術スタック統合
この BYOS の世界では、プラットフォームやアプリケーションを断片的に使用しているときに断片化に遭遇するのは簡単です。 これらのアプローチでは、多くの場合、回避策が必要になるか、せいぜいウィンドウ間を移動して作業を完了する必要があります。
その意味で、統合とは、あるツールやテクノロジーが別のツールやテクノロジーとうまく噛み合うことを意味するだけではありません。 完全な統合とは、1 つのインターフェイスでマルチプラットフォーム機能を使用できるシナリオを表します。
日常的なタスクでさえアプリ間を行き来するのはイライラします。 そのため、API駆動型サービスプラットフォームが非常に人気があり、主要ベンダーがエコシステムをパートナーやコミュニティ開発者に開放しています。 プラットフォームは生産性を高め、両手を広げた外部統合を歓迎する必要があります。 同様に、社内環境と運用環境に適合する必要があります。
これは、インディー開発者またはオープンソースの貢献者である場合に重要です。 しかし、それは大企業で働く人々にとって不可欠になっています。 平均187件以上の申請.したがって、ツールを多数のテクノロジーとうまく連携させる必要があります。
要件を知る
ニーズに基づいたツーリング戦略を構築することが重要です。 あなたが孤独な開発者であろうと、大規模な開発チームのメンバーであろうと、時間をかけて座って現在の状況を評価してください。 何が機能していますか? ツーリング戦略はどこで改善できますか? フィードバックを収集し、意思決定を行う際にそれらの教訓を適用します。
私たちは多くのフィードバックを聞いており、Docker Desktopの開発中にバックエンド開発者のニーズを考慮しました。 私たちの目標は、あなたとあなたのチームがあなたのアプリケーションを簡単に構築、共有、実行できるようにすることであり、私たちは常にデスクトップをより良くするよう努めています。 必ずチェックアウトしてください 私たちの公開ロードマップ そして、あなたが最も見たいと思う機能についてのあなたの提案を共有してください。
Docker Desktop (Windows、macOS、 そして今リナックス)は、ローカルK8sサポート、ドッカーCLI、 ドッカー拡張機能(ベータ版)、コンテナ管理、 開発環境 (プレビュー)、そしてあなたの生産性を維持するためにもっと。 チェックアウト 私たちのドキュメント Docker デスクトップによって開発がより楽しくなる方法について説明します。