エンターテイメント!!

遊戯王好きのJavaエンジニアのブログ。バーニングソウルを会得する特訓中。

Java10 JEP286 試し実装

Java10

JDK 10

JEP286

JEP 286: Local-Variable Type Inference

  • 要約の翻訳
    ローカル変数を型推論を使って初期化するための拡張実装案です。

試し実装

実装する前に試した結論から言うと、型を書かなくても良くなっただけで、失くなったわけではない。

環境

確認したバージョン。

$ java -version
java version "10-ea" 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10-ea+37)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10-ea+37, mixed mode)

とりあえず使う

var型が追加されたので、使ってみる。

import java.util.*;

class TestJEP286 {
  public static void main(String[] args) {
    var list = new ArrayList<String>();
    list.add("test");
    System.out.println(list.get(0).getClass());
    System.out.print(list);
  }
}

実行結果は下記になるはず。

$ java TestJEP286
class java.lang.String
[test]

listは、特に型を指定してないけど、追加してもエラーは発生しない。
そして、getClassした値は、ちゃんと java.lang.String になっているはず。

意地悪してみる

新しいことをしているやつは、とりあえず痛めつけたい考えがある。
もちろん、対人関係でそんなことはしませんけど。
なんというか、新しいものをいじり倒したい願望が結構強い。

別な型を入れる

さっきの実装を下記に変える。

    var list = new ArrayList<String>();
    list.add(1);
    System.out.println(list.get(0).getClass());
    System.out.print(list);

型指定してないから、数値をぶっ込んでみる。
すると、下記の結果が返る。

$ javac TestJEP286.java
TestJEP286.java:6: エラー: 不適合な型: intをStringに変換できません:
    list.add(1);
             ^
注意:一部のメッセージは簡略化されています。-Xdiags:verboseで再コンパイルして
完全な出力を取得してください
エラー1個

想定通りの反応。
型が違うので、入れることはできない。
指定されてないからといって、なんでも入れられるわけではない。
コンパイルエラーになるので、型が指定されてないからわかんないってことは起きない。
そもそも、分からないってことは、ソースを理解してないってことだから、注意した方がいい。

入れられるものは、決まっている。
意図しないモノは、入れてはダメなのです。
違うと分かっていて、きゅうりやナス、人参を突っ込んではいけないのです。

nullは?

型でダメなら、異常な型だけど万人受けする奴はどう?ってことで、nullを入れてみる。

    var list = new ArrayList<String>();
    list.add(null);
    System.out.println(list.get(0).getClass());
    System.out.print(list);

型指定あっても大丈夫だから、たぶん、コンパイルエラーにはならないと予想。
たぶん、実行時にヌルポ

$ javac TestJEP286.java

$ java TestJEP286
Exception in thread "main" java.lang.NullPointerException
        at TestJEP286.main(TestJEP286.java:7)

予想通り、コンパイルは通って、実行時にヌルポ。
言っとくけど、試す前に予想してますからね。

やっぱりnullの特殊性が際立つんですよね、Javaって。
どの言語でもそうだけど、特殊な値は、挙動が似通っているから、どこかの言語で覚えれば、だいたい通用する。

途中で別のインスタンスにしてみる

もう、入れるモノを変えるのは飽きたので、入れ物の方を変えてみる。

    var list = new ArrayList<String>();
    list = new ArrayList<Integer>();
    list.add("test");
    System.out.println(list.get(0).getClass());
    System.out.print(list);

大丈夫そうな気がしないでもない。
直してコンパイル&実行してみる。

$ javac TestJEP286.java
TestJEP286.java:6: エラー: 不適合な型: ArrayList<Integer>をArrayList<String>
に変換できません:
    list = new ArrayList<Integer>();
           ^
エラー1個

初期化した時の型と違うから、怒られた。。。
考えたら、初期化したときの型は、変えられないから、当然といえば当然か。
これは、var 使わない場合も一緒ですね。

継承関係にあるとどうなるか

クラス設計で必須となる、継承関係が有効に働くのか一番気になったので確認。
確認は、以下のソースで。

import java.util.*;

class TestJEP286_2 {
  public static void main(String[] args) {
    var list = new ArrayList<SuperInteface>();
    list.add(new SubInterface1());
    list.add(new SubInterface2());
  }
}

