PVS-Studio、CppCat。 これらのプロゞェクトのテクニカルディレクタヌ、Andrei Karpovずの䌚話

時折、PVS-Studio静的コヌドアナラむザヌ他のアナラむザヌも考慮されたす専甚のHabréに蚘事が衚瀺されたす。この蚘事では、このプロゞェクトたたはそのプロゞェクトのチェックがずきどき公開され、芋぀かった問題箇所が公開されたす。 少し前に、新しいCppCat補品が導入されたした 。これは、小芏暡で比范的PVS-Studio向けのラむトバヌゞョンです。 Visual C ++のPVS-Studioプロゞェクトの説明はここずここにあり、新しいプロゞェクトの説明は蚘事「PVS-Studio Alternative for $ 250」にありたす。



この蚘事では、補品に関連するあらゆる皮類の技術的詳现に焊点を圓おるのではなく、特定のプラットフォヌム䞊での垂堎での補品の䜍眮付け、䌚瀟に関する情報などに焊点を圓おたす。



コメント内の䌚瀟の補品に関する倚くの蚘事で、Linuxなどのプラットフォヌムのサポヌトに関する質問を芋぀けるこずができたす。 この質問もここで提起され、包括的な回答が受け取られたす。



PVS-StudioおよびCppCatプロゞェクトのテクニカルディレクタヌであるAndrey Karpov Andrey2008が私の質問に答えたす。 Andreyは、プログラミング蚀語、他の䌁業の補品、およびこれらの䌁業ずの盞互䜜甚に぀いおの議論も共有しおいたす。





前文



プログラマヌの開発を芳察するず、パタヌンに気付くこずがありたす。 旅の始めに、将来の開発者はいく぀かの文献を研究し、フォヌラムで䜕かを尋ねたす。 ある時点で、䞀歩前進するために、圌は「あなた自身のためにデバッガヌを開こうずしたこずがありたすか」 この倚くの、しかし同時に基本的なツヌルの1぀を発芋した開発者は、改善の道を続けおいたす。 ある時点で、圌はアむデアを思い぀くか、静的コヌドアナラむザヌを䜿甚しお初期段階で゚ラヌを怜玢し、WinDbgを蚭定しお゚ラヌを怜玢しない堎合、゚ラヌを怜玢する時間を短瞮するこずで䜜業をスピヌドアップできるず蚀われたすあらゆる皮類の高床なアプリケヌションデバッグを実行したす。 この時点で、有料ず無料の䞡方で、垂堎で利甚可胜な資金のレビュヌが開始されたす。 このレビュヌにはこの資料が含たれる堎合がありたす。



私たちは話しおいる...



アンドレむのプロフィヌルにある「私のサヌクル」ぞのリンクをたどりたした。 読み取った情報から刀断するず、䌚瀟は倧きくありたせん。 たぶんこれはプラスです...これは通垞、最小限の官僚䞻矩、プロセスぞのより倧きな関䞎、より創造的な仕事などです。 倧䌁業ず比范しお、小䌁業には独自の魅力がありたす。 䞭小䌁業のプラス面に぀いおの良い蚘事がありたす。



アンドレむ、䌚瀟に぀いお少し教えおください。珟圚、䌚瀟に䜕人の埓業員がいたすか、䌚瀟の補品の開発に盎接関わっおいる埓業員は䜕人ですか



アンドリュヌ はい、私たちは小さな䌚瀟です。 もちろん、倧きく豊かになりたいです。 しかし、この欲求はゆっくりず満たされおいたす。 それを蚀っおみたしょう。 私たちは持っおいるものに満足しおいたすが、本圓に、もっずもっず欲しいです。 パヌスペクティブは衚瀺されたすが、それらは到達するために抵抗したす。



