ただいま修行中...

ソフトウェア開発において、勉強中で悪戦苦闘の日々

仕事は楽しくなくてはいけない

2013-05-23 21:59:29 | プログラミング
久しぶりの更新。

最近は、マネジメント業務からもすっかり解放?されて、プログラミングをしています。

自分のなかでは新しく学んでいることはWPFとC++です。
自宅で勉強をしていてもやはり業務で使うのが一番覚えるなと思います。

特にC++は楽しいなと思います。こんなに便利な言語がいろいろとでているのに色々とやりたいことができること・OSのことを色々と理解できるので楽しいとかんじます。

着実に技術が上がっているのかな?と思いながら最近楽しく仕事をしています。

Azureで永続するデータはストレージでないと絶対にだめ

2012-09-30 20:49:13 | プログラミング
Azure上でSolrを動作させていて、突然、インデックスファイルが消えることがありました。

原因としては、Azure上でOSのアップデート(正確にはホストのサーバー)が入ると、再起動が発生します。その際に、ストレージに保存してあるものと、起動時に読み込みファイル以外はすべて初期化されます。

つまり、インデックスを自動で作成している場合には、再起動直後には、データが消去されると言うことです。

基本的には、永続するデータは、ストレージに保存ということはわかりますが、データを消去するのはビックリするような仕様でした。

今回は、たまたますぐに原因をつかむことができたので、事なきを得ましたが、このことはもう少しアナウンスをする必要があるのではないかと思います。


型づけの強い言語のほうがあっている

2012-09-23 21:41:05 | プログラミング
Javaを本格的に業務で利用するようになって本当にツールやライブラリが豊富にあるなと思います。負荷テストを利用する場合にはJMeterや検索をするのにSolrだったり、様々なものがあるなと思います。

そのため、初心者にとっては勉強に時間がかかるなどは色々とあると思います。

私の場合には、まったく違う言語である程度のところまでは知っているので、それほど苦労することはありませんでした。

どちらかというとWEB系の知識が無かったので、そのあたりで苦労はしました。

静的な型づけの強い言語がいいか悪いかはその時々で変わりますが、最初に学ぶ言語としては、静的な型づけの強い言語がいいのかとおもいます。それは、型を意識して開発が出来ること・ビルド時にエラーになるので、なぜ出来ないかを考えていくのでいいと思います。

様々な考え方があると思いますが、私は静的な型づけの強い言語のほうが好きであるなと思います。

C#が中途半端な言語になってきたような気がする

2012-09-16 23:10:14 | C#
最近でもないですが、C#3.0になってからラムダ式が採用されてからC#が動的言語を意識した言語使用になり、ちょっと中途半端になってきたなと感じます。

もともと静的型づけが厳しい言語であるので、いい面もあれば悪い面もあります。

C#3.0になってから不要なソースコードを書く必要がなくなってきましたが、いきなり変更されたので、最初はとっつきにくいと思います。

今後、どのようになっていくかはわかりませんが、中途半端な言語になるのだけはさけてほしいなと思います。

JavaはAzureは正式対応ではない?

2012-09-09 21:37:09 | Java
Windows AzureでEclipse+Javaのプログラミングをしようと思い、サードパーティのライブラリを利用していましたが、Microsoftの正式の回答としては対応していないというのが結論のようです。

Azureのページ

上記のページにJavaのチュートリアルがあったので、正式対応なのかと思いましたが、どうやら、だめだということを回答を得ました。

まあ、Javaのバージョンだったり、Eclipseのバージョンがあるのですべてを検証できないので致し方ない部分はありますが、せめてこのページは存在しないでほしいなと思います。

初めての外部研修の講師をしてみました

2012-09-02 22:15:11 | プログラミング
先日、企業様向けにテスト駆動開発(TDD)の研修を初めて行いました。

今までは、社内の研修のみだったので、それほど緊張はしませんでしたが、初めて外部の方向けということで、当時はいつもよりも早く起きました。

内容は、プログラミングの経験はあるが、テスト駆動開発をしたことがない人向けなので、本当に基礎の基礎になります。

ライブコーディングを取り入れながら、適宜カスタマイズしながら研修を行いました。

結果としては、取り入れてくだされば成功で、そうでなければ失敗なのかと思います。研修の中だけの成果としては、なんとかご理解いただけたと思います。

今後もこのような機会を増やして、場慣れをしていく必要があるなと思いました。

多岐にわたることをしらないといけない

2012-08-19 21:35:34 | Java
Javaでプログラミングをしていて感じたこととして、プログラミングはたいしたことをしていないのに、その周辺(Tomcatなど)の設定が大変だと感じました。セキュリティのこと・ネットワークの接続状態など多岐にわたることをしらないといけないと思いました。

Tomcatの設定や外部のライブラリを使用するための設定だったりして本当に大変だと思います。

WEB関連は本当にプログラミング以外のことを知らないとできないと改めて感じました。

業務の立場が変わると色々な発見がある

2012-08-14 22:37:19 | ビジネス
ここ数ヶ月は、業務の関係上、いつもの製品開発とは違い、プログラマとしての仕事を行っております。メインの業務がプログラムをがっつり作成する立場になります。

ここ数年、こういったことがなかったので、非常にありがたく感じます。特に、Java、Solr、Azureという業務では使ったことがなかった技術を使うことができたので、成長できているなというのを感じます。

久しぶりにやるとムチャぶりというか厳しいタスクばかりが割り振られるので、ひとつのタスクを完了させるのに時間がかかります。

それはそれで、技術の本質的な部分を理解することができるので、問題ありません。

ここ数ヶ月で色々なことにチャレンジできたので非常に充実しています。

今まであまり仕事をしてこなかった人ともかかわれたり、昔はこうだったけど成長しているなや変わったなと思う発見があるので、非常に面白い発見があります。

実装の完了基準について

2012-08-13 21:07:12 | ソフトウェア開発
実装の完了基準は人それぞれ違うと思いますが、私の中での完了基準は、テストコードを書いて、テストがすべてパスしていることが内部的な完了基準としてあり、外部的な完了基準は、要件定義者のレビューが完了したときに、終了となります。

特に内部的な振る舞いについて、テストコードを書いた場合と書かない場合では、ものすごく違うと感じます。特に、修正作業の時に大きな差が出てきます。

ビルドが通って、簡単なテストだけで実装の完了というのは私の中ではないと感じています。

上記のような考え方からなかなか抜けられないと、何度も同じような失敗を繰り返すことが多くあります。

常にテストコードを書いて、リファクタリングをし続けないとならないので、実装の完了というのは無いかもしれませんが、ひとつの目安として、おいておかなければならないと思います。

JavaでAzureのストレージ操作

2012-07-29 22:41:27 | Java
Windows Azureでストレージを操作する際に、Javaでは、なぜかCreateTableでエラーになります。Table自体は作成されますが、必ず発生します。

これがJavaのバージョンに依存するものかどうかまでは原因を特定できません。

Blob上にコンテナやファイルの部分は問題ありませんが、Tableだけがだめです。

Microsoftでも正式にJavaをサポートしているわけではないので、回答を得られないので、自分で調べるしかないのです。

よくわからないな。