オヌプン゜ヌスプロゞェクトの開発の平日



最近のApplication Developer Days 2012カンファレンスで、䟋ずしおOpenVZ Webパネルを䜿甚しおオヌプン゜ヌスプロゞェクトを䜜成する方法に぀いおの短いレポヌトを読む機䌚がありたした。 残念ながら、芏定の30〜40分ではなく10分間でした。その結果、準備された玠材の80が「船倖」でした。 䞻催者は、䜕らかの理由で、最埌の瞬間に考えを倉え、質問のある5分間のセクションを削陀したため、フィヌドバックはありたせんでした。 しかし、私は䞻催者にあたり䌚いたせん-圌らは最善を尜くし、䌚議は明らかに成功したした。 たた、ほずんどのレポヌトの品質に非垞に満足しおいたす。





ここでトピックの本質に぀いお-私は自分のむニシアチブを䜿甚しおオヌプン゜ヌスプロゞェクトがどのように䜜成されるかに぀いおのストヌリヌの完党版をレむアりトし、そのようなプロゞェクトの開発に関する私の考えや意芋を共有し、内郚のキッチンに぀いお話し、兞型的な間違いに察しお譊告しおみたす。



以䞋に曞かれおいるもののほずんどは完党に䞻芳的なものです。 いく぀かのこずは冷静であるず考えるこずができたすが、倚くは文字通り経隓に悩たされおいたす。



非垞に倚くのテキストがありたす。 最もせっかちな人のために-あなただけのスラむドを通しお芋るこずができたす。







実隓りサギプロゞェクトに぀いお少し



OpenVZ Webパネルは、OpenVZテクノロゞヌを䜿甚する仮想サヌバヌ甚のかなり人気のある無料のWebベヌスのコントロヌルパネルです。 これを確認しお、バヌゞョン2.0が17,000台を超えるサヌバヌにむンストヌルされおいるず蚀えたす。 サヌバヌ補品の堎合、非垞に堅実な数字です。



OpenVZずは䜕ですか これは、コンテナ化されたサヌバヌ仮想化のテクノロゞヌの1぀です。 誰かが奜きで、問題を解決するのに適しおいたす。誰かはあたり奜きではありたせんが、今はそれに぀いおではありたせん。 OpenVZは、本質的にParallels Virtuozzo Containers商甚補品の螏み台です。 圓初、OpenVZには優れた無料のWebコントロヌルパネルがありたせんでした。 私自身もOpenVZを積極的に䜿甚しおいたす。 既存の無料のパネルは、䜕らかの理由で私には向いおいたせんでした。 その結果、OpenVZ Web Panelプロゞェクトが誕生したした。











開発は単に圌らのニヌズを満たすためのものであったため、特定の段階でオヌプン゜ヌスプロゞェクトを䜜成するこずが決定されたした。 圌のベストプラクティスを、そのようなパネルを探しおいるかもしれない他の人々ず共有しおください。



プロゞェクトのアむデア



広告トピックを読み、トピックの本質に戻りたす。 したがっお、オヌプン゜ヌスプロゞェクトを䜜成したす。 最初にすべきこずは、クヌルなアむデアです。 商業プロゞェクトずは異なり、マヌケティング郚門、専門の出版物や広告看板での倧芏暡な広告はありたせん。 Google TVは、無料のGoogle Chromeブラりザヌのテレビでのみ広告できたす。



プロゞェクトのアむデアがわからない堎合は、共有しお、専門のフォヌラムで議論するこずができたす。 商業開発では、ほずんどの堎合、同じこずを行うこずはほずんどありたせん。 たた、誰かがアむデアを盗むずいう恐れずリスクもありたす。 あなたのアむデアやプロゞェクトが、同様の開発よりも優れおいるかどうかを䜕床も自問しおください。 既存のプロゞェクトに参加しお改善すれば十分でしょうか



たた、実際にテストするために、できるだけ早くアむデアが望たしいです。 アルファ版をリリヌスし、芖聎者の反応を確認するこずをお勧めしたす。 熱狂的な反応ず倚くの願いがある堎合、あなたは正しい方向に進んでいたす。 誰もが黙っおいるなら、これは考える十分な理由です。



動機付け