interface SuperInteface {
}

class SubInterface1 implements SuperInteface {

}

class SubInterface2 implements SuperInteface {

}

予想は、問題なくコンパイル&実行できる。

$ javac TestJEP286_2.java

$ java TestJEP286_2

とくに出力してないので、味気ない感じ。。。
予想通り、ちゃんとコンパイル&実行できましたね。

互換性があれば、突っ込んでも問題ないということですね。
だからと言って、きゅうりやナス、人参を突っ込んではダメです。

感想

型を書かなくても良くなっただけで、なくなったわけではない。
型チェックは従来と一緒になる。
型が見えない分、分かりやすく、直感的なメソッド名や変数名を付けないとダメ。
そして、それはいい方向に向かうと、信じてる。

従来の知識は、ちゃんと活きてくるので、怖がらずに使ったほうがいいと思いました。

あと、ちゃんと実装が間に合ってるので、安心はしている。
リリースサイクル変わって、1発目の目玉機能がダメですは、洒落にならないからな。

他のヤツも、あとで確認したい。

雑記

とりあえず試したけど、IDEの予測変換が使えないようなので、久々にゼロからタイピングしたのが辛かった。
VisualStudioCode使ってみたけど、案外、Javaでもいい感じにコーディングできるんだなって印象だった。
動作も軽快だったし。
EclipseからIntelliJに行こうかと思ったけど、VisualStudioCodeでもいいかな~って最近思ってる。
業務で使っているTypescriptの実装にも使っているのがデカい。
久々に使うと、全然ショートカット使えずに焦るんだよね。。。

iPhoneXを使ってみての所感

iPhoneX

持っているのはAndroid
なぜ使ったことがあるかというと、スマホアプリを使ったテストとかする際に、iPhoneを使ったりする。

発売されてから、ちょくちょく使うようになった。
というか、あまり物をよく使うので、iPhoneXを使うしかなくなっているのが、本音

感想

正直なところ、使いにくい。
画面の操作が、今までと違いすぎるってのが、大きい。

アプリキルのやり方や、電源の落とし方とか、全然分かんなかった。。。
あと、ホームボタンが失くなったので、とりあえず、押してみるって発想がなくなり、どうすればいいのか、思いつかないってのが正直な感想。
基本は、画面をロングタップするってのが、ホームボタンを押すのに変わってる。

2017年に買ってよかったもの

買ってよかったもの

PS4ドラゴンクエストXI 過ぎ去りし時を求めて

かなり熱中した。
こんなにゲームやりたいって思ったのは、ペルソナ5以来だった。

個人的には、マルティナ推し
ブギー戦前とか、むちゃくちゃ興奮した。

今回は、レベル上げが比較的簡単にできた。
いつものドラクエだと、レベル99までいけないと思うんだよね。
パーティは、グレイグ・主人公・カミュ・マルティナでやってる。
盾はクレイグ、回復薬を主人公メインで、アタッカーのカミュ・マルティナでやってる。
ぶんしん+かいしん必中は、かなり強い。

iiyama ディスプレイ モニター XB2481HSU-B1 23.8インチ/フルHD/ホワイトLED /HDMI端子付

個人的には、これが一番気に入ってる。
情報収集にFeedly使ってPocketにドンドン突っ込んでいるんだが、消化するのがすごく面倒なんだよね。
1回で大量に開いて、見終わったらタブを閉じて、最後に一気にアーカイブしているんだけど、1画面に表示できる量が小さいから、かなりストレスが溜まった。
それを解消するためにかったのが、コイツ。

画面を縦にして見ると、いっぱい情報が見れるから、超幸せ。
コマンド売って、ドンドンタブで開いて、一気に閉じるのが気持ちいい。
情報や説明サイトを見るので、1画面に表示できる情報量が多いので、説明が分かりやすい気がする。

思ったよりいい効果あったので、今年で一番良かった。

ペルソナ5』オリジナル・サウンドトラック

『ペルソナ5』オリジナル・サウンドトラック

『ペルソナ5』オリジナル・サウンドトラック

