パターンについて - 「ソフトウェアアーキテクチャ ソフトウェア開発のためのパターン体系」
前回の日記にも書いた通り設計強化月間としてまずはこの本を読んでいます。
ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系
- 作者: F.ブッシュマン,H.ローネルト,M.スタル,R.ムニエ,P.ゾンメルラード,Frank Buschmann,Hans Rohnert,Michael Stal,Regine Meunier,Peter Sommerlad,金沢典子,桜井麻里,千葉寛之,水野貴之,関富登志
- 出版社/メーカー: 近代科学社
- 発売日: 2000/12
- メディア: 単行本
- 購入: 15人 クリック: 448回
- この商品を含むブログ (54件) を見る
で、早速本題といきたいところなのですが設計についてオススメの本を聞く時に「アーキテクチャ」という言葉を使って聞いたのですが、正直に曖昧な理解のまま使っていたのでしっかりとツッコミが入り、そりゃダメですよねーと調べたので「アーキテクチャ」についても簡単にまとめたいと思います。と言っても僕が調べたのは下記の3つだけで実際にはもっと色々あるようです。
- コンピュータ・アーキテクチャ
- コンピュータ(ハードウェア)に関する基本設計や設計思想。
- ソフトウェアアーキテクチャ
- ソフトウェアに関する基本設計や設計思想。これが今回知りたかった部分。
- システムアーキテクチャ
- ハードウェアとソフトウェアを合わせた構成などの設計に関するもの
かなり大雑把ですがこんな感じ。
ただシステムアーキテクチャという言葉はかなり昔から存在していたのですがソフトウェアアーキテクチャは比較的新しいものらしく、またシステムアーキテクチャの定義も人によってバラバラらしいのでソフトウェアアーキテクチャの意味としてシステムアーキテクチャが使われる事が多々あるらしいです。まぁデスクトップアプリならともかくWebシステムはソフトウェアとハードウェアが密接に絡み合いますもんね。
で、本題の本について。
続きを読む12月購入の技術書
日記後進更新サボり過ぎなのもあれなので今月からある種の自戒の意味*1も込めて購入した技術書を記録しておこうかなと。あと、それと別にこの後に簡単にですが読書記録もしようかなとか、そんな感じ。
まぁこんな無理矢理ネタを作るようなことしなくても宿題もどんどん積まれてるんですけどね!w
とりあえず本題。今月は設計あたりの強化月刊ということで以下の本を購入致しました。そう決めた経緯は、何かを作る際の初期設計?がどうにも決め手にかけ、時間かかるし何か違うなと感じ、有名なMVCパターンはなんとなくだけでちゃんと理解してないし、デザインパターンは対象範囲が少し狭すぎる気がするし…といった風な事を思いましたので、ちょっとその辺の本を買おうということです。まだ月の半ばなので追加があるかもですがその時は随時追記しま。
ビューティフルアーキテクチャ (THEORY/IN/PRACTICE)
- 作者: Diomidis Spinellis,Georgios Gousios,久野禎子,久野靖
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/11/27
- メディア: 大型本
- 購入: 6人 クリック: 124回
- この商品を含むブログ (29件) を見る
ソフトウェアアーキテクチャ―ソフトウェア開発のためのパターン体系
- 作者: F.ブッシュマン,H.ローネルト,M.スタル,R.ムニエ,P.ゾンメルラード,Frank Buschmann,Hans Rohnert,Michael Stal,Regine Meunier,Peter Sommerlad,金沢典子,桜井麻里,千葉寛之,水野貴之,関富登志
- 出版社/メーカー: 近代科学社
- 発売日: 2000/12
- メディア: 単行本
- 購入: 15人 クリック: 448回
- この商品を含むブログ (54件) を見る
プレファクタリング ―リファクタリング軽減のための新設計 (THEORY/IN/PRACTICE)
- 作者: Ken Pugh,木下哲也,有限会社福龍興業
- 出版社/メーカー: オライリージャパン
- 発売日: 2006/01/16
- メディア: 大型本
- 購入: 3人 クリック: 60回
- この商品を含むブログ (31件) を見る
インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践
- 作者: Ken Pugh,角谷信太郎(監訳),児島修
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/05/24
- メディア: 大型本
- 購入: 16人 クリック: 357回
- この商品を含むブログ (67件) を見る
アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング (THEORY/IN/PRACTICE)
- 作者: James Shore,Shane Warden,木下史彦(監訳),平鍋健児(監訳),笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2009/02/18
- メディア: 大型本
- 購入: 18人 クリック: 336回
- この商品を含むブログ (100件) を見る
- 作者: ジェームス・O・コプリン,James O. Coplien,平鍋健児,金沢典子,羽生田栄一
- 出版社/メーカー: ピアソン桐原
- 発売日: 2009/12/01
- メディア: 単行本
- 購入: 3人 クリック: 41回
- この商品を含むブログ (6件) を見る
プログラミング言語Java (The Java Series)
- 作者: ケン・アーノルド,ジェームズゴスリン,デビッドホームズ,柴田芳樹
- 出版社/メーカー: ピアソンエデュケーション
- 発売日: 2007/04
- メディア: 単行本
- 購入: 38人 クリック: 1,044回
- この商品を含むブログ (71件) を見る
Java並行処理プログラミング ―その「基盤」と「最新API」を究める―
- 作者: Brian Goetz,Joshua Bloch,Doug Lea
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/11/22
- メディア: 単行本
- 購入: 30人 クリック: 442回
- この商品を含むブログ (174件) を見る
- 作者: Jason Brittain,Ian F. Darwin,村上雅章
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/11/21
- メディア: 大型本
- 購入: 8人 クリック: 74回
- この商品を含むブログ (32件) を見る
と、こんな感じです。
どう考えても読む量<買う量なので積本確定ですが…w
*1:積本いつ読むの?的な
フェンリルのファイル管理ソフト「FenrirFS」が便利っぽい
ついったーのつぶやきで知ったのですがSleipnirで有名なフェンリルから新しくFenrirFSというファイル管理ソフトがリリースされました。
でまぁ使ってみて便利そうだったので使用感とかを簡単に。
FenrirFS - 整理いらずのファイル管理アプリ | フェンリル
初期設定
デフォルトのままだとユーザーディレクトリに FenrirFS Storage というフォルダ(ストレージフォルダと呼ばれる)が作成され、そこにファイルもデータも保存されるようになってしまうのでローカルモードとかいうのにする事を推奨します。
方法は簡単で FenrirFS.exe と同じディレクトリに FenrirFS.local という空のテキストファイルを作成すればローカルモードになり、ストレージフォルダが FenrirFS.exe と同一ディレクトリに作成されるようになります。
ストレージフォルダの構成
FenrirFS Storage :ストレージフォルダ └プロファイル名.profileフォルダ ├db :FenrirFSのデータベースがあるフォルダ ├db_bkp :データベースのバックアップを保存するフォルダ ├files :FenrirFSに追加したファイルの保存場所 └import :FnrirFSに追加したいファイルを置く場所
dbにはFenrirFS.dbというファイルやラベルの情報を保持するSQLiteファイルがあり、SQLクエリを使って直接操作することも可能です。詳しくはReadme.txtにて!
importはまぁ大量なファイルを一気に追加したい場合なんかに使えばいい感じ?
プロファイル
ラベルなどをプロファイルごとに作成することが可能ですのでより目的にあったファイル管理が可能です。ファイルの保存場所もストレージフォルダの構成の通りプロファイルごとに変わります。仕事用とか趣味用とかエロ用とかにわけるといいよ!
登録されるファイルの扱い
FenrirFSに登録するファイルは全てプロファイルごとのfilesフォルダに移動またはコピーされます。元のファイルはバックアップとしてそのままにしたい場合などはコピーするようにして下さい。ただ、あくまでコピーですので元ファイルを編集しても反映はされませんのでご注意を!
ファイルの追加は基本的にドラッグ&ドロップなんですが、Shiftキーを押しながらだとコピーするといったような動作設定も行なえますのでお好みにカスタマイズして下さい。
ちなみに設定は コピー・移動・メニューを表示する の3択しかないのですが「メニューを表示する」で登録しようとすると「ショートカットの作成」が選べ、ファイルへのショートカットが自動的を作成し登録されますので、プログラムのソースコードなど「場所の変更が不可なんだけどコピー扱うんじゃ意味がない!」ってものを管理したい場合などには、この方法でショートカットを管理するようにすればいいかと思います。
ファイル管理
やっと使い方ですw簡単に流れを説明すると、
ドラッグ&ドロップでファイルを登録→作業用トレイに入る→目的にあったラベル(複数可)をつけたり、重要なファイルにはスターつけたり、コメントつけたりする→設定が終わったファイルを選択して「アーカイブ」ボタンをクリック→作業用トレイから消え登録完了
書くとめんどくさそうですがインタフェースが操作しやすいように出来てるので結構簡単ですし、自動振り分け機能なんかもありますのでそちらを設定すればドラッグ&ドロップだけで管理も可能です。
またスマートフォルダの機能もありますので設定しなくてもある程度管理できたりします♪
便利な機能たち
- ファイルの自動振り分け設定
- ファイル名・拡張子・コメント・サイズ・日付などによるフィルタを作成して自動振り分けが可能
- スマートフォルダ
- ラベルやコメントとかつけなくてもファイル自体の情報による振り分け表示が可能(ショートカット・ピクチャ・ビデオなど)
- 検索機能
- ファイル名やつけたコメントを対象にインクリメンタルサーチが可能
とりあえず細かい説明してない機能とかはありますが大体こんな感じでしょうか。僕もまだ機能確認程度に触ってみただけなのでまだわからない部分があるのでwとにかく便利っぽいのでこれから使っていってみようと思います。
Java並行処理プログラミングまとめ - 第1部 基礎編
というわけでいよいよ本格的に並行処理プログラミングについてです。
と言っても基礎知識ではありますがwでも基礎知識は一番大事だと思うので甘く見ないで下さいね!
Java並行処理プログラミングまとめ - 感想・はじめに
Java並行処理プログラミングがついに復刊されましたね!僕も図書館から借りて読みはしたんですが手元に置いておきたい一冊だったのですごく待ってました><
というわけで別に復刊記念というわけではありませんがいい機会なので宿題が溜まりすぎないうちに少しでも消化しようとJava並行処理プログラミングを読んだ感想やまとめです。
感想
タイトル通り書いてあるコードは全てJavaですしJVMなどJavaに偏った部分もありますが、内容としては並行処理プログラミング自体についての基礎知識から高度な知識までを段階的に解説されてあります。また、問題を解決する方法もいきなりこのAPIを使えばOKと紹介するのではなく、オブジェクトの作り方・組み合わせ方から説明した後にJavaなら既にこういったAPIがありますと紹介していますので、こういった作り方・組み合わせ方の知識は他言語にも流用できると思います。その際に注意するべき点などは言語に限った話ではないと思いますので並行処理について勉強したい方には一度は読むようにオススメしたい本だと思いました。
第1章 はじめに
下記以外には最初の方に並行処理プログラミングが行われるようになった歴史とか、最後の方には既存のスレッドが利用されているものの紹介とかが書いてあったよ!
スレッドの利点
スレッドのリスク
- 安全性の危機
- 同期化が不適切だと複数のスレッドがランダムなタイミングで処理するので、タイミングによってはデータに不整合が発生する可能性
- 生存の危機
- デッドロック・飢餓状態・ライブロックなど並行処理ならではのエラーによるプログラムの停止の可能性
- 実行性能の危機
- コンテキストスイッチによるオーバヘッドの発生などによる実行性能の低下の可能性
この記事が少し寂しいことになりましたが部ごとにわけたいと思いましたのでわけました。
続きはこちらです↓
Java並行処理プログラミングまとめ - 第1部 基礎編 - Akinekoの日記
vim-users.jpの個人的メモ
基本的なキーバインドを覚えただけでほぼデフォルトな状態で使ってるVimなのですが、そろそろ少しずつでもVimを勉強していこうかなーと思うのでVimユーザー必見!?のサイトの1つhttp://vim-users.jp/の初心者に役立ちそうなとことか個人的に覚えたいとこをメモ的にまとめてみました。
あとで順番に読みながら勉強したいと思います。
参考サイト
vim-users.jp: http://vim-users.jp/
上記サイトのVim Hacksの目次ページ的なもの: http://vim-users.jp/vim-hacks-project/