䜜成するプロゞェクトには、わかりやすいモチベヌションが必芁です。 「これはクヌルなこずであり、そのようなプロゞェクトは私のカルマを増やす」ずいうカテゎリヌのプロゞェクトは、実際には非垞に急速に消えおいきたす。 より重芁な動機の䟋自分でプロゞェクトを䜿甚するか、特定の顧客がいる。 OpenVZ Web Panelの堎合、最初のオプションが機胜したした。぀たり、独自のニヌズを満たす必芁がありたした。 プロゞェクトを最初のリリヌスたで持ち蟌む匷いモチベヌションがなければ、非垞に困難です。



時々人々は蚀う私はオヌプン゜ヌスプロゞェクトを䜜成し、それから私はそれで皌ぐ。 これは間違った動機の䟋です。 実際、本圓にお金を皌ぎたいなら、オヌプン゜ヌスに぀いおは最䜎限考えなければなりたせん。 それ以倖の堎合、次の開発蚈画が最も可胜性が高くなりたすプロゞェクトが完了したした;お金を皌ぐ方法は明確ではありたせん。 その結果、モチベヌションが完党に倱われ、プロゞェクトの開発を継続する必芁がなくなりたす。



効果的な開発



プロゞェクトで最も重芁ないく぀かのこずに集䞭するようにしおください。 コミュニティは、さたざたな倉化に向かっおあなたをプッシュし、メむンコヌスからあなたを導きたす。 たずえば、OpenVZ Webパネルの堎合、すべおのナヌザヌリク゚ストに同意しお実装した堎合、コンテナ管理システムではなく、次のWebminをすでに実行しおいたした。



開発は時間的に可胜な限り効率的でなければなりたせん。 これは、唯䞀か぀最も高䟡なリ゜ヌスです。 倚くの堎合、䞋された決定は品質たたはいく぀かの芁件を損なう可胜性がありたすが、それらが時間内に効果的である堎合、ほずんどの堎合、正しい方向に進んでいたす。



さらに、プロゞェクトで発生するほずんどすべおのタスクを実行できるこずが望たしいです。 他の人に仕事を委任するこずを蚈画しおいお、圌らが自発的に仕事をするなら、私を信じお、仕事は最も非効率な方法で行くでしょう。 さらに、圌らはあなたを単に前に抌し出すでしょう。



効率の面でかなり難しい問題は、プロセスの自動化の問題です。 䞀方では、あなたはプログラマであり、「1時間で曞き蟌み、5分で飛ぶ」ずいう原則に基づいお行動するこずを奜みたす。 この原則は、時間を犠牲にしお非垞に頻繁に機胜したす。 時々繰り返されるものを自動化するこずだけが必芁です。



オヌプン゜ヌスプロゞェクトでは、通垞、すべおのテストケヌスを泚意深くチェックしおバグを取埗するプロのテスタヌはいないため、最初に補品をテストしたす。 これは、機胜テストず単䜓テストの䜜成を匷制する必芁があるこずを意味したす。そうしないず、手動テストに時間を費やすか、リリヌスの重倧な問題を芋逃す必芁がありたす。 ここで、もちろん、「ありがずう、キャップ」ず蚀うこずができたす。 ただし、時間を節玄するために、この点はプロゞェクトで非垞に頻繁に圱響を受けたす。



そしお最埌の瞬間。 開発を倚かれ少なかれ真剣にリヌドしたい堎合は、時間の远跡を行いたす。 Redmineを入れお、バグだけでなくタスクも開始し、それらに費やした時間を曞きたす。 そうしお初めお、この機胜たたはその機胜が実際にどれくらいの費甚がかかるかを理解し始めるでしょう。 次回は、1回限りの手順の自動化に2日間を費やす可胜性は䜎く、30分で手動で行われたす。 さらに、スポンサヌが突然珟れた堎合、機胜の䟡倀を説明するのがはるかに簡単になりたす。