ペルソナ5にものすごいハマったから買った。
BGMは、超優秀。
テンションが上がる。
特に大詰め時にながれる曲が好き。
life will changeだったかな?
あの曲がものすごい好き。
あと、Last Surpriseとかも好き。

Anker A1271011 [PowerCore 20100 ブラック]

ポケモンGoやってたけど、電池切れが頻発してたので、買った。

何個かモバイルバッテリーあるけど、一番大容量で安心できる。
4回位は、フル充電できるバッテリーがある。
出かける際は、必ずもって歩くようになってしまった。
意外と重いってくらいかな、弱点は。

来年もポケモンGoはやっていくと思うから、手放さないと思う。

IntelliJの日本語化

環境

インストール

IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains

上記サイトから落とす。
僕は裕福ではないので、コミュニティエディションです。

日本語化パックを落とす

やることは、eclipseの日本語化と同じ。

Eclipse 日本語化 | MergeDoc Project

上記のサイトから対象OSのPleiadesをダウンロードする。
zipを解凍して、plugins/jp.sourceforge.mergedoc.pleiadesを任意の場所に置く

そしたら、IntelliJを起動して、Help -> Edit Custom VM Options... を選択する。
そしたら、下記を追記。

-Xverify:none
-javaagent:(Pleiades を配置した場所のフルパス)/jp.sourceforge.mergedoc.pleiades/pleiades.jar

※パスは、¥マークでも可

そしたら、再起動すると、日本語化されている。

感謝

有志の方々に感謝だね。
誤訳を見つけたら、プルリクエストしてあげましょう。

やっぱり日本語の方が分かりやすい。

参考サイト

Android Studio / IntelliJ IDEA の日本語化と設定 - Qiita

Google Home mini 買ってみての感想

きっかけ

半額セールに釣られました。。。
本当は、Google Home買いたかったけど、在庫切れでminiの方を買いました。
3000円だったので、ドブに捨ててもそんなに気にならないな〜と思って購入。

どこでも半額かと思ったら、ビックカメラソフマップだけなのか。。。
在庫持ちすぎたのかな?

感想

使ってみて、便利だと感じたことがないのが、正直な感想。
今のところ、ラジオ流すか、音楽流すかしか使ってない。
それならパソコンでOKじゃなかろうか?ってのが本音。

感じた面倒くさいところ

  • 「ok, google」って毎回発話する必要がある
    正直面倒くさい。
  • 声を変えられない
    声が気に食わない。なんかすごく機械っぽい。
  • 聞き逃すと、もう一回流さないと分からない
    情報を一部聞き逃すと、また最初っから。。。
  • 声で入力するより手を動かしたほうが早い
    これは職業柄かもしれないが、タイピングした方が、入力が早い気がする。。。

総括

なんというか、会話としては成り立ってない。
入力デバイスといった印象が強い。
口より手が出るタイプの人は、向いてないかもしれませんな。。。

まだ使い始めてちょっとしか立ってないから、もっといい使い方があるのかも知れないが、全然思いつかねぇ。。。
照明とか、リモコン手元において寝ればいいだけじゃんって思ってしまう。

ネットで連携が基本なのだろうか?
IFTTTは、前から知っていたけど、あんまり有効に使えてる気がしない。
結局のところ、生活する上では、視覚情報が大半を占めているから、音声だけだと用途がかなり限定的なんだな〜と思う。
一番気になるのは、これを視覚障がいがある人が使うと、どういう使い方をするのか、ものすごく気になる。
たぶん、そっち系の要望を聞いたほうが、製品の完成度が上がる気がする。

Java Advent Calendar 2017のまとめ

随時更新予定

Java Advent Calendar 2017

公式サイト

Java Advent Calendar 2017 - Qiita

今年も Advent Calendar の季節がやってきました。

Java をネタにしたブログを公開してしまいましょう。

Java といえば、サーバーからクライアント、クラウドに組み込みと、さまざな分野で使われており、そこで使われている技術もたくさん。

Java の Tips でもいいし、ライブラリの使い方でもいい、自作のツールの紹介など、Java に関していれば何でもかまいません。ぜひこの機会に、Java のブログを書いてみましょう!!

qiitaのアドベントカレンダーを使用していますが、もちろんqiita以外からの投稿もできます!
普段お使いのブログがあるかたはそちらでご参加ください!

