Javaプログラミング研修会 5日目

カテゴリー │日常IT全般

こんにちは、たかしーです。

今日はJava講座5日目でした。
今日のテーマは”リファクタリング”です。

リファクタリングとは、コードを開発中のコード、あるいは開発が終わったコードを、読みやすい形に書き換えることで、将来の機能追加やバグ修正をしやすくする目的の工程です。

よくプログラミングをしていると、バグを修正したり、後から機能追加が必要になったりします。
そうすると、コードが継ぎ接ぎになり、そのままだとどんどんコードが複雑化し、最終的には誰も触れない(触るとプログラムが壊れてしまう)コードになってしまいます。

そうなる前に、機能追加やバグ修正などの操作を行った際に、都度コードのリファクタリングを行うことで、コードを触っても読みやすく、手をつけやすい状態を維持できるというわけです。

リファクタリングの際、気をつけなければいけないのが”プログラムの見た目上の機能(振る舞い)”が変化しないようにするという点です。

いざ実際にリファクタリングをしていると、ついつい既存の機能の改善までやりたくなってしまいますが、リファクタリングはあくまで”読みやすくする”ことが目的なので、ここで機能追加をすることはよくありませんし、そのリファクタリングをまたしないといけなくなってしまいます。

では、その"振る舞いが変化していない"というのは何で判断すればいいのか。
それこそが先日教えていただいた”テスト”です。

リファクタリングをかける前に、仕様に基づいた網羅テストを自動化した形で用意しておきます。
こうすると、リファクタリング後に同じテストをかけ、リファクタリング前と同じふるまいをしている(同じ答えを出している)かどうかをチェックできます。

テストの際、テスト用のライブラリを使用するとかんたんにテストを作成することができて非常に便利です。

今回使ったのは

JUnitというライブラリです。

Javaでは広く使われているデファクトスタンダード化したライブラリですので、入れておいて損はないかと思います。

他の言語でもそれぞれテストライブラリが用意されており、同じような事ができます。

普段よく使うJavascriptやPHPにもそれぞれテストライブラリがあったので、是非活用したいと思います。

今回も非常に勉強になりました。
自分の書いたコードで、きれいにしたいものも結構あるので、ぜひ教えていただいたことを活用してリファクタリングに挑戦してみたいと思います。



Javaプログラミング研修会4日目!今日のテーマはプログラムのテスト!

カテゴリー │日常IT全般

こんにちは、たかしーです。

今日はJavaプログラミング研修会4日目に参加してきました!



今日は主にプログラムのテスト方法について教えていただきました。

業務で作られるプログラムは”売る”ものなので、当然品質も必要になってきます。
お金を出して買ったソフトが「バグだらけ...」なんてなってしまうと、ちょっと嫌ですよね(;´∀`)

お客さんに質の高いソフトウェアを提供するためには、綿密な「チェック」が必要になってきます。
そのチェックを抜けなく、かつ効率的にやるための手法もちゃんと存在していて、今回はこういった部分を教えていただきました。

前半は、かんたんな例題を元にして、単体テストの演習がメインでした。
こちらはそこまで難しくなく、理解もできたのですが、後半の演習で「既に出来上がって、リリースされたプログラムに機能追加をする際のテスト」を想定した演習があったのですが、一度組み上がったプログラムを解読し、どこにテスト用のモジュール(ドライバ・スタブ)を差すことができるのかを見ないといけないのでなかなか大変でした(;´∀`)

例題のプログラムもあえて複雑なものを出されたので、解くのがなかなか難しかったです。
家に帰ってからまた見直しておきたいと思います。


因みに、今日も静大の食堂で

コチラのメニューをいただきましたw




Nexus7のカバーを新調。半透明でドロイド君があしらわれたCruzerlite Androidifyがイケてる!

カテゴリー │ガジェット

こんにちは、たかしーです。

普段から使用しているNexus7(2013) のカバーを先日新調しました。

今までは、マグネット内臓の蓋つきカバーを使っていました。

