アウトプットの癖をつけよう

ソフトウェア開発について、学んだことや試したことをアウトプットします。

Angularを学ぶ(1)

Vue.jsが比較的ハードルが低そうだと思って、アプリ開発進めるつもりだったのですが、チーム内の検討結果で、「Angularじゃないかな!Googleだし!」みたいな雰囲気が出てきたので、Angularをまず学ぶことにしました。

正直めんどくさいな……と思ったものの、比較的ハードルが高そうなものを触っておけば、あとで他のものになっても、置き換えればいけるかな、と楽観的に考えておくことにします。

一から学ぶのがしんどそうだったので、【最新v5対応】はじめてのAngular入門 実践シングルページアプリケーション(SPA)構築 | Udemyを受講してみます。

やったことを箇条書きで書いておきます。

Hello Worldまで

  • nodebrewのインストール
  • VSCodeの日本語化
  • AngularのHello World
  • VSCodeのターミナル上からnpm install→npm start

次回はTypeScriptを触ってみます。

掲示板アプリケーションをつくる:Vue.js+Bootstrap4+Spring Boot(1)

目的

フロントエンドの開発経験はほとんどないので、フロントエンドの勉強がてら、掲示板アプリケーションを作ってみようと思います。

実装する機能

f:id:syoya0223:20180925232127p:plain

  • ユースケースdraw.ioで書いてみました。
  • まずは簡単に、ログイン+Create/Read/Deleteくらいで。

アプリケーション構成

f:id:syoya0223:20180925233845p:plain

開発環境(2018/9/25時点)

開発の流れ

  1. Spring Bootのプロジェクトを作成する
  2. Thymeleafで画面つくる(Bootstrap適用)
  3. Vue.jsでjs処理をつくる
  4. Spring + MyBatis + etcでバックエンド処理をつくる
  5. JUnit etcで単体テストコードを書く
  6. Selenium etcでUIテストコードを書く

  7. 2-5は順序不同かも。

  8. 6はおまけ。

定時退社できる日に、1日1時間くらい時間を取って少しずつ進めていこうと思います。休日はもう少しまとまった時間が取れるといいな。

UIテストの自動化:Seleniumを学ぶ

今回のプロジェクトでは、UIテスト自動化がほぼ確実に必要になるので、Javaで開発するときにデファクトでよく挙げられるSeleniumを触ってみようと思います。 まずは書籍「Selenium実践入門」に目を通しつつ、Macへの環境構築からかな。

1.3 さまざまな種類の自動テストツール

静的解析ツール

  • Javaの場合、FindBugsCheckstyle
  • この辺の結果は常に見ておくべきなんだけど、意外と忘れがちだったりする……ので、CIツールでしきい値監視して警告出すようにすべき

-----(TODO 以下、追記予定)-----

スキルセット・職務経歴

自分のスキルセットと職務経歴を明確化すると、色々見えてくるものがありそう。

スキルセット

// TODO 経験年数とか、思い出しつつ追記しておく

プログラミング言語

フレームワーク

DB

クラウド

  • Heroku

チーム開発ツール

テスト・品質管理ツール

Web Server / Application Server

ESB/ETL

職務経歴

// TODO

学習したいこと・習得したいスキル

上のほうは、直近必要になるスキルのような気がする。

アジャイル

  • アジャイル開発っぽいプロジェクトの経験だけはいっぱいしてるけど、最近はひとりチームとかだったりして、チーム開発感ない
  • 久々のアジャイルプロジェクトでのチーム開発なので、頑張る

Java

  • Java8までは学んだけど、Java9、Java10はプロジェクトで使っていないので使いながら学ぶ

Slack / Mattermost

  • 今度使うことになりそうな気がするので、CI等との連携を色々学ぶ

GitLab / GitLab CI

  • 同上。CIツールをプロジェクトで使うことはあったんだけど、共通技術チームが別にいたので、結果を軽く見るくらいしかしてない。環境周りも理解しておきたい

BIツール

  • Qlik Sense使う

JUnit / Mockito

  • JUnitは使ってるけど、@Ruleとか色々便利そうだし触ってみる
  • 前回のプロジェクトでは、実質結合テストを自動化してた感あるので、モック等使ってTDDのメリット享受できるように

Selenium

アジャイルにおける品質管理とかメトリクスとか

  • ひとりチームだと、このあたり結構おろそかになってる気がする
  • ちょうどBIツールも使うことだし、可視化方法等も考えていく

LINE Bot(Messaging API)

  • 楽しそう

投稿ネタ

色々な分野のお仕事をやってきた反面、これが私の強みです!と言えるものがあまりないのが弱点かな。 改めて棚卸してみて、伸ばすところを考えたい。

興味のある技術分野

時間が経って忘れているもの・少しだけ経験したり触ったりしたもの

技術ブログ、はじめます

今月から新しいプロジェクトに携わることになり、心機一転頑張ろうと思ったので、技術ブログを書いてみることにします。

ブログを書く目的

  • アウトプットをするクセを身につけるため
  • 自分がやっていることや学んだことを整理するため
  • これをきっかけに、1日1つは小さくても良いので、新しいことを学ぶようにする

ブログに書く内容

  • その日に学んだ技術
  • モヤモヤしてることを書きなぐる
  • これは、[雑記]タグで分類できるようにしておく感じで
  • 書籍やセミナーの感想とか

心がけること

  • 無理せずまずは小さくても良いので、継続すること