2015年9月27日日曜日

言霊それは信念、今までに心を動かしたと感じた言葉

私のシステム開発人生の中で、きっとこの言葉は、人の心に響いたと感じた言葉をまとめてみます。

本当に人の心に響いたかは、本人から聞いたわけではないのですが、システム開発は一人でやるものではないので、人間重視の視点が必要です。

担当ではなく、リーダーの立場でプロジェクトを遂行しなくてはならない立場となったときに、どうやったらメンバーが納得して、仕事をやってもらうかを常に考えてきて、私なりに確立した言葉を列挙してみました。

言葉には重みがあり、相手に使うときは信念が必要です。利用する場合は必ず自分のものにして自分の言葉として利用してください。信念がこもっていない言葉は重みがありません。

もっとシンプルに(俺馬鹿だから、もっと分かりやすくして)


私は、昔から、記憶する勉強が苦手でした。
難しいことを難しいまま覚えるのは私には出来ないと考えた私は、何のためにそうするのかということを理解した上で、物事を覚えることにしました。
私の脳には、この記憶方法が一番良いようで、覚えたことを「何故?、何のために?」というコネクタで関連付けていくことにより、目的から結論を導けるようになりました。

さて、導くための方法も「何故?、何のために?」が分かれば、実は他の方法もあります。
そこで、覚えることを単純にするために、この導くための方法を考え直すと、実はもっと簡単な方法があることにも気づけます。

難しいことは人に理解できません > 理解できないことは他の人には利用できません > つまり、創造したもの自身の価値が下がるのです。

もっと人に使ってもらえるものを創造しましょう。

プログラムでは、分かりにくい1行より、分かりやすい10行のプログラムを書けとよく言ってました。


何故このような仕組みにしたのか、あなたの考えを聞きたい


システム開発にはレビューが欠かせません。
レビューで私は、疑問に思ったことは、こう聞きます。「なぜこのような仕組みにしたのか、あなたの考えを聞きたい」こう聞くと、他もこうしているからとか、ググッて検索して出てきたものをそのまま活用しているような人は、「ハッ!?」とします。(たまにポカーンとして、しない人もいますが...)

正直に言うと、まねでもいいのです。
真似る理由が分かればいいんです。

近年のシステム開発では、レビューアが何でも知っているわけではなく、レビューア自身も答えを知らない場合が多々あります。私もレビューアをよくやるのですが、何故こうしたのかをしっかりレビューしたものは、たとえ答えを知らなくても、バグが発生する可能性が非常に低い傾向があります。

また、この問答をやっていると自分の知らない事が情報として得られ知識が高まるのも実感できます。
禅の言葉で、「たとえ七歳の子であっても私より優れていれば教えを乞おう」というのがあります。知らないことを探求する興味も失わないようにしましょう。


役割には、いろいろある。あなたの価値はマネージャとメンバーの橋渡しを行えることです。


これは、ある飲み会で「俺はもうプログラムも書けない、かといって偉くもなれない」といった人に対して言った言葉です。この人は、「ハッとして、そんな考え方もあるのか」と驚いて、かなり喜んでくれました。
システム開発ではどうしても、マネージャ、SE、プログラマといったポジションが目に付きますが、組織に必要な役割というのはいろいろなものがあり、3つだけに分類されるものではないと考えていました。
良くある役割に惑わされず、目的を達成するために必要な事ができるというのは本当はすばらしいことです。


システム開発はアナログ→デジタルのコンバートです。なので人とシステムの両方を知る必要がある。


学校を卒業してこの仕事に就いたときは、本当は人付き合いが嫌いでした。
技術を追い求めて、就職しましたが受注型のシステム開発はやればやるほど、機械ではなくて人がやりたいことを理解することがまずは肝心ということが分かりました。(何故なら、やりたいことが出来ないシステムは価値が無いからです)
慌てて、苦手なコミュニケーションを積極的にとるようにしました。今では人付き合いが好きになっている自分がいます。

技術は、このやりたいことをどう実現するかという次のステップに利用します。
技術は不要という意味ではなく両方必要という、実は非常に厄介な職種と私は感じました。


NO


