タグ

ブックマーク / irof.hateblo.jp (10)

  • Java17雑感 - 日々常々

    LTSとなるJava17が出ました。組織が今後もJavaを使っていけるかの試金石になるバージョンだと思います。 実際のとこLTSだから特別安定してるとかそんなことはないと思うし、6バージョン(3年)ごとにLTSにするってのもたぶんOracleさんが言ってみただけで、いろんなとこがそれに乗っかってるから、実質的に節目になってるに過ぎない。はず。 その程度のものなんだけど、私のようなのは乗っかりますし、たぶん多数派なんじゃないかなぁ……この派閥が運用で使うJavaのバージョンは8、11、17で、他のバージョンは評価に使うくらいでしょう。 11から17のジャンプになるんで、かなりたくさんの変更がありますが、業務アプリケーションの表層に関係するものはそこまで多くありません。パフォーマンスとかに影響のあるものは多々ありますが、基的には早くなるはずで、問題になることは稀です。稀なことはよくあるんです

    Java17雑感 - 日々常々
    knjname
    knjname 2021/09/16
  • SpringBootのプロジェクトを作成する - 日々常々

    2020-12-29 時点で私がどうやっているかって言うの。 色々やり方あるし、他でも書いた記憶あるけど、現時点のスナップショットを書いておきます。 必要なもの 以下が実行できること curl gradle 私は SDKMAN で入れてます gradle の実行にJDKいるけど、JDKは入ってるでしょ← idea IntelliJ IDEAのCLIね やること curl -O https://start.spring.io/build.gradle gradle wrapper idea . こんだけ。以下は解説とかおまけとか。 やってること curl で叩いてるのは Spring Initializr です。 SpringBootの雛形を作成してくれるWebサービス。必要なライブラリとかを -d dependencies=web,actuator とかで指定できるんだけど、それはあまり使

    SpringBootのプロジェクトを作成する - 日々常々
    knjname
    knjname 2020/12/30
  • 「あるエンジニアがプログラムを紡いでいく様を見てみる」ライブコーディング・リプレイ - 日々常々

    あるエンジニアがプログラムを紡いでいく様を見てみるでしたライブコーディングで言ったことや言わなかったことを書いてみます。 意識してるのは「コードをどまんなかに」です。 speakerdeck.com ……あ、このスライドのブログ書き忘れてた。 スライド中の「えらぶ」はだいたいIDEの機能を指します。なのでライブコーディング中に使用したIDEの機能も挙げようと思います。基的にデフォルトのつもりだけど、vimとの兼ね合いで変更してるのもあるので、そこはごめんなさい。あとMacです。今回はメソッド抽出とかクラス間移動とかダイナミックなのがなくて地味だけど、便利な子たちなので使ってあげてください。 リプレイ 今日の公開コーディングはスゴい新鮮だった🎵 コミット後のソースには、どこに悩んだのか、どこにこだわったのかは残らないのですね。 実際のコーディングを見させて頂く事で、気づかされる事が多かっ

    「あるエンジニアがプログラムを紡いでいく様を見てみる」ライブコーディング・リプレイ - 日々常々
    knjname
    knjname 2018/03/09
  • 匿名クラスとかローカルクラスとか - 日々常々

    Java入門では割愛としていたローカルクラスと、ついでに関連の強い匿名クラスについて書いておきます。ネストしたクラスとかインナークラス(内部クラス)とかはそこそこしっかり書いたつもりなので、読んでいただけると嬉しいです。 Javaエンジニア養成読 [現場で役立つ最新知識、満載!] (Software Design plus) 作者:きしだ なおき,のざき ひろふみ,吉田 真也,菊田 洋一,渡辺 修司,伊賀 敏樹技術評論社Amazon 言語仕様とか読んでもいいと思いますし、この辺りも参考に見てみるといいと思います。 ローカルクラスの意義 - ぐるぐる~ 2009/3/14 Javaのクラス宣言5種+α - プログラマーの脳みそ 2012/3/8 Javaのクラスの使用 - ひしだま's 技術メモページ 2010/1/9 みなさまにはいつもおせわになってます。 宣言とか呼び方とか それぞれど

    匿名クラスとかローカルクラスとか - 日々常々
    knjname
    knjname 2015/05/09
    Java8のStream処理の間の値の受け渡しにローカルクラスを使ったことはある。本当はC#のような匿名型が欲しい。
  • Optionalの取り扱いかた - 日々常々

    JavaSE8で追加されたjava.util.Optionalにはnullとの戦いに終止符を打ってもらいたいと思っているんですが、思ってるだけだと何も起こらないので、使い方とか思ったこととかを一通り書いておきます。 Optionalのファクトリメソッド Optionalのインスタンスメソッド 値を取得するもの 値を使用するもの Optionalのまま扱うもの まとめ なお、一通りと言いつつOptionalIntとかはスルーしています。機会と書くことがあればそのうち書くかもしれません。 Optionalについては諸事情(遅筆とか理解不足とか分量とか)によりJavaエンジニア養成読では軽い紹介にとどまっておりましたので、補足としてお読みいただけると幸いです。あと、この辺も参考にどうぞ。 OptionalのJavadoc 一通り触って適当にコメント書いたコード(GitHub/sandbox)

    Optionalの取り扱いかた - 日々常々
    knjname
    knjname 2015/05/05
    Optionalの真価は、値がないかもしれない、を表現することだと思っている。つまり1箇所どこかでOptional使ったとしたら、他は絶対に値がある、の表明になるはず。
  • JavaSE8でinterfaceにstaticメソッドを持てるようになったので - 日々常々

    Javaの古きアレなプラクティスの1つに、ユーティリティクラス*1をabstractで作成すると言うのがある。 public abstract class SomeUtil { public static String appendA(String str) { return str + "a"; } } ユーティリティメソッドappendAは、特に役に立たないが、引数のStringにAを足して返す物体だ。このクラスにはstaticメソッドしか含まないため、インスタンス化する必要はない。こういうクラスをabstractにすることにより、誤ってインスタンス化されることは無いと言う素晴らしい方法である。 「ねーよ」と言う言葉は堪えて頂きたい。それでは話が終わってしまう。 さて、JavaSE8ではProject Lambdaのついでにインタフェースにdefaultメソッドが追加された。ついでにs

    JavaSE8でinterfaceにstaticメソッドを持てるようになったので - 日々常々
    knjname
    knjname 2014/11/28
    enumだと、、、意味のない列挙子が気持ち悪いか "[Java8]JavaSE8でinterfaceにstaticメソッドを持てるようになったので"
  • 文字列連結と+演算子について整理しておく - 日々常々

    何度か書いているけど、整理的な意味で。今後は「このエントリ参照」にするつもりで書いてみる。 文字列連結から見るシステム内で扱う型について - 日々常々 Javaプログラマであるかを見分ける10の質問 に答えてみる - 日々常々 String の連結ネタの続き - 日々常々 前書き Stringなんてboxed primitive*1でもないただのクラスのくせに、中途半端に贔屓されて*2てムカつく*3し、その中途半端ぶり*4がなお腹立たしい……。そして +演算子 で連結して問題が起こるような状況、つまりそんな長々と文字列連結したいような場合は、きっと他の適した型がある。StringBuilderじゃなく、もっと別の何か。業務要件で文字列を組み立てる目的を考えれば、たぶんテンプレート的なものに落ち着くんじゃ無かろうか。ライブラリ的な所でなら逐次書き出し等になるような。どちらにせよ文字列の組み立

    文字列連結と+演算子について整理しておく - 日々常々
    knjname
    knjname 2013/03/23
    超常識ですね。多分これ知らない人はif(false){ ... } でコード削除されるとかそういうのも知らないのかしら。定数系の変更は関連クラスの再コンパイル必要ですわよ?
  • Java8で実行時にメソッドの引数の名前がとれるぽい - 日々常々

    JEP 118: Access to Parameter Names at Runtime http://download.java.net/jdk8/docs/api/java/lang/reflect/Parameter.html#getName() Java8で実行時に Parameter#getName でメソッドの引数の名前がとれる感じです。 やってみる こんなクラスのー public class Hoge { public void method1(String hoge) { } public void method2(Object fuga, Object piyo) { } } メソッド名と引数を引っ張り出すと、こう出る。 method1[ java.lang.String hoge] method2[ java.lang.Object fuga, java.lang.O

    Java8で実行時にメソッドの引数の名前がとれるぽい - 日々常々
    knjname
    knjname 2013/03/11
    PlayやSpring Frameworkでは使ってたけど、ちゃんとAPIになったか
  • 凝ったコードは凝っているように見えない - 日々常々

    新しい技術を使ったり凝ったコードを書くとメンテするのが大変。新しく入ってくる人でも分かるように書く必要がある。 この意見に対する上手い切り返しが出来るようになりたい。— Hidari。 (@Hidari0415) 2012年12月27日 "凝ったコード"……はどうだろう。 コードを書くことに凝るのはいい。でも、出来上がったコードが "凝っている" なんて言われるのはよくない。なぜなら "凝っている" と言われるコードは、おそらく "巧妙なコード" になっているから*1。そう言うのは得てして読みづらくて、凝りを解きほぐさないと理解しづらかったりする。そのようなコードは書くべきではない。コードの可読性から来る理解の容易さが全てじゃないが、他の条件がすべて同じ場合、読みやすいコードを書いた方が良いに決まっている*2。 コードのメンテナンスは書いた瞬間から始まっているし、その場しのぎは長生きするも

    knjname
    knjname 2012/12/29
    これを高度な話と思う人はまったくわかってないですね。本当にレベルが低くてしょうもない話だと思える人はわかっていますね。
  • gitのcommitは軽く考えとく - 日々常々

    git commit するまえに考えるべき10のこと | Act as Professional 「git commit するまえに考えるべき10のこと」がDVCS的じゃない件 - うさぎ組 まとめ DVCSもようやく広まる時期になって来たんでしょうか。だとしたら嬉しいですねー。 パブリックコミット*1とローカルコミット*2をわけて考えて、ローカルコミットに関しては深く考えずに*3やるのがいいと思うのです。軽く速く回せるところは、がんがんまわしたい。回転の力。 「なぜsvnだとxxxだったのがgitだとそうじゃなくなったのか?」と思われるかもしれませんが、たいてい「そうじゃなくなった」ってのは誤解です。新たに選択肢が提示されているだけです。そしてそれを選んだほうがより楽で便利ってだけなんです。svnでも出来なくはないけどゴニョゴニョ……がすんなり出来るとか。先にあるのは解決したい問題で、ツ

    gitのcommitは軽く考えとく - 日々常々
    knjname
    knjname 2012/09/12
    のcommitって単純な履歴バックアップの意味合いがあるから個人的には軽く考えるってのは賛成ですね
  • 1