k-tanakaのエンジニア日記

Changing合同会社を設立しての仕事・生活、エンジニアとしてのブログ

Javaを勉強するに当たって参照した本や講座やサイトなどについて

諸事情により、Javaを勉強する機会を得たので、その際に勉強した内容について一応メモ

書籍

以前読んだことがある書籍

Eclipseで学ぶはじめてのJava 第3版(DVD付)

Eclipseで学ぶはじめてのJava 第3版(DVD付)

明解Java 入門編

明解Java 入門編

今回購入・参照した書籍

即戦力にならないといけない人のためのJava入門(Java 8対応) エンタープライズシステム開発ファーストステップガイド (CodeZine BOOKS)

即戦力にならないといけない人のためのJava入門(Java 8対応) エンタープライズシステム開発ファーストステップガイド (CodeZine BOOKS)

スッキリわかる サーブレット&JSP入門 (スッキリシリーズ)

スッキリわかる サーブレット&JSP入門 (スッキリシリーズ)

Java逆引きレシピ

Java逆引きレシピ

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

Eclipse3ではじめるJavaフレームワーク入門Seasar2/Struts2対応

Eclipse3ではじめるJavaフレームワーク入門Seasar2/Struts2対応

お金が無いので、最後の書籍は安さだけで購入したが、情報が古く何を信じて良いかわからず、基本のサーブレットJSPから勉強し直した。

講座

www.udemy.com

書籍と内容は重複する部分もあるが、書籍を読みながら手を動かしてコードを書き、また、復習のように講座を受けながら手を動かしてコードを書くことで、Javaのコード文化に慣れるという趣旨。JavaFXサーブレットJSPAndroid開発など、ほんとさわりだけだけども触れていて、とっかかりには良いと思う。

いまのところの感想

ずっとPHPをやってきて、Ruby on Railsを勉強したときは、優秀なチュートリアルのおかげ( 無料で公開されている「Ruby on Rails チュートリアル」が自分が求めていたものだった - k-tanakaのエンジニア日記 )か、主観的には全く戸惑いなくRuby超楽しい、Railsすげぇみたいな感じでするっと入って行けたのだけども、Javaはやってもやっても見えてこない。同じALGOL系なので、基本文法はもちろん同じでそれはよいのだけど、どうにも慣れない。何になれないのかもよく分からなかったので、とにかく手を動かしてコードを書いた。 するとコードを書くことじたいは慣れ、ターミナルからコンパイルして、CUIで実行してというところの原始的な所から初めて、ようやくなんとかとっかかりになる土台部分みたいなのは出来た気がする。とはいえ、まだまだなんとも分からない。また、どうにも古くさく感じる。Strutsに触れてそう思う。また、徹頭徹尾オブジェクト思考な感じがしていて、それにも慣れていないのかもしれない。

サーブレットJSPをやってみると、PHPやり始めたころを思い出したり、ERBやPHPの源流を見た気がしました。

まだまだこれから。

無料で公開されている「Ruby on Rails チュートリアル」が自分が求めていたものだった

f:id:changing--k-tanaka:20160614120437p:plain

Rubyが面白くてRailsと合わせて勉強しています。Rubyについては基本文法を抑えてあとは書き始めてからなんとかして、後でまとめて本を読んで知識を整理で良いかなと思っているのですが、Railsについては規約や構造、実際のデプロイまでの流れなどを抑えるのにやや四苦八苦という感じです。 そんなわけでいくつか書籍を探して、Ruby on Rails 4 アプリケーションプログラミング5が良さげというところまでは分かったのですが、お金が無いのでどうにかしたいなと思っていました。(図書館は貸し出し中かつ3人予約済み) 公式ドキュメントでなんとか進めるかと思っていたのですが、Ruby on Rails チュートリアル 実例を使ってRailsを学ぼう Michael Hartl (マイケル・ハートル)というページを見つけました。

これを求めていたんだ