一言ですが、私はこれを言い続けて、システム開発で何度か、運用故障0件のシステムを構築しました。
スティーブ・ジョブズも細部にこだわり、この言葉を言い続けました。
この言葉の奥には、あなたがやりたいと考えていることを妥協せず貫けるかという意味があります。
これは、人の心を動かすためには即効性はありませんが、何かを達成した際にともに喜ぶことが出来る一体感が生まれます。
ただし、使い方は気をつけましょう。私の場合は、この言葉を使うときは、一緒に苦労する覚悟を持って使っていました。


個性は何も無いところから生まれない、人の物まねの集合体である。


学校ではなくもっと広い視野で勉強をせず、個性だと主張するのは間違っています。
そもそも、人間は生まれてから何かを学習して、得た情報を改善したり、情報同士を関連付けたりして新しい事を生み出してきました。
個性を生み出すための種が情報なのです。情報を得るための学習を怠らないようにしましょう。


サラリーマンは会社からの評価は遅れてくる。だからあきらめるな、気が付いたら現場の人たちが高い評価をしてくれる。そうなると会社も無視できなくなるから。


最初に注意です。結果が後から付いてくるという意味ではありません。スポーツ業界でのイチローも言っていますが、これは甘えです。結果はリアルタイムで出しましょう。

さて、ここで言いたいことは

やっていることに比べて給料が低いと感じたことはありませんか?
それが嫌なら、サラリーマンは止めるべきですし、そもそも、会社が利益を上げてから、ボーナスや昇給などで評価される仕組みをとっている以上、あなたへの評価は直ぐには現れません。

誰かの役に立つために仕事をやっていけばどんな現場でも、あなたのことを認めてくれる人は現れます。

私は、会社に褒められるより、一緒に目的を目指したメンバーから褒められるほうがうれしいです。
間違えないでください、現場で最善の結果を出すことに注力してください。
それがあなたの、スキルアップにつながり結果、会社に依存することなく生きていける能力が身につくのです。

2015年9月26日土曜日

個人的にEclipseでよく利用しているショートカット(更新中)

個人的に良く使うショートカット順に並べてみました。 EclipseのMarsを使っているので、古いバージョンでは使えないショートカットキーもあります。

エディタ編

動作 Windows Mac 利用シーン
ファイル名を検索して開く Ctrl + Shif + r + Shif + r ファイル名を覚えている人はここから開いたほうが速い
検索
次へ
戻る
Ctrl + f
Ctrl + k
Ctrl + Shift + k
+ f
+ k
+ Shift + k
ファイル内の文字列検索です。
この3つのショートカットはセットで覚えましょう
インクリメンタル検索
次へ
戻る
Ctrl + j

+ k
+ j

