有能なプログラマが嗜んでいる言語・技法・テクニックとは何ですか?


この場合の、"有能なプログラマ"の定義については以下のURLをご覧ください。
http://d.hatena.ne.jp/fromdusktildawn/20070217/1171679191

すなわち、「つまらない仕事の生産性」をあげるための手法を質問しているのだと思っていただいて結構です。


注意:上記のような「つまらない仕事の生産性」を上げるためには、もちろん心構えや生まれ持ったものも大きいでしょう。

それを答えていただいてもかまいませんが
どちらかというと、技術的な面を聞きたいです。
プログラマを大工に例えるならば
一流の棟梁の道具箱に何が入っているのかを
聞いているのです。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2007/02/25 00:08:49
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:fromdusktildawn No.5

回答回数9ベストアンサー獲得回数2

ポイント250pt

ちゃんと答えるには、少なくとも、記事を5本ぐらい書かなきゃならないので、ここで答えるには、難しいです。

とりあえず、1/5分だけ、記事にしてみました。

http://d.hatena.ne.jp/fromdusktildawn/20070218/1171791151

id:harisen

御回答ありがとうございます。


この件に関しては、id:fromdusktildawnさんのご意見も聞きたかったので、誠に感謝してます。


きっとid:fromdusktildawnさんのこの件に関するご意見は、私以外の多くの方も興味があると思うので、平に御願いします。

2007/02/18 19:32:10

その他の回答11件)

id:rosylilly No.1

回答回数3ベストアンサー獲得回数0

ポイント15pt

人それぞれだと思います。一流の棟梁の工具箱中身を知ることが一流の技術を盗むことにはつながりません。

ただ、多く使われる、使っているというのを聞くのはAutoHotKey等の作業の自動化ツールや、正規表現等のテキスト操作の高速化です。

AutoHotKeyなんかはGUIツールで勝手にクリックさせておくなんてのもありますし、正規表現で特定の条件をみたすものをすべて置換させるといった手法もよく見ます。

ツールに関してはエディタ等はそれこそいろいろありますし、お好みだと思いますが、簡単な作業を済ませる程度(特定のプログラムを一度に実行するアプリ)であれば、自分で簡単なCUIなりGUIのアプリケーションを作ってしまうほうが早いという方もいらっしゃると思います。

大事なのは『何を使うか』ではなく『どう使うか』だと私は思っています。

id:harisen

回答ありがとうございます。

おっしゃる通り、一流の棟梁の道具箱の中身を全て買いそろえたところで、

一流の棟梁になれるはずなんてありません。



実際には、様々な努力や心がけ(ex. これ自動化できないかな? とめんどくさがるようにする)などは必要でしょう。



ただ、一流の棟梁の技を盗むには、最低限その人の持ってる道具を持ってないと、棟梁の技の練習もできないのではないかと思い、聞いてみました。



さて、id:rosylillyさんの回答をまとめますと

  • 自動化ツール(ex. AutoHotKey)

  • 正規表現

    あと、心構えとして

  • ちゃっちゃとアプリケーションを作ってしまう

ということでしょうか。

確かに、正規表現は分かってないと技術系の雑談掲示板すら読めませんからね。重要そうです。

2007/02/18 14:33:52
id:garyo No.2

回答回数1782ベストアンサー獲得回数96

ポイント300pt

>「つまらない仕事の生産性」をあげるための手法

基本ですが、

1.車輪を発明しない

2.めんどくさがること

だと思います。

1.については、何かコードがいるときに既に誰かが作っていないか探すことが必要になります。

例えば以下のサイトなどを使って探すといいでしょう。

http://www.codefetch.com/

http://www.codase.com/

http://www.krugle.com/

http://www.koders.com/

後、ring serverとか

http://ring.maffin.ad.jp/

sorce forgeもいいと思います。

http://sourceforge.jp/

何か「こんなツールが欲しい」と思ったときはフリーソフトの検索サイトで探して、もし無ければ自分で作って公開するのもいいかも知れません。

2.のめんどくさがることは、とにかく定型作業を嫌がることです。

頭を使わなくても出来る仕事はLL(Lightweight Language)などでどんどん自動化してしまいましょう。

個人的にRubyが好きなので紹介しておきます。スクリプト言語でエディタで書くだけて使えて文字列操作が得意でCGIでも良く使われます。生産性はJavaの10倍くらいと言われています。

http://d.hatena.ne.jp/epictetus86400/20060101

http://www.ruby-lang.org/ja/

http://jp.rubyist.net/magazine/?0002-FirstProgramming

Ruby以外でも何でもいいのですが、手軽に使いこなせるLL言語を一つ覚えておくといいと思います。

id:harisen

回答ありがとうございます。

なかなか、具体的でよくわかります。



結構まとってるのですが、いちおうid:garyoさんの回答をまとめると、

  • 上記の検索サイト等で、既存の車輪を探すようにする

  • めんどくさがる気持ちを持ち、LLを使って自動化する(もちろん、一つくらい使いこなせるLLを知っておく)

という事でしょうか。


上記のサイトは、あとで度々使ってみます。

ありがとうございます。


しかし2番目の件は(別に職業プログラマでないとはいえ)恥ずかしながらLLを一つも使えないので、耳が痛いです。


あと、これは私が今思った事ですが、

やっぱ英語は大切ですねえ。

2007/02/18 14:39:24
id:hamster009 No.3

回答回数3431ベストアンサー獲得回数50

id:harisen

404 Not Found

と書かれているように見えます。

2007/02/18 14:40:04
id:studiokingyo No.4

回答回数47ベストアンサー獲得回数2

ポイント100pt

有能なプログラマが嗜んでいる言語・技法・テクニックとは何ですか?

とありますが、主観的ながら

嗜んでいる言語:アセンブリ、C/C++/D言語、スクリプト言語(Perl,Ruby,Python等)関数型言語(Lisp、Haskell、Concurrent Clean等)、.NET系言語(C# J# VB?)、JavaやLuaあたりだと感じました。

技法やテクニック等はあまりぱっと思いつかないのですが・・・

google:正規表現置換google:ワンライナー

google:オブジェクト指向google:アスペクト指向google:オートマトンなどでしょうか?


有能なプログラマ"の定義から

とありましたが

私もこの有能なプログラマの条件についてうなずける部分が多々ありました。

プログラムを書くためのプログラムを書くという部分に共感しました。

私はまだ本格的にプログラムを組んだ事のない学生なので生産性に関して誤解している面もあるかもしれませんが、私が今までより成果物の開発速度を上げるためにしている事からこの記事の指す生産性に結びつきそうな事を書きたいと思います。


最も適切なライブラリやAPIを鋭く見抜き、もっともパフォーマンスと安全性と保守性のバランスのとれたシンプルで美しいプログラミングをします。

からあるようにライブラリやAPIの概要を認知している事が必要だと思います。

それには事前の情報収集が不可欠で常に新しい技術やソリューションに関してある程度の概要を頭に入れる作業などが必要だと思います。

私は頭に入れる作業が苦手なので調べた資料は保存しています。

その資料を探すためのソフトウェアを入れています。

http://d.hatena.ne.jp/studiokingyo/20061116#p2

http://d.hatena.ne.jp/studiokingyo/20061211#p1

また、技術やライブラリに関する用語(例:Ajaxやboost等)の簡単な概要を書いたメモもしています。


時間が許す限り興味を持ったツールやライブラリは実際にTutorialを見たりSampleプログラムを実行したりして動作を確認しています。

そのときにあわせてソースコードの構造やライブラリの構成もチェックしたりしています。

これによって

「最も適切なライブラリやAPIを鋭く見抜き」

という部分の予習をしています。


そもそも、プログラム自体を編集するスクリプトプログラムをよく書く。

とありますが、今、私が大変になっている所です。スクリプト言語が沢山あるのでどれを先に覚えれば良いか迷っていたのですが、理想は全部一通り分かる方が良いようです。

google:Perl

google:Ruby

google:Python

google:shell script

google:VB Script

google:Java Script

google:Lua

等・・・他にも沢山あります。

私はPerl、Ruby、Pythonの中からどれか一つ使いこなせる((そのスクリプト言語によってワンライナーやソフト制作が普通にできるくらいの))ものがあればスクリプトプログラミングには困らないかなと感じました。


私は

仕様のエッセンスをコンパクトに記述した簡単な定義ファイルからプログラムを生成するジェネレータを即席で作る。

のような事は出来ませんが、ドメイン固有言語を実装しているソフトウェア等はチェックしています。

私は即席で作るよりはこれらのツールの使い方を覚えているのであればそちらを使った方が速いと思います。

http://d.hatena.ne.jp/studiokingyo/20070215#p1

http://d.hatena.ne.jp/studiokingyo/20060115#p1

そのほかにはBNFからパーサーを生成できるツール(yaccやbison等)

その他、様々な目的に適したツールが存在するのでそれを探すのが最近の日課です。

海外まで手を伸ばしますが、そういう便利なソフトに限って日本語の文字コードに未対応だったりして残念な思いをする事もあったりします。



パフォーマンスと安全性と保守性のバランス

とありますが、それは未だに良く分かりません。ここがプログラマーの職人的スキルなのかなと思っています。

安全性に関してはおそらく

http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%83%E3%83%95%E3%82%A...

のようにならないようにプログラムを組む事だと思います。


保守性は

オブジェクト指向やアスペクト指向など保守に関するコーディング方法の事だと思います。

http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231310/


パフォーマンスは

沢山のアルゴリズムとそれらの特性を知り、必要に応じて最適化できる能力だと思います。


それら沢山のことを頭に入れなくてはいけないと考えると私はやはり調べた資料は保存してしまうのです。

さらにはそれらのバランスを取らなくてはならないと言うのが大変そうです。


資料を必要な時にキーワードによって検索し閲覧する事ができると言うのは今の時代にプログラミングが出来て幸せだなと思っています。

私の行っている事が客観的に見て生産性が上がっていると言えるかは自分では判断できないのですが、私が生産性を向上させようと行っている習慣でした。


これらの事から今のところ

仕様から決定される

http://ja.wikipedia.org/wiki/%E6%9C%89%E9%99%90%E3%82%AA%E3%83%B...

のような頭の中で考えているFSMをいかに早くコードに落とす事が出来るか?

と言うのが私が考えている生産性です。

その為にはどんなアプローチでもすべきだと思っています。


最後に感覚的な事ですが、全部キーボードで主要な操作が出来るようになると生産性が上がっているような気がするのは気のせいでしょうか?

マウスで選択して右クリックしてメニューを出して必要な操作を選択する・・・というのが時間がかかるし間違った命令を選択をしないように神経を使うのでキーボード操作一発で済むように

プログラム開発環境にマクロをどんどん仕込んでいく。

というような事になるのかなと感じました。

id:harisen

御回答ありがとうございます。

自らの経験に触れながらの御回答は、大変ためになります。


さて、id:studiokingyo さんの御回答をまとめますと

  • general-purposeな言語を一通り嗜む

  • 正規表現置換,ワンライナー,オブジェクト指向,アスペクト指向,オートマトン

  • ライブラリ,API,ツールの熟知

  • スクリプト言語を少なくとも一つ熟知

  • 即席でプログラムを作るよりも、ドメイン固有言語を実装しているソフトウェアなどのツールの熟知

    と言ったところでしょうか。



    やはり、言語だけでなくライブラリやAPIの熟知も重要ですよね。どちらかというと、ライブラリやAPIなどのほうが、英語文書に頼らざるを得なかったりするので、それは努力しないと行けないような気がします。

    大変ありがとうございました。

2007/02/18 15:03:25
id:fromdusktildawn No.5

回答回数9ベストアンサー獲得回数2ここでベストアンサー

ポイント250pt

ちゃんと答えるには、少なくとも、記事を5本ぐらい書かなきゃならないので、ここで答えるには、難しいです。

とりあえず、1/5分だけ、記事にしてみました。

http://d.hatena.ne.jp/fromdusktildawn/20070218/1171791151

id:harisen

御回答ありがとうございます。


この件に関しては、id:fromdusktildawnさんのご意見も聞きたかったので、誠に感謝してます。


きっとid:fromdusktildawnさんのこの件に関するご意見は、私以外の多くの方も興味があると思うので、平に御願いします。

2007/02/18 19:32:10
id:fromdusktildawn No.6

回答回数9ベストアンサー獲得回数2

すいません。

本館っぽくない記事だったので、別館に引っ越しました。

http://fromdusktildawn.g.hatena.ne.jp/fromdusktildawn/20070218/1...

id:harisen

御回答ありがとうございます。


なかなか考えさせられる内容でした。


乱暴にまとめると、プログラミング言語のユーザとしてのみ、言語を扱ってるプログラマはダメプログラマになってしまうという事でしょうね。

2007/02/18 19:41:04
id:fromdusktildawn No.7

回答回数9ベストアンサー獲得回数2

ポイント250pt

*有能なプログラマの特徴を思いつくまま列挙してみました

要求自体をシンプル化する

そもそも、ややこしい要求や仕様を実装しようとするから、プログラムが複雑になり、工数が膨らむんです。

だから、実装に手間のかかりそうな要求や仕様が来たら、

「なぜ、そういう要求・仕様が必要とされるのか?」を細部まで細かく聞き出します。

そもそもそういう要求が発生した動機、背景、相手の真の意図・目的まで、具体的に的確に把握します。


すると、要求者の真の意図、最終的な目的を達成するためには、必ずしも、そういうややこしい仕様でなくても良いことが判明することは、非常に多いです。


その場合、相手の真の意図・最終目的を、より効果的に達成でき、しかも、ずっとプログラミングしやすい仕様を代替案として提案します。

すなわち、要求者とプログラマの双方にメリットのある仕様を提案するわけです。


これをするには、もちろん、あらかじめ要求者との間に信頼関係を築いておく必要があることは言うまでもありません。


また、要求者の真の意図・最終目的を把握するには、要求者のドメインの業務知識がある程度必要です。

たとえば、仕様の要求者がWebアプリケーションの企画屋だったりマーケターだったりするなら、企画やマーケティングにおいて大切なことをある程度はプログラマも理解しておく必要があります。


たとえば、企画屋が気にしているのは、どのようにユーザにリーチするか、どのようにユーザ訴求力を出すか、どのようにユーザに逃げられないようにするか、今後どのようにサービス展開を図るか、などなどです。


メタレベルプログラミング

C#なら、属性とReflectionを組み合わせたメタレベルプログラミングをする。

CLOSで言うところのメタオブジェクトプロトコルを使ったプログラミング。


DSLをオンデマンドで自作する

たとえば、ブラウザを自動制御するための記述をC#でやると、どうしても煩雑になりすぎる。

それ専用の言語を作ってしまった方がよい。

昔はYaccやLexを使っていたし、それに相当するC#用のレキシカルアナライザジェネレータやパーサジェネレータもあるけど、基本的な戦略としては、正規表現を上手く使えば、簡易言語のインタープリタぐらいは作れる。

複雑な処理が必要な部分は、簡易言語からC#のルーチンを呼び出して委譲できるような言語仕様にする。


デザインパターン

クラスの組み立て方のパターン集は一通り頭に入れておく。


英語

参考書は基本的に英語で読む。

なぜかというと、Googleで得られる有用なプログラミング情報は、英語の方が充実しているから。

情報収集は、deliciousで得られる英語情報も。

英会話スクールにも通う


処理系やライブラリの動作原理の精密な理解

処理系のユーザとして使うだけじゃなく、自分でその処理系を作るとしたら、どう実装するか、と考えながら処理系を使う。


ライブラリに関する知識

.NETライブラリ、ネットに落ちている各種ライブラリ、CPANなどのライブラリに対する幅広い知識。


基本的なコンピュータサイエンスの知識

宣言的記述と手続き的記述の違いを理解する。

トランザクション、ロールバック、正規化、外部結合、などなど、RDBの基本

言語理論

プロダクションシステム、前向き推論、後ろ向き推論、フレーム、などの人工知能系の概念


セキュリティ技術の基本

PKIの動作原理とか。

SSLが非対称鍵をどう使って共通鍵をシェアしているか、などの原理は理解しておく。


プロトコルの詳細

TCP/IPの動作原理の詳細

必要に応じてUDPも使えるように

HTTP、SMTP、などのプロトコルの理解。


異質なプログラミングパラダイムを理解しておく

Haskell、Prologなどは一通り原理を頭に入れておく。


汎用のキーカスタマイズツール

開発環境のキーカスタマイズは使わない。

汎用のキーカスタマイズツールなら、一カ所の定義で、全てのアプリケーションにおけるテキスト編集の操作が統一的に変更できる。


開発環境の具体的な機能の理解と使いこなし

選択領域をまとめてコメントアウトなど

とくに、関数の呼び出しもとや定義もとへのジャンプ機能などは、マウスから呼び出すようではだめ。

ホームポジションに近い位置のキーに割り当てておく。


開発環境のマクロ言語

VisualBasicでVisualStudioに必要な機能をどんどん追加

たとえば、実行時エラーのスタックダンプの文字列を解析して、

対応ファイルのエラーへジャンプするマクロなど。


開発環境の正規表現

プログラミング言語の正規表現だけでなく、たとえばVisualStudioの検索置換用の正規表現をきちんと使いこなす。


スクリプト言語

Perl、Ruby、VBScriptなどの雑用処理言語を使いこなす。


プログラミングに飽きて、プログラマを辞めたくなったときの準備をしておく





http://fromdusktildawn.g.hatena.ne.jp/fromdusktildawn/20070218/1...

id:harisen

御回答ありがとうございます。


こうした、細々とした有能なプログラマの特徴は、

言われると納得するものの、

なかなか気づきにくいですし、列挙されるのも珍しものですね。

2007/02/18 22:03:23
id:kfiss No.8

回答回数9ベストアンサー獲得回数0

ポイント3pt

イノベーション(Innovation)に対応出来ること?ではないですかね。

id:harisen

回答ありがとうございます。

実際、プログラマーにとって"ノイマン型コンピュータの仕組み"のようにいつまでも変わらないものばかりでなく、

ライブラリやAPIの仕様等のようにやたらと変わるものに関しては,対応できないと最前線で戦えないですよね。

2007/02/19 03:31:21
id:shimarakkyo No.9

回答回数387ベストアンサー獲得回数24

ポイント100pt

私の隣に自他ともに認める「ウィザード」が座っておりますが、彼を見てて、テクニックに関しては以下に挙げる2冊の本の内容を根本から理解、熟知して駆使している様に思えます。(私自身はへっぽこ偽プログラマですので直接質問にお答え出来ません。ごめんなさいー)

Hacker's Delight

Hacker's Delight

  • 作者: Henry S. Warren
  • 出版社/メーカー: Addison-Wesley Professional
  • メディア: ハードカバー

The Art of Computer Programming, Volumes 1-3 Boxed Set

The Art of Computer Programming, Volumes 1-3 Boxed Set

  • 作者: Donald E. Knuth
  • 出版社/メーカー: Addison-Wesley Professional
  • メディア: ハードカバー


蛇足ですが、彼の場合「生産性を上げる事」そのものに無上の喜びを見いだしてる様に見受けられます。

id:harisen

回答ありがとうございます。

Amazonの書評を読みましたが、中々面白そうです。

The Art of Computer Programmingは、非情報系院生の私でも知ってましたが、Hacker's Delightは初耳です。


ウィザードがいるような職場にいらっしゃるのですから、id:shimarakkyoさんも大層な能力の持ち主なのでしょう。なにか、コメントがありましたら、引き続き御願いします。

2007/02/19 18:06:48
id:htee2006 No.10

回答回数2ベストアンサー獲得回数0

ポイント10pt

デバッグに関して言えば、

因果律・分割統治法・証拠による立証等をきちんと使いこなし、理詰めで原因を突き止めることができること。

「勘」や「当て推量」でデバッグしているようでは素人です。

id:harisen

回答ありがとうございます。

確かに、デバッグは、効率化や網羅性の点で、

有能無能がはっきりしそうですね。

2007/02/19 18:08:09
id:kei_onpu No.11

回答回数1ベストアンサー獲得回数0

ポイント10pt

デザインパターンとアンチパターンだと思います。

便利な定石のデザインパターン、やってはいけないアンチパターンの2種類をきちんと理解することによって、無駄な作業を減らせます。

特に重要なのはアンチパターンで、デザインパターンだけ読んでいると、間違った使い方をする人も少なからずいます。

id:harisen

回答ありがとうございます。

確かに設計の初期段階の構想は

後々まで尾を引きかねない重要な部分ですよね。

2007/02/24 00:16:52
id:malark No.12

回答回数26ベストアンサー獲得回数0

ポイント10pt

私が思う有能なプログラマは、過程に結果と同じくらい重みをおいて考えられる人、でしょうか。

脳内に仮想マシンと非常に正確なコンパイラ(インタプリタ)をもっているんじゃないかと思います。

脳内で読んだソースコードを素早く脳内でプログラムに変換し、実行して、結果はもとより過程の問題も発見して、どんどん修正して無駄なく美しく高速なプログラムを書き上げているのではないでしょうか…

あと、意外と誰にでもできて多くのプログラマがやってないこと(私の経験統計ですが)は、コンパイラの警告・エラーの報告レベルを最大限に引き上げて、報告してくれる内容を完全に理解し、コンパイラに感謝しつつそこを直すこと。

そもそもそんな箇所を発生させないように次から気をつけられる事。

これをやっていない人は意外と(私のまわりには)多く、私のところにソースコードがくると警告だらけだったりします。

私が有能か否かは不明なので、以上に挙げた点が本当に有能なプログラマの嗜みかどうかは不明、すべては想像の範疇を出ませんが…。

ちなみに私は有能なプログラマの仕事に実際に出会った事がありません。有能無能を判断できずに見逃しているだけだとしたら私が無能な証拠かもしれません。

id:harisen

回答ありがとうございます。

確かに、コンパイルが通ればそれで良しとする態度では

有能足り得ないと思います。

このような心構えは、大切ですよね。

2007/02/25 00:02:30
  • id:kuro-yo
    なんにでも興味を持つ事ではないですか?
    私は有能なプログラマではないので、有能なプログラマが具体的にどんな活動をしているのかわかりませんが、少なくとも私が知る限り、鋭い観察力と好奇心、それと「自分」を持っています。
  • id:harisen
    コメントありがとうございます。
    私は、非情報系の大学院生ですが、確かに周りの研究者をみる限り、観察力や好奇心があるほど、優秀なとなるような気がします。
  • id:Beirii
    有能なプログラマの仕事には美しさがあるんじゃないかって気がしますね。
    機能美というか、様式美というか、なんというか。
    私みたいな凡人がそれをくどくど説明しようとしてもその美しさを損ねてしまうような、そんな感じのもの。
    彼らはきっと、道具をメタレベルで使いこなしているんじゃないかなぁ。
  • id:harisen
    コメントありがとうございます。
    確かに、一般的な職人や技術者等と同様、
    有能なプログラマの仕事には、
    それなりに様式美等がありそうですね。
  • id:shimarakkyo
    ああ、ありますね。様式美。

    私が書いたコードもよくウチのウィザードに「うげえぇーー」て言われます。

    この人は普段、ドライバに直接話しかけたり、チップのデザインに合わせて最適化した仕事の振り分けをしたりと、あまりヒト語を話していないのでそこら辺の様式美は私には分かりかねますが、一つだけ私にも腑に落ちたコツが「出来るだけコピペをしない事」でした。

    言い換えれば「同じ様な作業をする関数は一つにまとめる様、頭を使う」です。私がつい、作ってしまう「諸条件に応じて大量にif分けされた基本同じ事をする関数」を見ては「ぶえぇー」、「おえぇー」と言い続け、言われ続けた私もそれだけは気をつける様になりました。

    実際、それを気にする様になってからデバグと機能の拡張がしやすくなりました。

    超基本的な事なのかもしれませんがへっぽこプログラマにとってはありがたいアドバイスでした。
  • id:NAT
    ちなみに「Hacker's Delight」は、日本語訳の本があります。
    http://www.amazon.co.jp/exec/obidos/ASIN/4434046683

    私もこの本を読もうとしましたが、最初のほうのビット演算が難しくて、途中で挫折しました。
    ハッカーへの道のりは険しいようです・・・(笑)
  • id:harisen
    id:shimarakkyoさん
    コメントありがとうございます。
    そういうエピソードを御聞きすると、
    やはり、"いい意味でめんどくさがる"ことは大切なのでしょうね。
    無論、copy & pasteよりは、頭を使う事にはなるのでしょうが。

    id:NATさん
    コメントありがとうございます。
    こちらも、日本語訳がありますか。
    英語で、この手の本を読む事も大切ですが、まあ、邦訳があるにはこした事無いですよね。
    是非とも、手に取ってみたいと思います。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません