まつざきの技術メモ

エンジニアの私的な技術メモです。


コメントする

2012年の振り返りと2013年の目標

まずは、2012年を振り返るにあたり今年の初めに書いたエントリーを読み返してみました。
2011年の振り返りと2012年の目標

去年と比べると勉強会・イベントはかなり沢山参加できました。
参加と主催を合わせると34回参加なので、月平均は約3回。
今年もかなり忙しい1年だったけど、これだけの回数参加できたのは家族や同僚のおかげだと思います。
ありがとうございますm(_ _)m

また、毎日1〜2時間勉強する事を目標に上げてましたが、
月〜土はどんなに遅く帰っても、ほぼ毎日1〜2時間勉強する事が出来ました。
来年もこれは継続していきます。

それと、2012年に勉強する事としては、以下をあげてました。

  • Ruby
  • Python
  • Scala
  • Asakusa Framework
  • MongoDB
  • 英語

・Ruby
業務でChefとFluentdを使い始めたので書く機会はそれなりにあったけど、Railsはやらなかったです。
ちょっと勉強してみたけど、あんまり馴染めなくて挫折・・・。

・Python
やってない・・・。
言語としてはPerlに興味が湧いたので、Perl勉強しました。

・Scala
やってない・・・。
業務で使う言語とフレームワークを今使ってるJava + Seasar2からScala + Play2.0に移行するつもりだったけど、
Java + JavaEE6に移行しました。

・Asakusa Framework
業務での使いどころはあるのだけど(弊社が作ってるのは基幹業務システムなので)、
他に優先するべき事が多いので、業務で使うのはまだまだ先になります。

・MongoDB
元々はFluentdのデータストアとして考えてたんだけど、
MySQLを使うことにしました。
ちょっとした用途で使う分にはとても便利だと思います。

・英語
仕事で海外の人とメールでやりとりする事が何度かあり、今後も増えそうな気配なので引き続き勉強します。

 

2013年に勉強したい事は、

  • データベース
  • Linuxカーネル
  • Hadoop周辺の技術
  • ソフトウェアテスト
  • 数学

データベースについては、
@kisさんがされてたみたいに自分で機能を実装してみる。
Postgres, MySQLのソースレベルで理解を深める。
業務でMySQLも使い始めたので、運用の知識を深める。
の3点。

・Linuxカーネルについて
まずは「詳解 Linuxカーネル 第3版」を読む事から始めます。

・Hadoop周辺の技術について
Asakusa FrameworkとかHiveとかImpalaとか勉強したいです。
業務で役立つ日が必ず来るので。

・ソフトウェアテストについて
恥ずかしながら、この辺の知識が圧倒的に不足してます・・・。

・数学について
自分の知識レベルではこれ以上プログラマとしての成長が難しいと判断したからです。
恥ずかしながら、まずは高校数学レベルの勉強から始めます・・・。

 

以下、今年参加した勉強会・イベント、読んだ本などのまとめです。

 

参加した勉強会・イベント(順不同)
29回 (抜けがある気がする・・・)

  • RBC イケテルRails3.1勉強会
  • 【RBC Casual Talks】 恋する Jenkins
  • FukPUG Workshop vol.0
  • FukPUG Meet-up vol.2
  • 第0回 福岡Debian勉強会
  • 第1回 福岡Debian勉強会
  • アマゾン ウェブ サービス/Asakusa Frameworkセミナーin福岡
  • 勉強会Play1.1
  • javaでデザインパターンを書いて手を動かそう#3
  • javaでデザインパターンを書いて手を動かそう#4
  • javaでデザインパターンを書いて手を動かそう#6
  • Hadoop関連技術勉強会@福岡
  • Webサーバ勉強会
  • Future Sync vol.2
  • JavaQne(じゃばきゅん) Fukuoka 2012
  • JavaOne SF 2012報告会
  • hktstudy #01 ~恋せよ乙女~
  • MySQL Casual Talks @gumi福岡
  • MySQL Casual Talks in Fukuoka vol.2
  • Oracle MySQL Tech Tour – Fukuoka
  • 第3弾 チューニンガソン
  • 第4弾 チューニンガソン
  • 第1回福岡Jenkins勉強会
  • G*ワークショップ in 福岡
  • ISUCON2
  • 福岡Ruby会議01
  • 福岡でOpscode Chef ハンズオン(無料半日版)
  • オープンソースカンファレンス2012 Fukuoka
  • Hadoopとかその他もろもろ勉強会in福岡0回

 

主催した勉強会
5回

  • 第0回 インフラ勉強会@福岡
  • 第1回 インフラ勉強会@福岡
  • 第2回 インフラ勉強会@福岡
  • 第3回 インフラ勉強会@福岡
  • 第4回 インフラ勉強会@福岡 Fluentdハンズオン

 

LTした回数
9回

 

 

 

 

 

 

 

 

 

書いたブログエントリー
16回 (このエントリーを含む)

 

参加したAdvent Calender
1つ

  • JavaEE Advent Calendar 2012

 

読んだ本(積読本は省く)
23冊

  • MongoDB and Python
  • Hadoop: The Definitive Guide 3rd Edition
  • Gitによるバージョン管理
  • 継続的デリバリー
  • Jenkins
  • Play framework Cookbook
  • 詳解 MySQL
  • デコンパイリングJava ―逆解析技術とコードの難読化
  • Beginning Java EE 6
  • アルゴリズムを学ぼう
  • Mobageを支える技術 ~ソーシャルゲームの舞台裏~
  • J2EEパターン 第2版
  • 徹底解剖「G1GC」 アルゴリズム編
  • Jenkinsではじめるビルド職人入門
  • RDBMS解剖学
  • プログラミングGROOVY
  • はじめて学ぶソフトウェアのテスト技法
  • Apache Maven 3クックブック
  • 実践テスト駆動開発
  • 初めてのPerl 第6版
  • リーダブルコード
  • Amazon Web Services クラウドデザインパターン 設計ガイド
  • JUnit実践入門