OpenVZ Webパネルでの䜜業の䞀環ずしお、「お気に入りのOS」のパッケヌゞ圢匏で補品を組み立おるように繰り返し求められたした。 さらに、お気に入りのOSでは、ArchLinuxずGentooが時々登堎したした。 私はこれらのディストリビュヌションに察しお䜕もしおいたせんが、ナヌザヌコミュニティはCentOSやDebianに比べお非垞に小さいので、メリットの点で非垞に怪しいタスクに倚くの時間を費やしたす。 パネルには玠晎らしいシェルむンストヌラヌがありたす。 パッケヌゞよりも優先床が䜎いこずを知っおいたす。 しかし、たずえば5぀のLinuxディストリビュヌションに察しお適切なレベルでパッケヌゞを維持するこずは非垞に時間のかかる䜜業であるこずもよく知っおいたす。 シェルむンストヌラヌを䜿甚するず、開発時間を倧幅に節玄できたす。 おもしろいこずに、Debianの愛奜家すでに5番目の列にいる人がパッケヌゞを送信するず玄束しおいるが、通垞のパッケヌゞを1぀も送信しおいない堎合、CentOSのパッケヌゞをビルドしおみおください...



補品の品質



倚くの堎合、オヌプン゜ヌス補品のナヌザヌは品質に䞍満を抱いおいたす。 このステレオタむプを砎りたい堎合は、補品の品質を忘れないでください。



品質は補品テストずしおだけでなく理解されるべきです。 品質は、デザむン、䜿いやすさ、補助ツヌル、補品のWebサむト、ドキュメント、技術サポヌトなど、すべおのものにあるべきです。



以䞋は、wgetダりンロヌドマネヌゞャヌのフロント゚ンドのスクリヌンショットです。 最も玔粋な圢でのむンタヌフェむス蚭蚈に察するプログラマヌのアプロヌチ「オプションがありたす-画面に衚瀺する必芁がありたす」。







これがWordPressのスクリヌンショットです。 この補品は奜きでも嫌いでも構いたせんが、人々が補品の品質に明確に取り組んでいるこずを認識する䟡倀がありたす。







倚くの堎合、オヌプン゜ヌスプロゞェクトでは、コントロヌル芁玠が無秩序に散らばっおいるグラフィカルむンタヌフェむスを芋るこずができ、䜜者は䜜業の論理を理解しおいたす。 ナヌザヌのこずを忘れないでください、あなたがしおいるこずのレビュヌを行い、兞型的なナヌザヌずしお自分自身を玹介しおください。 明らかな方法で機胜しない堎合は、ほずんどのナヌザヌが混乱しお間違いを犯すようにしおください。 このような問題の特城的な兆候は、課題トラッカヌがすでに同じトピックコントロヌルが配眮されおいる堎所で20番目のチケットを持っおいるこずです。 この状況では、倚くの堎合、人々はFAQたたはナレッゞベヌスに情報を远加するだけに制限されたす。 実際、補品の問題を解決し、よくある質問のリストを枛らすために、FAQずナレッゞベヌスを定期的に確認する必芁がありたす。



コヌドの品質が実際にナヌザヌの最埌の関心事になるような瞬間を忘れないでください。 しかし、䜿いやすさ、実行時゚ラヌず論理゚ラヌの䞡方がないこずは、補品の印象に倧きく圱響したす。 倚くの堎合、著者はコヌドの芳点から調和を図り、補品の利䟿性を忘れおいたす。 コヌドの品質が補品の品質ず盞関しおいるこずは明らかですが、それでも2番目の点に焊点を圓おるこずをお勧めしたす。 結局のずころ、倚くの成功したオヌプン゜ヌスプロゞェクトには、かなり質の䜎いコヌドがありたす。 それに぀いお考える正圓な理由しかしgovnokodを曞くためにあなたを動揺させおいるずは思わないでください。



テクノロゞヌ



オヌプン゜ヌスプロゞェクトは、新しいテクノロゞヌをテストし、実隓を行う絶奜の機䌚を提䟛したす。 この瞬間を必ず取っおください。 䌁業のアプリケヌションでは、ファッショナブルで非垞に䟿利な䜕らかのテクノロゞヌの䜿甚に切り替えるのに䜕幎も埅぀こずができたす。 ここであなたはあなた自身のCEOずCTOであり、あなたが個々に行うこずができるすべおの技術的、建築的、戊略的決定です。



ただし、゚ンドナヌザヌに぀いおは忘れないでください。 Webアプリケヌションを䜿甚しおいる堎合、それらのほずんどがHTML3ずHTML5の違いをほずんど理解しおいないこずを確認しおください。 ただし、IEのサポヌトを完党に拒吊した堎合、圌らは確かにこれに気づき、単に理解したせん。 ナヌザヌは䞻にコンテンツに関心があり、技術的な付加機胜には興味がありたせん。



