タグ

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

  • Javaのバージョンの取り扱い(2023年6月) - 日々常々

    ツイート したらそれなりに反応があったので、少し丁寧に書いておこうかなと。 水物な内容なので、自動でつく投稿日時以外にもタイトルに「2023年6月」を入れて強調しておきます。 しょーとあんさー よくわかんないならJava17にしておきましょう。 前提 ツイート。だよねーって思ったので、下に書いてたを持ち上げておきます。 LTSとかいう言葉が出てきますが、現在のJavaはメジャーバージョンがLTSと非LTSがあります。 OracleJavaSE を前提にしています。他のサポートも似たり寄ったりな感じと思っているけれど、自分たちが使ってるとこのサポートを確認してくださいまし。 また、稿は「Javaのバージョン?何それ?」とか「色々あるけど最新使ってたらいいんだよね?」とかそういう方向けで、プロダクトのJavaバージョンを選定する方々向けではありません。そういうのに必要な知識には全然足りません

    Javaのバージョンの取り扱い(2023年6月) - 日々常々
    gfx
    gfx 2023/06/09
    「新規プロジェクトで採用する場合は最新のLTSを使え」という話なわけだけど、それだったら偶数バージョンをLTSで固定とかにするほうがわかりやすいような。
  • GradleWrapperの追加や更新の手順 - 日々常々

    Gradle 7.3.2 Gradleを使っているプロダクトだと、基的にGradleWrapperを使うと思います。 プロジェクト作成時に最新のGradleを使うかと思いますが、Gradleの更新でたまにビルド時間短縮とかもあるんで、新機能使わなくてもWrapperも更新していきたいところです。 なお 公式のユーザーガイド に書かれている内容です。 short answer 私がやってるのは、追加も更新も「 gradle wrapper を叩く」だけです。 以下は説明。 前提 SDKMAN! でGradleをインストールしています。 sdk install gradle なお、手元のGradleのバージョンアップも一緒です。install で新しいのがあったらインストールしてくれる。 sdk install gradle 普通は sdk upgrade gradle なんだろうけど、up

    GradleWrapperの追加や更新の手順 - 日々常々
    gfx
    gfx 2021/12/22
    "手元にGradleがある場合は、手元のGradleを最新にして gradle wrapper を叩けばOKです"
  • Java17雑感 - 日々常々

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

    Java17雑感 - 日々常々
    gfx
    gfx 2021/09/17
  • 経験年数で何がわかるか - 日々常々

    経験年数が問われることはしばしばあります。 私も聞かれたり聞いたりしたことはあるけれど、それで何かがわかったことはありません。他の話のきっかけに使うのがせいぜいです。 たとえばJava経験15年とか言われれば「Java5が出た前後か、この時期をどう過ごしたか聞いてみようかな」なんて思ったりします。 Java5はジェネリクスやenumなど、Javaにとっての一大転換期です。とはいえこの時期に新人だったとすると、社会人として精一杯で言語のバージョンに意識が向いていなかったかもしれません。 とはいえ次の転換期であるJava8の話は間違いなくできます。転換期の振る舞いは何を期待していいかを知る重要な手がかりになると思っています。 対して経験年数が5年未満であれば、Javaの転換期の話をしても仕方ありません。それよりも言語の選択肢が増えている昨今ですから、他の言語など横に広げて聞いた方が実りのある話

    経験年数で何がわかるか - 日々常々
    gfx
    gfx 2020/06/09
  • 脱ブランチファースト - 日々常々

    あるいは「プルリクエストをやめてみた」 チーム構成とかにもよるんだろうけど。Gitかつフォークされないプロダクトでの話です。OSSとかは全然話は変わります。 問題とアプローチ (2019-10-25T15:20 追加) 表出している問題と、ここでのアプローチを書いておきます。 ブランチファースト(造語) 「ブランチファースト」はこのエントリでの造語です。コードベースに変更を加える際に「まずブランチを作成する」から始めることを指します。 作業単位でブランチを作成、ブランチでコードを変更してプルリクエスト、レビューを経てメインライン( master ブランチ)に反映までがブランチファーストのスコープになります。 よくあるスタイルだと思いますし、ブランチだけ作成して変更せずプルリクエストを作成する拡張もありますね。 プルリクエストを挟まずにメインラインにマージするものは含みません。 ……名前微妙

    脱ブランチファースト - 日々常々
    gfx
    gfx 2019/10/25
    masterに直接pushしていけばいいじゃんという話かしら。問題意識に共感できないのでよくわからないな…。
  • finalを付けるのをやめてみた - 日々常々

    Javaの話ね。バージョンは8以降の実質的final(effectively final)があるものとします。7以前は匿名クラス(この呼び方は 匿名クラスとかローカルクラスとか参照)でローカル変数を使うにはfinalが必要なので文脈変わります。 前提の整理 final は色々なところにつけられます。 例えばこんな感じ。 final class FooClass { final Object barField = new Object(); final void bazMethod(final Object quxParameter) { final Object corgeLocalVariable; } } このエントリで対象にするのは変数。フィールド barField 、パラメータ quxParameter、ローカル変数 corgeLocalVariable です。 以下を前提にします

    finalを付けるのをやめてみた - 日々常々
    gfx
    gfx 2019/09/28
    JSだとlinterでががっとconstにできるからあまり気にせず済むんですよね。Javaでもそれができればまた変わるかしら。
  • JavaBeansって言葉に煩わされない - 日々常々

    JavaBeansって言葉を目にして、ふと検索してみたらあまりに酷かったので書いておこうかと。対象は「JavaBeansってなんだろ?」と思ってしまった初学者さん。でもそんな人って私のブログ読むんだろうか…… 今後は「このエントリ参照」にするつもりで書いてみる。 文字列連結と+演算子について整理しておく みたいな感じ。 ShortAnswer JavaBeansを学ぶ必要はありません。JavaBeansと説明されているものの多くは、JavaBeansの名前を借りた独自の物体です。 長い説明 「あまりに酷い」と「要らない」だけだと流石にアレなので、仕様を斜め読みしながら説明していきます。あ、EJBには触れません。まぜるなきけん。 仕様について JavaBeans仕様としてげったーせったーがーとか、こんすとらくたがーだとか、しりあらいざぶるがーだとか。よく見聞きするのだけど、仕様って読んだんだ

    gfx
    gfx 2019/07/25
    "「JavaBeansはJavaの基本だろ?」とか言ってよくわからない説明をしているものに惑わされないでください"
  • DIコンテナのインジェクション方法の使い分けについて - 日々常々

    DIコンテナを使う時にどのインジェクションを使うかって話です。 たぶん誰かがどこかで同じようなことを書いているだろうけれど、気にせず書くよ。 「他の誰かが書いている」なんてのを書かない理由にしてると何も書けなくなるし。 コンテナ DIコンテナのこと。 コンテナ管理 インスタンスのライフサイクルをコンテナが管理していること。雑に言えば、使う側で new しないってこと。 インジェクション Dependency Injectionのこと。 Short Answer コンストラクタインジェクションを使いましょう。使い分けなくていいです。 3種類のインジェクション インジェクションには3種類ありますね。他あっても知らない。 フィールドインジェクション セッターインジェクション コンストラクタインジェクション フィールドインジェクション 一番よく見るかな。 class Hoge { @Inject

    DIコンテナのインジェクション方法の使い分けについて - 日々常々
    gfx
    gfx 2017/04/17
    Android Javaだとでシステムがデフォルトコンストラクタで生成する系のオブジェクトがいくつかあるので、ある程度コンストラクタインジェクションとフィールドインジェクションを使い分けないんだよな。
  • コンストラクタのメソッド利用で注意すること - 日々常々

    Java入門ではさらっと以下のように書いた、コンストラクタでインスタンスメソッドを実行することについて掘り下げてみます。 コンストラクタからインスタンスメソッドを使用することは可能ですが、避けたほうが無難です。 コンストラクタの実行中はインスタンス自体が構築中のため、初期化が完了していない状態でメソッドが実行されることになります。 Javaエンジニア養成読 [現場で役立つ最新知識、満載!] (Software Design plus) 作者: きしだなおき,のざきひろふみ,吉田真也,菊田洋一,渡辺修司,伊賀敏樹出版社/メーカー: 技術評論社発売日: 2014/11/11メディア: 大型この商品を含むブログ (6件) を見る 文章だけで伝えるのはなかなか難しいものだとも思いますし、 に書いたのに実際にこの問題を見た時に即解決できなくて悔しかった ので、 突っ込んでしっかり書くことにしま

    コンストラクタのメソッド利用で注意すること - 日々常々
    gfx
    gfx 2016/01/10
  • バージョンアップ時に互換性を損ねてしまう変更 - 日々常々

    あるいは、利用者にバージョンアップをためらわせる変更の手引き。 前置き うっかり互換性を損なってしまう変更について書いてみます。 知ってたらやらかさないし、なんてことのない事なのだけれど、 知らなかったら何が駄目なのかわかりづらいし、 原因を突き止めるのとかも難しいのかもしれない。と思ったので。 互換性の話なので、ライブラリやフレームワークなどの提供側としての変更になります。 動かない、けど再コンパイルすれば動く こんなコードがあって、 interface Hoge<T extends java.io.Serializable> { T method(); } これを使っている、こんなコードがある。 class Hogera { public static void main(String... args) { Hoge hoge = new Hoge<String>() { @Overr

    バージョンアップ時に互換性を損ねてしまう変更 - 日々常々
    gfx
    gfx 2016/01/10
  • 勉強会にいこう - 日々常々

    プログラマになろうで「外の勉強会に行きましょう」とか書きましたけど、「そんな事言われても…」と感じる方も結構居ると思います。そんな方の気持ちを少しでも楽に出来ればと思って書いてみます。 いつどこでやってるの? まず存在を知らなければ参加も出来ませんね。という事で私が見つけてるところ。 Welcome to Twitter - Login or Sign up ATNDカレンダー検索 IT 勉強会カレンダー Twitterは言うまでもないですね。ATNDカレンダー検索はATNDの検索をしてくれるもの*1。IT勉強会カレンダーは id:hanazukin さんが個人で趣味でされているものらしいのです*2が、あらかたの勉強会の情報は集まっています。参加されてる方の話を聞くと、こちらで知ったって方も結構居ます。 募集サイトはいくつかあります。(随時追記) イベント開催支援ツール アテンド : AT

  • プログラマになろう - 日々常々

    もうすぐ4月になると言う事で、時事ネタ。コの業界、特にエンタープライズなSIerやその協力会社なんかに就職される方向けに、夢や希望をなるべく潰さないつもりで書いてみる。 PGになってはいけない SIer用語でPGって言葉があります。あとSE、PL、PMとかありますけど、序盤は関係ありません。これらは契約形態は違うのですが、作業内容よりも主に単価で分けられます。で、PGは「末端作業員」と言う意味です。 PGはプログラマではありません。プログラマに失礼です。PGにプログラムは作れません。また、PGはコーダーでもありません。PGにコードは書けません。PGはSEの指示の元、似た事をしている既存システムのコードを切り貼りして、それっぽく動くものを作る下請け作業員でしかありません。そこに創造的な仕事は一切ありません。多くのPGは自らの意思か外部からの圧力によって、思考を放棄もしくは停止しています。PG

    プログラマになろう - 日々常々
    gfx
    gfx 2011/04/14
  • Javaプログラマであるかを見分ける10の質問 に答えてみる - 日々常々

    Javaプログラマであるかを見分ける10の質問 - やさしいデスマーチ "自称Javaプログラマを見分ける"や"問題なく答えられる"と、軽く答えるには高いハードルな気もしますけれど、今日時点の私のスナップショットとして晒しておきます。決して露悪趣味があるわけではありません。 主に業務系Webアプリケーション開発で給料貰ってるプログラマです。ホーム言語はJava*1で経験年数3年も超えてます。回答する事自体がすっごくホラーです。 質問 ==演算子とequalsメソッドの違いは何か? 文字列の連結は原則として+演算子を使ってはならない理由を説明せよ。 Listのようにジェネリクス型を使う主たる目的は何か? オブジェクトがガベージコレクション(GC)される主たる条件は何か? チェック例外と非チェック例外の違いを型と例外処理の観点で説明せよ。 フィールドのアクセス修飾子をprivateにしgett

    Javaプログラマであるかを見分ける10の質問 に答えてみる - 日々常々
    gfx
    gfx 2011/03/05
  • 1