本ドキュメントは書籍として販売されている「https://www.amazon.com/Ruby-Rails-Tutorial-Addison-Wesley-Professional/dp/0134077709/ref=sr_1_1?ie=UTF8&qid=1465869646&sr=8-1&keywords=ruby+on+rails」の日本語訳となります。原著もWebでは無料公開し、書籍は有料という形式を取っているようです。(公式サイト:Learn Web Development with Rails: Michael Hartl's Ruby on Rails Tutorial | Softcover.io

書籍クオリティの解説書が無料で公開されているだけでもありがたいのですが、内容が今の自分が求めているものが全て含まれており、さらに五体投地したくなるほどありがたい思いです。

まだ全部読み終わって無いのですが、今のところ気付いたありがたい理由を以下にいくつか挙げてみたいと思います。

Ruby on Railsの実践的解説書である

Rubyは置いておいて、Railsは、「設定より規約(convention over configuration)」(設定より規約 - Wikipedia)という設計を採用しています。まぁ、要するに「決められたルールに沿って書けば、手動で書く量をめっちゃ減らせる」という構造になっています。いままでPHPフレームワークFuelPHPを利用してきて、こちらは逆に「規約より設定を重視」していたのと対照的です。

記述量が少ないため、記述例から想像出来る構造が分からず、FuelPHPと違って、最初にドキュメント読まなくても使っていく内になんとなくわかるというのはなかなか難しそうだなと思いました。そのため公式ドキュメントを読むわけですが、今度は該当する部分を読んでも答えが見当たらない感じになり、う〜む…となります。Railsはそういう学習の仕方には向いてないのだと思います。

ではRailsの学習に向いた書籍とはなにか、という問いに対する答えが本書になるのではないかと思います。

私が前にいた会社 (CD Baby) は、かなり早い段階でRuby on Railsに乗り換えたのですが、またPHPに戻ってしまいました..(引用者略)..(こ)の本を使ってもう一度試してみた結果、今度は無事に Rails に乗り換えることができました。それがこの Ruby on Rails チュートリアルという本です。(前書き)

Railsの解説のみに留まらないWeb開発指南書である

本書は、「Ruby on Railsの解説書」ではなくRuby on Railsを利用してデプロイするまでのWeb開発指南書となっています。

チュートリアルは、カスタムWebアプリケーションの開発方法を教えるために書かれました。そのためのツールとして、かの有名なRuby on RailsというWebフレームワークを採用しています。 (第1章 ゼロからデプロイまでより)

最近では、継続的インテグレーションとデリバリーを前提にした高品質に極めて短期間で多くの機能追加や修正を可能にする開発体制が当たり前になってきています。そのため、エンジニアとして一線に立とうという場合、rubyrailsなどの言語やフレームワークの使い方を覚えるだけでなく、その周辺知識・スキルを身につける必要があります。(というより、Railsはそれら周辺知識・スキルを活用できるようになっているフレームワークですし)

git、gitでブランチ切ってcheckoutで戻す、herokuへのデプロイ、テスト、テストの自動化、マイグレーションなど基本的な点も抑えられた上で解説が実践的に進みます。もちろんそんなに深入りはしていないのですが、こういう「言外の当たり前」をきちんと語ることが実践的であることの証左かなと思う次第です。

Railsで始めて開発を始めるにあたって、なんとか最初からTDDで開発をしようと思っていたので、これを求めていた感があります。

このRuby on RailsチュートリアルがWeb開発のすべて (Rubyの基礎、HTMLとCSS、データベース、バージョン管理、開発技法など) を網羅した、Web開発者やIT起業家を目指す方向けのよい入門書となるでしょう (第1章 ゼロからデプロイまで)

実際の利用実績も多数

上記スライドで語られていますが、多数利用実績・推薦実績があります。読んでいればクオリティが優れていることは分かるのですが、それでもそういう実績があると安心です。

読み物として面白い

賛否ありそうですが、読み物としても随所にクスッと笑える記述があったりします。

(STEP その2) 失礼、その2はありません。以上でおしまいです。

