よくある間違い初心者ソフトウェア開発者が作成し、それを回避する方法

UnsplashのFancycraveによる写真

私は大学を卒業したばかりのソフトウェア開発者としての仕事にわずか1か月かかりました。私は自分のチームに貢献するために準備運動をしていました。どういうわけか、私は既存のコードベースを調べながら、非常に興味深い考えを持っていることに気づきました。私のチームは、このコードベースを数か月から数年かけて構築しました。

最初のタスクとして、サービスの将来のバージョンを安定させるのに役立つ小さなバグ修正を行いました。私のチームはサービスのアーキテクチャを説明し、より大きなプロジェクトの壮大な計画のどこに当てはまるのかを説明しました。バグを修正するためにコードを追加/削除または変更する必要がある場所を見つけるのは私にありました。

私はコードベースを掘り始めましたが、そのほとんどは過去2年間に作成されたものです。標準ではありませんが、レガシーコードでした。私がそれを深く掘り下げて行くと、私はかなり不敬な考えを抱いていることに気づきました。コードが見た目に美しいとは言えなかったと言うのは、それを置く穏やかな方法でしょう。これが私のチームのコードベースに対する反応です。

これはすごい!!!

うん、ここには200行の関数があります。

誰がこのがらくたを書いたの!

ああ、if-elseブロックの中にif-elseブロックがあります。

このコードは大きな毛むくじゃらの混乱です! eff it。

これは最初から書き直す必要があります。

激怒しました。私はこれらの考えを持っていたので、私の一部は不思議に思っていました、これをすべて理解する方法はありますか?このコードの大部分を書いた私のチームのこれらの年配の人たちについて、私が知らなかったことがありました。私は見つけ始めました。

私はチームの年配の男性をつかんで簡単なチャットをし、彼に質問を投げ始めました。

議論の後、私が知ったものから、私にとって非常に啓発的でした。チームは、コードにメンテナンスの問題があることを認識していました。ただし、既存のコードベースは、いくつかの理由で形になりました。彼がこれらの理由を私に説明し続けたとき、この投稿が理にかなっている理由がわかりました。

ソフトウェア開発者が作業しているコードの品質を尋ねたときの理由の答えを見つけるために読み進めてください。デフォルトの応答は「混乱です」です。また、物事を地面から構築することは、ほとんどの場合、解決策ではありません。

コードは別の理由で書かれています

私を含め、ソフトウェア開発に慣れていない人のほとんどは、コードはマシン用に書かれていると考えています。違う。 N。それは人間のために書かれました。マシンはあなたが書いたJavaScriptコードさえも見ません。彼らが見るのは0と1のシーケンスだけです。そして、私のチームのためのサービスが構築されていたので、提供しなければならない成果物に本当の期限がありました。ソフトウェア開発者はすでに非常に精神的に負担がかかっています。配信のプレッシャーのどこかで、コードを機能させることは、非常に美しいコードを書くことよりも優先されます。

あるファイルから別のファイルに移動して物事を理解するのとは対照的に、大きなコードの塊は、仲間の開発者に直接書いて説明する方が簡単です。その後、これらの決定は長期間にわたって残る可能性があります。

製品コードはバトルテスト済み

私のチームは多くのインシデントレポートを受け取りますが、コードの重大なバグ修正につながることがあります。ここでエラー処理if-else節、そこにtry-catchがあり、突然、コードベース全体が毛を生やしました。これが、最善の意図にもかかわらず、コードベースがより厄介になり始める方法です。

これがまさに、コードを一から書き直すことがそんなに素朴なアイデアである理由です。これにより、行われたすべてのバグ修正と改善が破棄されます。これらは数か月から数年にわたって蓄積されたものであり、ユーザーが何らかの問題を抱えている可能性があります。開発者は、これらのバグが報告された後、それらを修正するために数時間を費やした可能性があります。

うまくいくのは方法です

ビジネスの世界では、製品やサービスに応じてクライアントが存在する可能性があります。コードが可能な限りリファクタリングされるかどうかは誰も気にしません。すべてのコード行は、ビジネス上の問題を解決するために書かれています。リファクタリングの取り組みによってどのような価値が生まれるかを自問してください。おそらく何もありません、そして、彼らはより多くのバグを導入することになります。さらに、あなたの時間を最大限に活用していますか?

解毒剤

最初のステップは、問題を認識することです。問題は、私の自我が、実稼働レベルのコードの書き方を明確に知らなかったこれらの上級開発者よりも良い仕事ができると考えていたことでした。これは非常に素朴な考え方であり、私は過去に今それを避けるのに十分な時間を費やしました。

あなたのエゴの存在を認めることで、あなたはそれに対して大きな利点を得ることができます。突然、隠す場所がありません。問題を認めることは一つのことであり、それを解決することは別です。以下は、このひどい反応を回避する私の方法です。別の方法がある場合は、コメントセクションに書き留めてください。

おさる

理由を尋ね始めます!

なぜこのコードがこのように書かれたのですか?誰が書いたの?その人はまだ周りにいますか、そして彼/彼女にこれを頼むことができます。これらの人は私が知らないことを何を知っていますか?この機能が解決する問題は何ですか?

ほとんどの場合、答えに驚くでしょう。

謙虚さを育む

これは難しい作業ではありません。おそらく、あなたが自分を梯子に乗せる場所に関係なく、学ぶべき膨大な量がまだ残っています。

成長の考え方を採用することで、自分を正しい心の状態に置くことができました。ばかげたことを恐れることなく質問をすることができました。あなたがすべての答えを知っているべきではないことを知っているが、すべての答えを学ぶなら、質問をすることは些細なことです。

結論

コードの記述方法が最適であり、他の誰もがう​​んざりしていると考えるのは非常に簡単です。 3人に、文字列を文字の配列に分割する方法を尋ねます。全員が3つの異なる方法でそれを行います。おそらく、それらはすべて同等に優れており、それらすべてから何かを学ぶことができます。

質の悪いコードの処理に関しては、それを捨てることは間違いなく解決策ではありません。よりビジネスに優しい方法は、ゾウを一度に一口ずつ食べ始め、コード全体をリファクタリングすることです。