2013年7月22日月曜日

Kotlin勉強会に行くのでちょっとだけ予習した

多分日本初という触れ込みの勉強会に行くので予習したメモ

ただし、主催者は現状こんな感じらしい





kotlinの未来が不安ですね…



というわけで超適当に以下のkotlinの基本文法を眺めてみた

https://sites.google.com/site/tarokotlin/3-kotlinno-biao-zhunapi



そうそう、 Comparision to Scala ってページがあるので開くと…

If you are happy with Scala, you probably don't need Kotlin.

らしいです

あれ、じゃあ終わり?



スマートキャスト


is演算子で型チェックしてたら、それはもうその型とみなして動かしてええで!
みたいな感じらしいです



ちなみにScalaにはねーよってDocumentに書いてます

同じようなことしようとするとこんな感じ?



うん、パッとは思いつかんけど同じような挙動だよね

関数


defかfunかの違いくらい?
ローカル関数もあるし〜

と思ったらローカル関数でなかなか面白いことが



拡張関数というものが混じっている

Scalaだったら暗黙の型変換とかで同様のことを頑張る感じ?



まあサンプルと同じ内容なら

str.forall(_.isUpper)

でいいじゃん?とは突っ込まない

関数リテラル


kotlinだと関数は引数として渡せないよと。
渡すなら関数リテラルでと。





scalaの場合、関数から関数リテラルに変換できるからだろうかどっちでもOK
そういや深く考えたことねーわ…

// aliasと言って良いのか…?
val alias = sayHelloFunc _

kotlinにも関数から関数リテラルに変換するやつがあれば結局一緒な気がする

when式


matchとどう違うのか… と思ったけど、割りとswitch文よりな感じ?
(ただしcontinue書いたらコンパイル通らなかったし、まだ未実装?)

なので5.2のパターンマッチングを見てみた





同じように書いたらこんな感じ?


ちなみにweb demoだと Tuples are not supported. Use data classes instead. って怒られる…
→ 後のデータクラスの章で悲しみの答えが!

流れでバインディングパターンも






分解者パターン:// あとで書く!


とあるけど、きっとExtractorとおんなじような感じなのかな…?と脳内で勝手に完結

for とか while とか ジャンプとリターン とか


ラベル付きのbreakができるよ!らしい
この辺とかはjavaよりも強力ですよ〜な売りになるんだろうか

その他


四章チラ見して記憶したこと

out/inで共変/反変

staticなメソッド持てないよ 代わりにobjectってあるよ