Supported by JJUG.

内容・まとめ

[12/01] 2017年のJavaとこれからのJavaの話

2017年のJavaとこれからのJavaの話 - Qiita

Javaの2017年を振り返る記事ですね。
個人的に一番大きかったのは、Java9とリリースモデルの変更ですかね?
Java9は、リリース前から勉強してたので、さほど驚きはしませんでしたが、リリースモデル変更のニュースは、リアルにファッ!?って感じでしたわ。
話を聞いて、リリースモデルの変更には納得しているので、あとはそれをきちんと実行できるかどうかですね。
他者の営業の人と話すことがあって、嫌Javaの流れがあるらしいので、なんとか歯止めがかかればいいなぁ~とは思ってます。

あと、私事ですが、Oracle Certified Java Programmer, Silver SE 8を取ったこともあったな~とか思ってます。
本当は、Goldまで取る気でいたのですが、ちょっと舐めすぎてましたね。。。
年末に再チャレンジ予定です。

[12/02] 時間文字列を絶対変換してやる!

時間文字列を絶対変換してやる! - Qiita

ビックデータ解析しようと思ったけど、日付がフォーマット違ったりするのをどうやって差分なくすかの話。
よくある話だと思うが、経験したことないひといるのだろうか?
他システムと連携でなやんだことが結構ある派のおいらです。

やっていることは単純で、想定できるフォーマットをすべて保持しておき、パースして合致したフォーマットを使ってる。
パースのよくわるパターンですね。
意外と思いつかないもんですけど。

見てて思ったけど、テストコードあると理解が簡単。
使う想定が分かるから。
コードの説明は、テストか例を挙げて説明しないとダメだと感じた。

[12/03] Gaugeで自動テストする

Gaugeで自動テストする - Qiita

Gaugeっていうテストツールの紹介。
実際Githubで公開されてるテストソースで試したけど、結果が日本語で見えることより、テストを日本語でかけるほうが、なんか違和感を感じた。
いつも英単語に接してるせいからかも知れない。
どっちかというと、テストようのツール的なものを作って、文章でテストケースをかけることに価値があると思う。
使えるAPIを提供ところが出てくれば流行りそうな予感はする。
懸念としてあるのは、テストの2重管理にならないかなぁ~って思いました。

これ、Step複数つけられたりできないのかな?
多言語対応されたらおもしろそうだな~って思った。

[12/04] JMX接続をひたすらやっていく

JMX接続をひたすらやっていく | Developers.IO

お金がなかったので、EC2はしなかったですが、docker使ってElasticsearchを起動してJMXで接続してみた。
jconsoleは使ったことなかったけど、案外、簡単に接続できた。
有用そうなのは伝わってくるけど、いまいち、スレッド数とかメモリ使用率とか、どうなると悪いのか分かんないんだよね。。。
実際に、運用管理してみないと分からない分野なのかもしれない。

ココらへんは、弱い認識がある。

[12/05] JUnit実践入門のMockitoの部分をJMockit (version 1.37) でやってみた

JUnit実践入門のMockitoの部分をJMockit (version 1.37) でやってみた - bati11 の 日記

JMockitは、使ったことあるから、内容は最新バージョンに置き換えた見た系。
知らない単語があったので、いろいろと変わってそう。
あとでキャッチアップする。

[12/06] JavaのCyclicBarrierを使って平行処理を行う

JavaのCyclicBarrierを使って平行処理を行う - Qiita

タスクの同期処理。
CyclicBarrierっていう存在はしらなかった。
使ってみて思ったけど、問題は、各スレッドで使った値をどうやって連携するかだね。。。
バグりそうだから、どうやって値連携するかが課題になりそう。

ちなみに、サンプルで参考にしたのは、下記のサイト

Concurrency Utilitiesを使った並列処理・マルチスレッドのおさらい - argius note

[12/07] Java 9時代のAES 256暗号

Java 9時代のAES 256暗号 - Qiita

なんとなく暗号化は知っているから、話はわかった。
ココらへんは、政治的な意図で変わってるんだな〜と素人的に考えてしまった。

[12/08] 日本語でのJavaDocの書き方

