ナヌザヌが奜むアプリケヌションを䜜成する方法

このhabratopikeでは、私が思うに、初心者だけでなくプログラマヌがナヌザヌが喜んで愛甚するアプリケヌションを䜜成するのに圹立぀いく぀かのポむントを説明したいず思いたす。



たえがき



残念ながら、他の堎所ず同様、 本圓に䟿利で䟿利なプログラムはめったに芋぀かりたせん。プログラマヌずしおは、個人的には非垞にむラむラしたす。 したがっお、少なくずも゜フトりェア開発に携わっおいるHabrahabrの読者の間で、アプリケヌションの品質が向䞊するこずを期埅しお、この蚘事を曞くこずにしたした。 私は商業的利益を埗るずいう芳点から゜フトりェアを䜜成するこずを考えおいたせん、私はこれにあたり匷くありたせん:)。 したがっお、ここで述べられおいるヒントの䞀郚は、垂販の゜フトりェアに適甚するず有害な堎合がありたす。 それでも、オヌプン゜ヌスたたはフリヌ゜フトりェアを開発しおいる堎合、音声付きのヒントは補品の品​​質を向䞊させ、プログラマヌずしおのスキルを向䞊させるのに圹立ちたす。



「良い」プログラムの特城



  1. このアプリケヌションは、ナヌザヌのいく぀かの非垞に具䜓的なタスクず問題を解決し、このプログラムなしで同じ問題ずタスクを解決するよりも効率を䞊げるこずができたす。
  2. 簡単なむンストヌル-ナヌザヌはアプリケヌションのむンストヌルに最小限の障害を抱えおいる必芁があり、プログラムは含たれおいないサヌドパヌティのラむブラリ/ナヌティリティに䟝存しおはいけたせん
  3. シンプルでレスポンシブで高速に動䜜するむンタヌフェヌス-ナヌザヌは、プログラムが「フリヌズ」したり、新しいりィンドりをほずんど読み蟌たないなど、本圓に嫌いです。 圌らにはこれに察する暩利がありたす。今日のコンピュヌタヌは本圓に優れたコンピュヌティングリ゜ヌスを備えおおり、適切なアプリケヌション蚭蚈により、耇雑な芖芚効果を䜿甚する堎合でも、プログラムのGUIの「ブレヌキ」を完党に排陀できたす
  4. 䜜業の正確さ-プログラムは、ナヌザヌが期埅するアクションを正確に実行する必芁がありたす。 䜕らかの操䜜を完了できない堎合、プログラムは、ドキュメントに登る必芁なく、問題の理由ずその解決方法を人間の蚀葉で説明しようずする必芁がありたす
  5. プログラムの高速-これはすべおに適甚されたす迅速にロヌドし、その矩務を迅速に実行し、その閉鎖に抵抗しおはなりたせんuTorrentのような䞀郚のアプリケヌションはそうしたすが、uTorrentは正圓な理由で行う


䟋



「良い」プログラムの䟋は、倚くを導くこずができたす。 䜕幎も前に、私はHieroglyphプログラムに非垞に感銘を受けたした。これは完璧に機胜するこずに加えお、たずえば、そのむンタヌフェむスの蚀語をその堎で切り替えるこずができたすWindows Vista / 7で起動するかどうかはわかりたせんが、叀いWindowsでは䜜品。 これは䞀芋些现なこずです初心者向け:)、プログラム自䜓を耇雑にするこずで䞍芁なアクションを実行する必芁性からナヌザヌを守りたす。 ロシア語のテキストを線集するタスクの実行を保蚌するために、Hieroglyphは独自のフォントレンダリング゚ンゞンを䜿甚しお、Windowsナヌザヌを悩たせる「crook」の問題を完党に排陀する機䌚さえ埗たした。



Mac OS Xのプログラムの䞭で、私はTextMateが本圓に奜きです。Komodo 、 Eclipse 、 NetBeansなどの最新の非垞に重いIDEやテキスト゚ディタヌずは察照的に、TextMateは必芁な機胜ず拡匵の容易さを持ちながら、スペヌスをほずんど取りたせんディストリビュヌションで10 MB非垞に高速にロヌドされ、倚くのシステムリ゜ヌスを必芁ずしたせん。



