徒然にpythonをす
ひっさびさに放置して腐らせていたブログを更新。
見捨てたわけじゃないんだけど、実務が忙しくなるとどうしても忘れてしまうね……。
本当はそういうときにこそ得た知識をブログに残すのが大事だと思うのだけれど……。
んまあ、この一年間、自分としてはわりといろいろやったような気がします。
・VB2013は完全に初の経験でいろいろと得られたかな?
特別なことは何もやってないけど。
DBがSQLServerかと思ったらPostgreSQLだったのは技術リーダーの趣味か……。
・JSP&サーブレットを若手教育がてらもう一度洗いなおせたのは大きい。
開発環境の構築から設計、実装、サーバー構築してデプロイまで。
これもたいしたアプリをつくったわけじゃないけど。
あとはjQueryやAjaxをもうちょっと触れていたら、言うことなかったんだけどなあ。
・Frameworkにちびちび触る機会が。JUnit、DBUnit、Mockito、MyBatis、SpringFramework(コアのDI、AOPの部分のみ)。こちらはまだまだ。
ほんだけど、自分にとって一番インパクトがあったのはpythonですね。
いまはおべんきょ中だけど、画像認識、機械学習とか楽しげ。
でも私は専門がWebアプリなので、細々とこちらの記事で学ばせてもらっています。
PythonでWeb開発入門 みんなのPython Webアプリ編 HTML版(無料) | TRIVIAL TECHNOLOGIES 4 @ats のイクメン日記
必要ならDjangoなどのフレームワークにもお世話になるかも。
ちょっとこんなWebアプリを実装してみたいな、という趣味的な欲求がありまして・・・・・・いつかたちになるかはわかりませんが、このブログが製作日記になるかもしれませぬ。
(やれやれ)リンク先が別ウインドウで開くようにブログを修正しました
タイトルのとおりです。
修正のためにわざわざHEADタグを編集しなきゃならんという。
(参考)はてなブログ記事内にあるリンクを別ウィンドウ(target=_blank)表示に設定する方法 - (ホ)ライムライン
このくらい標準にしておいてくれよ、はてなブログェ……。
Javaバッチ処理 フレームワーク(OSS)ざっくりまとめ
仕事メモ記事が続きますが。
Javaバッチの学習手始めに情報収集しましたが、Javaはバッチ開発でもフレームワークを使用するのが主流のようです。
ざっと調べた限り、以下のフレームワークがメジャーのようです。
●TERASOLUNA Batch Framework for Java
NTTデータが開発し、オープンソースで提供している国産フレームワーク。
日本語資料が多く、初心者の学習・利用には向いていそう。
公式資料では、以下の特徴を挙げています。
①オンラインの開発者は、すぐにでもバッチ開発を習得可能です。
②バッチ開発に必要な機能を、コンポーネント化して提供しています。
③構造化プログラミングでビジネスロジックを実装可能であるため、以下の特徴があります。
• Pro*C、COBOLからのマイグレーションが容易です
• 処理設計書との親和性が高いです
http://www.terasoluna.jp/product/framework/batch_framework.html
●Spring Batch
世界的に利用実績が多く、事実上の標準。
だが意外とまとまった日本語情報がネットになく、書籍に当たる必要がありそう。
http://projects.spring.io/spring-batch/ (英語)
●JSR-352 Batch Applications for the Java Platform(通称:Java Batch)
Spring Batchの仕様をJavaが標準仕様として取り入れたもの。
つまりJava公式のバッチフレームワーク。
まだ新しいフレームワークで、こちらも情報が少ないが、Spring Batchと使い勝手はほぼ同じらしい。
http://www.oracle.com/technetwork/articles/java/batch-1965499.html (英語)
TERASOLUNAは内部的にSpring Frameworkを使っているし……本格的にSpringの勉強しとくいい機会かも。
ツールの概要調査 雑記
仕事でざっくり調べたことを記録しておきます。
断定口調になってますが、実際にすべてを試したわけじゃないので、実際は「調べてみたところ~らしいですよ」ってところ。
■Entity Framework
.NET Frameworkに含まれる、データアクセスに関わるフレームワークです。
https://msdn.microsoft.com/ja-jp/library/bb399567(v=vs.110).aspx
データベースを.NET上で扱いやすいようモデル(EDM)化します。
モデルを元に、データベースのテーブルを抽象化したクラスがフレームワークによってつくられます。
そのため、プログラマはクラスのプロパティやメソッドを操作する感覚でデータベースに格納したデータの検索や更新が行えます。
さらに、モデルはデータベースのテーブルそのものではなく、データベースの都合上でどうしても必要になってくる中間テーブルなどを意識する必要がない形で構築できるため、プログラマが直感的なデータ操作ができるようになっています。
具体的な例を挙げると、「店舗」テーブルと「商品」テーブルを関連づける「在庫」テーブルをプログラマが意識する必要がなくなります。
(SQLでJOINを行うといったことが不要になる)
プログラマは「店舗」クラスのオブジェクトが複数持っている「商品」クラスのオブジェクトを直接操作でき、その結果をSQLを使用せずにデータベースに反映できます。
Windowsアプリケーションのインストール・アップデートに関する仕組みです。
https://msdn.microsoft.com/ja-jp/library/t71a733d.aspx
Visual Studioからアプリケーションの発行を行う際にClickOnceが使われています。
Windowsのインストーラーと比べてシンプルで柔軟なインストールが可能で、アプリケーションのアップデートも簡単に行えるようになります。
・シンプル:インストール時にウィザードであれこれユーザに問わない
・柔軟:CDなどからのインストール、Webからダウンロードしてインストールなど、複数の形式に対応
また、ユーザがアプリを起動した時に、アプリが自動でアップデートがあるかを探しにいきます。
ベンダーはサーバー(ユーザーのイントラネット上でも、外部のWeb上でも可)の指定場所に最新バージョンを配置するだけでよく、ユーザー、ベンダーともにアップデートの手間が軽くなります。
■Flyway
データベースのバージョン管理や移行をサポートするツールです。
(DBマイグレーションツール)
海外産のオープンソースのツールです。
データベースへの変更(変更するSQLファイル)を都度バージョン記録して
います。データベースの変更によって不都合が生じた場合に、DBを過去のバージョンの状態に簡単に戻すことができます。
別環境に、指定したバージョンの状態のDBを簡単に再構築できます。
Java動作環境(JVM)で動作するようで、同じ環境で動作するビルドツールなどと連携させて使用することが多いようです。
Flywayの操作をビルドツールのスクリプトで自動化したり、Javaコードで作りこむことができるようです。