このカバーはふた部分を三角柱状に曲げることができ、本体を立てることができたり、磁石に反応するNexus7の機能を使用して、カバーを開いた時、自動で画面をONにしてくれたりする優れものなのですが、カバーについているマグネットがNexus7の磁気センサーと干渉してしまい、地図アプリなどで表示をすると、いつも向いている方向と違う方角を表示してしまう状態でした。
非純正品なのでまぁ仕方ないか、とおもって使い続けていたのですが...
先日、とうとうNexus7のセンサーがおかしくなり、完全に方角情報を拾わなくなってしまいましたorz



このカバーのせいかどうかはわかりませんが、センサーに悪影響を及ぼしていたのは間違いないので、ケースを交換することにしました。

購入したのはこちら。
Cruzerlite Androidify A2 TPUケース for Nexus 7 (2013)(グリーン) N7FHD-A2-Green



実物はこんな感じです。
早速開封!



おお、なかなかきれいな色合ですな...!
丁度ドロイド君カラーになっているところもいいですねw



カバーを外すと、パッケージの裏にもドロイド君がたくさんいました。
こういう遊び心は結構好きですw

早速、Nexus7に装着してみました。



おお、いい感じ!
本体の黒部分が透けて、ドロイド君がよりはっきりと目立つようになりましたねw



表面。
しっかりフィットしてていい感じです。

素材はTPUが使用されていて、硬すぎず、柔らかすぎないので、頑丈さと装着しやすさを両立しています。
このケースはディスプレイの保護はできませんが、そこは別途タブレットケースを買うなどして工夫すれば何とかなりそうです。

いいものを購入できました(*´ω`*)


それにしても...画面がなかなか汚い(汗
そろそろ新しい保護シートが必要になりそうです(;´∀`)