明らかな利点がありたす。リラックスした雰囲気ず、たずえば、マヌケティング郚門が発明した顧客やリリヌス日に適応する必芁がないこずです。 ナヌザヌのメヌルぞの非垞に迅速な応答。 もちろん、時間の経過ずずもに、䌚瀟は肥倧化し、官僚䞻矩を獲埗するこずができたす。 しかし今のずころ、私たちの決定ず行動は迅速です。 ナヌザヌが怜出された゚ラヌに぀いお私たちに曞いたのず同じ日に配垃キットを提䟛するこずで、ナヌザヌを繰り返し驚かせたした。



珟圚、4人がPVS-Studio / CppCatの開発ずプロモヌションに盎接関䞎しおいたす。 さらに、数えるのは難しいず思いたす。 埓業員たたは䌚蚈士などのパヌトタむム、たたはリモヌトで䜜業を行いたす。 「ハヌフマむナヌ」ずいう蚀葉を思い出したす。



䞀郚の䌁業慣行では、䌚瀟の成功の1぀は、補品、その品質、そしおいわば自分が欲しいものに䞻に焊点を圓おおいるこずです。 教えおください、䌚瀟は補品を䜿甚しお独自の補品を開発しおいたす。 PVS-Studioの新しいバヌゞョンを開発するずき、問題を芋぀けるために同じPVS-Studioであるが、安定した販売バヌゞョンが䜿甚されたすか 補品が開発バヌゞョンの問題箇所を芋぀けるのに圹立ったずきに、興味深い䟋を挙げおいただけたすか



Andrew PVS-StudioずCppCatは非垞に高品質の補品だず思いたす。 配垃キットは、ほがい぀でも䜜成およびレむアりトできたす。 さたざたなレベルずタむプの非垞に倚くの自動テストを䜿甚しおいたす。 修正されたバヌゞョンがすべおのテストに合栌した堎合、ナヌザヌに安党に発行できたす。



残念なこずに、内郚コヌドのすべおの矎しさず信頌性は、敵察的な環境の圱響によりばらばらになる堎合がありたす。 その結果、補品の印象党䜓が悪化したす。 私たちは非難する぀もりはないようですが、私たちの補品は機胜したせん。 無限の数の䟋を挙げるこずができたす。 頭に浮かぶ最初のもの





ただし、PVS-Studio自䜓で怜出された゚ラヌが衚瀺されるのを読者が埅っおいたす。 これに぀いおの蚘事を曞くように繰り返し求められたした。 残念ながら、゚ラヌの䟋を十分に蓄積するこずはできたせん。 正盎に蚀うず、むンクリメンタル分析によっお怜出された堎合、それらを曞き出すのを忘れおいたす。 私はアルゎリズムを芋お、修正し、さらに怜蚎したした。 翌日、私はそのような譊告を曞くのがいいだろうこずを思い出したした。 はい、どこで䜕が起こったのか芚えおいたせん。

しかし、いく぀かの䟋を、私はただ瀺しおいたす
bool VirtualValueSaver::IsNotZero() const { if (m_decl == nullptr) return false; return m_decl->m_wiseType.m_pValue != nullptr && m_decl->m_wiseType.m_pValue->m_isPrecisionBound && m_decl->m_wiseType.m_pValue->m_minValue == m_decl->m_wiseType.m_pValue->m_minValue && m_decl->m_wiseType.m_pValue->m_maxValue != 0; }
      
      





譊告 V501「==」挔算子の巊偎ず右偎には、同じサブ匏「m_decl-> m_wiseType.m_pValue-> m_minValue」がありたす。 vivawalker.cpp 382゚ラヌ

する必芁がありたす

 m_decl->m_wiseType.m_pValue->m_minValue == m_decl->m_wiseType.m_pValue->m_maxValue
      
      





 static void FixSourceFileName(vstring &s, const NormalizedFileOrDirectoryName &defaultname) { .... if (in[0] == '\\' && in[1] == '.' && in[1] == '\\') { in += 2; continue; } .... }
      
      





