泥水エンジニア日記

泥水の数だけ強くなれる

『たのしいRuby』を読んだ

エンジニアとしてJavaしかできないのってどうなの、という気持ちがあったのと、仕事でRubyを読む機会が出てきそうだったのもあって、勢いで購入しました。

たのしいRuby 第5版

たのしいRuby 第5版

帯に「初心者の気持ちを裏切らない出来になっています」とある通り、プログラミング初心者でもつまずかないよう、丁寧に書かれてる印象で、とにかく分かりやすい。
他の言語の経験者としては、『初めてのRuby』とか『プログラミング言語 Ruby』をあたりを買うべきなんだろうけど、日和ってこっちにしといて良かったです。

初めてのRuby

初めてのRuby

プログラミング言語 Ruby

プログラミング言語 Ruby

あとは、Ruby初心者のJavaおじさんとしては、

  • 標準ライブラリが強力
    • Javaでやるとしんどそうことがさらっと書ける
  • 型システムがない
    • Javaならコンパイルエラーになるようなことも書けてしまう
    • 実行するまで型のエラーを検知できないのは不安

という感想を持ちました。型安全じゃないとすげー不安な気持ちになるんだけど、みんなそんなことないんだろうか。

以下は自分用の読書メモです。

Struts2×SpringFramework×MyBatisでWebアプリ書いた

前の職場のコード資産に頼らずにWebアプリをどこまで書けるのかがどうしようもなく不安になってしまったので、気持ちをなだめるためにTODOリストを実装した。

github.com

大したことは書いてないし、技術的な挑戦もないんだけど、丸2日かければとりあえずこれくらいのことはできるんだな、という結果が得られたので、精神の安定には繋がったと思う。文系卒でも、五年くらい働いていればこれくらいのことは出来るし、レジ打ちしかできなかったあの頃を思えば圧倒的成長。
記憶が風化してしまわない内に、技術メモ的なものを残しておく。

Struts2

言わずとしれたWebアプリケーションフレームワーク
今回の実装では、

  • ZeroConfigurationを使った画面遷移&パラメータ受け渡し
  • Struts標準タグを使った画面の実装
  • SpringFrameworkとの連携(struts2-spring-plugin)

あたりの技術を使っています。 スキルの棚卸的な観点としては、

あたりも押さえておくべきなんだけど、今回は見送り。
ZeroConfigutation周りとか結構忘れていて、最初の画面遷移でかなり時間を使ってしまった……。どのサイトもスペルミスやら誤字やら多いので参考URLはなし。

SpringFramework

こちらも有名なWebアプリケーションフレームワーク
フレームワークとしてカバーしてる範囲が非常に広くて、SpringMVCとか、SpringBootとか、そもそも使ったことないものも多いんだけど、今回は以下を使用。

  • DI(Dependency Injection)
  • SpringSecurityを使ったログイン認証

ちょっと見ない内にメジャーバージョンが変わっていて(2.x系を使ってたんだけど今回は4.x系を使用)、SpringSecurityの記法がガラッと変わってしまったためかなり手こずった。

javatechnology.net

棚卸的にはSpringBatchを使ったバッチアプリケーションの実装をやるべきなんだけど、作るべき部品が多すぎるので断念。

MyBatis

バリバリ使ってたORM。バリバリ使ってたのであんまり困らなかった。

  • Mapperファイルを活用して生SQLをベタ書き
  • SqlSession使ってJavaから呼び出し
  • SpringFrameworkとの連携

あと、こちらもちょっと見ない内にmybatis-springなるプラグインが登場していてびっくりした。少し試してみたんだけど、MyBatisとSpringFrameworkの連携が簡単に書けてしまって、オレオレWrapperが横行していた頃を思うと隔世の感があるなと思う。

mybatis-spring – MyBatis-Spring | イントロダクション argius.hatenablog.jp

動的SQLとかのトピックはスルーしたけど、一通りCRUD書いたので割と満足。

MySQL

DB周りはOracleが本業なんだけど、ちょっとした実装のためにわざわざ用意するのはだるかったので、MySQLに挑戦。Oracleしかやってこなかった身からすると「DBの構築ってこんなに簡単で良いの?!」という気持ち。Mac上でも難なく構築できました。

qiita.com

Bootstrap

気持ちをなだめるための実装とはいえ、ある程度画面が綺麗じゃないと気分が乗らないので、Bootstrapも導入。CSSやデザインが苦手でもカッコいいページが作れて良い。

getbootstrap.com

サンプルも充実しているので、今回の実装ではBootstrap themeとSign-in pageの大部分を参考にさせてもらった。

Eclipse

少し調べてみると、MacEclipsePleiadesを導入するのは超ハイパーメディア難しいようです。重くなるのは嫌だけど、おとなしくPleiades All in Oneを利用することにします。

qiita.com

完成

そうこうしている内に完成したので画面イメージを載せておきます。
ログイン画面
f:id:gushernobindsme:20170408233935p:plain

一覧表示画面
f:id:gushernobindsme:20170408233942p:plain

余力があれば、AWS上に構築して触れるようにしたりしたい。

『これから学ぶmacOSターミナル』を読んだ

エンジニアのくせにmacOS全然わからないのがコンプレックスで、今うちに解消したかったので購入。

これから学ぶmacOSターミナル

これから学ぶmacOSターミナル

ターミナルコマンドの使い方の説明だけに終始せず、その周辺領域の知識(macOSファイルシステムがどうなってるのか、とか)についても解説してくれるため、非常に分かりやすかった。「そうそう!これが分かんなかったの!」と膝を打つ感じ。ターミナルしゅごい……。

以下はコマンドを忘れないためのメモです。

『はじめてのAndroidアプリ開発』を読んだ

先日、エンジニアの友人と話してて、Android開発に興味を持ったので読んでみた。

「Rクラスって何?」みたいなレベルの疑問まで詳細に解説してくれるので、Android初学者にはありがたかったです。同時期に『基本からしっかり身につくAndroidアプリ開発入門』という本も読んだんだけど、こちらはAndroid初心者には難しくて、黙々と言われるがまま写経する感じになってしまった……。今であればもう少しちゃんと読めるのかも。

いずれにせよ、Javaの基礎知識が前提になる本なので、購入される方はその点踏まえて各自やっていくと良いと思います。

以下は自分用の読書メモです。