美しくなりたい!

経験を積んだプログラマーはそれぞれ、特定の高められた美意識を持っています。 この感覚は多くの人に馴染みがあると思います。 時間の経過とともに、プログラムまたはそのアーキテクチャのコンテンツに対して「テイスト」が形成されます。 これはこの方法で行われるべきであり、そうではなく、何が良いのか、何が悪いのかを理解している。 プロの気まぐれもあります( ブラケットを次の行に移動すると嫌いになります!







ところで、職場ではどのフレーズを使用していますか?



一般的に、適切に指摘されているように、プログラマは子供のようなものです。 つまり、彼らの決定はしばしば感情と​​味の好みに基づいています。 一般的に、プログラマの専門家としての任命は、純粋で複雑でない創造性、美の誕生、いわばベースの本能に対する知性の高揚であると信じる人もいます。 そのような人々はしばしば、反逆者、退化者、官僚に囲まれ、創造的なプロセスを妨げます。



おそらくプログラマーがこの幼児の状態から抜け出し、彼のために問題の特定の理解を深めるために、私の頭の中で何かが起こるに違いない。 私は「実用的」と呼ぶいくつかの重要なポイントを指摘したいと思います。 これは、世界中のプロジェクトマネージャーの数です。 カッコ内で、a)-中規模から大規模のプロジェクトb)-チームワークについて話していることに注意してください(個人が作成したプロジェクトは、この点に関してあまり示唆的ではありません)。



したがって、あなたはプロジェクトマネージャー、テクニカルマネージャー、アーキテクト、またはチームリーダーです。 バグを修正することで拷問を受けたプログラマーがやって来て、新しいスーパーテクノロジー、「すべてを書き換える」、または新しいプログラミング言語を提供します(PHPでは、この3倍の速度ですべてを書くことができると友人が言いました!) 決定方法



達成不可能な理想


動作し、開発する理想的な(アーキテクトの観点から)ソフトウェアシステムはありません。 さらに厳しいと言えますが、システムを完全に完璧な外観にすることは、原則としてシステムにとって致命的です。 または、システムの所有者には多額の資金があり、プログラマーは退屈しています。実際、危機の前に、そのような現象が発生していました。



同僚の誰かが何かを改善し、「美しく」し、ゼロから人生を始めたいという欲求を激しく表明し始めたら、まず、この人に既存の機能のテストを書くように勧めます。 その後非常に頻繁に、すべての感情がすぐに消えます。 ちなみに、私はこれを意外に行うのではなく、 ここで説明するリファクタリングの複雑さを評価する方法論に基づいて行うことを提案します



すべてを書き換える必要があります


すべてを書き直したいのは何も悪いことではありません。 実際、多くのホットフィックスやバックアップによって外観が損なわれたジャンクコードがよく見られます。 実際、リファクタリングは最新のソフトウェアのライフサイクルの一部です。 ただし、この問題について悪用する必要はありません。 プログラマのホットヘッドを真剣に冷やすのは、たとえば次の質問です。

  1. 再作業にはどれくらい時間がかかりますか? 同時に、私の考えでは、書き換えのファンは常に複雑さを過小評価する傾向があることを考慮に入れています。 ところで、コードの書き換えは、そのイニシエーターだけでなく、チーム全体によっても行われます。
  2. リスクは何ですか? 一般に、リスク管理は広大で興味深いトピックです(おそらく、それについては別に書きます)。 単純化するために、リスクがパーセンテージで表され、このリスクが依然として発生する場合、作業の複雑さが増すと想像してください。 VasyaまたはPetyaが来て、コードを1行追加するだけで、サーバーアプリケーションのパフォーマンスが大幅に改善されると興奮して言ったとします。 残念なことに、この行はLinuxカーネルコードに追加されます 。 このような操作のコストは最小限ですが、リスクは表から外れています。 次に、あなたを再保険会社と見なしているVasyaまたはPetyaに説明してください。
  3. 将来、いくつの新機能が期待されていますか? 潜在的な変更の数が最小限であるプロジェクトのセクションがあります。 もし彼らが他のすべてから独立しているなら、彼らを自分たちの、確かに不健康であるが静物のままにさせてはどうだろうか?
  4. このタスクにはどのようなビジネス上の優先事項がありますか? マネージャーは、原則として、これらの優先事項を常に念頭に置いています。 開発者の観点から見ると、何らかの生産上の問題に対処することは退屈で退屈であり、新しいコードを書くのは楽しいです。 ただし、バグの修正に費やした時間はビジネスに10万ドルをもたらし、最終的に新しいコードの作成や新しいクールなアップグレードは、プログラマーの道徳的な満足感しかもたらしません。




ご覧のとおり、すべてが非常に合理的です。 実際、私たちは何らかのビジネス算術に導かれており、すべての数値は実際の利益の観点から重み付けされています。 あなたはデジタルですべての長所と短所をもたらす「ソリューション計算機」を思い付くことができます:)



アーティストに行きます!


私は、余暇にJavaで小さなネットワークサービスを書いたCIOを知っていました。 ちょうどそのように、楽しみのために。



それでは、創造性のためのスペースが遠いほど少ないのでしょうか? あまり好きではありません。 プロジェクト/システムが開発されている場合、新しい新鮮なアイデアと最新の「一流」技術が必要になります。 ただし、既存のコードに同伴し、際限なく選ぶという欲求がなければ、これらのアイデアは必要ありません。



All Articles