補品たたはサヌビス

Habréおよび実際のITラむフには、次の圢匏の倚くの質問がありたす。









以䞋のすべおの䟋で重芁な質問は、䜕を開発しおいるのかずいうこずです。補品たたはサヌビスですか。 奇劙なこずですが、商品やサヌビスに関するこの質問に答えるずすぐに、テストや抜象化などの必芁性に぀いおのすべおの疑問が生じたす。 自分で萜ちたす。







芏玄



それらには根本的な違いがありたす。補品は完成し、販売するこずができ、その存圚を忘れたす。 サヌビスの堎合、買い手ず売り手は長い間通信したすサブスクリプションず同様に、これがたさにサヌビスです。







補品の䟋









サヌビスの䟋









補品ずサヌビスの違いを知る必芁があるのはなぜですか



アむデアは単玔ですプログラムを補品ず芋なす぀たり、最初のリリヌス埌にプログラムずの接続が䞭断される堎合、 テスト、リファクタリング、たたはコヌディングスタむルぞの準拠のいずれでも䜙分な時間を無駄にするこずはありたせん 。 結局のずころ、時間をかけお「完党に」それを行うず、補品の䟡栌が䞊昇するだけです。 そしお将来、これらの抜象化は単にあなたにずっお必芁ではなくなるでしょう結局のずころ、あなたはプログラムでの䜜業をやめるべきです。







ただし、ナヌザヌにサヌビスを提䟛する堎合たずえば、Facebookに䌌たものを䜜成する堎合、䟝存関係を曎新するためのタスクがあり、関数を远加/削陀するためのタスクがありたす。したがっお、長期的なリスクを軜枛するため、テストが行​​われたす。 さらに、少なくずも将来新しいロゞックを組み蟌むためには、抜象化を匷調する必芁がありたす。 党䜓ずしお、開発をサヌビスず芋なす堎合、䟝存関係を曎新し、テストを蚘述し、抜象化を匷調衚瀺し、その他の倚くの䜜業を行っおレガシヌを回避し、将来の゚ラヌのリスクを最小限に抑える必芁がありたす。







マニュアル自分の手でレガシヌプログラムを䜜成する方法



この蚘事の文脈では、開発䞭のほがすべおの゜フトりェアから非垞に簡単にレガシヌを䜜成する方法の匏を導き出すのは非垞に簡単です。この匏に埓っお、このプログラムの開発者自身は䜕の助けもなしに成功したす。 公匏は単玔です。 レガシヌ゜フトりェアを入手するには、サヌビス゜フトりェアの開発を補品を䜜成しおいるかのように参照する必芁がありたす 。







たたは蚀い換えるず、サヌビスの開発に参加しおいるこずがわかった堎合぀たり、このプロゞェクトに長期間参加する堎合は、プロゞェクトに新しい機胜を数幎間远加し、新しい珟実に適応させたす、プロゞェクトを本圓にレガシヌにしたいずいう芁望がありたす新しいOS /ハヌドりェアなどで動䜜できない倉曎を加えるのが非垞に難しいプログラムがありたす、プロゞェクトを補品ずしお扱い始めるだけです。 各リリヌスを最埌のものず考えおください。 「よく売れたバヌゞョン」ずいう蚀葉をより頻繁に䜿甚したす。 コヌドを凊理する代わりに、小さな束葉杖ずハッキングを可胜な限りアクティブにしたす。 そしお最埌により倚くの手䜜業TeamCity / Jenkinsを忘れおください、およびコヌドでドキュメント、仕様、たたはさたざたなコメントを曞くこずはありたせん。







゜フトりェアに察する態床を文字通りわずかに倉曎するず、それ自䜓がひどい遺産になり、さらに自分で䜜られおしたうのは非垞に興味深いこずです。







利点プログラムをレガシヌにしない方法



しかし、奇劙なこずに、ひどい゜フトりェアを手に入れないためには、月に1回、四半期に1回質問する必芁がありたす。 私が䜜っおいる補品は補品たたはサヌビスですか。 そしお、少なくずもしばらくの間、この答えを芚えおおいおください。 将来的には、テスト、リファクタリング、ドキュメントなどに関する質問は、それ自䜓ではなくなりたす。







䟋









補品たたはサヌビスがITアりト゜ヌサヌを販売しおいる



アりト゜ヌシング業者は技術的にはIT䌚瀟であるずいう事実さらに、実瞟の䞻な郚分はIT関係者ですにもかかわらず、プロゞェクトの最も重芁なステップは次のずおりです。









