覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

プログラミング

「CODE COMPLETE 完全なプログラミングを目指して(下)」 第20章 ソフトウェア品質

「CODE COMPLETE 完全なプログラミングを目指して(下)」 の 第20章 ソフトウェア品質 で気になった部分の抜粋です CODE COMPLETE 第2版 下 完全なプログラミングを目指して作者:スティーブ マコネル発売日: 2005/03/26メディア: 単行本 ソフトウェアの品質…

「Clean Architecture 達人に学ぶソフトウェアの構造と設計」

かなり前に読み終えてはいたんですが、「Clean Architecture 達人に学ぶソフトウェアの構造と設計」の内容に関する今更ながらの自分用のメモです。 結構話題になった本だと思います。自分にとっても結構役に立つ内容が多かったです。 (ただ、まだ若干理解し…

bashのProcess Substitutionを利用したdiff

bashに Process Substitution(プロセス置換) という機能があるのを全然知りませんでした。 詳しい説明は別の方の記事を参照ください。。。 たとえば、この機能をdiffコマンドと組み合わせて使ったりすると効果的なようです。 diffは、入力対象としてファイル…

truncate(ftruncate) はサイズを切り詰める(減らす)だけじゃないよ

Linuxのシステムコールの truncate, ftruncate は、対象のファイルのサイズを切り詰めるものです。 書式は以下の通りです。 #include <unistd.h> #include <sys/types.h> int truncate(const char *pathname, off_t length); int ftruncate(int fd, off_t length); 引数 pathname / </sys/types.h></unistd.h>…

Nクイーン問題を扱ってみる

8クイーンと呼ばれるパズルが存在しています。 チェスのクイーン(上下左右斜めに何マスでも進める)を、チェスボードの8×8マスに、8つのクイーンを互いに利きに入らないように配置するパズルです。 8×8マスの盤面の中に、縦・横・斜めにクイーンが重複しな…

Java - 配列をシャッフルする

Javaで配列をシャッフルするサンプルです。 Listをシャッフルする Javaで、List内部の要素をシャッフル(ランダムに入れ替え)するには、 Java標準で用意されている Collections.shuffle のAPIを利用すればよいです。 コードサンプル import java.util.Array…

フィボナッチ数を扱う - 再帰呼出し

再帰についてのメモがてらフィボナッチ数(フィボナッチ数列)をJavaでサンプル的に扱ってみました。 フィボナッチ数 (フィボナッチ数列) 番目のフィボナッチ数を で表すと、 と定義される漸化式です。 この数列はフィボナッチ数列(Fibonacci sequence)と…

コード品質特性を悪化させるには

プログラムのより良い設計を支える中心的概念としてコード品質特性があります。これに点数付けした場合に、悪い点をとるためにはどうすればいいかについて書きました。 以下内容のベースはJavaです そもそもコード品質特性とは ここでは、以下をコード品質特…

複雑なプログラムに現れる傾向や特徴

「ソースコードを汚くするには」に記載したようなコードを書いていると、結果的に複雑なプログラムになってしまいます。 ここでは複雑なプログラムに現れやすい傾向や特徴などについて記載しました 基本的にJavaをターゲットにして本エントリを記載していま…

Linuxプログラミングの概念

「Linuxシステムプログラミング」からの抜粋 Linuxシステムプログラミング作者:Robert Love,ロバート ラブ発売日: 2008/04/16メディア: 大型本 ファイルとファイルシステム ファイルはLinuxの中でも、もっとも基本的かつ重要な概念。 Linuxには、すべてもの…

割れ窓理論

長期間修理されることのない割れた窓が1枚でもあると、ビルの住人に「投げやりな(ビルの状態など気にもかけないようになる)感覚」が植えつけられていきます。すると、次の窓が割れます。 さらに、ゴミが撒き散らかるようになります。落書きもされるように…

「リーダブルコード」

「リーダブルコード」で気になった部分の抜粋 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)作者:Dustin Boswell,Trevor Foucher発売日: 2012/06/23メディア: 単行本(ソフトカバー) 1. 理解しやすいコ…

ソースコードを汚くするには?

汚いプログラム(ものによってはバグを引き起こすプログラム)にするためにはどうすればいいのかを書きました 基本的にJavaをターゲットにしています(ものによってはJava以外でも当てはまります) 私が今まで、読みにくい、修正しにくい、プログラムの挙動…