2017-01-01から1年間の記事一覧

Scalaでも値が範囲に入っているか確認したい

はじめにとおわりに Scalaで整数が特定の範囲に入っているかを宣言的に書けないかなと思ったのですが、やっぱり書けました。 val range = 0 to 255 println(range contains -1) println(range contains 0) println(range contains 20) println(range contain…

Akkaのエラーハンドリングストラテジを確認したい

はじめに Akkaを実運用に突っ込もうと考えたときに一番最初に気になるのはActorがくたばった時の挙動ですよね。 知らない間にActorがくたばっていてメッセージだけが虚空の彼方に消えていったなんて事態になった日には次回の自身のボーナスも虚空に消えかね…

Scalaでも演算子のオーバーロードをしたい

はじめに Scalaの演算子オーバーロードについてサクッと確認してみます。 オーバーロード まぁ、とりあえず言語仕様を見ておけば安心だよねといった感じです。困ったら公式ドキュメントを読む。日本書紀にもそう書いてあります。 case class AltInt(val valu…

implicitパラメータとは何ぞや

はじめに PlayでコントローラからビューからFuture[T].mapからお前らimplicitパラメータ好きすぎだろってくらい多用されています。これはゆるふわっと使っていると後でヤバい目に遭うなと思ったので軽く調べてみました。 ゆるふわ愛されimplicit 言語仕様のi…

ScalaでもリフレクションでtoStringしたい

はじめに Scalaを始めたのでとりあえずリフレクションでtoStringしてみました。 弊社にとってリフレクションでtoStringするのはもはや挨拶のようなものです。 環境 Scalaのバージョンは2.12.3です。 真のジェネリック 当たり前かどうかは分かりませんが、JVM…

VB.NETでもパーサコンビネータを実装したい(その2)

はじめに Spracheの一部を移植する形でパーサコンビネータを実装したと言うかしているのでそれについてです。 github.com 前回のはほとんどおもちゃですが、今回は違います。 燻製ニシンの虚偽 例によってあまり真っ当な動機でないのですが、以下の要件を満…

プロトタイピングとしてのF#

F#

はじめに いきなりですが、皆さんはプログラムを書くときにどのように書いていますか? 弊社は定型的なコードはともかく、まずは簡単なプロトタイプを書いて考えをまとめてからプロダクトコードを書いています。 いままでは適当なコンソールアプリケーション…

VB.NETでもコマンドライン引数を楽にパースしたい(またの名をVB.NETとF#で連携したい)

はじめに 前になんかいい感じのコマンドライン引数をパースするライブラリを見つけたいとか書いたのですが、DSL付きで見つけました。 なんとこちら、DSLなのに.NETの型システムと高い親和性を持っていたりマイクロソフトがサポートを改めて表明したりと至れ…

VB.NETでもクラスとモジュールの違いを知りたい

はじめに 皆さんは新人くんの VBのクラスとモジュールの違いは何ですか? の質問にどのように答えているでしょうか。 こんな時の対応は大体以下の感じになると思います。 よくわからないから「ググれ」で済ませて軽蔑される 機能面での話をさらっとして尊敬さ…

VB.NETとログについての伺か

はじめに 弊社はロギングライブラリとかの扱いについて割と長い間悩んでいたのですが、自分の中のとりあえずの答えが出たので今回はそんな感じです。 ログライブラリへの強依存 さて、弊社はログライブラリとしてNLogに慣れ親しんでいるのでサンプル中で使う…

VB.NETでもAutofacで依存性を注入したい

はじめに OpenCoverのコードを読んでいたら、AutofacというDIライブラリが使用されており、気になったのでそれについてです。 チュートリアル Getting Started — Autofac 4.0 documentation 大体の手順をざっくりと列挙すると 脳内でいい感じに制御の反転を…

VB15の新機能の確認したい

はじめに 3月7日にVisual Studio 2017がリリースされました。 と言うことで今回も露骨なアクセス稼ぎVB15の新機能を確認していきましょう。 どうでもいいですが、VS2017のアイコンって梵字っぽいですよね。筆で書かれたっぽくして色を周りに合わせたら紛れて…

VB.NETでも遅延バインディングの呼び出し規則を確認したい

はじめに 遅延バインディングを使用したコードを眺めていた時にふと思ったのですが、遅延バインディングはどういう呼び出し規則でメソッドを呼び出しているのだろうと気になりました。 軽く調べてみたところ、言語仕様っぽいのは見つかりませんでした。 分か…

VB.NETでもパーサコンビネータを実装したい

はじめに ヤフーでググったところ、今のところ誰もVBでパーサコンビネータを実装してないっぽかったので実装してみました。 実装にあたり、こちらのブログを参考にさせていただきました。感謝 blog.anatoo.jp .NETのパーサコンビネータライブラリとしてはSpr…

.NET FrameworkのRegexの文字クラスはバグっているのか?

はじめに 正規表現のお話ですが、『.は任意の一文字にマッチする』みたいな文法解説ではありません。 そんなの大手サイトが死ぬほど書いてますしね。 妙なバグを踏み抜くことに定評がある弊社ですが、今回は正規表現の文字クラス関係でわりと意味がわからな…