私の人生で最も恐ろしいコード

私が取り組んだプロジェクトのほとんどは、すぐにメモリから消去されます。 しかし、あなたは人生の墓でいくつかを覚えています。 これについてはさらに説明します。

それは昔、ある会社で起こりました。その会社の名前は呼びません。 プログラムのコードを使用する必要がありました。このコードは、会計システムの中核であり、完全に記述され、解雇されたばかりの男が同行しました。

一般に、珍しいことは何もありません。企業は、所有者に何かが起こった場合にのみ、重要な知識が単一の頭に含まれていることに気付くことがよくあります。 原則として、文書の軽いパニックと猛烈な読書で数日が経過し、人生はそのコースに入ります。

しかし、今回はそうではありません。

いくつかの間違いが出始め、それを修正するために割り当てられた男はすぐに緊張して笑い始め、「ピザからハンバーガーを呼び出すにはブランデーが必要です」というような矛盾したことをつぶやき始めました。

システムコードを書いたプログラマーは、特別なユーモアのセンスと「知的財産保護」という彼自身のビジョンを持っていました。 開発者が解雇されてから48時間以内にオフショア口座に送金しない限り、誰もがすべての記録を消去する会計のモジュールに関する話を聞きました。 あなたが真実のためにすべてを受け入れたとしても、これは非常に簡単です。

開発者が作成したプログラムには、論理的な爆弾などの厄介なものはなく、落ち着いてコンパイルされ、記載されているエラーを除き、安定して動作しました。 しかし、想像してみてください。プログラム内のすべての関数と変数は、食物にちなんで命名されました。 ピザ、トマト、さまざまな種類のチーズ、果物、野菜、酒など。 次々と無限のページ。 外出先で認識できる唯一のものは、メインの「メイン」とstdlibの呼び出しです。

その結果、プログラムを読み取り可能な形式にするという恩知らずな仕事を余儀なくされました。
これは本当に見事な暗号化方法であり、キーを使用することでのみ、コードからこのようなサラダの内容を理解できます。 段階的に、プログラムを変換し、関数と変数の名前をより意味のあるものに変更し、さらに移動するほど簡単になりました。

ソースの操作は、未知のコードの逆解析を行うよりもはるかに簡単です(最初はコードからデータを分離し、プレゼンテーションが高レベルであるものを理解する必要があるため、この場合、テキスト形式で高レベルの表現がありました)不可能でも特に難しいことでもありませんでした。 仕事はつまらなかった。 関数または変数の真の意味を確立することができるとすぐに、他のすべては「置換」コマンドで行われました。

もう1つの問題は、コードの品質です。 実際、コード内の麺は、セマンティック名の不在よりも理解するのがはるかに困難でした。 一般に、関数と変数の名前を変更したらすぐに、理解を簡素化し、効率を高めるために、かなりの部分を書き直しました。

彼が暗号化されていないバージョンのコードを持っていて、難読化ツールを実行し、コメントを削除し、すべての名前を意味のないものに置き換えているかどうかはわかりませんでした。 まず、これを行う人の考え方を想像するのは難しいですが、そのようなコードを直接書く人を想像するのはさらに難しく、このような歌を歌うのは愚かなことです。

要するに、あなたのコードを理解することが不可能であるという理由だけで解雇されない(または連れ戻されない)と思われる場合-あなたは絶賛しています。 その男の目標が何であれ、彼の期待は最も恐ろしい方法で失敗しました(彼が雇用主から推薦を受けることができるとはほとんど想像できません)。 しかし、それでも、誰かに楽しい週と幸せな顧客を与えることができます。


Jacques Mattheij が英語で書いた。
力の明るい面の名前で接続されていない翻訳。

Source: https://habr.com/ru/post/J115923/


All Articles