2016年4月21日

システム開発は、どこを目指しながらすすめるか

 一般論としては多分正しくないですが、こうシステム開発というか、プロジェクトを進めないと次回も同じ目にあったり、何も得ることができないと思っています。

まず!

 システム開発で「システムを完成させて稼働させること」を目標にすると、動けばOKのシステムになってしまって、

  • メンテナンス性が悪いとか
  • 遅いとか
  • 動いてるソースと直しているソースが違うとか
  • 残業が殺人的になるとか
  • 自分さえ良ければほかはどうでもよいという人が出てきたりとか
  • 新しい技術を習得して次の時に楽をするとかができない

となってしまいます。

プロジェクトを完成させるとなんで最低限やらないととダメなことなのでそんなところを目標にしても
なんの意味もないです。

人が逃げようが、死のうが、精神的にやられようがそんなことは関係なく、プロジェクトは完成させなければならないのです。

なので、なので、次回楽になるような仕組みを実験しながらプロジェクトを進めると案外楽しかったりします。

だって、その部分は初めてなので上手く行かなくて当たり前なんですよ。でも、上手く行けば次回からいろいろと楽になったりするんですから。
上手く行かなくても、何がまずかったのかを検証すれば次回にはきっと上手く行くんですよ。そして、楽になる。

スキルアップになるとも言います。

だからいつも言うんです。

今やっていることは、次のプロジェクトの為の練習なんだよ。
※練習は本番の為にやるので手抜きは無いという前提ですよ。


さぁ、プロジェクトリーダーやメンバーは、次のプロジェクトの為に頑張って練習しましょう!


お客さんに怒られそう…。


Oracleでエラーが出たから教えてほしいといわれ

 もうちょっと(いや、もっと!)、調べることを覚えたらどう?

 VB.NETのアプリケーションでストアドプロシージャを呼び出したらあるエラーが出ているようです。
なんかすごく奥が深い話でヒントがほしいのかと思ったら、返却されているエラーコードは何を意味するものかすら調べないで答えだけほしかったようです。

 「まずは、エラーコードが何を意味するのから調べてください」と言ったら、Google検索でOracleのエラーコード検索しました。
 まぁ、エラーコードの意味を知るためには、これが一番手っ取り早い探し方だと思うので良いと思います。

 で、検索結果をさーっとみて、適当なリンクをクリックして中をチラ見してました。
「なんかよくわからない」と発しましたよ。

「はぁ…、まずは、エラーコードが何を意味するかを調べてから、解決方法を探ればいいんじゃないですか?」と答えたあげましたよ。

何なんだろ?自分が何を探しているのかわからない状態で答えだけを求めようとする姿勢にちょっと腹がたちました(自分の中で)。

 エラーコード見たら、「更新できないビューを更新しようとしている」というものででしたので、ストアドプロシージャを見てみたらどうですか?とこれで終わりです。
 ストアドプロシージャを見てみたら、サマっているビューを更新していたそうです(Oracleの環境を作るのをミスっていただけ)


 もう、超ベテランなんだから答えだけ聞きたがるんじゃなくてもうちょっと、何が問題かを考える力を付けてほしいものですよっ。
 超若手だったらどういう手順で調べていくのかはちゃんと教えますけどね。


まずは、エラーコードの意味を把握してから調べましょうね。

2016年3月23日

GAE/GOで開発する準備のメモ

 以前から知ってはいたのですが、なかなか機会がなく触ることができなかったPaasのGAE/GOを真面目に練習をしようと思いやっと、納得のいく構成ができたのでメモっておきます。
 ほとんどの情報は、先人の方々がいろいろ調べてWeb上に公開してくれていたのでそれを自分なりにまとめておきます。


アプリケーションディレクトリ構成
¥appws
  ¥app
  ¥golib

appwsディレクトリは、当該アプリケーションのルートになります。
appディレクトリは、実際のアプリケーションのソースを配置します。中のディレクトリの構成は、GO元ののルールに従います。
golibディレクトリには、アプリケーション毎にバージョンを固定したいライブラリをインストールします。
先にGOPATHの設定のスクリプトを実行することで、アプリケーションワークスペースを基準にGOPATHを設定します。


GOPATHの設定
[Linux]
#!/bin/bash
export GOPATH=`pwd`/golib

[Windows]
@echo off
@title アプリケーション名
SET GOPATH=%CD%¥golib
cmd /k

GAE/GOのWebフレームワーク
いろいろと出ていますが、これが今のトレンドというのが無いようです。
探っていたところ以下のものが良いかもしれないということで以下ものを使って練習しよう思います。
本来は、GO言語生のやつで基礎を押えてからが良いのですがちょっと一足飛びに。

https://github.com/astaxie/beegae
https://github.com/yosukesuzuki/beegae

以下のことがわかりやすくできることが大切です。
セッション管理
DBアクセス
認証
テンプレート
:
:


この記事はもうちょっと充実させて予定です。

2016年3月15日

レビュー記録の方眼紙エクセル禁止してっ!

 ほんと、レビュー記録を方眼紙EXCELでやりたくない。

  • プレビューするとセルからはみ出てる
  • 記録した内容が長いとセルを広げてレイアウトが崩れる
    いちいちデザインを気にしながら書きたくない。
  • きっと、ファイル名に日付とかを付けて管理してどれが正しいかわからなくなる。
    離れてるとこでやると前のが消えたりする
  • どこを変えたかわからない
    で、いろんな色とか吹き出しを付けてわけが分からなくなる。
  • 今時でない


いろんなツール試しに使ってみようよ(怒)

2016年3月5日

仕事用の道具を晒してみる(2016年3月)

開発ツールを晒してみます。
現時点では、Webを使ったシステムが主になっています。
オープンソースのツールだったり、無料のものだったりが主です。
いつでもMSの世界にもどっても良いようにMSDNサブスクリプションも契約し続けてるんですけどね。
いざっ。

クライアントOS

  • Windows10 Enterprise
  • Linux Mint(たまに練習の為に。Windowsだと開発環境を作るのが面倒な時があるので)

テキストエディタ

  • Atom(プログラムソースはここで書くことにしています。ほとんどLL言語なんで)
  • Notepad++

開発言語

  • PHP(CakePHP)
  • JavaScript
  • Less(CSS)

データベース関連

  • MySQL(特に希望がなければこれ一本)
  • A5:SQL Mk-2(SQL発行したり、ER図をかいたりしてます。)

サーバーOS

  • CentOS

仮想マシン

  • XenServer(ずっと動かしているものはここで動作しています。MySQLとか)
  • Vagrant(開発中のアプリケーションはここ上でCentOSを起動させて動作確認。これ使ってないと効率は激下がり)

クラウドサービス(開発)

  • Amazone Web Service
  • Google Cloud Platform(まだ練習状態)
  • Google Apps for Work(メール(Gmail)どかストレージ(GoogleDrive)とか便利。これに寄せてます)
  • Evernote(無料版。いろんな手順書とかをここに記録しています)
  • bitbucket(ソース管理にGitの無料リポジトリを使ってます。さよならSubversion)
  • Cacoo(画面イメージを書いたりお絵かきをするときに便利)
  • prott(スマートフォンやタブレットの画面イメージや遷移をデザインするのに使う予定です)

クラウドサービス(事務系)

  • freee(会計はこれでっ。今年は、Freeeで確定申告できました。口座を自動的に同期してくれるので物ぐさ便利)
  • misoca(お客さんへの請求書はこれでやってます。楽ちん。freeeとも連携)

コミュニケーション
  • Skype(携帯以外に電話をかけるときには、安い安い電話を使ってます。)
  • Google Hungout(お客さんと打ち合わせをするときはこれを使ってます。ドキュメントの共有がしたくてこれです。最近Skypeでもできるようです。)