オヌプン゜ヌス開発では、サヌドパヌティのラむブラリずフレヌムワヌクを䜿甚する際の制限が緩和されたす。 たずえば、UI甚のOpenVZ Webパネルは有名なExtJSラむブラリを䜿甚したす。 これらのラむブラリを商甚補品で䜿甚する堎合は、非垞に高䟡なラむセンスを賌入する必芁がありたす。 䞀方、オヌプン゜ヌスプロゞェクトの䞀郚ずしおExtJSラむブラリを䜿甚するず、実甚的な䜿甚で貎重な経隓を埗おから、この経隓を商甚プロゞェクトに適甚できたす。



開発予算が䞍足しおいるため、高䟡な有料コンポヌネントの代替品も求められおいたす。 倚くの堎合、このようなコンポヌネントは、垂販のコンポヌネントよりも簡単に統合および保守できたす。 最終的には、いく぀かの問題を修正するこずで、別のオヌプン゜ヌスプロゞェクトの開発に貢献するこずさえできたす。



ツヌル



オヌプン゜ヌスプロゞェクトの開発に圹立぀䟿利なツヌルがかなりありたす。 あなたはそれらの倚くを知っおおり、おそらく、それらを䜿甚したした。 しかし、䜕らかの理由でこれらのツヌルが利甚できない商甚プロゞェクトに取り組んでいるずき、あなたは本圓にそれらに感謝し始めたす。 䌁業のExchangeずSharePointを思い出し、GmailずMediaWikiに悲しみを感じ始めたす。



たた、倚くの䌁業が、そのようなプロゞェクトの無料ラむセンスを独自の商甚プロゞェクトに付䞎するこずにより、オヌプン゜ヌスプロゞェクトの開発を刺激しおいるこずを忘れないでください。 たずえば、アトラシアンはJiraたたはConfluenceの無料ラむセンスを提䟛できたす。 しばらくの間、RubyMine IDEを䜿甚しおOpenVZ Web Panelを開発したした。OpenVZWeb Panelは、仲間のJetBrainsから芪切に提䟛された無料のラむセンスですこの機䌚に、よろしくお䌝えし、ラむセンス拡匵をリク゚ストしおください:)。 WHMCS請求ずの統合の䞀環ずしお、補品ラむセンスも必芁でした。 公匏には、圌らは無料のラむセンスを提䟛しおいたせんが、関心は盞互的であったため、ラむセンスは即座に付䞎されたした。 したがっお、プロゞェクトの開発に圹立぀商甚補品に興味がある堎合は、この補品の補造元にお問い合わせください。 ほずんどの堎合、補品が必芁な理由を明確に説明するこずで無料ラむセンスを取埗できたす。



コミュニティ



倚くの堎合、コミュニティはプロゞェクトの問題を解決できるず考えおいたす。 これは絶察に真実ではありたせん。 たず、開発者向けのツヌルを䜜成しない限り、プログラマヌがいないこずがナヌザヌの間で刀明したす。 そしお、䜕らかの理由で、圌らはあなたのgovnokodのゞャングルを理解しようず急いでいたせん。 突然パッチが送られおきた堎合、それがせいぜい束葉杖であるこずを確認するこずが刀明したす。これはほずんどのナヌザヌには機胜したせん。



生の補品をテストするように人々を説埗するこずは非垞に困難です。 ナヌザヌが芁求した機胜でさえ、リリヌス埌にのみチェックするこずを奜みたす。



䞀方、緊急の問題や機胜の投祚に関するバグレポヌトは非​​垞にうたく機胜したす。 䞻なものは、状況に察するあなた自身のコントロヌルを倱うこずではなく、困難で、倚分党員の暩利ではなく、補品の芳点から正しい決定を䞋す準​​備をするこずです。 そうでなければ、有名な䜜品はすぐに始たりたす。そこでは、「癜鳥はパむクガン」です。 そしお、あなたは癜鳥の圹割を果たしおいたせん。







むンタヌフェむスを別の蚀語に翻蚳する必芁がある堎合は、ドキュメントを組み合わせお、議論のために䜕かを提䟛しおください-コミュニティは垞にあなたのサヌビスにいたす。 ホリバヌず終わりのない議論を敎理するこずは、ほずんどすべおのコミュニティの䞀郚の人々の趣味でもありたす。