アプリケーションの開発が進むと、コードのどこからともなく「腐敗臭」が漂い始めます

なぜこのコードがここにあるのか最早誰もその理由を思い出せなくなる

など楽しんで読み進められています。原著だけでなく邦訳も素晴らしいためかと思います。訳者にも五体投地して感謝したいかと思います。

リンク

電子書籍

Ruby on Rails チュートリアル:  実例を使ってRailsを学ぼう
Michael Hartl, 安川 要平(翻訳), 八田 昌三(翻訳), 他
達人出版会
発行日: 2013-11-21
対応フォーマット: PDF, EPUB, ZIP

書籍ならこれが良さそう

Ruby on Rails 4 アプリケーションプログラミング

Ruby on Rails 4 アプリケーションプログラミング

パーフェクト Ruby on Rails

パーフェクト Ruby on Rails

最近の雑記

最近の雑記です。とりとめないと思います。テーマも絞れていません。

最近の勉強したこと

最近は、MacのAnsibleによるプロビジョニングやVimRubyRailsGitHubについて勉強していたりしました。

Ansibleについて

Ansibleについてはホントに簡単にできるようになってて感動します。YAML便利ーと思っていたらRailsでも出てきて最近のトレンドを感じます。もはや最近のトレンドという感じでも無く枯れてきているような気がしますが。またインフラの勉強の際に本格的に勉強しようかなと思っています。

Rubyについて

まだ本格的に何かを作ろうとして書いていないので、手探り状態ですが記述文字数が少なく、オブジェクト指向型ということもあって、わかりやすくやりやすいです。オブジェクト指向とそれに基づく開発・設計について意識的に勉強をしている最中なのですが、それと相まっておもしろいです。JavaScriptの勉強もしていたので、ここらへんも最近共通のトレンドを感じます。

勉強して割とすぐに、おなじ名称のto_i関数でも、文字列オブジェクトTimeオブジェクトで出てくる返り値が違う点などに「ほほぅ」という感じでした。(後者だとunix timestamp値が出てくる。phpだとstrtotimeした値)

Railsについて

WebアプリケーションフレームワークとしてのRailsは、いつも使っていたFuelPHPと比べて「規約!」という感じで覚えることも多く、初期学習コストはFuelPHPに比べて高いような気がします。とはいえ、フォルダ構成やCUIで出来ることを見るとFuelよりも機能豊富で、継続的インテグレーションとデリバリーにも配慮され、テストについてもより分かりやすく、やりやすくなっていると感じています。さすがの完成度を感じました。

作りたいアプリケーションがいくつかあり、似たようなのがあるのを発見しましたが、頭の中にあるものと一致するものは無く、かなり難しそうながらもリリースできれば価値がありそうだと思えてきています。Ruby on Railsで勉強がてら開発に着手したいと思っています。

とはいえ、ある程度慣れたらサーバーサイドはAPI提供に徹し、フロントエンドはReactでSPAにしようと思っています。JSの勉強もしたいので。

Vimについて

まだまだ慣れていないのですが、他のエディタを使っている時にVimコマンドが使えないのが不便に思えてきました。こうなるとVimに慣れるしかないかなと思い始めています。

楽しくなってきました。

GitHubについて

何がしか誰かの役に立つコードを公開したいなと思っています。しかしGitは便利ですね。前職で作っていたアプリにつき引き継ぎが出来る機会があって、その際にGitレポジトリをpullしてもらったのですが、開発に使っていたVagrantfileもそのまま渡せるので、同じ環境で開発を継続出来ます。Infrastrucure as a code最高だなと思いました。

我が子は死んでいなかった

上述のように前職で作っていたツールを引き継ぐ事が出来ました。90年代や2000年代にIT業界やSIer業界でもよく笑い話になったようなエクセルガー、コンサルガーなことがあり、破棄の経営判断でしたので個人的には捨てざるをえなかった我が子ですが、遺してきたものを引き継ぐことが出来たということで少し安堵しました。 当該我が子の兄弟的ツールは、他社でバリバリ利用されているので気持ち的には整理が付いていたのですが、より良かったかなと思います。