つらつらと書いてみましたが、大して使って無いですね。
開発言語は他にも使えるんですが今やっているプロジェクトがたまたまPHPってだけです。
最近は、Go言語や、Google App Engine(GAE)にも興味が出てきています。
GAEだったら、アプリケーション・サーバーを安上がりにできそうです。


これからは、Macを使う比率も上がりそうなのでそっちの練習もしようと思っています。Mac miniを持っているんですがあまり使ってないんです(iOSのアプリを開発がしたくて買ったんですがあまり電源入ってないです)

TrelloというWebサービスをちょっと触ってみた

 タスク管理をするのに良いのが無いかずーっと気にかけていたのですが、よさ気なのに出会いました。
 現在のスケジュール管理などは、Google CalendarやEvernoteでやっていたのですがなんかいまいちしっくりきませんでした。

 で、出会ったのが「Trello」(テレロ)です。
タスク管理をTodo→Doing→Doneな感じも簡単に作ることもできます。
昔、付箋でやっていたことをブラウザでやることができるのは良いですよね。
大きなタッチパネルのディスプレイだったら本当の付箋があるように画面を操作してタスクを動かすことができそうです。
本物の付箋でないよいところは剥げ落ち無いことでしょうか(笑)

更には、カレンダー形式での表示もすることもできます。


Google Calendarのタスク機能は貧弱すぎてあまり使えていなかったのですが、Trelloは、タスク内で他人とコミュニケーション(Activety)が取れそうです。
Activityを使ってチャット的にディスカッションを残すこともできそうです。

ファイル添付や、絵文字も使えます。

スマホアプリもあるのでPCなくてもタスク管理がとっても簡単にでしますね。


あとは、これを一緒に使って仕事をしてくれる人がいればいろいろと仕事も捗りそうです。
一人で仕事してるとこういった複数人で使うと力を発揮してくれるツールの醍醐味が味わえないんですよね。残念ですが。


これも良さそうです。
サイボウズLive(https://cybozulive.com/)
これもタスク管理ができて、カレンダー表示もできます。
ただ、カンバンのような使い方はできないようです。

さっき気づいたのですが要望を挙げる為の機能があるようです。
欲しい機能を挙げておけばいつか対応してくれるかもしれませんね。


EXCELで管理とかやめて早くこういったのをガンガン使って仕事したいです。

2016年2月29日

やっぱりGoogle App Engineを練習しよう

 Googleへ2回目のGoogle Cloud Platformのセミナーに行ってきました。

前々から、Google App Engineには興味があって、JavaやPHPで試してみて動いた、動いたで終わっていたのですが、今度は、Go言語に興味が出てきました。

 Go言語はGoogleが作ったC言語をベース(言語仕様)に作られた言語です。
ソースのままだったり、コンパイルして動かします。
実際にやってみたらサクッってできたのでちょっといろいろ調べたり、システム作ったりしようかと思っています。

 で、今回はGoogle App Engine上で動かすのに挑戦しました。
サクッてできなかったら嫌だなーって思いながらやってみたんですが簡単にアプリケーションが動きました。
まぁ、入門の記事(http://www.apps-gcp.com/gae-go-gettingstart-01/)を見ながらだったのですぐにできました。

 ローカル環境での動作、AppEngineへデプロイしての動作のいづれも簡単だったのでちょっとまじめにやってみます。
 一覧画面→詳細画面のマスタメンテナンスくらいができれば良いかなと思ってます。


その為には、他にもいろいろと覚えないとならないことがあります。
特に、データストアあたりとトランザクション処理はどうやるのかとか業務で使おうとしたらいろいろありそう。

 まずは、決意表明のみ。


あと、WordPressをAppEngine上で動かす試みをして成功している記事を見たことがあるのでそれにも挑戦したいと思っています。
現在は、レンタルサーバーを借りてそこで動かしているので…。
AppEngineにのせることができれば無料で対応することができるかも(いや待てよ、MySQLの部分でお金かかりそう…)