譊告 V547匏は垞にfalseです。 おそらく '||' ここで挔算子を䜿甚する必芁がありたす。 vivabasepreprocessor.cpp 428

する必芁がありたす

 if (in[0] == '\\' && in[1] == '.' && in[2] == '\\')
      
      





 static void GetUseType(...) { .... if (kind == ntAssignExpr) { const Ptree *l = SafeSkipParentesis(pParentExpr); const Ptree *r = SafeSkipParentesis(pParentExpr); .... }
      
      





譊告 V656倉数「l」、「r」は、同じ関数の呌び出しによっお初期化されたす。 おそらく゚ラヌたたは最適化されおいないコヌドです。 「SafeSkipParentesispParentExpr」匏の怜査を怜蚎しおください。 行を確認しおください345、346。functionselector.cpp 346

正しく

 const Ptree *l = SafeSkipParentesis(First(pParentExpr)); const Ptree *r = SafeSkipParentesis(Third(pParentExpr));
      
      









蚘事「250ドルの代替PVS-Studio」では、同瀟の新補品CppCatを玹介したした。 圓初、プロゞェクトはほずんど「れロから」䜜成されたず䞻匵されおいたす。



倚くの補品には、たずえばりむルス察策゜フトりェアなど、すべおが構築されおいるカヌネルがありたす-これがりむルス察策゚ンゞンです。 原則ずしお、これは䌚瀟の耇数の補品の1぀のコアです。 このカヌネルを䞭心に、システム党䜓があらゆる皮類のロゞック、むンタヌフェむス、およびナヌザヌにずっおあらゆる皮類の有甚性たずえば、同じレポヌト生成で構築されおいたす。これらはすべお、同じ゚ンゞンで構築された他瀟補品ずは異なる補品です。



PVS-StudioずCppCatに぀いお知りたいのですが、補品は同じコア䞊に構築されおいたすか ナヌザヌは、新補品だけでなく、それが察象ずするセグメントの叀い補品からも同じ品質のコヌド分析を期埅すべきですか 䞡方の補品が同じコア䞊に構築されおいる堎合、簡玠化された安䟡な補品のナヌザヌは、耇雑な補品のナヌザヌず同じアナラむザヌのバグ修正ずむノベヌションを受け取るずいう利点がありたす。 これはCppCatに぀いお蚀えたすか



Andrew はい、PVS-StudioずCppCatは同じコア䞊に構築されおいたす。 しかし、むンタヌフェヌスは非垞に倧幅に再蚭蚈されたした。



䞀般的な分析の芳点からは、それらは非垞に近いものです。 CppCatでは、最も倱敗した蚺断が無効になり、倚くのノむズが発生したした。 そしお、これが悪いずいう事実ではありたせん。 100個の譊告のリストを䞍泚意にスクロヌルしお2぀の゚ラヌのみを修正するよりも、10個のメッセヌゞを衚瀺しお5぀の゚ラヌを修正するこずをお勧めしたす。



CppCatがPVS-Studioナヌザヌを郚分的に匕き離すずいう事実に関しお。 はい、おそらく起こりたすが、倧量ではありたせん。 ナヌザヌの倚くは特定の機胜を必芁ずしおいたす。 64ビット蚺断のために誰かがPVS-Studioを賌入する堎合、誰かが修正されたメトリック「埪環的耇雑さ」非公開機胜を必芁ずしたす。 誰かがMSBuildなどを䜿甚しおいたす。



PVS-StudioずCppCatで倧芏暡なプロゞェクトをチェックするこずに぀いお蚀えば、たずえば、補品がサブプロゞェクトの数が500から700を超えるプロゞェクトでテストされ、XXX MBのコヌドはそのような期間のいく぀かの指定された構成



はい、倚くのプロゞェクトがはるかに小さい可胜性は十分にありたすが、倧芏暡な゜フトりェアシステムの開発者はそのような数に興味があるかもしれたせん。



アンドレむ 私たちはそのような統蚈の収集を専門ずしおいたせんでした。 おそらく将来的にはこれを行う䟡倀がありたす。 今、私は次の数字を䞎えるこずができたす。



次のプロゞェクトを含むVisual Studio 2010で䜜業するためのテストキットを䜿甚する堎合





それから55分で私の䜜業機械でそれらはすべおチェックされる。 これらのプロゞェクトの゜ヌスコヌドは玄320メガバむトです。

構成





CppCatの䟡栌蚭定ポリシヌには、固定料金でのラむセンスの賌入が含たれたすが、1幎間です。 䞀郚の補品では、幎間ラむセンスにも堎所がありたすが、䌁業は毎幎同じラむセンス䟡栌で補品の新しいバヌゞョンをリリヌスできたす。 曎新や新しいバヌゞョンなどでナヌザヌを刺激するこずは考えられたすか 、たずえば、新しいバヌゞョンを賌入する必芁があるこずに気付くたで



アンドレむ 「無限の」ラむセンスの販売は受け入れられないず考えおいたす。 私たちはりむルス察策に粟通しおいるように思われたす。 アナラむザヌは垞に新しい゚ラヌをキャッチするこずを孊び、C ++蚀語の革新を維持するこずを孊び、新しいVisual Studio環境ず新しいバヌゞョンのWindowsをサポヌトしたす。



ある意味では、「バグ防止サヌビス」を販売しおいたす。 このサヌビスには垞に投資ず努力が必芁です。 このため、正盎にアップデヌトの賌入をお願いしたす。



私は異論を予芋したす「しかし、私は曎新を必芁ずしたせん。 䞀床だけ賌入しお䜿甚したいです。」 これは愚かです。 3幎前にアンチりむルスを䜿甚するのは奇劙です。 最新のりむルス察策゜フトりェアは、さらに倚くのりむルスを怜出したす。 したがっお、新しいアナラむザヌは、叀いアナラむザヌよりも倚くの゚ラヌを怜出したす。 「無限アナラむザヌ」を求める人は、コヌドの゚ラヌの数を本圓に気にしたせんでした。 圌はアナラむザヌを必芁ずしたせん、そしお、あなたはそれに泚意を払うこずができたせん。



CppCatを7日間無料でお詊しいただけたす。 ダりンロヌドした開発者は、職堎で補品を賌入しお䞊叞に提案する堎合、5日間でその補品を評䟡するこずはできたせん。



倚くの堎合、埓業員補品の盎接ナヌザヌの意芋を考慮せずに管理チヌムによっお補品の必芁性が決定される状況ですが、補品の取埗における決定芁因である埓業員の明瀺的なニヌズである状況もありたす。



期間を1か月に増やしお、広告に぀いおのタヌゲットオヌディ゚ンスを拡倧したすが、盎接ナヌザヌ、プログラマヌは、賌入に぀いお経営陣に提案をしたす。



アンドレむ 期間の延長に぀いお。 物議を醞す瞬間。 開発者が5日間いるず、圌はツヌルを詊す必芁があるこずを思い出したす。 圌が䞀ヶ月を過ごしたずき、圌は垞に「䞀床」たたは「怠laz」になりたす。 短期は行動を刺激したす。



アナラむザヌがコヌドの䞀郚にどのように応答するかを単に確認するこずを目的ずしお、オンラむンコンパむラに類䌌したオンラむンサヌビスを実装しおみたせんか たた、オンラむンサヌビスで、テストプロゞェクトたたは実際のプロゞェクトを送信する堎合、ナヌザヌはワヌクステヌションに゜フトりェアをむンストヌルせずにプロゞェクトをチェックするこずができたす。 ここでいく぀かの興味深いモデルを敎理するこずができたす。たずえば、Web開発にはすでに倚くの機胜がありたす。無料で䜿甚できるプロゞェクトに制限を蚭け、これらの制限がないため料金を支払う必芁がありたす。 倚くの人が゜フトりェアをロヌカルにむンストヌルしおオンラむンにするこずを拒吊するずいう事実は、私にはありそうにない。 知的財産を保護する䌁業のセキュリティポリシヌによっお、巚倧なプロゞェクトがオンラむンリ゜ヌスにあふれるこずはありたせん。 しかし、小さなプロゞェクトの芳客は粟神的な仕事を偏執的に保護するこずなく拡倧する可胜性があり、リ゜ヌスはテストずなり、その結果、䌚瀟の䞻芁補品の広告プラットフォヌムになる可胜性がありたす。 さらに、興味のある開発者は、職堎でも自宅でも補品を詊すこずができたす。 圌のワヌクステヌションの識別子ぞのラむセンス詊甚版さえの拘束力はありたせん。



Andrew オンラむンに関連するアむデアは奜きではありたせん。 ここに掚論の行がありたす。



Visual Studio環境でアプリケヌションを開発する人がいたす。 CppCatを実行しおプロゞェクトを分析するよりも簡単なこずは䜕ですか 人は結果が奜きか嫌いかのどちらかです。 必芁に応じお、圌はツヌルを賌入できたす。 ここでのオンラむンサヌビスは、5匹目の犬のようなものです。



「プロゞェクトをどこかにアップロヌドしおチェックアりトする」ずいうトピックに関する空想は実装するのが非垞に難しく、䞻な理由は明確ではありたせん。 アナラむザヌには、コンパむル可胜なプロゞェクトが必芁です。 そうしないず、どのタむプが䜕を意味するのか、どのプリプロセッサディレクティブが蚭定されるのか、マクロを展開する方法などがわからなくなりたす。 これは、どこかで本栌的な環境を構成する必芁があるこずを意味したす。 これは自動的に実行できたせん。 アナラむザヌがプリプロセッサディレクティブなどを認識できるように、プロゞェクトで䜿甚されるラむブラリを入力するように匷制し、Webシステムでプロゞェクトの類䌌物を䜜成する必芁がありたす。 人は、雲のどこかに「䞊行プロゞェクト」を䜜成しお維持する必芁があるこずがわかりたす。 そしお、この魅力をどこかに保持し、サポヌトする必芁がありたす。



オンラむンアナラむザヌを䜿甚できるのは、実隓するこずだけです。 しかし、やらないほうがいいです。 プログラマヌは、そのようなテストに察しお非垞に䞀方的なアプロヌチを取っおいたす。 このテヌマに関するメモを曞きたした。 「静的分析に関する神話。 5番目の神話-ツヌルを評䟡する小さなプログラムを䜜成できたす 。 人は、1぀、2぀の䟋に基づいお吊定的な結論を簡単に匕き出すこずができたす。 それで、圌に圌の実際のプロゞェクトをよりよくチェックさせ、その䞭の゚ラヌを芋぀けさせおください。



CppCatは、MS Visual Studioの䞀郚のバヌゞョンでの䜿甚を提案しおいたす。MSVisual Studioは、その䜿甚プラットフォヌムWindowsおよびデスクトップアプリケヌション党䜓を定矩したす。 はい、Windowsはワヌクステヌションずサヌバヌの䞡方に存圚したすが、倧芏暡なWebリ゜ヌスたたは新しく構築されたクラスタヌに関するあらゆる皮類の出版物を芋るず、基本的に、サヌバヌ゜フトりェアセグメントでLinuxに関する倚くの情報を芋るこずができたす。 サヌバヌセグメントでのWindowsの成功は、デスクトップセグメントでのLinuxの成功に䌌おいるこずに気付くかもしれたせん。 Windows甚のデスクトップアプリケヌションの䞭で、C ++にはたすたす倚くの競合他瀟がありたす;サヌバヌ゜フトりェアセグメントでは、C ++にも競合はありたせん。 Linux向け補品のリリヌスずサヌバヌ゜フトりェア垂堎ぞの浞透に関するあなたの立堎を知りたい。



Googleで゜フトりェアを販売する詊みに関する興味深い蚘事があり 、補品の有甚性の䟋ずしお、Chromeブラりザヌを確認したした。 この問題に新しい開発はありたすか * nixプラットフォヌムのバヌゞョンのリリヌスを考慮に入れお、サヌバヌ゜フトりェア垂堎で補品を宣䌝する際に倧䌁業ず協力する可胜性を怜蚎しおいたすか Yandex、Mail.ruなどの囜内プレむダヌもいたす。



アンドレむ 最初は、粟神の䞭で䜕かを曞きたかったのです。「Linuxバヌゞョンはないので、期埅されおいたせん。 あなたが私たちの無胜さ、怠iness、専制を考慮するこずができる理由。 圌をそのたたにしおください。」 それから、Linuxに関連する質問をむンタビュヌから削陀するように䟝頌するこずにしたした。 しかし、同僚が尋ねたした「珟圚、仮想マシンで実行されおいるLinuxバヌゞョンがないず蚀っおいるのはなぜですか」 このトピックに関する詳现な回答を行う必芁があるこずに気付きたした。



私たちは小さな独立した䌚瀟です。 他の芪組織や政府の助成金からのフィヌドはありたせん。 愚かなこずをし始めるず、私たちは非垞に簡単に存圚しなくなる可胜性がありたす。 3か月以内に費甚が収益を超えるのに十分であり、それを閉じるこずができたす。 そのような愚かなアクションの1぀は、「Linuxバヌゞョン」を実装するためにむンフラストラクチャを膚匵させるこずです。



プログラマは頑固に、コンパむルされた実行可胜ファむルが゜フトりェア補品ず同じではないこずを理解し、認識したくありたせん。 それは陳腐に聞こえたすが、実際に人々は象の倧きさの違いに気づいおいたせん。



openSUSE 13.1のアナラむザヌのコマンドラむンバヌゞョンの䞋にアセンブリがありたす。 起動し、譊告も衚瀺したす。 ただし、「Linuxバヌゞョン」はありたせん。 圓瀟にはそのような゜フトりェア補品はなく、近い将来には期埅されおいたせん。



幞いなこずに、私ずEvgeniy EvgeniyRyzhkovは、プログラマヌだけでなくマネヌゞャヌも兌ね備えおいたす。 そうでなければ、私たちは䌚瀟ずしお長い間姿を消しおいたでしょう。 技術的な熱意がどのようにすべおを台無しにするかを予芋できたす。

゜フトりェア補品の構成を思い出しおください。

  1. オペレヌティングシステムのサポヌト。 たあ、これで、すべおが比范的簡単です。 プログラムを取埗しおコンパむルしたした。 ただし、このためには、少なくずも仮想マシンず、アセンブリシステムの耇雑さずリリヌスの準備が必芁になるこずに泚意しおください。
  2. コンパむラおよびシステムラむブラリのサポヌト。 これが困難の始たりです。 C ++プログラムは、どこでも同じように分析できる単なるテキストファむルだずは思わないでください。 各コンパむラずシステムラむブラリは、あらゆる皮類の非暙準の拡匵機胜でいっぱいです。 これらの機胜のサポヌトはごくわずかですが、非垞に倚くの䜜業が必芁です。 「__restrict」キヌワヌドの䜿甚頻床が「for」挔算子の10,000倍少ないずいう事実は、サポヌトされない可胜性があるずいう意味ではありたせん。 倚くのプログラマヌは、_Bool、__ w64、__ noop、__ int3264、__ if_exists、123.0fi、__ uuidof、__ based、__ LPREFIX、__ builtin_offsetof、__ volatile__などなどを認識しおいたせん。
  3. 蚺断ルヌル。 各システムには、独自のデヌタモデル、ラむブラリ、その他の埮劙な違いがありたす。 適切な蚺断を行いたい堎合は、システム機胜の機胜を知る必芁がありたす。 たずえば、PVS-Studio / CppCatには、この関数たたはその関数の誀った䜿甚方法ず期埅できるこずを瀺す巚倧なテヌブルがありたす。 関数 '_wcsicmp_l'が最初ず2番目の実匕数に䞀臎する堎合、疑わしい。 珟圚、ファむル「functions_info.cpp」は800キロバむトを超えおおり、䜜業を完了しなければなりたせん。 他のシステムに移動したい堎合は、察応するシステム機胜を考慮しお、テヌブルを倧幅に補充する必芁がありたす。 これは非垞に時間のかかるタスクです。
  4. ドキュメンテヌション ドキュメントは真剣に䜜り盎さなければなりたせん。 PVS-Studioのドキュメントを含むPDFファむルには250ペヌゞが含たれおおり、垞に成長しおいるこずを芚えおおく必芁がありたす。
  5. 開発環境ずの統合。 コン゜ヌルに䜕かを印刷するこずず、ツヌルを䟿利にするこずはたったく別です。 Windowsでは、優先順䜍は明癜です-Visual Studioず統合する必芁がありたす。 Linuxの䞖界では、すべおがより倚様です。 最も䞀般的な゚ディタヌのいく぀かをサポヌトする必芁がありたす。 プラグむンの圢匏ではない堎合でも、ナビゲヌションを実行できるように、適切な圢匏で情報を衚瀺できる必芁がありたす。
  6. 配垃キット。
  7. テスト。 最もキラヌなアむテム。 自動テストには倚くの皮類がありたす。 メむンシステムは、蚺断の違いを瀺す䞀連の回垰テストです。 合蚈で、100以䞊のオヌプン゜ヌスプロゞェクトがこれに䜿甚されおいたす。 完党なテストには䜕時間もかかりたす。 新しいオペレヌティングシステムを孊習する堎合は、より耇雑でポヌタブルな新しいテストシステムを䜜成する必芁がありたす。 このシステムでアセンブルできる少なくずも50の新しいオヌプン゜ヌスプロゞェクトを芋぀ける必芁がありたす。 たた、新しいオペレヌティングシステムで単䜓テストを実行する方法なども孊ぶ必芁がありたす。
  8. サポヌト。 さたざたな仮想マシンず、このシステムに固有の問題を理解する準備ができおいる人々を手元に甚意する必芁があるため、サポヌトはより耇雑になりたす。


そしお今、最も重芁なこず。 Unix / Linuxバヌゞョンでは、誰もが自分のオペレヌティングシステムを理解しおいたす。 これは非垞に重芁です システムXのパッケヌゞがあるずいう事実から、システムYのナヌザヌは暖かくも寒くもありたせん。 圌にずっおは、「Linuxバヌゞョン」はただありたせん。 これは、少なくずも5぀の異なる最も䞀般的なシステムのバヌゞョンを䜜成する必芁があるこずを意味したすただし、䞍満は残りたす。



したがっお、䞊蚘のすべおに、サポヌトされるシステムの数を掛ける必芁がありたす。 たずえば、これに5を掛けお、䜜業量を想像しおください。



同時に、むンフラストラクチャコストはすぐに倧幅に増加したす。 プログラマが必芁です。 はい、仮想マシンず回垰テストの動物園をサポヌトするだけでも、特別なシステム管理者が必芁です。 テストのために異なる仮想マシンを順番に実行する耇雑なむンフラストラクチャを䜜成する必芁がありたす。 さらに、テストは少なくずも䞀晩合栌する必芁があるため、耇数のコンピュヌタヌを䞀床に、たたは匷力なサヌバヌが必芁なようです。

新しいプログラマヌ、システム管理者、コンピュヌタヌ、サヌバヌ、仮想マシン、远加ケヌブル、電気ネットワヌクが燃え尜きないように、サヌバヌ甚の远加スペヌスを削陀したす。



残念ながら、私が説明したこずはプログラマの90に理解されおおらず、笑いたした。 圌はワむダヌを匕っ匵ろうずしたした...

簡単なプログラマヌは、トラブルの際に電気技垫を探すために走るこずはありたせんでした。 ただ䜙分な䌑みがありたす。 プログラマヌは、電気ブヌスから電線を匕き䌞ばそうずしお、官僚的な地獄の茪を通り抜けるこずはありたせんでした。 もちろん、ワむダヌを䟋ずしお匕甚したした。 ワむダヌがないので、䜕か他のものがありたす。



近い将来にそれを匕っ匵るこずはありたせん。



囜内の゜フトりェア䌚瀟ずのやり取りに぀いお話しおもらえたすか たずえば、Kaspersky Lab、Acronisなどの䌁業の堎合。



アンドリュヌ これたでのずころ、これらの䌚瀟や同様の䌚瀟ずのコミュニケヌションはありたせんでした。 䜕を思い出すのかさえ分かりたせん。 Yandexずはかない䌚話がありたした。 NDAが眲名されおいないので、あなたが䌝えるこずができるず思いたす。



IPOがいく぀かの新興䌁業を買収するこずで少し匷化するこずを決定する少し前に、Yandexはそうしたした。 少なくずも私たちは印象を受けたした。 圌らはさたざたなチヌムず熱心にコミュニケヌションを取りたした。 私たちは私たちず話したした。 しかし、うたくいきたせんでした。



質問は「どのくらいのお金で、あなたのスタヌトアップは誰に借りおいるのですか」 それに察しお私たちは正盎に答えたした。 スタヌトアップは私たちにお金をもたらし、私たちは黒人です。」 圌らは驚き、興味を倱いたした。 これは理解できたす。 負けたスタヌトアップを償還しお、それによっお優秀な埓業員を獲埗するこずは、はるかに簡単で、より有益です。



PVS-Studio, . , Yandex Coverity.




, CppCat — PVS-Studio, , . Standart, Professional .. , ? . - ? , , - , , , .. CppCat?



: , PVS-Studio , . / . . CppCat . PVS-Studio , CppCat .



Cppcheck? - , Linux - ?



: Cppcheck — .

. - . , , .



Linux . , .




2013 «PVS-Studio. » , . . ? ?



: . . , , . . PVS-Studio , .



, , , . . - « », , . .



, , , « »?



: CppCat. , . PVS-Studio . , .



CppCat . $250 . – .



, «» . , «» , , , . , , . , .



, , , . . , . , . , . . . , $250-$500 , . .



. (KAV) 3 . 2 1 . - . . : « 3 . , 2 1. ». : « , ».




. C++ .



C++ «» , C++ — « ++». C++ — , ; - 




, ? C++, Windows, — . ?



: . C++ , 20 . Chromium, , C++ .



Chromium . C/C++ . C/C++. -, FORTRAN COBOL. .



FORTRAN / COBOL . , Intel FORTRAN, Intel C++. COBOL .



. , . , . FORTRAN COBOL . .




- ? , ? , , ?



: . , :).



, . - . , . .




たずめるず



? , , , — , . — . . , , « » (, ..). , , «» «».



— ! , — CppCat. . : « ?», « CppCat» , , .



Windows. Linux . . , . - . Linux . , , , . , 20% - 80% . , , , , 10/90. , 90% 10% , , Linux , . , . « » , — Windows . , , .

C++ , , , . , C++ ( CppCat Cppcheck ). , C++ , — , , , .. , .



CppCat PVS-Studio . . - , , , , , .



, !



残念ながら、CppCatプロゞェクトの開発やサポヌトは終了しおいたす。 理由に぀いおはこちらをご芧ください 。





All Articles