MPが足りないという話

なんというか、連休前から細々した事柄が、多方面から連続して自分のMPを減らしてくる。ふしぎなおどりを食らってるわけじゃないのだけど、もうヘロヘロです。

(MPうんぬんの話は以下) lifehacking.jp

igcn.hateblo.jp

無理しても何も出来なくなって、結局時間がかかるので、無理しないようにしているのですが、それだとやるべき事が終わらなくて、さらにどんどん多方面からMP減らす連絡やらなんやらが入ってくるので、もういっそ全滅して王様の前からやり直したいです。

どうでもいいのですけど、王様とか神父様が「おお、○○よ、死んでしまうとは情けない」っていうの、毎度イラっとしてました。

という愚痴エントリーでした。

自分がやるべきと思えることを集中してやるべきだという話

いろいろな悩みを同時に抱えていると、やるべき事を見失いがちです。ここ2週間ばかりそのような感じでした。

2週間前は、コンテンツ作成やWebサイトのデザイン・レイアウト決めを行っていたのですが、まぁ自分にはデザインの才能というか今の所の実力が無いなと実感しています。UI/UXとして、また全ての端末で見やすいという意味で論理的なデザインは出来ていると思っているのですが、見栄えの部分、観る人の心に訴える部分が、何度試行錯誤しても納得が行かなかったりします。ひとまずそこは決め打ちして、コンテンツを入れていくと、あぁこのレイアウトでこのデザインで間違ってないなと思えるのですが、もやもやした気持ちがそのまま残っていて、もっと良く出来るはず、もっともっと…と思ってしまうのです。とはいえ、納期があり、自分にとってはおそらくこれが限界なのかなとも思えるところが悔しいところです。

コンテンツの作成をしていると、ふとコードを書きたくなります。徹夜してコンテンツを作成していて、そのような欲求に襲われて、paizaの問題とかを解き始めると、まぁ頭が回らず簡単なミスをしてダメなコードを提出することになります。やはり徹夜はよろしくないと毎度実感します。

自分は何がしたいのか。何をしていきたいのかをずっと考えています。広告の作成がしたいのかといわれればそんなことは無く、やはりコードを書いていきたいのかなとも思います。広告だろうがコードだろうがそれが社会のために誰かのためになるのであれば、それに携わりたいのかなとも思います。どうも自分の気持ちがはっきりせず、やりたいことを出来ている自覚もなく、ずっともやもやしていて、他のことがおろそかになったりもし、やる気を失うこともあります。疲労もあると思いますが、そういう風にもやもやしていると休むことも出来ず、期限が迫った仕事を眠ること無く取り組んで、見直して修正して、というサイクルに入ります。

今日(というかもう昨日ですが)は、そんな状態もあり、休みにしました。なんとはなしに、ぼーっと昔の仕事の時にGoogle Keepに残したメモ類を見返して整理していました。

その中に、

「不安定だったり甘えたがるのは疲れているからでもストレスが溜まっているからでもない。自分がやるべきと思うことをやっていないからだ。」

というメモがあり、すこーんと脳に響く感じがありました。このメモは、前向きなものでもなんでもなく、組織的にやるべき事が出来なかった自分の置かれた状況に対する愚痴というか戒めだったのですが、今の私にはまったく違う意味で自分への戒めというか、自分の本質を突いてやる気を奮い立たせる言葉に思えました。

やりたいやりたくない、やる気がするしないではなくて、その時その時本当にやるべきことをまず詰めること。それがやる気を出し、仕事に集中するために必要だと言うことです。これは、GTDの基本でもあり、忘れていました。ただ単にタスクの洗い出しをして、それをこなしていましたが、それではダメなのです。心の中の靄を晴らす必要があります。そうでなくては、目の前のことに集中できないのです。

明日は所定の仕事がありますが、それらをこなしつつ心の中の靄を晴らすことに注力したいと思っています。