日本語でのJavaDocの書き方 - 水まんじゅう

書き方は知っていたので、お作法的なほうが参考になったかな。
サマリーと詳細の書き分けは、クセで改行を無意識にいれてた。

タグから開始するのが一般的なのか?
普段は、改行とかいれるの面倒くさいから、<pre> タグで囲んでたわ。
@Throws は、発動条件を書いてるから、なんとなく似通ってはいるんだな。
ですます調や用語統一は、文章書くうえで必然ですね。

知らないルールが他にもありそうな気がしてならない。
冬休みにちょっと調べてみる。

[12/09] Javaにおけるインタフェースの使い道を今一度考える

Javaにおけるインタフェースの使い道を今一度考える - Qiita

インタフェースのメリットについての再考話。
Javaの良い点は、インタフェースがしっかりしていることだと、俺は思っている。
ダメな現場ほど、インタフェースが上手く使えてないことが多い。
インタフェースを抑えることがJavaで一番重要だから、再考したりするのは、一定の価値があると思います。
自分の中の考えを整理する上でもね。

[12/10] Payara Micro の設計と実装 - 2017 年版

Payara Micro の設計と実装 - 2017 年版 - notepad

Payaraって知らなかったけど、nodejsみたいなもん?
要するに、JavaEEをIoT製品に乗っけて、サーバーを動作させて外部連携するためのライブラリって理解でいる。
実際に、自分もそれに近い製品を作っているから、イメージ的にそんなもん。

Java9には、まだ未対応か。。。
対応が終われば、もっと軽量化できそうな気がする。
まだ、行末を見守りますか。

[12/11] Eclipse Collectionsのイケてるところイケてないところ

Eclipse Collectionsのイケてるところイケてないところ - Qiita

Eclipse Collectionsの存在は知っていたのですが、使ったことはないですね。
データ構造に焦点を置いたライブラリなのかな?って印象。
とりあえず使ってみないと、なんにもいえないので、冬休みに使ってみて、感想あげます。

[12/12] RxJavaがしてくれるというThread管理に、混乱したのでコードで実験

RxJavaがしてくれるというThread管理に、混乱したのでコードで実験 - Qiita

RxJavaの検証ですね。
RxJavaは、知っているのですが、本で読んだだけで実験段階まで踏み込めていない分野でした。
内容的には、Observerの実装ですかね?
業務ではよくかくデザインパターンなので、自分も一回使ってみようと思います。
とりあえず、タスク行き~

[12/13] ふわっとStreamで試したいこと試してみた。

ふわっとStreamで試したいこと試してみた。 - Qiita

streamのベンチマークですね。
Java8出てきたときに、ベンチマークは自分もしていたし、扱う要素が小さいと差が出ないことも知っていた。
Java9の新機能は、まだ試したことはなかったかな?
ReactiveStreamの方に目が行ってしまっていた。

ちゃんと検証しないと、置いて行かれそうだから、冬休みに実験します!

[12/14] Javaでお手軽に絵文字を使うライブラリ emoji-java の紹介

Javaでお手軽に絵文字を使うライブラリ emoji-java の紹介 - Qiita

見た感じSlackっぽいな~って思ったら、似せてるのか。
フロントにJava要素があるってのが珍しいな。
JavaFXとかだと、利用価値があるかもね。

[12/15] ReactorでN+1問題な処理を実装してみた話

ReactorでN+1問題な処理を実装してみた話 - 谷本 心 in せろ部屋

Reactorを使った、ノンブロッキング処理、ブロッキング処理の比較。
おそらく、今後はCPUの限界が見えてきたので、いかに効率的に処理するかが焦点になってくると思うんですよ。
そのためにも、ノンブロッキング処理というのは重要で、感覚を養っておいたほうがいいと思ってます。
今は、Java使ってないけど、TypescriptだとJavascriptがシングルスレッドだから、ノンブロッキングJavaよりシビアに考えないといけない。
おかげで、ちょっとばっかし、ノンブロッキングの概念はつかめたかな~?とも思っている。
暇な時間を見つけたら、試し実装してみたい。
また、冬休みタスク行きですな。。。

[12/16] 【JDK 10】varを使った型推論

