匿名クラスとラムダと時々弱参照

by orekyuu 0 Comments

今Javaビーム工房の作り直しをしていて、その中でWeakReferenceを使ったObserverパターンを書いた。

やりたいことは大体こんな感じ。

これは参照されなくなった時にGCされるとリスナが呼び出されなくなるって感じの挙動になる。
実行するとAAAだけ出力されてGCされた後のBBBは出力されない。

これ使えばリスナの解除を忘れてた時もメモリリークしにくくなると思ったけど思った通りに動作しなかった。
さっきのコードでは問題なく動いているけど、ラムダでaddListenerをするとGCしても参照が消えない。
そこで書いてみたのがこのコード

匿名クラスを使用しているときは問題なく消えてるけど、ラムダを使った時は残ったままだし消えない。
匿名クラスとラムダが違うというのは聞いたことあったけど、こんなところで違いが出てくるとは思わなかった。原因はなんなんだろう・・・?

学校でやってる作品制作の授業の様子の話

by orekyuu 0 Comments

僕の行っている専門学校ではチームを組んで作品を1つ作るプロジェクト演習という授業があります。
他の学校でも同じような授業があったりするけど雰囲気が学校によって違うみたいなので、どんな感じなのかブログに書いてみようと思った次第です。


 

講義内容

学科によって微妙に変わったりするけどある程度テーマが決められて、それを満たすように1年間かけてチームを組んで作品を作っていきます。僕の学科ならサーバーと連携するかサーバー上で動くアプリってかんじです。


 

主に使われている言語

僕の学校ではPHPを使っている人が多いです。
特にサーバーサイドで限れば8〜9割くらいかなと。
残り1、2割がJavaとかRubyとかって感じですね。PHPの鯖にデプロイするだけという手軽さが受けているんですかね?ボクPHPヤラナイカラワカラナイ
Javaやっている人が本当に少なくてメンバー確保に結構苦労しました。


 

生徒のモチベーション

皆無からとても高い人まで様々です。
大雑把に分けるとこんなかんじです。

モチベーション100: 即効でチームつくって作る作品の企画ねってたり作業始めたりしてる。あとは使うフレームワークとかも色々試行錯誤している感じ。多くはないけど一定数は居る。
モチベーション50: 作業も結構やってるけど単位もらえたらいいやくらいのモチベーション。大体の人がこの辺。一番おおいかな?
モチベーション10: 一応授業には来てるけどチームもできてないし企画もなにもやってない。ちらほら見かけるかんじ。
モチベーション0: 授業に来てないというか、「え?同じ教室でうけてたの?」ってレベルで来ない人 授業に来ないので割合確認できない。


 

僕がいるチームの現状

Java書ける人が見つからなかったので、Webデザインできる人を連れてきてフロントとバックで完全に分けて二人で作業してました。極力デザイナの人がらくできる環境を作りたかったので、Spring boot + thymeleafを使用することにしました。
その後僕のチームの企画に興味持った人が二人来たのでその二人をチームに入れてGitの操作を教えながら作業開始しているって段階です。

新しいメンバーのモチベーションも結構高い人みたいで、コードレビューで結構指摘飛んだり、レビュアーに指定していなくても颯爽と現れて横から失礼しますレビューをしてきたりして面白い。


 

チームによってモチベーションとかスキルの差はあるけど、各チーム試行錯誤しながら作業しているようで結構面白かったりする。