面白い(ソーセージ)リファクタリング





こんにちは%habrausername%。 私はあなたとゲームをプレイしたいです。



新しい仕事を得た。 そして、最初の日に、NDAに署名した直後に、彼らは前の開発者に残っているものを示します。 あなたは悲鳴を上げたい、このひどい場所から逃げたいが、雇用契約はあなたの手足を束縛する。 したがって、かろうじて聞こえるだけです。



前の開発者からは、たくさんのコードとスリッパがありました。 スリッパをゴミ箱に注意深く入れて、リファクタリングを開始します。



このコードはひどいです。 まず、このコードが書かれた理由を言うことができる人はいません。 第二に、ドキュメントがありません。 単体テストは言うまでもなく、コメントすらありません。 第三に、コードは構造化されておらず、クラスとメソッドの名前は何も言っていません。 そして、最後に、今日でも、昨日でも、 突然ではありません。

さて、どのように、%habrausername%は、背中を冷やしましたか?



このような状況では、すべてのプログラマーは、今よりももっとうまくやれると信じています。 しかし、そうですか? リファクタリング後にコードは客観的に改善されますか? もしそうなら、コードを改善するための基準は何ですか? それとも、リファクタリングは開発者の野心を満たすのに役立つのでしょうか?



「楽しいリファクタリング」と呼ばれるTB MMOGに注目します。



一番下の行は次のとおりです。 特定のコード、リーダー、N人の参加者がいます。 プレゼンターは、最初の参加者にソースコードをメールで送信します。 参加者はリファクタリングし、結果をリードに送り返します。 その後、進行役は2番目の参加者に結果を送信し、参加者が終了するまで続けます。 コードは匿名で送信されます。つまり、参加者は誰がコードをリファクタリングしているのかを知りません。



目標は、「完璧なコード」と、さまざまな開発者がそれを達成するために使用する方法についてのアイデアを得ることです。 そしてもちろん、それは楽しいでしょう。 Fun Refactoringの結果に基づいて、行われた変更の分析を含む記事が作成され、すべてのソースコードが共有されます。



Fun Refactoringに参加したい場合は、recrowding @ gmail.comにリクエストを送信してください。 アプリケーション内のメール(ソースコードを送信するためだけに使用されます)と自分に関するいくつかの単語を示します(最終レポートで公開されます。連絡先、サイトへのリンクなどが含まれる場合があります)。



混乱を防ぐために、いくつかのルールが導入されています。

  1. コードを遅らせすぎないでください。 2日以上応答がない場合、ゲームから除外されます。
  2. 次の参加者に助けを求めて連絡するように誘惑しないように、コードに個人データを記述しないでください。 ソースコードからのメール、名前、外観などは恥知らずに切り取られます。
  3. プログラミング言語を変更することはできません。 残りの部分では、参加者には「リファクタリング」の概念の枠組み内で行動の完全な自由が与えられます。 はい、完全なゴミは除外されます。
  4. 一般的なレビューはHabréで公開され、コンペティションのすべての参加者の作品は、アプリケーションに示されているいくつかの単語とともに公開リポジトリに投稿されます。




これらのリファクタリングでは、Java言語が選択されます(Javaのプログラムを無期限にリファクタリングできるため)。 申し込みは3月18日まで受け付けています。



UPD話をしたので、元のコードヒープは1つのファイルに収集され、長さは200行以下であると言います。



UPD2多くのアプリケーションを受け取ったと言うことは、言うまでもありません。 私はそれらすべてに答えるのに十分な時間がないので、おそらく必要ないでしょう。 主なことは、すべての着信アプリケーションが記録され、ソースコードがすでに設定されていることです。 しばらくお待ちください。メールを送信したすべての人が、コードを含むアーカイブを時間の経過とともに取得します。



All Articles