これは経験則なのですが、ある程度を超えたスパゲッティコードはリファクタリングを試みても状況が改善しなくなります。 ブラックホールから光が脱出できない事象の地平線になぞらえ、これをソフトウェア品質における事象の地平線と言い(ません— なぎせ ゆうき (@nagise) 2023年6月27日 リファクタリングの事象の地平線という比喩について解説をしておきます。 前提知識として リファクタリングの価値の考察 - プログラマーの脳みそ での議論を参照していただけるとありがたいです。 事象の地平線とは 事象の地平線というのは天文学用語でシュバルツシルト面などとも呼ばれます。超大雑把にいえば、ブラックホールのまわりのここから中に入ると光でさえも出ることはできないぞ、というラインです。 つまり、比喩としてはこの中に落ち込むと二度と脱出できないぞ、ということです。リファクタリングの力ではどうやってもソフト
Javaのジェネリクスで,型パラメータ T のインスタンスが欲しくなったことはあるだろうか? 昨今のオブジェクト指向プログラミングにおいて,ジェネリクスは必須の基本文法だ。 扱う対象のクラスが抽象化されて汎用的になりつつ,なおかつ型安全性が確保される。 そのおかげで,処理の重複や分岐をコーディングする必要が無くなり,コード量が驚異的に削減される。 そういう基本的な原則を踏まえると, 「型パラメータのインスタンスが欲しい」 というシチュエーションは,Javaのジェネリクスの本来の導入目的に真っ向から逆らう。 なぜなら,ジェネリクスは型を抽象化して透過的に扱えるようにするための機構なのだから, せっかく抽象化した物をわざわざ具体化してどうするというお怒りを生む事になるのだ。 頑張って詳細なクラス情報を「T」でパラメータ化して具体性を隠ぺいしたにも関らず, その T に対して .class で具
平素はマヤ暦をご利用頂きまして、誠にありがとうございます。 長らくご利用頂いておりました、マヤ暦でございますが、 2012年12月21日(金)をもちまして、 マヤ暦を終了させて頂く運びとなりました。 お客様にはご不便をお掛けし、大変申し訳ございません。 すでにマヤ暦で予定等をお立てのお客様におかれましては、 お手数で恐縮ですが、西暦への移行をお願い申し上げます。 マヤ暦終了に向けての今後の対応につきましては、 以下の通りご案内させて頂きますので、 ご確認くださいますようお願い申し上げます。 ■マヤ暦終了日 2012年12月21日(金) ※マヤ暦終了日までは、 これまで通りマヤ暦をご利用いただけます。 以降は、フォトンベルトに突入する可能性がございます。 人類滅亡となりましても、弊社は一切責任を負いかねます。 ■新規マヤ暦について 現サイクルのマヤ暦が終了しましても、 新しいサイクルに入るだ
ちょっと大人数で行うプロジェクトに参加したことがある人なら、WBS (ワークブレークダウンストラクチャー) を目にしたことがあるだろう。 日本語だと作業分解構成と説明されることが多い。Work(作業) Breakdown(分解) Structure(構造) というわけだ。日本語の説明では、そういう説明が主流のようだ。 でも、WBS の Work は実は作業ではない。 WBS を定義した標準の最新版MIL-STD-881Cを見てみると、"A product-oriented family tree composed of hardware, software, services, data, and facilities." 「WBS の定義は、ハードウェア、ソフトウェア、サービス、データ、設備などからなる成果物指向の分解ツリーである。」 ここでいう Work は、成果物のことだ。Workb
この記事はPHP Advent Calendar 2012の20日目です。昨日はTakayuki Miwaさんの「ComposerとHerokuではじめる!PHPクラウド生活」でした。 以前、「『よくわかるPHPの教科書』のSQLインジェクション脆弱性」というタイトルで、同書のSQLインジェクション脆弱性について説明しましたが、SQLインジェクション脆弱性のあるSQL文がDELETE FROMだったので、先のエントリでは、脆弱性の悪用方法としてはデータ(ミニブログの記事)の削除を説明しました。簡単に「全ての記事を削除できる」ので重大な脆弱性ではありますが、個人情報などが漏洩する例ではありませんでした。 このエントリでは、ブラインドSQLインジェクションという技法により、DELETE FROM文の脆弱性から、個人情報を得る手法を説明します。 脆弱性のおさらい ここで、脆弱性のおさらいをしまし
http://hayabusa.2ch.net/test/read.cgi/livejupiter/1355886037/ 人懐っこい笑顔と陽気な性格。そして何より気配りできる性格で、あっという間にチームの輪に溶け込んだ。入団1年目の今季、21本塁打、76打点でチーム2冠に輝いたペーニャは、本当に魅力たっぷりの男だ。 お気付きだろうか? ペーニャは打席に入る際、球審に一礼してバットを構えている。しかも礼儀を重んじる日本人のように、ヘルメットのつば部分に右手を添える。 誰かに教わったわけではなく、完全に見よう見まねだった。 最初のころは「★※△○□●☆」と訳の分からぬ言葉を連発していた(他チーム捕手談)そうだが、シーズン中盤にかけては「ヨロシクオネガイシマス」と上達した日本語で言った後、打席に入り、投手と対峙したという。 球審だけではない。出塁した際にはヘルメットを取り、塁審にもあいさつして
Eclipse → Aptana Studio → NetBeans と、IDEを乗り換えながら使っていたのですが、どれもしっくりこなくて、大学卒業以来となる emacs にいよいよ乗り換えるときかなぁと考えていました。 コーディングしていて何が嫌かというと、別の行に移動するときに右の小指で矢印キーを押しているときや、マウスでソースコードをスクロールしているとき。Mac であれば、大抵のエディタでデフォルトキーバインドが emacs風になっているのであまりストレスは感じませんが、Windows で作業しているときは本当にストレスを感じていました。 そんな折、去年末に Sublime Text 2 の存在を知って使い始めてからは、他のIDEに乗り換える気が全くなくなるほど気に入ってしまいました。 とても素晴らしいエディタなのですが、Windows環境で使っているという情報があまりないので、紹
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く