全面改訂版 はじめてのGTD ストレスフリーの整理術

全面改訂版 はじめてのGTD ストレスフリーの整理術

洗濯機がもう届いて、良い感じです。

f:id:changing--k-tanaka:20160315222133j:plain

そんなわけで(以前のエントリ:日立の縦型、キミに決めたっ! - k-tanakaの起業日記)、洗濯機を注文したわけなのですが、土曜日の夜に注文して、月曜日の夕方に届くという、普通の商品バリの配送を上新電機(Joshin)がしてくれました。

あまりに早かったので、電話で旧製品の回収と設置もしてくれるのかの確認までしてしまいました。問題無く、旧式の回収と設置も行って頂きました。また、手際も良く、あっという間に終わりました。「設置だけで良いんですよね?」とか言われたり(設置+取り付けって書いてありましたよー。)、洗濯機パンに落ちて放置してたモノを捨てられたりしちゃいましたが、全体としてかなり満足です。

前の洗濯機と比べて

以前まで使用していた洗濯機は、東芝のAW-70GAという2005年製のモデルです。乾燥機能は無く、今で言う簡易乾燥機能が特徴の機種でした。東芝の洗濯機は静かという話を聞いたような気がしています。

今回購入した日立の2015年製BW-7WV-Aは、特に特徴というものは無いスタンダードなモデルです。

しかし、以前の機種の特徴である「静かさ」と「簡易乾燥機能」と比べても、今回購入したBW-7WV-Aは、明らかに静かで、そして簡易乾燥機能もただの脱水で同等くらいで、簡易乾燥機能の「エアジェット」機能でもっと良く脱水できるという感じです。

ドラム式とさんざん迷いましたが、洗濯と脱水というスタンダードな機能が、性能の優秀さ・節水・省エネ・静音が揃って極まっているこの機種で良かったかなと思っています。

すこし幅が広めなのと、ふたが折れないのが難点ですが、とりあえず設置上の問題は無かったので、そこは良しとします。

一度手洗いで洗濯を続けていたので、洗濯機の偉大さを噛みしめて居ます。届いたその日に3回も洗濯しちゃいました。スタンダードな機種としては、カカクコムでプロダクトアワード大賞を受賞するのを頷けるくらい極まっていると感じます。スタンダードだから故障もし辛いでしょうし。

そんなわけで、普通の縦型洗濯機をお探しの方におすすめです。

日立の縦型、キミに決めたっ!

そんなわけで(以前のエントリ)、洗濯機に迷っていたのですが、サイズの問題から、プチドラムかコンパクトドラムしか選べないことが分かり、かつそれでもぎりぎりだったので、諦めて縦型洗濯機にすることにしました。

また、縦型の洗濯乾燥機は不満が散見され、また故障も多いということで、めんどくさそうというのもあって、乾燥機能も諦め、通常の簡易乾燥機能付きの縦型洗濯機にしました。ちゃんと干します。せっかくだから、干すというのを省力化できたら、嬉しかったのですが、縁が無かったということで。

で、縦型をどれにするかですが、kakaku.comの満足度ランキングで、東芝 8.0kg 全自動洗濯機 サテンゴールドTOSHIBA マジックドラム AW-8D3M-Nが1位になっており、今までのが東芝でちゃんと耐用年数はもったということもあって、東芝にしようかなとも思ったのですが、シャープに続いて東芝もメーカー自体がやばそうというのもあり、日立のビートウォッシュが、kakaku.comのプロダクトアワード大賞受賞していることもあってBW-7WVにしました。

しかし、kakaku.comの上位のお店は、カード支払いに対応していないのが多いというのは分かっていたものの、大型家電の配送やリサイクルの対応状況も悪いということが分かりました。大型家電をネットで購入するのはそういえば初めてかもしれません。大型家電は、配送と設置、リサイクルを考えると大手が良いですね。私は、Joshin楽天にしました(ポイント8倍だったので)。

あー、決まるまで長かった。。。ドラムは、これが壊れたとき引っ越していれば検討します。。。