広告


コメントする

NetBeansでJavaEE6開発する時にHotDeploy可能なプロジェクトタイプ

これはJavaEE Advent Calendar 2012の11日目のエントリです。

昨日は@mike_neckさんの「CDIについて書こうとしたら、JSRを読み始めて、結果JSR330を実装してみようとしてみた件について」でした。

弊社ではNetBeans&GlassFishを使っています。
今回のエントリーでは、JavaEE6初心者な僕が最初に困った点について書こうと思います。
これから始める方の、何かのお役に立てれば!

# 業務で使う標準フレームワークを最近JavaEE6に切り替えたばかりです。
# ちなみに、その前はSeasar2(S2Dao + Teeda)&Eclipse&Tomcatでした。

NetBeansでJavaEE6なWebアプリを開発する場合、プロジェクトのタイプは以下の4つが選べます。

  1. NetBeans独自形式プロジェクト + warパッケージング
  2. NetBeans独自形式プロジェクト + earパッケージング
  3. Maven形式プロジェクト + warパッケージング
  4. Maven形式プロジェクト + earパッケージング

 

JavaEE6になってから、ejbもwarファイルにパッケージングが出来るようになったのは
皆さん既にご存じかと思います。

 

各プロジェクト作成ウィザードのスクリーンショットはこちら。
 

1. NetBeans独自形式プロジェクト + warパッケージング
スクリーンショット 2012-12-11 15.29.26

2. NetBeans独自形式プロジェクト + earパッケージング
スクリーンショット 2012-12-11 15.29.41

3. Maven形式プロジェクト + warパッケージング
スクリーンショット 2012-12-11 15.33.45

4. Maven形式プロジェクト + earパッケージング
スクリーンショット 2012-12-11 15.34.01

弊社ではMaven形式プロジェクト + earパッケージングで開発を始めました。
理由としては、開発するサービスが非常に大きいからです。
クラス数が多いとAPサーバの起動に時間が掛かるし、メモリも消費するので、
ある程度の機能単位でejb(jar)に分けて、導入するお客様の環境で必要な分だけパッケージングしようと考えました。

こんな感じです。

  • A社様向け → 機能1 + 機能2 + 機能3
  • B社様向け → 機能2
  • C社様向け → 機能1 + 機能3

ですが、earでパッケージングしてしまうと、開発が始まって非常に困った問題が発覚。
ソースの変更を行った場合、変更を反映するために再ビルド&GlassFish再起動が必要という状況(ToT)
これでは開発の効率が非常に悪くなってしまいます。

そこで、warファイルにパッケージングしてみたところ、ソースを変更して保存したタイミングで、
アプリのHotDeploy(と呼んでいいのかな?)が行われました。

プロジェクトタイプごとのHotDeployの挙動をまとめるとこんな感じです。

  1. NetBeans独自形式プロジェクト + warパッケージング → HotDeploy可能
  2. NetBeans独自形式プロジェクト + earパッケージング → HotDeploy不可能
  3. Maven形式プロジェクト + warパッケージング → HotDeploy可能
  4. Maven形式プロジェクト + earパッケージング → HotDeploy不可能

 

GlassFishの管理コンソールでアプリケーションがデプロイされたパスを確認して、
そのディレクトリの中身を見てみると、
HotDeploy可能な場合はclassファイルがフラットな状態で配置されていて、
不可能なプロジェクトタイプではjarとかwarにパッケージングされて配置されてました。

1. NetBeans独自形式プロジェクト + warパッケージング
スクリーンショット 2012-12-11 22.29.53

2. NetBeans独自形式プロジェクト + earパッケージング
スクリーンショット 2012-12-11 22.30.09

3. Maven形式プロジェクト + warパッケージング
スクリーンショット 2012-12-11 22.31.18

4. Maven形式プロジェクト + earパッケージング
スクリーンショット 2012-12-11 22.30.34
 

NetBeans独自形式プロジェクトのビルドツールはAntみたいですね。
せっかく新しく始めるんだし、もうAntは使いたくないので、
Maven形式プロジェクト + warパッケージングでやる事にしました。
(今時はGradleなのでしょうか?)
サーバのメモリ消費問題は、warにパッケージングする時に不要な分は除外する方法で対応するつもりです。

規模が大きい開発の場合、みなさんどうされているのでしょうか。。。(ERPとか)
「earパッケージングでもHotDeploy出来るよ!」というツッコミ等あれば是非お願いしますm(_ _)m

明日(2012/12/12)は@kikutaro_さんです。
よろしくお願いします!!


コメントする

福岡Ruby会議01でLTしてきました

福岡Ruby会議01が開催されたので、参加してきました。

主催者の@Spring_MTさん、会場をご提供いただいたGuildCafe Costaさん、
参加された皆さん、ありがとうございました!
おもしろいトークとLTが満載で、とても楽しませていただきました。

Rubyも楽しい!!

僕は業務でRubyを使い始める時にやった事についてLTさせてもらいました。

会社で新しい事を始めようとすると、上司や同僚の反対など色々あると思いますが、
僕は以下のようにやっています。

  1. まずは自分で使ってみて検証する
  2. 社内布教活動をする
  3. 小さなツールでもいいので導入実績を作る

 

導入するとメリットがあるプロダクト・ツールがあれば話がスムーズだと思います。
ChefとFluentdはどの会社でも導入メリットがあると思うのでお薦めです!