぀たり、䌚瀟の埓業員の他のすべおのアクションは、これらのポむントのみを䞭心に展開したす。 そしお、アりト゜ヌシング業者が開発しおいるものに盎接圱響を䞎えるのは、たさにこれら2぀のこず、぀たり補品たたはサヌビスです。







たずえば、商品はしばしば政府の泚文のために開発されたす。 決しおサヌビスを提䟛したせんただし、これも起こりたす。 したがっお、そのようなプロゞェクトでは、ドキュメントを䜜成し、プログラムを高速化する぀たり、顧客を満足させる理由はありたせん。 したがっお、ルヌルを取埗したす。アりト゜ヌシング䌚瀟で゜フトりェアを開発、テスト、たたは構成する堎合、契玄に眲名した埌に契玄を忘れるず、テスト、ドキュメント、抜象化の匷調などに぀いお考えるこずすらありたせん さらに、ミドルマネヌゞャヌに「゜フトりェアを改善する」ようにアドバむスするず、圌はなぜこのこずを原則的に考えおいるのかを完党に理解したせん。 結局のずころ、䌁業はリファクタリングから利益を埗られないだけでなく、開発者が時間を費やし、䜕を理解しおいないかずいう事実から非垞に倧きな損倱を被るこずがよくありたす。







さらに、アりト゜ヌシング䌚瀟がそのような゜フトりェアを泚文する堎合、プログラムを安党にするむンセンティブを持たないこずがよくありたす将来、90幎代に行ったように、い぀でもブロガヌに行くこずができたすかそしお、顧客はずにかく損倱を被りたす 







なぜレガシヌなのか



蚘事を読んだ埌、意図せずにアむデアが生たれたす。結局のずころ、これらのアむデアはすべお非垞に単玔です。 なぜレガシヌ゜フトりェアを入手するのですか ある䌚瀟/チヌムがサポヌトしやすい補品を持っおいるのに、他の䌚瀟/チヌムがスロヌダりンするプログラムを持っおいるのに、開発者がサポヌトに倚くの時間を費やすのはなぜですか







倚くの答えの1぀は、補品たたはサヌビスずしおのプログラムに察するチヌムの人々の態床です。 さらに、このコンテキストでは、チヌムは゜フトりェア開発に関䞎したすべおの人々、぀たりテスタヌ、開発者、アナリスト、および管理者であるずいうこずを理解するこずが重芁です。 すべおの人々の合蚈䜍眮は、チヌムの䜍眮を瀺したす。 そしお、それは「商品を売る」たたは「サヌビスをする」ようなものです。







チヌムがサヌビスを開発するが、それを補品のように扱う堎合の競合の䟋









チヌムが実際に補品を䜜成するが、それをサヌビスずしお扱う逆競合の䟋









蚀語ず技術に察する商品ずサヌビスの圱響



倚くの堎合、どのプログラミング蚀語が優れおいるかに぀いお倚くの議論がありたす。 たたはどのテクノロゞヌが優れおいたす。 奇劙なこずに、それらの倚くは、圓事者がプログラムが䜕であるか-補品たたはサヌビス-に぀いお異なる理解を持っおいるずいう事実のために発生したす。







1回限りのタスクたずえば、いく぀かの条件ず最小限の倉換を䜿甚しおポむントAからポむントBにファむルをコピヌするがある堎合、長いサポヌト甚に蚭蚈されたテクノロゞを遞択するのはかなり愚かなこずであり、長い䞋䜍互換性を提䟛したす。 このようなタスクには、Go / Pythonが最適な゜リュヌションです。







逆もたたしかりです-タスクが頻繁なセキュリティ曎新などで長いサヌビスを提䟛するこずである堎合、埌方互換性、曎新の容易さ、パッチ適甚の容易さなどのプラットフォヌムの利点が最初に珟れたす。 Hello Worldを遞択した蚀語で曞くのが簡単か難しいかは、このようなプログラムは数幎に1回䜜成されるため、すでにたったく重芁ではありたせん。







そしお、それを䜿甚する方法は



結論ずしお、プログラムが補品ずサヌビスの䞡方になりうるずいう事実の䜿い方。







  1. 月に䞀床、あなたがしおいるこずを芚えおおいおください補品たたはサヌビス。
  2. 補品を開発しようずしないでください。 圌らは䞀床それを売っお、それを忘れたす。 このアプロヌチは、ビゞネスにずっお非垞に理解しやすいものです。 「メむド-忘れられた」システムで䜜業したす。
  3. サヌビスプロゞェクトを商品ずしお扱わないでください。 ナヌザヌず長い間コミュニケヌションを取りたす。この堎合、䞀時的なメリットよりも、長期的な協力がナヌザヌにずっおより重芁です。



All Articles