【JDK 10】varを使った型推論 - Qiita

まだ早期ビルド版、試せてないんですよね~。
Typescript使っているから、想像は容易なんですけど、あのJavaが!って言った感じですわな。
理屈を考えると、意外と簡単にわかる。
要はローカル変数にジェネリックスが適用されていると考えればいい。
型情報がどこかにあれば、あとは自明だよね?って理屈ですよね。
まだ試せてないので、落とし穴があるかもしれない。
また、冬休みタスク行きですな。。。

[12/17] CDI 2.0をJava SEから使ってみる

CDI 2.0をJava SEから使ってみる - ひらおかゆみのなげやりブログ

JavaSEでCDI使うデモ。
SpringBootで似た感覚を味わっているから、それほど驚きはしなかった。
JavaEEもSpringBoot化しているかな?って思った。

[12/18] Javaのコンストラクタの挙動について確認した。

Javaのコンストラクタの挙動について確認した。 - 怒Mは思いつきでモノを言う

コンストラクタの話ですね。
Javaのコンストラクタは、staticメソッドの順番が入ってくるとややこしくなるイメージがある。
コンストラクタのオーバーロードは、覚えるのに苦労した思いがあるけど、覚えてしまうとなんてことはない。 あと、継承関係とかで悩んでいたことがあったなぁ~と思い出してしみじみしてた。

[12/19] Java Stream APIチートシート

Java Stream APIチートシート - Qiita

Stream APIは、覚えるんだけど、種類が多くて、毎回調べる事が多い。
最初見た時は、全然分からなかったけど、一回、自分の考えが腑に落ちると分かりやすさがます。
最近は、もっぱらTypescript使っているけど、StreamAPIの利用方法は、すごく役立つ。
普遍的な知識として、確実に覚えておいたほうがいい。

最近だが、チートシートつくる人が多い印象がある。
流行ってるのかな?

[12/20] 鬼が笑う。2018年Java界隈あえての一択。

鬼が笑う。2018年Java界隈あえての一択。 - Qiita

ごめんなさい、まだMaven使っているものです。。。
Mavenが普及しすぎてしまっているからかもしれないが、なかなか乗り換えられない。
GradleでもMavenリポジトリ使えるのは知ってますけど、Mavenとの差別ポイントが明確になってない気がするんですよね。

画面に向いてないのは、同意。
JS専用のプラグインがあるのかも知れないが。。。
ちなみに、重いのは、Preiadesでごちゃごちゃプラグイン入っているせい。素のやつを使うと、ものすごく早い。ただ、機能が少ないけどね。。。

VisualStudioCodeは、JUnitに対応したりしていて、開発環境として「あり」と最近思い始めてきた。
Typescriptを触っているので、開発は、Visual Studio Code使ってる。
JavaもTypescriptも同じ環境で使えるので、違和感なく使えるのは、いいなぁ~と思う。
なんか、フロントエンドとサーバーサイドの両方見る人にとっては、重宝しそう。

IntelliJも、使いたいとは思っているが、なかなか手が出せてない。
最近、Javaを書くことが少ないってのもあるが。。。
IntelliJ IDEAハンズオン」買ったのだが、読む機会がないんだよね。。。
冬休み中に読まないと。。。

[12/21] 3分で理解するG1ガベージコレクション

3分で理解するG1ガベージコレクション - Qiita

G1GCの説明ですね。
内容は、一通り知っていたので、分かっていました。
図示されているのが分かりやすいと思いました。

GC周りは、そこまで気にしたことがなかったので、概要を知っている程度です。
仕事でよく使うようになったら、集中的に学習するんですけどね。。。

[12/22] 分散トレーシングシステムのZipkinを使ってみた話

分散トレーシングシステムのZipkinを使ってみた話 - Qiita

Zipkinというトレーシングライブラリの話。
マイクロサービスのためのライブラリって印象。
マイクロサービスは、どこでエラーが発生しているのかわかりにくいので、それを明解するためのライブラリ。

環境構築が大変そうなので試すのは、冬休み入ってからにします。。。

[12/23] 『Java本格入門』を片手に Java の勉強を始めた息子のために

『Java本格入門』を片手に Java の勉強を始めた息子のために - Qiita