これで治ってくれればイイナーと思っていたのですが、先ほどもう一度チェックしたら、やっぱりセンサーが認識しなくなっていました((
再起動直後は正常に動いている様子ですが、しばらくすると認識しなくなってしまうようです。

これは本格的に、センサーを痛めてしまったかもしれません((
やっぱり修理に出すしかないみたいですね(;´∀`)

皆さんも、非純正のスマートカバーやマグネットケースを使用される際は十分にお気をつけください...




久々にガストで昼食

カテゴリー │グルメ

こんにちは、たかしーです。

困ったことに、たまに無性に肉が食べたくなるときがたまにあります(汗
先日、久しぶりにガストで


ミックスグリルを注文してしまいました...

いやぁ、何年ぶりでしょう。
昔はガストに来たときは必ずこれを注文していたぐらい、よく食べていました。
最近は殆どファミレスもモーニングの時間帯以外に行くことがなくなってしまったのであまり食べる機会も
なくなっていたのですが、今回、久々に昼に行くことに。



ミックスグリルは一枚で3度おいしいところが昔からすきです(*´ω`*)
がっつりと頂きましたw

久しぶりに食べると、とてもおいしく感じますね。

ごちそうさまでした!



モンスターハンターストーリーズの体験版が配信開始! さっそくダウンロードしてプレイしてみた!

カテゴリー │ゲーム

こんにちは、たかしーです。

ついにモンスターハンターストーリーズの体験版の配信が開始されましたね!(∩´∀`)∩ワーイ



モンスターハンターといえば、巨大で強力なモンスターを"狩る"ことができる、大人気のアクションゲームですね。
僕も、モンハンの世界観やモンスターのデザインがかなり好きで、グッズも結構買ってたりしますw

...が、実は、ゲーム自体は一度もプレイしたことが一度もありません。

というより、どうしても手を伸ばす気が起きませんでした((
というのも、モンスターを切り付けたり、刺したりしたときに、一部が千切れたり、血が出たりといった描写がちょっと苦手でして...

これが世にも恐ろしい、おぞましい姿のモンスターであれば、あまりそういうのも感じなかったとは思います。ですがモンハンのモンスターって、ちゃんと生き物らしさを感じる造形ですし、現実世界のクマやライオンのような猛獣と同じような生き物に見えてしまって、なかなか"倒す"っていう気分になれませんでした(苦笑

そんな僕の感想に訝しがる友人に、いつも、
「まぁ、モンハンでモンスターに乗ったり、育成したりできるやつが出たら僕も始めるわwww」

なんて冗談でいっていましたw
趣旨が180度変わってしまう内容、ましてや育成なんて、早々出やしないだろうと高を括っていたのです。

...まさか、こんなに早く出してくるなんで、一体誰が想像できたでしょう...?

「モンスターハンター ストーリーズ」の最新情報が明かされたプレス発表会をレポート。CMキャラクターのDAIGOさんやナビルー役のM・A・Oさんも登壇 - 4Gamer.net

初めてこの情報を見たときは驚きのあまり噴き出すかとおもいましたよ(

モンスターを育成したり、乗ったりすることができるモンハンが出て、しかも、あのモンハンがアニメ化までするとは...
世の中、わからないものですな((

そして、先日体験版の配信がついに開始。




もちろん、速攻でDLさせていただきました_(:3」∠)_



本編の作品と比べると、全体的にかなりデフォルメされた絵になっています。
なんとなく、風タクを連想させるグラフィックスですw

モンスターのデザインもそれとなくデフォルメされていて、ちょっとかわいさを感じますが、細部まで凝ったモンスターの造形があまり犠牲になっていないデザインになっています。

戦闘は本編とは違い、ターン制のバトルになっていました。
これは賛否が分かれるポイントになりそうですが、敵がそこそこ強めに設定されていて、結構手に汗握る感じ(?)あります。

これはちょっと楽しいかもw

体験版はそこそこ短めでしたが、十分楽しめました。

もちろん、製品版も予約済みでございますw

製品版は、予約すると限定のモンスターが手に入るシリアルが得点でついてくるとのこと。

http://www.mh-stories.jp/promotion/06.html#item03

発売が楽しみですな(*´ω`*)



モンスターハンター ストーリーズ通常版(3DS)/イーカプコン限定特典付き / 通常版
http://www.e-capcom.com/ec/srDispProductListProductLink/doProductLink/1/1/A10006047/11/10/srDispProductList/




ZendFramework 3 、やっと入りました。

カテゴリー │IT全般

こんにちは、たかしーです。

昨日、ZendFramework 3がComposerで入らない件
という記事を書いたのですが、解決しました...(;´∀`)

というのも、


phpunitが入ってなかっただけでした((

apt-getでインストールします。



そのあと、ZendFrameworkをインストールしたいディレクトリでもう一度

とすると、



今度はちゃんとインストールできました...w

たったこれだけだったのですが、会社の方に教えてもらうまで全く気付かなかったという残念なアレでした(;´∀`)

今回の教訓は、エラー文はちゃんと読みましょう、ってことですね(苦笑



ZendFramework 3がComposerで入らない件

カテゴリー

こんにちは、たかしーです。



最近、自宅のサーバーにZend Framework 2(あるいは3) を導入しようといろいろ調べているのですが、その途中経過をば。
というのも、ただソースやパッケージをダウンロードしてくるだけかと思いきや結構ややこしくて、入手にちょっと苦労をしています(;´∀`)

まず、調べていたら"Composer"というPHPのパッケージマネージャーを入れると導入できるよ!という記事があったので、さっそく導入。



phpが入っていれば、これだけで入手できます。
ただ、このままだとパスが通らないので、
/usr/local/bin
などに移動させるか、$PATH環境変数にComposerのパスを入れておく必要があります。

”composer"の導入方法がなかなか見つけられなかったり、composer と composer.phar の表記がごっちゃになっているところもあるので、ちょっとわかりづらい。

とりあえず、両方対応できるように、composer.pharを移動させた後、



などどしておきました。

あとは、端末画面で

とすると、ようやく入手することができました。

どうやら、OSの環境やバージョンをみて自動判定しているようで、


Ubuntu 12.04では ZendFramework 2.2


Ubuntu 16.04では ZendFramework 3.0

が落ちてきました。
本当は、ダウンロードするバージョンを指定したいのですが、公式サイトにバージョンを指定するオプションが見当たらないんですよね(;´∀`)

そしてさらに困ったことに、なぜかUbuntu 16.04でインストールしようとすると

Installation failed, deleting ./composer.json.

というメッセージがでて失敗してしまいます(

まさかプログラミングより前でこんなにつまずくとは思っていませんでした(;´∀`)

Ubuntu12.04 + ZF2.2でもいいのですが、Ubuntu12.04もかなり古い環境になってきているので、できれば最新のUbuntu16.04でも動いてほしいところ((

早く解決してプログラムに進みたいです...







【期間限定!】 サンマルクカフェ ハロウィンの訪れを感じる「ハロウィンチョコクロ」

カテゴリー │カフェ

こんにちは、たかしーです

先日、サンマルクカフェでハロウィンチョコクロ【クリーミーキャラメル】を食べてきました( ´∀`)




魔女やジャック・オ・ランタンの絵柄になっているパッケージがちょっと楽しいですねw





中はこんな感じです。

濃厚な焦がし目のキャラメルの味が楽しめます!
クロワッサンの部分もバターたっぷりで美味しいですよ♪

期間限定なのでハロウィンの仮装と共に(?)是非お楽しみくださいw

-------------------------------------------------------------------------------------
サンマルクカフェ
http://www.saint-marc-hd.com/saintmarccafe/



丸亀製麺 期間限定メニュー "牛すき釜玉うどん" が絶妙!

カテゴリー │グルメ

こんにちは、たかしーです。

今回、無性にうどんが食べたくなってしまいまして、久々に丸亀製麵に行ってきました_(:3」∠)_

今回いただいたのは、

期間限定の牛すき釜玉うどんです!

前からCMを見ていてメチャクチャおいしそうだな~と思って気になっていたのですが、今回やっと食べることが出来ました\(^q^)/


うどんの上にたっぷりと牛肉、そしてさらにその上に卵が乗っかってます!!!


この上に薬味をドーーーン!
卵と一緒にかき混ぜると...


見てください!この牛肉とうどんに卵が絡まった最高の組み合わせ!!!

実際にいただいてみると、しっかりタレが効いた牛肉とうまみの強いだしが効いているうどんに、卵がしっかり絡まって、最高においしいです!
味の組み合わせも絶妙でした!

あまりに美味しかったので、期間内に是非もう一度食べに行きたいですねw







【Ingress】 XMアノマリー "Via Lux" が香川・岡山で開催されるらしい!

カテゴリー │ゲームIngress

こんにちは。
最近ingressで一喜一憂しまくっているたかしーです。



まもなく、アノマリーイベント"Via Lux"が開催されるようで。

XMアノマリーは、勝敗次第で単純な陣営間のポイントの変動だけでなく、今後のingressの展開にまで大きな影響を及ぼしてしまうほどの重要なイベント。
実際、以前のアノマリーの結果によって、ENLポータルをRESポータルに一瞬で逆転させる強力なアイテム、"ADAリファクター"が消失し、ハックでは入手できなくなってしまいました。(逆の効果を持つ"Jarvisウイルス"はまだ入手可能)
RES陣営の自分としてはなかなかキツイ事態になっていたようです。(汗

そんなXMアノマリーですが、今回は日本の香川、岡山で9/24に"発生"するそうです!

アノマリーイベントではイベント限定のグッズを購入できるとのことですが...


ViaLuxサポーターキットの中身一覧 - ingress速報

このサポーターキットを購入すると、参加者限定で多数のアイテムもついてくるようです。
最近、アイテム不足に悩んているのでこの特典はなかなかウラヤマシイ...(

今回は参加しません(というよりできませんw)が、今回の勝敗が全エージェントに影響してくるのは間違いないと思うので、一体どうなってしまうのか、とても楽しみですねw
願わくば、是非RES陣営勝ってほしいです!



僕がingressを始めたのが、ポケモンGOのリリースを待ちきれずに、Nianticのほかのゲームも試してみようかな、と思ったのがきっかけでして、登録したのも、ポケモンGOが出る前後でした。
その後、本命のポケモンGOよりもドはまりしてしまって、近所で毎週のようにドンパチやっているというのはこの前の記事に書いた通りですw

せめてあと半年ぐらい前からingressに触れていれば弱いながらにも浜松のアノマリーに参加できてたかもしれなかったのに...orz

まぁ、既存のエージェントとのレベル差も埋めれてないですし、近隣の地域でいつかアノマリーが開催されることを期待して、今のうちに地道にレベルを上げていきたいと思います(;´∀`)