Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。英久ほとんどの大きな開発組織は何らかの形のコーディング標準とベストプラクティスをもっている。これらの標準をわかりやすくドキュメント化して常に最新に保つことは、多くの組織にとって重要なチャレンジとなりうるし、まして、それらの標準やベストプラクティスを一貫して実施することは、もっと困難だ。私たちの組織は、コーディング標準とベストプラクティスの実施をビルドプロセスの一部として自動化するのが非常に効果的であることに気付いた。私たちのソリューションでもっとも重要なのは、その積極的な性質にある。コードレビューを行い、コードのよくないプラクティスに対しては個々の従業員から直接フィードバックを得られる仕組をもった成熟した組織であったとしても、そのプロセスを過去にさかのぼって実施すると、そこでたくさんの問題点が見つかることになり、開発者は過去に犯したミスの対応に追われる。よくないのは、もしレビューが開発中に行われなければ、品質の低いコードが製品にまぎれこみ、製品にダメージをあたえてしまうことだ。私たちのビルドプロセスは一元管理され、コンプライアンスのチェックはあらゆるソフトウェア資産のビルドにおいて自動的に実行されるので、有害なコードが製品に組み込まれてしまうことはそもそも起こらないし、コストのかかるプロジェクトのクリーンアップや、遡及的な監査戦略から生じる従業員のパフォーマンスに関する不愉快な議論を減らすことができる。形式のレポート)を受ける。システムは、自分の誤りを恐れるなど感情に左右されることはない。これにより、開発者は新しいコーディング標準を思い出すのにビルドを何回か試みなければならないかもしれないが、自分たちの誤りから学習する機会をもつことができるし、システムは組織が危険なコードから守られていることを積極的に保証しつづける。集中ビルドプロセス私たちがここで議論する戦略が効果を発揮するには、次の二つのことが必要だ。:サーバベースの集中ビルドプロセスが必要である。スクリプトをベースにした自社開発のビルドシステムだ。いった製品がまだ成熟していなかったからだが、これからビルドシステムを導入するのであれば、自分で開発するよりもサードパーティ製のものを利用することをすすめる。私たちはビルドシステムを自分たちで構築したため、これから述べるプロセスのカスタマイズは直接そのシステムに実装する形になったが、みなさんはそれらの機能をサードパーティ製ビルドシステムに組み込むことができるはずである。そのビルドシステムを通さなければ開発者がコードをテスト環境や運用環境に適用できないようにする必要がある。私はものごとを独断的に見るのは好きではないが、これについては選択の余地はない。クラスファイルをテスト環境や運用環境に直接アップロードすることができるなら、ここで私たちが議論しているソリューションの効果は激減する。プロセスを実行するアカウントにのみ書き込み権限を与えることによって、ビルドプロセスを開発者がコードをテスト環境や運用環境にアップロードすることのできる唯一のメカニズムとした。ビルドシステムは、ビルドを実行する都度、ソースコード管理リポジトリからプロジェクトを取得するので、先に述べた書き込み権限のロックによって、二つのことが実現される。それは、テスト環境および運用環境にあるすべてのコードが、管理されているソースコードと同じものであること、そして自動化された監査を通過しているということである。いう製品を使うことになったが、ここで述べることを実現可能な製品は他にもある。良い点と悪い点がある。私たちにとって効果的なツールではあったが、私たちが必要とする動作をさせるためには周辺のインフラをハックしなければならなかったし、ここで提示する戦略を実現するには、そのままで利用できる製品ではなかった。静的解析と動的解析というふたつのメイン機能がある。動的解析機能は便利だが、今回の戦略のスコープからははずれてしまうので、ここでは論じない。私たちに与えてくれる以前のことで、当時、多くの組織がこの問題を解決しようと奮闘していた。クラスの構造と内容を解析し、ルールを適用する。ブロック内でコネクションをクローズもしくはコネクションプールに返却していることを確かめる」、といったものだ。エラーが起こったらビルドが自動的に失敗するようにビルドシステムを変更した。そのシステムはみごとに動作し、データベースコネクションの問題は解決した。アプリには今でも有用である。現在でも有効な多くのルールがある。私たちは、それがアーキテクチャ的な標準を実施するためのすばらしいツールであることに気付いた。ステートメントを用いるのを不可能にするようなルールを適用した。表面をなぞっているだけにすぎない。数百のルールが最初から組み込まれているし、必要があれば自分でルールを作成することもできる。ついて言っておきたいことがいくつかある。私たちが購入した当時、サーバとしてはあまりよいとは言えなかった。私たちはその製品を、ビルドサーバから呼び出すコマンドラインを通じて自分たちのサーバインフラと統合した。一元化されたレポーティングサーバとつなぐことで、私たちがここで議論している類の明確な組織的コントロールとガバナンスが達成できる、と考えているように思えるが、その考えは誤りだということに私たちは気付いた。保証できないということである。エラーがあるからコミットはできません」などと言ってコミットを中止させることのできる制御ポイントはない。そのため、テストはデスクトップ上ではなく中央のコントロールポイントで実行されなければならないし、私たちにとってはそれが自分たちのビルドシステムなのである。必要だったし、その統合作業を自分たちで行わなくてはならなかった(それはひどく困難というわけでもなかったが)。唯一の選択肢ではないということも、あらためて言っておきたい。アスペクトを使ってコーディング標準を実施したと語っている。これは集中ビルドサーバ上での実装も容易なのではないだろうか。できることがすべてアスペクトでできるかどうかはわからないが、この方法はお金がかからない。見ることのできるさまざまな静的解析機能のサブセットを実行する。含まれている構文およびコーディングスタイル標準のためのサポートがある。ガバナンスを広く行き渡らせるためのベストプラクティス自動化されたソフトウェアガバナンスを展開していくための戦略は、そのソリューションを構築するためにどういうテクノロジを選択するかということよりもはるかに重要だ。ここに、私たちが数年間の経験から学んだ教訓をいくつか挙げておく。:ガバナンスの構造をシンプルに保つこと。ルールはビルドを中止し、その問題が修正されるまではプロジェクトはテスト環境および運用環境に配備できない。基本的には中間準備的なものだ。格上げされるので、納期に追われたりコードのビルドができなくなる前にその問題を修正するよう、開発者に伝える役割をもつ。修正を強制する効力をもたない。上げないかぎり、実際に製品への適用を妨げる力とはならない。最初から数百のルールが用意されている。その理由は単純で、間近にせまる納期にプロジェクトマネージャが悲鳴をあげていたため、私たちはコントロールポイントが迂回されてしまうような慣習が確立されるのを避けようと思ったのである。アグレッシブに例外を出しまくるよりも、保守的な態度をとってプロセスを信頼できる状態にしておくほうがいい。積極的にインパクト解析を行うこと。ルールを配備しようとしているなら、プロジェクトにおいてそれらの問題がどのくらいの頻度で発生するのか、そしてそのコードを修正するのに必要な時間とコストはどれくらいなのかについて、よく知っておいたほうがよい。これは難しいことではない。その新しいルールを有効にしてプロジェクト上で静的解析を走らせ、結果がどうなるかを見るだけでよい。格下げを余儀なくされるという事態を避けることができるだろう。問題に対処する重要性について組織に対して伝える努力をしよう。ルールを実装せざるをえない場合もあるだろうが、その場合、経営陣がその影響を理解し決定を支持してくれることが絶対的に重要である。コミュニケーションをとること。新しく作成したルールやそれらがもつ価値、そしてそのルールを実装することになった理由について、コミュニティに話をしよう。彼らはきっとあなたに同意してくれる。彼らは、後になって突然知らされることは好まない。私たちの実装の詳細にもかかわらず、積極的で自動化されたソフトウェア監査は私たちにとってすばらしい利益となった。私たちが制作するソフトウェア資産の品質は向上したが、おそらくもっと重要なのは、私たちがそれを実現するのに、信頼できるシステムを組織的にそしてメンテナンスに大きなエネルギーを費やすことなく利用したということだろう。標準をサポートするための組織的なプロセスが人の手による管理にもとづいている場合、そのメンテナンスには組織的リーダーシップを集中させることが求められる。開発をサポートするインフラを適切に設計することによって、より組織的なセキュリティを、より小さな努力で得ることができるのである。アーキテクチャグループでリーダーを務める。8,000億ドルの運用資産をもつ世界最大の保険会社である。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員��して、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。