Java本格入門』の書評かな?
読んだことあるので、さら見程度で終わらせた。

[12/24] Java9(OracleJVMに基づく)キャッチアップ

Java9(OracleJVMに基づく)キャッチアップ - Qiita

Java9のまとめ。
javase9 what's newをベースに翻訳した感じかな?
主要なのは知っていたけど、細かいのまで把握しきれてないな~と気づいた。
冬休みに復習しておかないといけないと、強く思う。

[12/25] 【SpringBoot】 RestAPI チュートリアル

【SpringBoot】 RestAPI チュートリアル - エンジニアだけどブログを始めてみた

SpringフルスクラッチCRUDアプリの作成ですね。
SpringDataや、Swaggerは知っているけど、使ったことない。

特にSwaggerには、興味がある。
リアクティブなドキュメント生成に、かなり興味が惹かれる。
早いうちに試してみたい。

感想

知らないことは、ほとんどない。
ただ、知っているだけで、試したことがないのが多い。
業務でJavaを使ってないってのもあるが、乗り遅れてるな感が半端ない。
ソースを書く習慣が、まだ身についてない。

来年は、実装をもっと重視する年にしたい。

タスク

  • jconsoleの活用方法を覚える
  • JMockitキャッチアップ
  • CyclicBarrier
  • JavaDocの通例
  • Eclipse Collectionsの勉強
  • RxJavaを試し実装
  • Java9のStream
  • Spring5のReactorを試す
  • Java10を試す
  • IntelliJ IDEAハンズオンを読む&試す
  • Zipkin試す
  • Java9(OracleJVMに基づく)キャッチアップを読んで試す
  • Swagger

CSS Advent Calendar 2017 チラ見まとめ

随時更新予定

CSS Advent Calendar 2017

公式サイト

CSS Advent Calendar 2017 - Qiita

CSSに関わることならなんでも

CSS設計 ・PostCSS ・cssnext ・SCSS ・Sass

内容・感想

[12/01] ユーザーが予測可能なスワイプするレスポンシブTableスタイル

ユーザーが予測可能なスワイプするレスポンシブTableスタイル - Webを楽しもう「リパレード」

MarkdownCSSを使ったスクロールの設定ですね。
markdownは、簡単に言ってしまえば、htmlを簡単にかけるようにした言語ですからね。
CSSの工夫次第で、どうにでもなれるのは確かにそうですが、エンジニアは、デザインセンスというか、UXに疎いですからね。。。
やりたいとは思うんです。だけど、なんか違うな~ってのがやってみて感じる。

今回やってたのは、テーブルのスクロール設定を変えたと言った内容。
やってることは、簡単に言ってしまえば、Excelのウィンドウ枠の固定ですよね?
CSS:first-childとかst-childは、FirefoxStylishいじったりするとよく使おうと思うんですけど、結構難しいんですよね。。。
CSSの基礎知識なしにやろうとすると失敗する経験がある。

感覚的な例を上げてもらえると分かりやすいなとは思ったが、いざやってみると意外と難しい。
Stylish使うようになって、ある程度わかるようになってきたけど、まだまだ修行が足りない印象がある。
でも、話はついていける。
実践で使えないだけ。(それがダメなんですがね。。。)

UX系の知識をちゃんと付けたい。

[12/02] ページ表示を速くするCSSの記述方法

ページ表示を速くするCSSの記述方法 - Qiita

flexboxって描画早いんだ。。。
知らなかった。なんとなくflexboxを調べたけど、今後、結構重要になってくる記述なんだね。

ページ描画は、プログラミングだけかと思っていたけど、言われてみれば、CSSも原因ありますね。
もっと考えを改めないと。

アンチ集的な感じだったけど、いい感じで見識が広まった気がする。

[12/03] Webサービス開発でのCSS設計を考える - 人類はCSS設計に敗北したのか?

Webサービス開発でのCSS設計を考える - 人類はCSS設計に敗北したのか? - - Qiita

こういうファイル分けを見ると、プログラミングのクラス設計と似てるな~って思う。
なんかこう、もっと革新的な設計法がありそうな気がするのだが、なんかないのかな?
アンテナは広く張っておかないと、転用できそうなことを見逃しそうな気がする。