プログラマが開発したプロジェクトは効率を選択しますか?それとも品質を選択しますか?
本文の著者はプログラム猿Daniel F Pupiusです。これは彼がMediumに発表したブログです。自分がコードを実際に書く過程で、効率と品質の間で選択するというのは実は疑似命題です。
プログラム開発の過程では、効率を選ぶべきか、品質を選ぶべきかという戸惑いがしばしば出てきます。多くのプログラム猿は怠けた考えを持っています。手がかりがよく分かりません。どうやって書いたらいいか分かりません。
実は過去数年間、私もそう思っていましたが、この問題のもつれは選択困難ではなく、問題そのものが疑似命題であることに気づきました。
何が「品質」ですか?一般的なプログラマが「品質」という単語を言うと、彼らが言っているのは、レート、変数名、コードフォーマット、コンポーネント化、バグ検索、プログラムテストなどをテストすることです。プログラムの開拓性、サービス遅延、製品機能の完全度もあります。
問題は往々にして上記の二つが統一され、区別されない時に発生します。実は前のコードをめぐる問題は「コード品質」問題と見なされ、第二の場合は「実行品質」または「実行度」と見なされます。
「コードの品質」から見れば、プログラム猿が近道を行くという怠けた考え方は、実は非常に短視的なやり方である。ある問題をうやむやに回避すると、一時的に手間が省けると感じるかもしれませんが、結果としてシステムを撹乱して、より多くの時間をかけて、コードをチェックして、バグを見つけて、全体の論理フレームを再調整することもあります。だから、コードの品質を犠牲にして、速度を交換します。
逆に、高品質のコードは、時間の節約に役立ちます。コード規範と変数名を統一して、他のプログラム猿に役立つだけでなく、未来のあなたにも役立ちます。今書いているコードをよりよく理解します。厳密な思考を経て設計された軽量級コードアーキテクチャは、反復製品の時により高い効率を得ることができ、より明確にどこから入手すればいいかを知ることができます。高テストの合格率は十分な自信を持って製品を調整して、バグの数量を減らして、QA時間を最小化します。
「実行品質」については,これはまた別の命題である。製品の品質を落とさずに、製品開発のプロセスをコンパクトにする方法がたくさんあります。例えば、あなたは先にいくつかのそんなに焦っていない仕事を遅らせてもいいです。全体的に最適化を実行して、システムの安定性が良い時に、また暫時棚上げされたことをします。
具体的な方法としては、まず最終的に欲しい製品の効果を決めて、その中に内容を詰めてどんどん修正します。例えば、製品の開発を開始したばかりの場合、RPCを用いてアプリケーション開発の流れを簡略化し、複雑なプロトコル転送問題を回避し、まず製品の応用レベルで高速反復し、その後RPCを交換し、再試行、エラー制御、セキュリティチェックなどのコードを加入し、または単に転送プロトコルを交換する。
Mediumコードを書く時、私達は先に効果を実現して、更に細分化の部分を調整して、最後に多くを削除してもとに設定した枠組みの中の機能に統合することができなくて、大体6万行のコードぐらいです。
だから、最初はコードの品質に気を使っていなかったら、最終的には必ず細かい問題を調べられます。効果の実現に完全に焦点を合わせていないと、必ず遅延してプロジェクトの進捗を遅らせます。でも、ご覧のように、幸いにも前の仕事は十分できました。だから、今の製品は反復が速くて、新しい機能を試し続けています。
実はインターネットの領域の中で、プログラムの猿は上述の問題に直面するだけではなくて、多くの製品のマネージャーもプロジェクトの進度と品質のためにけんかする問題に煩わされます。だからDanielのブログはとても良い思考の角度を提供しています。今度はコードの品質を犠牲にして進捗を追いかけることができるかという質問があるかもしれません。
プログラム開発の過程では、効率を選ぶべきか、品質を選ぶべきかという戸惑いがしばしば出てきます。多くのプログラム猿は怠けた考えを持っています。手がかりがよく分かりません。どうやって書いたらいいか分かりません。
実は過去数年間、私もそう思っていましたが、この問題のもつれは選択困難ではなく、問題そのものが疑似命題であることに気づきました。
何が「品質」ですか?一般的なプログラマが「品質」という単語を言うと、彼らが言っているのは、レート、変数名、コードフォーマット、コンポーネント化、バグ検索、プログラムテストなどをテストすることです。プログラムの開拓性、サービス遅延、製品機能の完全度もあります。
問題は往々にして上記の二つが統一され、区別されない時に発生します。実は前のコードをめぐる問題は「コード品質」問題と見なされ、第二の場合は「実行品質」または「実行度」と見なされます。
「コードの品質」から見れば、プログラム猿が近道を行くという怠けた考え方は、実は非常に短視的なやり方である。ある問題をうやむやに回避すると、一時的に手間が省けると感じるかもしれませんが、結果としてシステムを撹乱して、より多くの時間をかけて、コードをチェックして、バグを見つけて、全体の論理フレームを再調整することもあります。だから、コードの品質を犠牲にして、速度を交換します。
逆に、高品質のコードは、時間の節約に役立ちます。コード規範と変数名を統一して、他のプログラム猿に役立つだけでなく、未来のあなたにも役立ちます。今書いているコードをよりよく理解します。厳密な思考を経て設計された軽量級コードアーキテクチャは、反復製品の時により高い効率を得ることができ、より明確にどこから入手すればいいかを知ることができます。高テストの合格率は十分な自信を持って製品を調整して、バグの数量を減らして、QA時間を最小化します。
「実行品質」については,これはまた別の命題である。製品の品質を落とさずに、製品開発のプロセスをコンパクトにする方法がたくさんあります。例えば、あなたは先にいくつかのそんなに焦っていない仕事を遅らせてもいいです。全体的に最適化を実行して、システムの安定性が良い時に、また暫時棚上げされたことをします。
具体的な方法としては、まず最終的に欲しい製品の効果を決めて、その中に内容を詰めてどんどん修正します。例えば、製品の開発を開始したばかりの場合、RPCを用いてアプリケーション開発の流れを簡略化し、複雑なプロトコル転送問題を回避し、まず製品の応用レベルで高速反復し、その後RPCを交換し、再試行、エラー制御、セキュリティチェックなどのコードを加入し、または単に転送プロトコルを交換する。
Mediumコードを書く時、私達は先に効果を実現して、更に細分化の部分を調整して、最後に多くを削除してもとに設定した枠組みの中の機能に統合することができなくて、大体6万行のコードぐらいです。
だから、最初はコードの品質に気を使っていなかったら、最終的には必ず細かい問題を調べられます。効果の実現に完全に焦点を合わせていないと、必ず遅延してプロジェクトの進捗を遅らせます。でも、ご覧のように、幸いにも前の仕事は十分できました。だから、今の製品は反復が速くて、新しい機能を試し続けています。
実はインターネットの領域の中で、プログラムの猿は上述の問題に直面するだけではなくて、多くの製品のマネージャーもプロジェクトの進度と品質のためにけんかする問題に煩わされます。だからDanielのブログはとても良い思考の角度を提供しています。今度はコードの品質を犠牲にして進捗を追いかけることができるかという質問があるかもしれません。