そしおい぀ものように、どのコミュニティにも䜕かに䞍満を抱いおいお、あなたはすべおをあきらめ、その問題だけに察凊すべきだず信じおいる人がいたす。 最埌に、圌はあなたに10ドルを寄付したした。



お金



プロゞェクトでお金を皌ぐなら、おそらくこのプロゞェクトはオヌプン゜ヌスずしお始めおはいけないず蚀った。 将来このようなスキヌムを拒吊するこずは非垞に困難です。 䞀方、開発を財政的にやる気にさせる必芁がありたす。 プロゞェクトの基本的なサポヌトであっおも、たずえばホスティング、ハヌドりェアなどの費甚を負担できたす。



私の友人の䜕人かは、䜕らかの理由で、そのようなプロゞェクトが寄付で十分に生きるこずができるず信じ続けおいたす。 できたせん。 ちなみに、[寄付]ボタンの暪に倚かれ少なかれ収集された金額を芋た単䞀のプロゞェクトを思い出すこずはできたせんスポンサヌシップず寄付を混同しないこずが重芁です。 あなたがりィキペディアの䜜成者ではなく、プロゞェクトのりェブサむトに悲しげな目を持぀個人的な写真がない堎合、寄付はプロゞェクトのりェブサむトをホストするのに十分ではありたせん。 自分のプロゞェクトに぀いおは話さない 圌にずっお、統蚈は公開されおいたせん。 しかし最近、Gitlabプロゞェクトのサむトを芋たした。 非垞に興味深い仕事で、倚くの人が興味を持っおいたす。 以䞋は、1,000ドルの金額を収集しおいる「枩床蚈」です。 私は3週間前ず今日そこを芋たした。 収集された金額は150ドル未満で倉曎されたした。 さらに、他の補品ず比范しおも非垞に優れおいたす。



お金を皌ぐためのより珟実的な方法は、代替ラむセンス他のシステムに組み蟌たれた補品に適しおいたすおよび商甚サポヌト習埗が難しい補品に適しおいたすを販売するこずです。 個人的には、最も魅力的なオプションは、プロゞェクトの開発に関心のあるスポンサヌクラむアントを持぀こずです。



しかし、スポンサヌの出珟により、いく぀かの兞型的な間違いをしないこずが非垞に望たしいです。 1぀は、補品に察するすべおの暩利の喪倱ず顧客ぞの移転です。 2぀目は、メむンラむンで䜜業するこずができない、補品のカスタムバヌゞョンでの無限の䜜業です。 これらの䞡方は、最終的に、オヌプン゜ヌスずしおプロゞェクトを正確に閉じるこずを䜙儀なくされるずいう事実に぀ながりたす。



結論、それらなし



あなた自身が䞻にプロゞェクトを興味深いものにし、問題の䞀郚を解決するようにしおください。 今思い浮かぶ成功したオヌプン゜ヌスプロゞェクトのほずんどは、そのようになっおいたす。 これらはRailsずNginx、その他倚くのものです。



オヌプン゜ヌスプロゞェクトを䜜成しお倧金を皌ぐ堎合は、事前にビゞネスモデルを慎重に怜蚎しおください。 ほずんどの堎合、プロゞェクトを閉じるこずをお勧めしたす。



最も高䟡なリ゜ヌスである時間に぀いお芚えおおいおください。 最埌に、おそらくあなたは䞻な仕事ず少なくずもある皮の私生掻を持っおいるでしょう。



最埌に、誇りに思う完成品を䜜成したす。 「スヌパヌテック」ではなく、アルファ版にずどたらないでください。 商甚開発ずオヌプン゜ヌス開発の䞡方で最も難しい郚分は、補品をリリヌスするこずです。 その埌、䌚議に行っお、成功した事業に぀いお党員に䌝えるこずができたすたずえば、Sphinxの䜜者がやっおいるように:)。



PS䞊蚘のすべおは玔粋に個人的な意芋です。 私は、他の倚くの人ず同様に、間違いを犯し、自分の間違いから孊び、倚くのこずを間違っおいる傟向がありたすが、他の人に教えようずしたす:)



All Articles