エンジニアのためのGitの教科書 実践で使える! バージョン管理とチーム開発手法

エンジニアのためのGitの教科書 実践で使える! バージョン管理とチーム開発手法

を読みました。

 

この本は、概念と基本コマンドをそこそこに説明したあと、運用にページを割いて説明しているところが特徴的でした。

バージョン管理は、コマンドは覚えた。さあ、使うぞ!となったときに、じゃあ、みんなでどう使うの?というところが最も重要だと思うので、コマンドだけでなく、運用に比重を置いて言及している点が良かった。

コマンドは数が多いので、必要に応じて、調べ、その中で、よく使うものを覚えていけばいいと思います。

ということで、初学者にお勧めできる内容だと感じました。

 

運用ですが、私がgitを使うときは、git flowを使います。

git flowは、こんな感じ。

qiita.com

 

リリースで特別、何かをすることがあまりないので、releaseブランチは省いて運用しています。あとは、hookで、push時に、最新ソースをテスト環境へデプロイするようにしたら、便利でした。(hookは、svnでも存在する仕組みですが)

自社サービス等で、継続して開発していくようなプロジェクトでは、運用は工夫のしどころだと思うんですが、弊社の業務は一度作ったら終わりということが多く、とりあえず履歴が残ればいっかとなりがち。gitは難しいという理由から、svnを採用したプロジェクトもある。それでも、問題ないのだけれど、gitは、多くの人が使っているものだから、もうシステム開発のスキルとして必要ですね。

 

svnからgitに切り替えて便利だと思う点は、ローカルで簡単にブランチが作れるので、現行バージョンを残しつつ、容易に試行錯誤ができる点。

みんなで覚えて、どう使ったらより快適に開発ができるかということを考え、推進してきたい。

プログラムの生産性

今、進行中のプロジェクトで、システムの想定開発ステップ数を聞かれている。
それに対する実績ステップ数で、製造工程の進捗率を出すのだとか。
作ってみないと分かるわけないのだけど、簡単に分かりませんとも云えないので、
見積もりの開発工数 × プログラムの生産性
で出してみることにした。

プログラムの生産性をいくつにするか。
「ソフトウェア開発白書2014-2015」からプログラム言語ごとの生産性を見てみる。
新規開発、改良の(SLOC/人時)の中央値を抜粋した。
(SLOC/人日)(SLOC/人月)は、それぞれ×8、×160したものとする。


主要開発言語別SLOC生産性の基本統計量(新規開発)

言語 生産性(SLOC/人時) 生産性(SLOC/人日) 生産性(SLOC/人月)
COBOL 5.6 44.8 896
C 5.3 42.4 848
VB 5.8 46.4 928
Java 5.8 46.4 928


主要開発言語別SLOC生産性の基本統計量(改良)

言語 生産性(SLOC/人時) 生産性(SLOC/人日) 生産性(SLOC/人月)
COBOL 3.5 28 560
C 3.5 28 560
VB 4.0 32 640
Java 3.5 28 560

Javaの新規で、1時間に5.8行。
ちょっと、少ない気がするが、慣らすとそんなものなのかな。
ひとまず、これを基準にやってみます。

MacBook Airのバッテリー交換

私の使っているMacBook Airが、最近、再開するたびに、起動画面からになってしまった。

普段は、前回の作業状態から再開してくれていたのだけど、なにかおかしいと思い、調べた。

 

バッテリーアイコンにマウスオーバーすると、「いますぐ交換」の表示。

いつもは充電中とか、充電のパーセンテージが表示されていたが、充電できていなかったか。

 

バッテリーが限界を迎えたら、どうすればいいのか調べてみる。

tamkaism.com

 

店頭で交換する方法と、自分で交換する方法があるようです。

店頭での交換は15,000円程度、自分で交換すると7,000円くらい。

自分で交換する方法でも簡単みたいなので、こっちでやってみました。

 

まず、「このMacについて」から、モデルを確認します。

私のMacBook Airは、

11-inch, Mid 2011

