プログラマーはこれらの障害を克服したかどうかをテストします

-
リリース: 2018-03-06 14:02:54
オリジナル
1729 人が閲覧しました

プログラマーはこれらの障害を克服したかどうかをテストします

プログラマーの最も難しい仕事は、コードを書くこととはほとんど関係ありません。コーディングは論理的思考の実践であり、プログラマーの日常業務の他のタスクに比べて比較的単純です。自分がまだ平均的なプログラマーだと思っている場合は、真にエキスパートの仲間入りをする前に、次のような昇進の障害を克服していることを確認してください。

1. 何をしているのか説明する

ソフトウェア開発プロセスを説明するのは難しいことです。プログラマーではない人は、プログラミングについてはよく知っているかもしれませんが、明らかにプログラミングの方法を知りません。彼らにとって、私たちの生活は暗い部屋でキーボードの前に座ってコーヒーを飲むことで構成されています。

プログラマーはこれらの障害を克服したかどうかをテストします

あなたの友人、家族、同僚の中には、コーディングは正しいキャリアではないと考えている人々に出会うでしょう。

2. ソフトウェア ソリューションを視覚化する

いくつかの簡単な要件に基づいて、通常はほとんど知識がなくても、データ構造、ソフトウェア アーキテクチャ、コード アルゴリズム、通信プロトコル、およびビジネス上の問題に対するさまざまなコンポーネントのその他すべてのソリューションを設計する必要があります。そして、素人でも理解できる言葉で表現し、指定された期限内にクライアントに提出する必要があります。

これをうまくできるプログラマーはほとんどいません。

3. 構築期間を評価する

これはプログラマーにとって悩みの種です。開発タスクが完了する前に、タスクの完了に必要な時間を判断することはまったく不可能です。おそらくプログラムは私が以前に書いたものとよく似ていますが、環境が変わり、問題が変わり、制約が変わりました。

経験によってある程度の判断力は得られますが、ほとんどのプログラマーは問題の難しさを過小評価することに慣れています。その理由は、コーディングの側面のみを考慮し、To-Do リストの他のことを無視しているためです。

4. 他の人のコードを保守する

解決策は 10,000 通りあり、問題の書き方も 10,000 通りあるかもしれません。他の人が書いたコードを引き継ぐということは、元の作成者のアイデアを理解するために、何千行ものコードを調査するために数えきれないほどの時間を費やす必要があることを意味します。そして、それがコメントやドキュメントを信じないプログラマーによって残されたプロジェクトの半分である場合、問題はさらに大きくなります。

5. ソフトウェアの境界があいまいになり、人々が血を吐くような奇妙な機能要件

アジャイル開発手法はソフトウェアの範囲を拡大するためのある程度の準備スペースを提供しますが、特に何らかの問題に遭遇した場合には何の役割も果たしません。気まぐれから生まれた機能リクエスト。これは必ず失敗することはわかっています。あなたのチームは、これは間違いなく失敗することを知っています。しかし、クライアントはそれが素晴らしいと思っており、必然的に失敗が発生した場合、すべてはクライアントの真意を理解していないあなたのせいです。

6. 最適化の欠如と過剰な最適化の間のバランスを見つける

複雑なソフトウェアが完璧になることはありません。より良い解決策は常に存在します。最適化は際限なく続けることができるため、ソフトウェア プロジェクトが予定より早く完了することがありません。

その一方で、「もう十分だ、後で最適化する」という考え方もよくあります。コードは今日は正常に動作しますが、明日には問題が発生したり、動作しなくなる可能性があることがわかります。もちろん、それを変更する必要はありません。それは次の不幸なプログラマーに委ねられます。

7. コードをテストします

単体テストも作成し、ソフトウェアはテスト グループに提出されましたが、バグはまだ存在します...

ソフトウェアは複雑で、数千行のコードが含まれる場合があります。システムには何百万ものさまざまな対話や論理パスが存在する可能性があり、それらすべてをテストすることは不可能です。

同様に、ソフトウェアは、異なる条件下で異なるプラットフォーム上の異なるソフトウェアと対話します。それらすべてを測定することはできません。

良い単体テストを書くのは退屈で大変な作業です。理想的には、開発が開始される前にテストを作成する必要があります。しかし、4 週間が経過してもまだ使用可能なソフトウェアがない理由を顧客にどう説明すればよいでしょうか?

単体テストではすべての問題点をカバーできるわけではありません。理想的な世界では、独立したチームがテストを作成し、積極的に問題を特定する必要があります。残念ながら、ほとんどのプロジェクトでは、これにはコストと時間がかかりすぎるため、開発チームがテストを作成することになります。開発チームは、多くの極端なエッジケースを無意識のうちに回避します。

プログラマーは、すべての問題を論理的な方法で処理することを好みます。しかし、このようなユーザーはほとんどいません。彼らはあなたが予期しない問題を明らかにするでしょう。

8. ソフトウェアのドキュメントを書く

コードのドキュメントを書くのは、面倒で時間のかかる作業です。これが得意なプログラマも、これを好むプログラマも、時間をかけてこれらを読むプログラマもほとんどいません。

9. IT の問題に対処する

あなたは毎日テクノロジーを勉強しています。あなたは HTML または PHP プログラマーかもしれませんが、ハード ドライブの破損、ドライバーの競合、ソフトウェアのクラッシュなどの問題に遭遇する可能性があります。これらの問題を修正するのはあなたの主な責任ではありませんが、修正しない限り、開発作業を続けることはできません。

IT 関係者以外の人々にとって残念なことに、プログラマーはソフトウェアとハ​​ードウェアの両方に精通している人々であると考えられています。問題が発生すると、時間を費やすことなく自分たちで解決し、直接あなたのところに来ます。問題が何であれ、あなたはコンピューターに詳しいので、予算を Sage にインポートする方法、Oracle を構成する方法、または BlackBerry で電子メールを送信できない理由を知っています。

もちろん、これらの中断が仕事を完了できない理由になることは決してありませんし、報酬もありませんよね?

10. 人の問題に対処する

上記の問題はすべて「人の問題」として要約できます。 」。パイロットに飛行機の操縦方法をアドバイスしたり、電気技師に飛行機の配線方法をアドバイスしたりする素人はほとんどいません。しかし、多くの人が熱心かつ勇敢にソフトウェアの開発方法を提案します。

これらの人々にとって良い解決策はないと思います。世界の半分の人々の知能が平均以下であるという事実を受け入れる必要があります

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート