33
59

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

案外知られていない?便利なライブラリたち

Last updated at Posted at 2016-12-27

#いっけなーい遅刻!遅刻!(パンをくわえながら)
ネクストスケープ 配信事業本部 Advent Calendar 2016 の 21日目…ですが、大遅刻。
いや、なんていうか、そのごめんなさい。

というわけで、流石に今年のうちに記事書いておこうかなということで、自分が使ってみて便利だと思ったライブラリをちょっとご紹介。
ちなみに選定基準は**「便利だけどあんまり有名じゃない」**です。

#「とりあえずバッチ処理作っておいて」
なんて言われるととりあえずConsoleApplicationを作るのが窓使いの性です。
(shを書く?そんなもんはWindowsにはありませんよ。え?PowerShell?知らないねそんなもん)

本当に一度しか使わないプログラムであれば入力値を片っ端からハードコードしてもいいですが、
ある程度繰り返し使うことが想定される場合はやはりコマンドライン引数を受け、引数を元に処理させたくなります。
でも気付いてみれば本来の処理と同じくらいコマンドライン引数処理のコードを書いてしまっているなんてことが…。
くそ……なぜオレはあんなムダな時間を……
そんな時にCommandLineParser

##どう使うん?
Wikiがとっても詳しいので私があれこれ解説するまでもないです。
一度でも「何やってんだろう、おれ」と思ったことのある方はとにかく導入してみてください。
今までの苦労が本当にバカみたいです。

#「スクレイピングくらい簡単でしょ?ちゃちゃっと頼むよ」
スクレイピングって簡単なようで案外面倒なものです。
PHPとかだと元々の生まれもあって簡単にできるらしいですが、あいにく私はC#しかわかりません。
なのでライブラリに頼ってしまいましょう。
有名どころだとHtml Agility PackやSgmlReaderなのですが、どちらもなんか使いづらい…。
探して行き当たったのがAngleSharp

##どう使う(ry)
やっぱりWikiがとても詳しいのでこちらを参照ください。
コードを書いた感じでいうとHtml Agility PackやSgmlReaderよりもLinq to XMLライクで学習コストが低めとなかなかいい感じでした。
インターンの学生さんに「Wiki見て」と丸投げしても大丈夫なくらい使いやすいです。

#「うわぁーオブジェクトのプロパティ編集めんどくせー」
2つのオブジェクトがあって、そのオブジェクトのほとんどが同じ名前のプロパティを持っていたら。
まぁリフレクションでも使って手を抜きたくなるのがプログラマの性でしょう。
でもいちいちそんな処理コードを書くのは思いのほか面倒ですし、何より嫌われます
でもやはり手は抜きたい。そんなときにはちょっと有名筋ですがAutoMapper

##どうt(ry)
やっぱりやっぱりWikiが詳しいので使う上ではこちらを参照してください。
2,3行で十数個のプロパティをコピーできるのは便利です。

#プログラマたるもの、無駄を省け
近年C#がオープンソース界隈で盛り上がっている為、便利なライブラリが多数出てきています。
これらを使わない手はないです。
たまにはGitHubのリポジトリを徘徊してみるのもなかなか楽しいものです。
使って気に入ったらStarつけてあげて、バグ見つけたらせっかくなのでisuue立ててあげましょう。

33
59
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
59

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?