でした。

2011だと、5年使ってるのかな。

充放電回数は496。

公式情報だと1,000回が寿命の目安とあるのだけど。

 

amazonで「A1406」を検索。

バッテリー Apple アップルMacBook Air 11インチ A1406バージョン 対応互換 A1370 2011 A1465 2012

 

一番安いこれを買いました。

レビューが少なく、若干不安でしたが、問題ありませんでした。

何も書かれていませんが、PCの裏蓋を開けるための専用ドライバーも付属しています。

 

ネジを外して、バッテリーを交換して、元に戻す。

簡単でした。

スマートフォン(asus zenfone2 laser)の液晶が割れた

先日、朝、駅でスマートフォンからメッセージを打っていたら、飛び込み乗車で走ってきた女性が私にぶつかってきて、スマートフォンを落とした。

液晶、割れました。

女性は電車。

なんてこったい。

ケース、なにやってる!

まだ、買って半年の端末が。。

 

どうすればいいのか調べました。

液晶の割れたスマートフォンで。

この見づらさはものすごいストレスですね。

 

調査結果は、直る!

光明が見えてきました。

二通りの直し方がありました。

 

1.自分で直す

www.magarisugi.net

aucfan.com

 

amazonで修理キットが販売しています。

 

SKILIWAH® Asus Zenfone2 Laser ZE500KL専用 液晶パネル タッチパネルデジタイザー LCDスクリーン 修理用キット 工具セット付き ブラック

 

これを買って、さらにドライヤーと両面テープが必要になるようです。

4,000円程度のお金と2時間程度の時間がかかり、後者のリンクのように失敗するリスクがある。

 


2.店舗で直す

smartphone-sd.com

 

秋葉原ASUSの店舗があり、そこで修理したという話。

9,720円と自分で直すよりはやはり高いですが、1時間くらいで、対応してくれるようだし、会社から近いので、こっちがいいかなと思いました。

 

その日のうちに、秋葉原へ。

店頭で修理する方法と、工場で修理する方法があると云われました。

店頭は、すぐに液晶の修理はできるけれど、修理後、チェックをして、他に異常があった場合に対応できないので、元に戻され、工場行きになる。

工場は、数日の預かりとなり、液晶以外に異常があった場合も対応ができるが、データを出荷状態に戻してしまう。

動作でおかしなところはなく、アプリの再インストールとか、超面倒くさいので、店頭でお願いしました。

 

翌日、9,720円払って受け取りました。

完璧です。直ってよかった。

電車等で、液晶の割れたスマートフォンを使っている人を結構見かけますが、意外と簡単に直るから、直したほうがいいよ。

iPhoneだとこうはいかないのかもしれませんが。

 

スマートフォンの落下防止として、こういうのも有効なのかも。

メディアカバーマーケット 【スマホ ホールド リング と 液晶保護フィルム(反射防止)セット】ASUS ZenFone 2 Laser ZE601KL[6インチ(1920x1080)]機種 スマホを指1本でホールド リングスタンド

 

今回の一件は、スマートフォンばかりやっているなよという啓示と受け止めました。

もっと本を読もう。

Html5とAngularJSで作るエンタープライズ業務システム

株式会社スタイルズさんの勉強会に参加してきました。

a392a3fc2e14746aa7c4d442eb.doorkeeper.jp

 

AngularJSって、jsの有名フレームワークとして、話題にはよく聞くけれど、事例はあまり聞いたことがなかったので、どんな風に使われるのか興味がありました。

 

■プロジェクト概要

flex3で構築されたタブ、チャート、グリッド等を利用したRIA(Rich Internet Application)をhtml5でリプレース。

 

開発工数100人月超。

画面数150超。

バッチ数60超。

開発期間10ヶ月+5ヶ月。

デカくて、タイトですね。

 

■開発メモ

・JHipstarは神(YeomanのSpring Boot + AngularJSのテンプレート)

jhipster.github.io

 

Yeomanってすごいのですね。

まだ少ししか触ったことなくて、神と崇めるほどの恩恵を感じてみたいです。

 

・AngularJSの開発

実際にフレームワークを理解する期間として、AngularJSを1ヶ月間、勉強したそうですが、それでも充分ではなかったとのことで、AngularJSの難しさ、学習コストの高さが伺えました。

そして、経験の浅い人もアサインされる予定だったため、ココだけ作ればオッケーという雛形を作って、AngularJSがよくわからなくても開発が行える環境を作ったのだそうです。

開発のコモディティ化

こういう努力は大事ですね。

 

・Metronicも神(デザインテンプレート)

非デザイナーで画面を作成していったのだそうですが、デザインを買ったのだそうです。

そういう選択もありですね。

 

Metronic | Dashboard

 

・Kendo UI

こちらもお買い上げ。グラフやグリッド等の部品を持つUIフレームワークなんですが、クライアントからExcelを出力できる機能があるとのことで、ぶったまげました。

 

www.telerik.com

 

様々なライブラリを組み合わせていて、面白いなと思いました。

ライブラリは、そのまま使えると素晴らしいが、ちょっとでも違うことをしたいと思ったら地獄と云われていました。

確かに。。

フレームワークの選定は重要。

 

こちらの会社、弊社から歩いて行けるほど近かったので、非常に親近感がありました。

とてもいい勉強会でした。

phina.jsでゲームを作った

phina.jsというjavascriptライブラリを使って、ゲームを作りました。

phinajs.com

 

アイディアを即座に形にできるゲームライブラリとありますが、様々なクラス、メソッドが用意されています。また、タイトル画面とゲームオーバー画面にテンプレートが用意されていて、ゲーム部分だけを集中して作れたりなど、まさにそのとおりだなと感じました。

ゲームを仕上げている方は、だいたい、この水色のテンプレートを使っていますね。

 

これが作ったゲーム

 

ドキュメントはまだまとまっていないみたいですが、サンプルは非常に豊富です。

それら、サンプルを見ながら、だいたい3、4時間くらいで作りました。

おおまかには、initに部品を配置して、updateに動作を書いていく感じかなと理解しました。

 

サンプルはアドベントカレンダーにたくさんある。

初めての方には、8日目のエントリがおすすめ。

qiita.com

 

私、ゲームは普段、作らないので、他のライブラリとの比較はできないんですが、ゲーム開発で様々なゲーム開発ライブラリを見てきた作者のphiさんが、それらのいいところをとって作っているそうなので、いいものなのでしょう。

 

作者による紹介はこんな感じ

phiary.me

 

自分の考えたことが、簡単な実装でどんどん動くようになっていくのはとても楽しかった。

プログラミングは、近年、子ども向け教室が盛んだったり、必修化が検討されたりと、低年齢化が進んでいるので、phina.jsは、初学者に易しく、楽しいという特徴から、scratchのように親しまれる存在になっていくのではないでしょうか。

また、なにかアイディアを思いついて、phina.jsを使ってみたいと思います。

 

6月6日追記

新しいゲームを作った

 
6月8日追記
また新しいゲームを作った
 
6月15日追記
また新しいゲームを作った
 
7月21日追記
また新しいゲームを作った
 
あとは、こちらをみてください。

コーチングのプロが教える「ほめる」技術

コーチングのプロが教える 「ほめる」技術

 

管理者なので、勉強に読みました。

本書は「アクノレッジメント(承認すること)」で部下をやる気にさせると書かれています。

認めるというのは、相手に対して、ただ「すごい!」とほめるのではなく、相手をよく観察して「あなたの〜がいいね」と、その人が聞きたいと思っていること(努力していることや、気をつけていることなど)を指摘するということ。

正しく評価されるのって、きちんと見てくれているのだなと思えて、嬉しいものですよね。

 

他にも、存在を承認する手段として、

・相手からのアクションに対して、すぐにレスポンスする

・仕事を任せる

・意見を求める

・謝る

など、具体的な事例があり、なるほどと思いました。

 

まずは、観察ですね。