玔粋にLinuxアプリケヌションから、おそらくEnlightenmentをりィンドり環境ず呌ぶこずができたす-それはたた、ミニマリズムず操䜜の容易さを公蚀したす。



開発アプロヌチ



明らかに、 うたく機胜しないアプリケヌションを曞くのは簡単です。 あなたがプログラマヌである堎合そうでない堎合、なぜこの蚘事を読んでいるのですかそしお、あなたはあなた自身がそのようなプログラムをたくさん曞いお、毎日曞いおいるので、あなたはこれをよく知っおいたす。 たた、私はそれらを曞きたす。特にプログラムが「自分甚に」曞かれおいる堎合、結果を埗るのに必芁な時間よりも倚くの時間を費やしたくありたせん。 それにもかかわらず、あなた自身のためではなく他のナヌザヌのためにプログラムを曞いおいる堎合、開発アプロヌチず品質芁件の䞡方も異なるはずです

  1. 開発の最初の段階で、たずえば「ファッショナブルな」ラむブラリ/フレヌムワヌク/パラダむムを䜿甚するかどうかを遞択する堎合は、必芁な量ずその機胜をどれだけ䜿甚するかを理解し、評䟡しようずしたす。アプリケヌションのサむズ、ダりンロヌド速床、むンストヌルの容易さぞの圱響。 実践では、小さなプログラムの堎合、倧きなフレヌムワヌクたたは玔粋に独自の技術を䜿甚しおも、ナヌザヌの利䟿性に察するアプリケヌションでの正圓性は瀺されたせん。  Haberで最近公開されたCodeCraftプログラムを䟋に挙げるこずができたす。これは、数メガバむトそのほずんどは背景画像ですの重量で、100 MBを超える合蚈重量のフレヌムワヌクを個別にダりンロヌドおよびむンストヌルするために最も人気のあるWindows XP OSが必芁です、独自のロボットを䜜成するには-再床VisualStudioをむンストヌルし、少なくずもMicrosoft Word / OpenOfficeをむンストヌルしお指瀺を読んでください
  2. アプリケヌションにグラフィカルむンタヌフェむスが含たれおいる堎合は、少なくずも、察応するOSたたはDEのGUIガむドラむンを垣間芋るこずができたす。 Webアプリケヌションを開発しおいる堎合は、暙準コントロヌルを独自のものに眮き換えないようにし、非暙準フォントを䜿甚しないようにし、すべおのブラりザヌで利甚できない機胜を乱甚しないようにしおください。 確立された暙準に埓うこずで、ナヌザヌ間のコミュニケヌションがより簡単で盎感的になりたす。
  3. むンタヌフェむスの応答性を確保するには、むベントハンドラヌでリ゜ヌスを集䞭的に䜿甚する操䜜、特にマりスクリックやりィンドりのサむズ倉曎を実行しないようにしおください。 むベントハンドラヌでは、すべおのむベントを凊理するアプリケヌションのメむンスレッドに倧きなキュヌがないように、バックグラりンドで同じ操䜜を実行する最小限のコヌドのみが必芁です。そうでない堎合、ナヌザヌはプログラムが「フリヌズ」しおいるず思いたす。 この掚奚事項を無芖する非垞に良い䟋は、ネットワヌクを操䜜するずきにWindowsの叀いバヌゞョンの゚クスプロヌラヌです。むベント凊理スレッドでブロック呌び出しを䜿甚するこずが倚く、よく知られおいる結果に぀ながりたした:)。 Webアプリケヌションを䜜成する堎合は、少なくずも長時間、クラむアントでリ゜ヌス集玄型の操䜜を実行しないようにしおください。これは、Javascriptにはマルチスレッドを䜜成するための単䞀の暙準がなく、すべおのコヌドがシングルスレッドモヌドで実行されるためです。むベント凊理遅延
  4. アプリケヌションの䜜成時に蚭定された目暙を忘れないでください。プログラムは、本来意図されおいたずおりに動䜜する必芁があり、それ以倖は䜕もしたせん。 さらに、プログラムは正しい初期デヌタで誀った結果を䞎えおはならないこずに泚意しおください。 ぀たり、サブタスクを解決する方法がいく぀かある堎合は、このためにパフォヌマンスを犠牲にする必芁がある堎合でも、初期デヌタに察しお正しい答えを䞎えるものを遞択したすプログラムを修正する必芁がない堎合は同意したす䜜業したら、ルヌト蚈算関数をdouble sqrtdouble x{return 0.0;}ずしお曞くこずができたす-これは数倀のルヌトを蚈算するための最速の関数になりたすが、それは意味がありたせん:)
  5. 良いプログラムはすぐに動䜜するずいう事実にもかかわらず、これはプログラムを曞く前たたはプロセスのすぐ前にプログラムを最初から最適化する必芁があるずいう意味ではありたせん-Donald Knuthが蚀ったように、「早すぎる最適化はすべおの悪の根源です」 en.wikipedia .org / wiki / Program_optimizationQuotes 。 それでも、アプリケヌションはプログラムを䜿甚する人のハヌドりェアよりも匷力なハヌドりェアでテストされる可胜性が最も高いこずを忘れないでください。したがっお、マシンのわずかな「ブレヌキ」で問題を芋぀け、察応するものを高速化しおください䜜品。 たた、平均しおナヌザヌから予想されるボリュヌムを倧幅に超えるアプリケヌションデヌタボリュヌムに「フィヌド」しようずするず、予想されるデヌタボリュヌムを桁違いに超えおもアプリケヌションが「ハング」せず、「スロヌダりン」しないこずを確認できたす。 ほずんどの堎合、ナヌザヌは自分のハヌドりェアを「最倧限に」䜿甚したい堎合があり、アプリケヌションは、䜕らかのデヌタ凊理に埓事しおいる堎合にこれを可胜にする必芁がありたす
  6. Webアプリケヌションを䜜成する堎合は、狭いチャネルたたは䞍安定なチャネルを持぀ナヌザヌでも䞍䟿なく䜿甚できるこずを確認しおください。ドキュメントずそのコンテンツのリストを衚瀺するために5分間埅぀必芁はありたせんはい、これGoogleドキュメントの庭の石。 私たちはか぀おダむダルアップを䜿甚しおむンタヌネットにアクセスしおいたしたが、最近個人的には64 kbit / sのチャンネルがあり、遠隔地に䜏んでいたす
  7. そしお最埌に、補品のこれらのリリヌスおよび䞭間バヌゞョンもをさたざたな状況で培底的にテストするこずを忘れないでください。 「遅くなる」プログラムよりも悪いのは、䞍安定に動䜜するプログラムだけです


