ホームページ >Java >&#&チュートリアル >シフトレフト プログラミング (ケーススタディとしての Rust)

シフトレフト プログラミング (ケーススタディとしての Rust)

DDD
DDDオリジナル
2024-12-31 13:02:09916ブラウズ

Shift-left programming (rust as a case study)

シフトレフト プログラミングでは、ソフトウェア開発ライフサイクルのできるだけ早い段階で潜在的な問題を発見することが重要です。 「シフトレフト テスト」がテストを開発の開始に近づけることを意味するなら、「シフトレフト プログラミング」は、数時間、数日ではなくコードを書いている間にバグを捕捉するツールと言語を選択することを意味します。あるいは数か月後、手遅れでコードがすでに本番環境にあり、午前 2 時に全員がパニックになっているときもあります。

のような動的言語? パイソン、? Perl と ☕ JavaScript は驚くほど柔軟です。しかし、優れた柔軟性には、大きな実行時エラーが伴います。これらの言語は、「もちろん、私が対応します!」と言う友人のようなものです。しかし、すでに大惨事の半分まで来ているのに、何が起こっているのかまったくわからないと認めるだけです。

一方、? のようなコンパイル言語は、 CC 、☕ Java、および Rust はより厳格であり、寛容度ははるかに低くなります。彼らはプログラミング言語のヘリコプターペアレントです。部屋 (コード) がきれいになるまでは、ドアの外にも出させてくれません。例:

  • Perl では、42 (数値) に「42」(文字列) を追加すると、肩をすくめて「何はともあれ、数学は数学です」と言います。
  • Python では、癇癪を起こしますが、それは実行時にリンゴとオレンジを追加しようとしていると認識したときのみです。
  • CJava では、そのような型を混在させようとしても、コンパイラーはコードを実行させません
  • そして錆び? Rustはまったく異なるレベルにあります。コードを提出する前に、赤ペンでコードを返却する超厳格な教授です。

Rust は型の不一致を検出するだけではなく、メモリ管理プロセス全体を事実上子守りします。ぶら下がっているポインタや競合状態のことは忘れてください。 Rust では、メモリの安全性に潜在的な問題があるコードをコンパイルすることさえできません。一方、C は「頑張ってね!」と言ってあなたをプールの奥に投げ込むかもしれません。手を振ると、ラストがそこにいて、「待って!浮き輪を忘れたのよ」と言いました。

しかし、問題は次のとおりです: Rust は、すべて の間違いから救ってくれるわけではありません。 減算するつもりだったときに追加したり、次のようなアルゴリズムを作成したりすることを妨げることはありません。 間違った問題を完全に解決します。ただし、null ポインターの逆参照、バッファ オーバーフロー、メモリ リークなど、致命的な障害の最も悪名高い原因からは保護されます。

では、Rust が究極のシフトレフトプログラミング言語である理由は何でしょうか?これにより、高速で効率的な低レベルのコード (? や C など) を作成できると同時に、数週間のデバッグにかかる​​コスト、さらには最悪の場合、運用停止中に発生する可能性がある種類のエラーを防ぐガードレールを提供できます。ホリデーセール。 Rust を使用すると、バグの対処に費やす時間が短縮されますか?配送時間の延長機能も備えています。

そして一番いいところは? Rust は安全性だけを保証するものではありません。それは自信についてです。あなたは裏切らないことを知っているコードを出荷します。それは、記憶管理のために番犬を飼っているようなものです。フレンドリーで保護的で、忍び込もうとする虫にはいつでも吠えます。

簡単に言うと: Rust はプログラミングを単に左に移動させるだけではなく、アウトバーンに移動させます。

以上がシフトレフト プログラミング (ケーススタディとしての Rust)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。