5章ちら(ry

https://sites.google.com/site/tarokotlin/chap5/sec54
null安全かOptionかは使う人によって良し悪し変わるんだろうなぁ…

https://sites.google.com/site/tarokotlin/chap5/sec55
データクラスってケースクラスみたいなもんかな?
そしてさり気に一番下に「マイルストーン3以降では、タプル機能は廃止されています。」
の文言が…/(^o^)\



各所チラ見した感想としては、確かにScalaで満足してたらKotlinは要らんよ?

って感じなんだろうなぁ…と

まあそんなこと言い出したら、別にどの言語でもそれでいいじゃんになりそうな気はする。

ScalaとKotlinって、それ(Scala | Kotlin)で見たよ!
みたいな感じにお互いがなるんですかね。

ってことでざっくりテキトー予習終わり

おまけ


sbt → simple build tool
kbt → kantan build tool

だったら面白かったのに…(これが書きたかっただけだったりw)

2013年5月4日土曜日

yeoman + angularjs + coffee をちょっと触ってみた

具体的な内容はQiitaに投稿してみた

http://qiita.com/items/454755dcd0a28eab15ee

割と最近Qiitaをのぞくことも多くなったので自分も投稿してみた的な

でQiitaからGistへの投稿も出来るっぽく試したところかなり残念だった…

どう残念かはこっち

Markdownそのままコピーかとおもいきや、そうなるのかよwww みたいな。

とりあえずこれでGWにやるべきことが半分片付いた(白目

2013年3月19日火曜日

#TDDBC Tokyo 2013-03 に参加してきました

いつかは行ってみよう〜っと思っていたTDDBCに参加して来ました。

TDDはもちろんペアプロがすごくよい経験になった、というのが最大の感想です

ドライバーとナビゲーターの入れ替えをあんなに頻繁にやるものなんだ…ということだけでも個人的にはすごくプラスになりました。

主催者やTAの方々、そして当日自分の環境に合わせてペアを組んでくれた @akuraru さん ありがとうございました。

そしてVOYAGE GROUPさん、タダ酒ありがとうございました素敵な会場ありがとうございました。

お題とか詳細は皆さんが各所でまとめてますし、togetterにもまとまってますのでそちらで。





と言ってしまったので書きます。

まず、こんな環境でした。

  • scala2.10 + specs2 + sbtでtestぶん回し

多分気になっている人もいると思いますし、一応こうやりました的なことを書いていきます



TODOもコード?



えーっと、半分本当で半分ウソです。

specs2ではこのような書き方が可能になります。



pendingを空のチェックボックス代わりに使っているだけです。
pendingを実際にテストを行うメソッドに書き換えればチェックした!みたいな。
詐欺ですねw

この書き方(specs2のサイトではacceptance specifications とあるので、受け入れテストを前提としている書き方?)だと(甘めに言えば)そのままTODOリスト書いているのと変わらない形で書けますので、
TODOリストもScalaで書いた( ー`дー´)キリッ
と言っても許され…ますよね?

というのを誇張しました、スミマセンでした。

他にもgradle同様HTML出力とかもしてくれますし、spock同様DataTablesもありますし、specs便利です。

ちなみにhtml出力画面はこんな感じ。



話それますが機会があればgradle+spockはとても触りたいですね。
あとScalaTestで同じようなことが出来るかどうかは、使ったこと無いので知りません、ごめんなさい。





なるほど…(ぉぃ
まあnullとか例外とか嫌ですよね。

で、先ほど当日未実装だった部分をテキトーにやったところ、ソースの行数が30行ぐらいになっちゃった。

改行だけの部分のカウントを除いて、dumpメソッドを再度ワンライナーに戻して、あと何かすれば10行程度になるかも?

何れにしても自分のScala力と今回のお題(Exception返せ!とか)だと10行は難しいかも…

ましてやvar使っちゃったし、もう負けてる感満載w



sbtでぶん回す



最近sbtは酢豚と読むらしいです(scala conference jpでそう聞いたw)

sbtではtestと叩くとtestが全実行されますが、「~test」で実行するとファイルが変更される度にtestを回してくれるので大変便利です。
コード書いてセーブすれば勝手に実行される素敵環境がすぐ出来ます。
PCのパワーと電源がある限りひたすらぶん回しておけばいいのです(ぇ

ただ正直なところ…テストケース一つを実行するならJava+JUnit+QuickJUnitのほうが体感速度は速くて気持ちいいと思いますw
Scalaもテストの実行そのものは早いんですけど、コンパイル待ちが…うーん…

結論:もっとマシンパワーがあればなんとかなる



あんまりここで書いちゃうと水曜日の「Scalaを勉強する会」でしゃべることがネタOnlyになっちゃうのでこのへんで許してください。

一応githubにソース置いてますので、興味がありましたら御覧ください。
あ、もちろん「フツーこう書くだろJK」的なご指導ご鞭撻もよろしくお願いします。

https://github.com/daneko/tddbc




そうそう、ペアプロにおいて環境の違いはどうやって埋めるべきなんでしょうね?
自分の環境(Intellijにvimプラグイン)とかだと、相手がemacs派だったりした場合とか…







あー、仕事でScala書きてー…

2013年3月10日日曜日

Intellij IDEA で少しだけPHPを書くのが楽になるかもしれない方法

去年末の75%offの際に Intellij IDEA 買いました。

いやもう凄い便利です、PHP書くときに… (´;ω;`)

ってことで本当は年初にでも書けばよかったんですけど…
かなり今更感ありますが取り敢えず書いとこ〜ってことで書きました。

あと今月から個人的にはもうPHPほとんど書く予定はない! はず…