タグ

ブックマーク / nagise.hatenablog.jp (5)

  • リファクタリングの価値の考察 - プログラマーの脳みそ

    リファクタリングには価値がある、とプログラマは確信していることだろう。しかし、その価値が何であるか?を上手く説明できるかというと難しいのではないだろうか。稿ではリファクタリングの価値をテーマに筆者の説を提示していく。 品質特性の側面から 補足 品質特性の相互作用 リファクタリングの価値 障害対応 機能追加 システムの製品寿命 まとめ 品質特性の側面から ソフトウェアの品質特性としてISO/IEC 9126が一般的に用いられている。大きく6つの特性と細分化された副特性からなり、ISO/IEC 9126 - Wikipedia から引用すると 機能性(functionality) - 機能とその特性に影響する特性群 信頼性(reliability) - ある状況がある時間続いたときにソフトウェアがどの程度機能するかに影響する特性群 使用性(usability) - 利用するのにかかる手間、個

    リファクタリングの価値の考察 - プログラマーの脳みそ
  • 西暦1年は閏年か? - プログラマーの脳みそ

    閏年(うるうどし)の話題。 Twitterで見かけた話題で「西暦1年は閏年かどうかぱっとわからん人おる?」という些か煽り気味のツイートを見かけたのだけども、反射的に「閏年じゃないに決まってるじゃん」とぱっと答えてしまわないだろうか。当にそうだろうか? そう単純な話なのだろうか? プログラミングを学んでカレンダーを扱うことを学ぶ際に置閏法についても簡単に触れられることがある。置閏法というのは閏年や閏月(太陰暦では1年が13ヵ月になるケースがあり追加の月を閏月と呼ぶ)をどのようなルールで挿入するかという話で、まさにアルゴリズムであるからプログラミングの話題と相性がいい。 置閏法 現代の西暦の置閏法(ちじゅんほう)は 西暦を 400 で割り切れる年は閏年 上記以外で西暦を 100 で割り切れる年は平年 上記以外で西暦を 4 で割り切れる年は閏年 上記以外は平年 といった手続きで閏年(つまり2月

    西暦1年は閏年か? - プログラマーの脳みそ
    NetPenguin
    NetPenguin 2020/10/30
    なるほど……間違って3年にごとに閏年にしてしまったのを、もとに戻すためにスルーした期間があったとは。というか紀元前後付近の時点で、そのあたりちゃんとしているんだな。
  • 言語機能としての型、概念としての型 - プログラマーの脳みそ

    某エントリが型について再考するきっかけになったのは事実だが、個々人の思想の成否を問う気がないのでとくにリンクはしない。ここでは型とは何かという点について僕なりの思想を記しておきたい。 データ型を区別しない世界 ごくシンプルなチューリングマシンを考えよう。 チューリングの仮想機械は、 無限に長いテープ その中に格納された情報を読み書きするヘッド 機械の内部状態を記憶するメモリ で構成され、内部状態とヘッドから読み出した情報の組み合わせに応じて、次の動作を実行する。 ヘッド位置のテープに情報を書き込む 機械の内部状態を変える ヘッドを右か左に一つ移動する 上の動作を、機械は内部状態が停止状態になるまで反復して実行し続ける。 チューリングマシン この原始的な世界において「型」はない。メモリは抽象的で全てのメモリは同等に扱われ区別する必要はない。 また、チューリングマシンに程近い原始的なプログラム

    言語機能としての型、概念としての型 - プログラマーの脳みそ
    NetPenguin
    NetPenguin 2013/03/01
    なんで型が嬉しいのかが良く分かる。
  • ソフトウェア工学とか - プログラマーの脳みそ

    流れに乗り損ねたけども。 ソフトウェア工学は単一の方向を向いているものではない。というか、多様なジャンルがあるなかで「属人性を排除して開発者の能力を均一化しようとしている」なんて統一の目的感があるわけがない。 より高度なソフトウェア製品を作るには、ソフトウェア工学の成果を持って当たることになる。データマイニングの技術は属人性の排除か?まったくそんなことはない。ひとまとめに「ソフトウェア工学」と言ってしまうのはあまり質的ではないと思う。 SI業務のふたつの仕事 さて、ソフトウェア工学のなかでも話のターゲットになっているであろうオブジェクト指向技術だとかの話。近年広く普及したオブジェクト指向だとかは、僕は高度技術を振るう作業と単純作業の間を分かつモノとして働いていると分析している。*1そして、単純作業をするのには特別の才能を必要とせず、SI業務はこうした頭数でこなされる部分が多い。ボリューム

    ソフトウェア工学とか - プログラマーの脳みそ
  • プログラマーの脳みそ

    これは経験則なのですが、ある程度を超えたスパゲッティコードはリファクタリングを試みても状況が改善しなくなります。 ブラックホールから光が脱出できない事象の地平線になぞらえ、これをソフトウェア品質における事象の地平線と言い(ません— なぎせ ゆうき (@nagise) 2023年6月27日 リファクタリングの事象の地平線という比喩について解説をしておきます。 前提知識として リファクタリングの価値の考察 - プログラマーの脳みそ での議論を参照していただけるとありがたいです。 事象の地平線とは 事象の地平線というのは天文学用語でシュバルツシルト面などとも呼ばれます。超大雑把にいえば、ブラックホールのまわりのここから中に入ると光でさえも出ることはできないぞ、というラインです。 つまり、比喩としてはこの中に落ち込むと二度と脱出できないぞ、ということです。リファクタリングの力ではどうやってもソフト

    プログラマーの脳みそ
  • 1