Shift +
入力順にリアルタイムで検索してくれます。
ちょっと癖があるけどなれるとこっちの方が便利かも
次へ
戻る
Alt +
Alt +
option + +
option + +
ブラウザの戻る、進むのような操作が出来ます。
ctrl+左クリックで参照クラスやメソッドに飛んだ後、戻る際に利用しています。
指定行へジャンプ Ctrl + L + L スタックトレースの情報から該当箇所に飛ぶ際に便利
ウィンドウの分割(水平) Ctrl + Shift + - 調査中 ひとつのソースを上下に分割して参考にしながらコーディング!!
ウィンドウの分割(垂直)
Ctrl + Shift + [
調査中 ひとつのソースを左右に分割して参考にしながら最近の液晶は幅が広いので結構使えます。
クイックフィックス
Ctrl + 1
+ 1
import追加等

画面切り替え編

動作 Windows Mac 利用シーン
パースペクティブ切替 Ctrl + F8  + F8 デバッグとJava EEの切り替えに良く使います。
検索
次へ
戻る
Ctrl + f
Ctrl + k
Ctrl + Shift + k
 + f
 + k
 + Shift + k
ファイル内の文字列検索です。
この3つのショートカットはセットで覚えましょう

2015年9月24日木曜日

mevenによるJavascriptライブラリの自動取り込み【webjars編】

なぜ、webjars?

  1. jquery等のjsを毎回ダウンロードしてwebappに配置するのは少し面倒
  2. ライブラリ類は旨く配置しないと、自分がつくったjsなんかと混在して煩雑になっていく

実施環境

  1. java version "1.8.0_51"
  2. wildfly-9.0.1.Final

チュートリアル

今回はJqueryの2.1.4を利用できるようにしてみようと思います。
読み込む対象を以下のサイトから検索します。

mavenに依存関係を追記するので、mavenを選択してください。

バージョンの選択と、依存関係の記述をpom.xmlへ追加する。


pom.xmlの依存関係を追加




読み込んだjqueryの構造をチェック

webjars配下のディレクトリ構成をチェックしておきましょう。
ここではjquery/2.1.4/dist/にjquery関係のjsファイルが格納されているのが分かります。


サンプルHTML作成


動作検証

感想

若干便利さは感じましたが、正直以下の対応まで出来ればもっと良かったです。
  1. servlet3による追加方法を検証してみたのですが、bootstrap.min.cssを追加する必要があるので、出来ればこの記述もなくしたい。。。
  2. ディレクトリにバージョンが含まれてしまっているので、バージョンを変える場合は依存関係を変えるだけではなく利用しているソースも同様に修正する必要がある。


2015年9月22日火曜日

jsdoc3によるJavascriptドキュメント作成

はじめに

以前、YUIDocに関するJavaScriptのドキュメント作成方法について、このブログで紹介しました。
どうも、調べているとjsdocのほうが一般的?(何をデファクトスタンダードとするかは基準に迷うところです)のようなので、改めてjsdocの生成について行ってみようと思います。

Goals

さて今回の目標設定は以下としました。
  1. Eclipse上でドキュメント生成する。
  2. Eclipse上でコメント記入中にリアルタイムにプレビューしたい。(これは難しそう)
  3. JavaScriptのコーディング中に生成したドキュメント参照できるようにする。

実施環境

  • Eclipse  Mars Release (4.5.0)
  • java version "1.8.0_51"

1.Eclipse上でドキュメント生成

まずこの目標ですが、今回はMavenを利用してpom.xmからJavaScriptのドキュメントを自動生成するようにしてみようと思います。

プロジェクト構成

  HellowWorld
    │
    │   pom.xml
    └─src
          │
          └─main
                │
                └─webapp
                      │
                      └─js
                            │
                            └─jsdoc3sample.js

pom.xmlの定義


pom.xmlの構成のポイント

  • outputDirectory:
    言わずと知れた。ドキュメントを出力する場所です。今回はMavenのビルドパス上に作成するようにしてみました。
  • jsdocInput:
    ドキュメント作成するJavaScriptを指定します。


サンプルJavaScriptファイル

まだ、ドキュメント用のコメント記述が良く分かっていないところもありますが、とりあえず以下のサンプルを作成しました。

ビルド実施

Eclipseでプロジェクトを選択して、以下のコマンドを実行です。

コマンド

> mvn clean jsdoc3:jsdoc3

Eclipse上から実行する場合

EclipseのメインメニューからRun(R)-Configuretionsを選択するとRun Configurationsダイアログが表示されます。


左側のツリーにてMaven Build下に新しいビルドを追加

Name:ご自由に
Base directory:対象のプロジェクトを選択
Goals:jsdoc3:jsdoc3

上記の内容を入力し、Runをクリック


ドキュメントが生成が成功すると上記の内容がコンソールに表示されます。


成功するとProject Explorerのtargetフォルダを再描画(F5キーを押す)するとjsdoc3フォルダが表示されます。

jsdoc3フォルダ配下のindex.htmlをブラウザで開くとドキュメントが作成されていることが分かります。



以上で、ドキュメント作成までの流れは終了です。

2.Eclipse上でコメント記入中にリアルタイムにプレビューしてみる。

Javaだと以下の画面のように、作成中のドキュメントを簡易ではあるが確認できる。


こんな感じで、作成しながら確認できればうれしい!!

とりあえずEclipseのViewをあさってみると以下のようなものがったので使ってみる。
EclipseのメインメニューからWindow(W)-Show View-Other...を選択するとShow Viewダイアログが表示されます。


JavaScript - Documentationを選択してOKをクリックする。
Documentationビューの動作を確認してみる

表示される。

表示されない。

これだけでは表示されないケースがあるみたいです。これはJsDocの記述が悪いのか、そもそもJsDocにツールが対応していないのか...
引き続き調査して、何か見つかったら追って更新します。

3.作成したドキュメントとの紐付け方

探してみましたが、そもそも、EclipseからJavaScriptのHelpを呼び出すという仕組みは見当たりませんでした。
正直これが出来ないと、つくったドキュメントを一番活用するのはコーディング中です。つまり統合開発環境と連携できないとドキュメントを見てもらえるケースが激減するので、作成に気合が入らなくなってしまいます。

総評

以下の3つの目標を立てましたが、残念ながら今回はコンプリートできませんでした。
解決策が見えましたら、随時更新していきます。
  1. Eclipse上でドキュメント生成する。

    ⇒ mavenにて自動的に作成できるので、クリア
  2. Eclipse上でコメント記入中にリアルタイムにプレビューしたい。(これは難しそう)

    ⇒ コメントの記述方法が悪いのかjsdocが対応していないのかコツを掴むのに時間がかかりそう、とりあえず継続利用して何か分かりましたらページを更新しいます。
  3. JavaScriptのコーディング中に生成したドキュメント参照できるようにする。

    ⇒ 全く、見つけれませんでした。すみません。

2015年9月20日日曜日

ウェブ・ページにソースコードをスタイリッシュに表示する方法(GitHub編)

経緯

ブログを書いていてソースコードを掲載することがあるのですが、ページに記載することが多くなりタグで書くのは面倒だったので簡単に貼り付けれるような方法を探してみました。

Goles(いつものように目標設定)

  1. ソースコードをWebページにかっこよくハイライト表示できること。
  2. 出来れば、タグなどを付与せずそのまま貼り付けたい。
  3. Java、HTML,JavaScriptに対応しているいること。

選定

検索してみると条件を満たせそうなものとして、以下のものが見つかった。
  1. SyntaxHighlighter
  2. GitHubのGistを利用して、自分のページにScriptを埋め込む
今回は、GitHubを選定してみました。理由は、GitHubに興味があり、一度使ってみたかっただけです。

GitHubとは?

個人的には以下の理解です。(まじめには勉強していないので感覚的なものです。正しい理解をしたい方は、自分で調べてみてください)
  1. ソースコードがバージョン管理できる。
  2. 世界中の人がレビューしてくれる。
    今回サンプルをアップしましたが、1時間ほどで3人ほどレビューしてくれました。たいしたものをアップしなかったので、修正はありませんでしたが、すぐに見てくれる人がいるのはすごい!!
  3. ついでに、評価もしてくれる。(ソーシャルネットワークの「いいね!」にあたるものが用意されていますが、、、何でもかんでも「いいね!」には賛同できかねますが)
開発をかれこれ、20年ほどやっていますが、こんなに簡単にグローバルに開発が行えてしまう状況はには正直、感動します。いろいろと感じた点はあるのですが、話がそれそうなので、別の機会にします。

作業の流れ

  1. GitHubへユーザ登録
  2. GitHubへログインし、Gistでソースコードを登録する。
  3. 好きなページにスクリプトを埋め込む
上記の4ステップです。実際やってみましたが、私はGoogleのBloggerを利用しており動的ページを利用していると表示できないという罠にはまった以外はあっさりとうまくいきました。

1.GitHubへのユーザ登録

ここは省略します。
必要がある方は、ここから登録できます。

2.GitHubへログインし、Gistでソースコードを登録する。

ログインすると以下の画面が表示されます。


画面上にある、Gistをクリックします。

ソースコードを入力します。
ファイルの拡張子でハイライト表示が変わるみたいなので必ず拡張子を入力すること


作成したら、Create secret gistをクリック

3.好きなページにスクリプトを埋め込む

画面右にある、Embed URLのアイコンをクリックすると
クリップボードに貼り付けるScriptタグがコピーされます。

自分のブログやホームページに貼り付けると完成です。
ちなみにこんな感じです。

Eclipseでソースを見てるみたいです。かっこいいので、皆さんもブログなど自分のコードを公開する場合は利用してみたください。