4

モバイルアプリケーションを構築するためのアルゴリズムを知ることは本当に重要ですか?私は、開発ツールとデザインパターンについての深い理解と、OOPとMVCについての深い知識を持っています。

では、優れたモバイルアプリケーション開発者になるには、ハードコアアルゴリズムを知る必要がありますか?


ゲームを作成したい場合は、そうです。有能であるためには、AIに関連するすべてのアルゴリズムを知っている必要があることは明らかです。しかし、私は単純なデータ駆動型のアプリケーション構築を求めています。

4

4 に答える 4

5

作成するすべてのコンピューター プログラムは、1 つまたは一連のアルゴリズムを実装します。プログラムの品質 (意図的にあいまいな用語) に関心がある場合は、アルゴリズムの品質に関心を持つ必要があります。

たとえば、プログラムを高速にしたい場合 (プログラムが持つ品質) は、同じ問題に対して低速のアルゴリズムよりも高速のアルゴリズムを選択する方が適切です。プログラムを少量の RAM (もう 1 つの品質要因) に収めたい場合は、GB 単位で食い尽くすアルゴリズムではなく、少量の RAM で動作するアルゴリズムを選択するのが最適です。

したがって、ソフトウェア開発者にとって重要な知識には、アルゴリズムの速度、メモリ使用量、および最適化に関心のあるその他すべての品質要因を分析する方法に関する知識が含まれます。もちろん、アルゴリズムを分析する 1 つの方法は、知りたいことを説明するテキストを参照することです。

確かに、優れた開発者になるにはハードコア アルゴリズムを知る必要があります。モバイル アプリケーションの開発に関しては、私の信念を変える理由はないと思います。もちろん、存在する可能性のあるすべてのアルゴリズムについてすべてを知っているとは思いませんが、すべての基本的なテキストブックに記載されている主要なアルゴリズムと、アプリケーションドメインに固有のアルゴリズムについて知っておく必要があります。 !

于 2012-06-22T12:50:55.110 に答える
0

モバイルエリアであるかどうかは関係ないと思います。常に最善の解決策を達成するように努める必要があります(完璧な解決策はありません)。特にモバイル分野では、パフォーマンスが非常に重要です。これは、小型デバイスについて話しているためです。近年、ハードウェアが大幅に向上していますが、常に特別な注意を払う必要があります。私はいつもメモリリークを使用して、自分の仕事に何か問題がないかどうかを確認しています。また、ヒープメモリをチェックして、メモリを消費しすぎているものがないかどうかを確認します。バッテリーも問題であり、アプリケーションが使いすぎていないかどうかもテストする必要があります。

現在、私はアプリケーションのアーキテクチャに本当に焦点を合わせていますが、現在の標準(少なくとも私自身)で動作するアプリケーションでは十分ではありません。パターンを知ることは強力なツールであり、それらについて読む必要があります(最高の1つはこれです1)。最近の主な要因はメンテナンスのコストであり、コードの再利用性とクリーン性を最大限に高めるように努める必要があります。クライアントが仕様を変更することを常に想定し、将来誰かがあなたのコードを維持することを常に念頭に置いてください。したがって、長いメソッドや複雑なコードは避けてください(あなたがそれをしなければならない場合を除く)。また、コメントを残すことを忘れないでください。たとえ何かが本当に単純であっても、謙虚になりましょう... 1か月で、その「単純な」ものが何をしたかわからなくなるかもしれません。これらのことは、プロジェクトを最初から開始する場合はかなり簡単に実現できますが、プロジェクトが1週間で本番環境に移行するときに、それらについて考える必要がある場合は苦痛になります。

それであなたの質問に関して: 良いモバイルアプリケーション開発者になるために筋金入りのアルゴリズムを知る必要がありますか?

私の答えは次のとおりです。いいえ、役に立ちますが、アルゴリズム以外にも、開発時に重要な部分があります。

于 2012-06-22T13:37:51.953 に答える
0

プラットフォームが小さく、より多くのリソースが制約されているほど、アルゴリズムを知ることがより重要になります。したがって、モバイルではさらに重要になります。

于 2012-06-22T15:54:25.263 に答える
0

優れたアルゴリズムは、携帯電話のバッテリー消費量やメモリ使用量に直接影響を与える可能性があります。すべての開発者は、可能な限り最高のアルゴリズムを使用するよう努めるべきですが、それが絶対に必要というわけではありません。

于 2012-06-22T14:16:14.243 に答える