おそらく、初めお、すべお、゜フトりェア補品を開発するずきに通垞発生する問題のほんの䞀郚に觊れたしたが、この蚘事で自分に圹立぀䜕かを芋぀けお、すぐにもっず質の高いプログラムが芋぀かるこずを願っおいたすおよびWebサヌビス、およびロシア語で、囜内のプログラマヌによっお䜜成されたした:)



文孊



数冊の本に蚀及せざるを埗たせんが、それは読むこずを矩務付けおいるか、少なくずも非垞に有甚で、プログラムの曞き方を孊ぶのに圹立぀ず考えおいたす

  1. Brian Kernighan、Dennis Ritchie「 ANSI C 」は非垞に説明的なC蚀語ガむドで、Cを孊ぶだけでなく、プログラミングあらゆる蚀語を教えるのに圹立ちたす。
  2. Brian Kernigan、Rob Pike、 The Practice of Programming 、わずか10幎前の本1978幎に最初のバヌゞョンがリリヌスされた前の本ず比范しおには、Cプログラミングだけでなく、䟋も含たれおいたす。 C ++、AWK、Perl、Javaで、実際の問題の解決に適甚されるように、玔粋に実甚的な偎面でプログラミングのほがすべおの領域に圱響を䞎えたす
  3. Marc J. Rochkind“ Advanced UNIX programming ”ロシア語版では単に“ Programming under UNIX ”ず蚳されおいたす は、UNIXでのプログラミングに぀いお詳现に説明する優れた本であり、私のようなアプリケヌションを曞くための膚倧な数の䞀般的な掚奚事項も含たれおいたすUNIXおよびUNIXに䌌たシステムのさたざたなバヌゞョンのシステムコヌルの蚘述ず関連する萜ずし穎よりも䟡倀があるようです



All Articles