並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 136件

新着順 人気順

java9の検索結果1 - 40 件 / 136件

  • モダンBFFを活用した既存APIサーバーの再構築 - クックパッド開発者ブログ

    技術部の青木峰郎です。 去年までは主にデータ分析システムの構築を担当していましたが、 最近はなぜかレシピサービスのサービス開発をやっています。 今日は、そのサービス開発をする過程で導入したBFF(Backends for Frontends)であるOrchaについて、 導入の動機と実装の詳細をお話しします。 Orcha導入にいたる経緯 まずはOrcha導入までの経緯、動機からお話ししましょう。 最初のきっかけは、わたしが去年から参加しているブックマークのようなサービスの開発プロジェクトでした。 このプロジェクトの実装のために新しいmicroserviceを追加することになったのですが、 そのときにいくつかの要望(制約)がありました。 1つめは、撤退するとなったときに、すぐに、きれいに撤退できること。 2つめが、スマホアプリからのAPI呼び出し回数はできるだけ増やしたくない、という要望です。

      モダンBFFを活用した既存APIサーバーの再構築 - クックパッド開発者ブログ
    • テスト駆動開発:実はそれは設計技術です

      テスト駆動開発(TDD)は、より優れたソフトウェアを持続的に早く提供するための確立された手法です。TDDは単純な考えに基づいている。製品コードを書く前に失敗するテストを書くことです。新しい行動が必要ですか?失敗するテストを書いてください。しかし、この一見単純な考えをうまく実行するには、スキルと判断が必要です。 TDDは本当に設計のためのテクニックです。TDDの基礎は、小規模なテストを使用してボトムアップを早急に設計することであり、システムへの信頼を構築しながら迅速に何らかの価値を得ることです。よりよい名前はテスト駆動設計かもしれません。 設計方法としては、集中と単純さです。目標は、開発者が価値を提供する上で不要な余分なコードを書くことを防ぐことです。問題を解決するのに必要最小限のコードを書くことです。 多くの記事がTDDを行うことのすべての利点を誇りにしています。そして多くの技術会議の講演

        テスト駆動開発:実はそれは設計技術です
      • Java7からJava16までの変遷。 - Qiita

        まえがき ずっとJava11を使っていました。そのためすっかりラムダ式やStreamAPIでの書き方に慣れていたのですが、最近Java7を使って稼働しているプロジェクトに異動したので、何ができて何ができないのか、ちょっと調べてみました。 Javaの変遷 私見ですが主要だと思う仕様変更を並べてみました。アプリ実装に関係する部分のみピックアップしています。 このバージョンのこれは入れておいたほうが良いよ!との意見がありましたらコメントにぜひお願いします。 Java8 2014/03/18 正式リリース(GA) https://openjdk.java.net/projects/jdk8/ ラムダ式 https://openjdk.java.net/projects/lambda/ https://qiita.com/sano1202/items/64593e8e981e8d6439d3 pub

          Java7からJava16までの変遷。 - Qiita
        • Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた - エンジニアHub|Webエンジニアのキャリアを考える!

          Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた 2019年12月25日にリリースされたばかりのRuby 2.7では、どのような機能がどういった経緯で採用されているのでしょう。リリースマネージャーのnaruseさんと、フルタイムコミッターのmameさんに詳しくうかがいました。 まつもとさんはとにかく忙しくて 実はすごいirbの改良 パターンマッチはRubyをどう変えるか キーワード引数は、端的に壊れていたのを大整理した 高速化に向けたいくつかの観点 Ruby 2.7で導入される「コンパクションGC」とは Ruby 3のビジョンは「静的解析」「並行並列」「JIT」 プログラミング言語Rubyには、クリスマス前後に新しいバージョンをリリースする伝統があり、2013年の2.1.0以降は毎年12月25日にメジャーバージョンアップが行われています

            Ruby 2.7のここがすごい! パターンマッチ、コンパクションGCなどをリリースマネージャーに聞いた - エンジニアHub|Webエンジニアのキャリアを考える!
          • プログラミング言語別の平均年収ランキング トップ10にPythonやJSなど入らず 1位は? パーソル調査

            プログラミング言語別の平均年収ランキング トップ10にPythonやJSなど入らず 1位は? パーソル調査 パーソルキャリアは6月6日、日本におけるプログラミング言語別の平均年収ランキングを発表した。1位は「ABAP」で平均年収661万円。2位は「R」で656万円、同率3位は「Perl」と「VC・VC++」で630万円だった。同社が過去に調査した「ITエンジニアが学びたい言語ランキング」ではPython、Java、JavaScriptが上位だったが、これらはトップ10に入らなかった。 プログラミング言語別の平均年収ランキングでは、5位が「Delphi」で629万円、6位が「ASP」で628万円、7位が「Go」で627万円、8位が「PL/1」で618万円、9位が「Cocos2d-x」で607万円、10位が「C++」で605万円だった。調査結果は、パーソルキャリアが転職支援サービス「doda」

              プログラミング言語別の平均年収ランキング トップ10にPythonやJSなど入らず 1位は? パーソル調査
            • [速報]Java 13が登場。ZGCの改善やSwitch式の実現など新機能。 Oracle Code One 2019 - Publickey

              2017年9月に登場したJava 9以降、Javaは6カ月ごとに「フィーチャーリリース」と呼ばれるメジャーアップデートが行われています。Java 13は、今年3月に登場したJava 12に続くメジャーアップデートです。 Java 13のおもな新機能は、Application Class-Data Sharing機能を拡張した「Dynamic CDS Archives(JEP 350)」、ZGCガベージコレクタを改善し使われていないヒープメモリを返却する「ZGC: Uncommit Unused Memory(JEP 351)」、Project Loomの一部として既存のSocket APIを再実装した「Reimplement the Legacy Socket API(JEP 353)」、Switch式を可能にする「Switch Expressions(JEP 354)」(プレビュー)、J

                [速報]Java 13が登場。ZGCの改善やSwitch式の実現など新機能。 Oracle Code One 2019 - Publickey
              • クラウドネイティブ環境におけるJavaチューニングの進め方 〜 20,000rpsをさばく超PayPay祭の事例

                ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ショッピング統括本部の川口です。 本記事では、2022年2月から3月にかけて開催された超PayPay祭の事例をもとに、クラウドネイティブ環境におけるJavaチューニングの進め方について解説します。 本記事の内容は2022年6月19日に開催された、JJUG 2022 Springで発表した内容をベースにしています。 Yahoo!ショッピングにおける超PayPay祭は高負荷 超PayPay祭は全国のPayPay加盟店とオンラインショップでお得に買い物をお楽しみいただける大規模キャンペーンです。Yahoo!ショッピングにおいても、PayPayポイントがもらえるキャンペーンなどさまざまなお得な施策が実施されます。超PayPay

                  クラウドネイティブ環境におけるJavaチューニングの進め方 〜 20,000rpsをさばく超PayPay祭の事例
                • Java9から17で入った新機能ピックアップ

                  Java9から17で入った新機能で、実際コード書く上で使いそうなものをピックアップします。 Java8を使い続けていた人向けです。 レコード (Java16) 不変なデータを保持するクラスを簡単に定義できるようになりました。 classの代わりにrecordで定義します。 名前の後に、フィールドのリスト(コンポーネントと呼ばれます)を記載します。

                    Java9から17で入った新機能ピックアップ
                  • M1搭載MacBook Airが届いたのでJavaやDockerなどいろいろベンチマークした - きしだのHatena

                    M1 MacBook Airが届いていろいろやってたら年も明けてだいぶたったけども、ビルド速度とかJavaとかDockerとかTensorFlowとか、技術者が気になるベンチマークを試してたので、まとめました。 MacBook Airを買ってしまった なんかM1 Mac解説動画をとるためにいろいろ調べていたら、悪質サイトのリンクを踏んだみたいで、MacBook Airを買ってしまっていた。 その悪質サイトは最初は7万円台ですよーっていっておいて、結局12万円くらいになっていた。 みんなもapple.comってサイトには注意しましょうね。 www.youtube.com とどいた! 12/12到着予定といいつつ11日になっても羽田から動いてなかったので大丈夫かーと思ったら11日深夜というか12日未明というかそのあたりには福岡に届いてて、朝発想されて夜にとどいた。 でこれだ! ベンチマーク G

                      M1搭載MacBook Airが届いたのでJavaやDockerなどいろいろベンチマークした - きしだのHatena
                    • Software Design、WEB+DB PRESS全巻読破のすすめ

                      Web開発の歴史の復習の仕方 悲報: WEB+DB PRESSが休刊 22年以上続いていたWEB+DB PRESSが休刊するそうです。Software Design、WEB+DB PRESS共に年間購読していたのですが、とても残念です。 日本語と英語、少し中国語の技術書を普段から読み漁っているのですが、本ほどガッツリでなく、ブログよりはちゃんとバリデートされた上でトレンドをおさえた雑誌文化は割合日本的で、他の言語圏だとあまりない文化だとも感じています。 技術評論社からでているSoftware Design、WEB+DB PRESSなのですが、Software Designの創刊が1990年11月で、WEB+DB PRESS Vol.1が2000年12月で10年の差があります。 どちらかというとSoftware Designがインフラ&バックエンドでWEB+DB PRESSがバックエンド&ク

                        Software Design、WEB+DB PRESS全巻読破のすすめ
                      • SLF4JとLogbackは2021年現在では積極採用しない方が良い(2023年12月 追記) - Kengo's blog

                        SLF4JとLogbackの中の人はここ数年活発ではないのでLog4j2などを代わりに使いましょう。 SLF4Jの活動は最近活発ではない SLF4JはVCSとしてGitHubを利用しています。最後の変更が2020年2月、最後のリリースが2019年12月となっていることからも、あまり活発ではないことが伺えます。 またBTSとしてJIRAを使っていますが、こちらもメンテナンスされていません。昨夏SLF4J-209が既にクローズ可能な状態であることやSLF4J-186が修正可能であることなどをコメントしましたが、1年近く経った今もすべて返信がない状態です。 2020年12月にイシューを閉じていたりするので全く動きがないわけではないのですが、年間で22つ作成されたのに対して2つしか閉じられていないので、充分にメンテされているとは言い難い状況です。 2021年5月31日時点での過去360日のイシュー

                          SLF4JとLogbackは2021年現在では積極採用しない方が良い(2023年12月 追記) - Kengo's blog
                        • Javaのスペシャリストが教える、Java9からJava14で細かく変更された機能

                          LINEが定期的に開催する技術者向けミートアップ「LINE Developer Meetup」。65回目の は「Java」というテーマで、JavaのスペシャリストであるLINE Fukuoka株式会社のきしだなおき氏が、Java 9から14での細かい機能変更について紹介しました。関連資料はこちら。 Java9からJava14までの4つの細かい仕様変更 きしだなおき氏(以下、きしだ):よろしくお願いします。僕のセッションでは「Java9からJava14までをおさらいをする」という話をします。 自己紹介ですが、きしだと言います。LINE Fukuokaで働いていて、最近7年ぐらい放置していた洗濯機をやっと買い替えて、「文明って便利だな」と思っているところです。 今日の話ですが、Java9からJava14まで、けっこういろいろな変更が積み重なっていて、大きい言語仕様の変更などはけっこう話題になる

                            Javaのスペシャリストが教える、Java9からJava14で細かく変更された機能
                          • JenkinsがJava 8の対応を終了し、Java 11が必須に。Java 17の対応も開始

                            Jenkins開発チームは、6月28日リリースのJenkins 2.357および9月にリリース予定のJenkins LTS版からはJenkinsの実行環境としてJava 11が必須になることを、ブログ「Jenkins requires Java 11」で明らかにしました。 これまでJenkinsはJava 8もしくはJava 11を実行環境としていましたが、Java 8の対応がなくなることになります。 Jenkins 2.357 released today as the first Jenkins version to require Java 11. @bcrow shares the history of Java support in Jenkins and the benefits of the update. https://t.co/FPTNBTG3jK pic.twitte

                              JenkinsがJava 8の対応を終了し、Java 11が必須に。Java 17の対応も開始
                            • 「Java8からJava11」で何が起きたのか、どう環境構築すればいいのか - Qiita

                              この記事の目的 「Javaの環境構築」で絶対にハマったり、錯綜する情報にいつも惑わされる人に向けた記事です。 2017年以降のJavaは、移り変わりが激しい世界になりました。このことを認識し、「軸となる考え方」や「重要な動向」を把握できるように、調べた情報をまとめました。 「5年ぶりに(Java|JVM言語)触るんだけど環境周りが全然わからん」とか、「CorrettoとかAdoptOpenJDKとか、みんな何を言っているんだ」という人(つまりちょっと前の筆者)が、「今後に渡って2度とハマらないための基礎知識を得られること」を目的にしています。以下の3本立てです: ざっくりとした歴史 2020年におけるローカル開発環境構築 情報源と参考URL APIや言語仕様の変更点には触れません(他の良い記事があります)。 I. ざっくりとした歴史 2017年9月、OracleはJavaのリリース・モデル

                                「Java8からJava11」で何が起きたのか、どう環境構築すればいいのか - Qiita
                              • 最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5

                                5/17 Oracle Code Tokyo 2019、5/18 JJUG CCCのセッション資料です。https://togetter.com/li/1356223 も併せて参照ください。 以下、Oracle Code Tokyo 2019 https://www.oracle.co.jp/events/code/2019/ でのセッション概要より転記します。 -------- 2019年1月末で、Oracle JDK/JRE 8の商用ユーザー向けのPublic Updatesが終了しました。また、Java 9以降ではJDKのリリースモデルが変更になり、並行してOracle JDK 8までの商用機能がOpenJDKに寄贈されていきました。 こうした流れにより、特にJava 9がリリースされた2017年9月以降には様々なOpenJDKディストリビューションが出てきており、選択肢が大きく増え

                                  最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
                                • Java における乱数生成器とのつき合い方 / #JJUG CCC 2019 fall に登壇してきました

                                  一般公募の枠で CfP 出してあえなくリジェクトされたテーマを、スポンサー枠で勝手に敗者復活させてお話してきました。 はじめに Java 標準のクラスライブラリには、いくつかの乱数生成器の実装 (クラス) が存在しています。長年 Java でアプリケーションを書いている方であれば状況に応じてそれらの実装を使い分けることも難しい話ではありませんが、Java を扱い初めて間もない方にとってはそう簡単な話ではありません。 たとえば java 乱数 のようなクエリでググるとその状況がうかがい知れるのですが、巷にはプログラミングスクール各社の SEO を目的としたコンテンツが溢れていて、それらはいずれも「java.util.Random とか Math.random() とかなんでそんなレガシーなクラス/メソッドしか紹介しないの? この記事を書いたライターというかエンジニアの人たちは J2SE 1.

                                    Java における乱数生成器とのつき合い方 / #JJUG CCC 2019 fall に登壇してきました
                                  • SpringBootのdockerイメージを必要最小限に絞りたい(2019年9月版) - エムスリーテックブログ

                                    こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 先日の中村の記事で宣言してしまったので、 今回は「医師版Stack Overflow」(仮名) のSpringBootのdockerイメージを 必要最小限にまで小さくする際に試したことをまとめました。 なお、ちょっと検索すると先人の記事が色々出てきますが、 当時はまだなかったdockerイメージや、JDKの機能の違いにより、今ではちょっと古い部分もあります。 今回の記事も、半年もしないうちに古くなると思うので、2019年9月時点での方法だと思って読んでいただけると幸いです。 メットライフドームは埼玉県所沢市にあるドーム球場。本文には特に関係ありません。 小さいdockerイメージのメリット イメージのサイズを小さくしたいと書きましたが、 そもそも、そのメリットをネットで調べてみてもあまり明確な答えは見つか

                                      SpringBootのdockerイメージを必要最小限に絞りたい(2019年9月版) - エムスリーテックブログ
                                    • Javaのバージョンの取り扱い(2023年6月) - 日々常々

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

                                        Javaのバージョンの取り扱い(2023年6月) - 日々常々
                                      • 浮動小数点数の二段階丸め誤差 - hydrakecat’s blog

                                        さいきん『浮動小数点数小話』という同人誌を読んでFMA (Fused Multiply-Add)の二段階丸め誤差(double rounding error)について色々と知る機会があったのでまとめておく。ついでにFMAに関するOpenJDKのバグっぽい挙動を見つけたのでそれも併せて記しておく。 FMA (Fused Multiply-Add)とは FMAは以下のような演算のことを呼ぶ。 この演算自体は行列の乗算やベクトルの内積の計算でよく現れるものであるが、通常の浮動小数点数の乗算と加算を別々に行うと誤差が出るので一度の演算で正確な値を算出したいときに用いる。たとえばC言語(C99)では fma、fmaf、fmalという3つの関数が導入されているらしい。 FMAの実装における二段階丸め誤差 FMAはターゲットとなるCPUのアーキテクチャがFMA命令をサポートしていればその命令を直接呼び出

                                          浮動小数点数の二段階丸め誤差 - hydrakecat’s blog
                                        • Scalaのメモリ使用量はJavaよりも多いか検証した - Lambdaカクテル

                                          こういう記事を読んだ。 transparent-to-radiation.blogspot.com なんかScalaのメモリ使用量が異常に多いなと思って、調べた。検証コードもアップした。 github.com 検証として、様々なJVM(OpenJDKとかCorettoとか)とそのバージョン(8, 11, 17)でJARを実行して考察した。JVMを用意するためにASDFを使った。また、ASDFから引っぱってこれないJVMのバージョン(OpenJDKの8など)は省略している。 JAVA_OPTSは-Xms100M -Xmx2Gである。 手元のマシン(Linux x86_64 Xeon W-10855M 2.80GHz 64GiB RAM)でのrun-matrix.shの実行結果は、以下の通り(各列は、JVM、計算件数、実行時間Sec、メモリ総使用量KiB)。 openjdk-11 openjd

                                            Scalaのメモリ使用量はJavaよりも多いか検証した - Lambdaカクテル
                                          • Javaスクリプト入門 - きしだのHatena

                                            みんなでJavaスクリプトに入門しましょう! クラスをちゃんと定義する それでは、まずはJavaっぽく書いてみましょう。 public class Main { public static void main(String[] args) { System.out.println("Hello!"); } } これを、任意のファイル名で保存します。たとえばhello。 実行するにはJava 11以降が必要です。みなさんすでにSDKMANを入れてると思うのでOracle OpenJDKの12.0.1を使ってみましょう。 $ sdk use java 12.0.1-open では実行します $ java --source 12 hello Hello! 実行できました! これではちょっと面白くないので、先ほどのファイルの先頭にちょっとなにか追加しておきます。 #! /home/naoki/.s

                                              Javaスクリプト入門 - きしだのHatena
                                            • Java 14正式版が登場。テキストブロック、インストーラー作成ツールなど新機能。Solaris/SPARC版はついに引退

                                              Java 14正式版が登場。テキストブロック、インストーラー作成ツールなど新機能。Solaris/SPARC版はついに引退 Java 14正式版が登場しました。 2017年9月に登場したJava 9以降、Javaは6カ月ごとに「フィーチャーリリース」と呼ばれるメジャーアップデートが行われています。Java 14は、昨年9月に登場したJava 13に続くメジャーアップデートです。 Oracle is proud to announce the availability of #Java 14! Download: https://t.co/RppJOsT0WZ Release Notes: https://t.co/PA5jibv7o1 Documentation: https://t.co/0aGT8pWp80 Blog: https://t.co/rtiBtagTvm pic.twitt

                                                Java 14正式版が登場。テキストブロック、インストーラー作成ツールなど新機能。Solaris/SPARC版はついに引退
                                              • Java 11のガベージ・コレクション・チューニングガイドを読む - CLOVER🍀

                                                Java 8以降になってAPIドキュメント以外をあまり見ていなかったのですが、いろんなドキュメントが見やすくなって いるんだなぁと。 JDK 11ドキュメント - ホーム で、こちらのドキュメントがちょっと気になりまして。 ガベージ・コレクションのチューニングの概要 Java 8の頃に比べると、だいぶ差が。 Java Platform, Standard Edition HotSpot Virtual Machineガベージ・コレクション・チューニング・ガイド, リリース8 どうしてこのあたりを見ているかというと、Java 9以降でデフォルトになったG1GCですがどれくらいのヒープサイズ以上が 目安なのか、どこかに書いてあったかなぁということで探してみたと。 書いてありました。 最大10GBまたはそれ以上のヒープ・サイズ(Javaヒープの50%超がライブ・データで占められている)。 ガベー

                                                  Java 11のガベージ・コレクション・チューニングガイドを読む - CLOVER🍀
                                                • Java 14とJava 15の新機能解説 (LINE Developer Meetup #65 原稿) - unnamed

                                                  Java 14とJava 15の新機能についてJJUG CCC 2020 Springで話す予定だった内容が中止になり、Java 15のリリースも近づいてきたので新たに資料を加筆修正して以下のLINE Developer Meetupで発表しました! line.connpass.com 本イベントでは話す予定ではない部分も(JJUG CCCで話す予定だったので)資料にはあり、オンラインでの発表だったということもあり原稿も準備していました。そこで折角ですので情報保障を兼ねて共有したいと思います。情報保障についてはこちらを見てみてください。 なお、今回はかなり特殊な事例であり、基本的には原稿が公開されるケースは少ないと考えています。LINE Developer Meetupでは他の分野でもスライドに書かれていない内容を聞くことができるので、ぜひイベントを聴講してみてください :) なお、スライ

                                                    Java 14とJava 15の新機能解説 (LINE Developer Meetup #65 原稿) - unnamed
                                                  • cve-2022-22965 Spring4Shell の影響調査 | DevelopersIO

                                                    はじめに こむろです。 Spring4Shell についてです。どうせお前ら調査してたんだろ?と思ったあなた、大正解です。 結論 非常に広範な影響がありましたが、現時点で、Spring Framework 本体への修正パッチがすでに適用されています。そのためこれに準じたアップデートを実施することで脆弱性を回避できます。 spring-boot-2-6-6 spring-boot-2-5-12 spring-framework-5.3.18 Tomcat 9.0.62 またこれらのアップデートができない場合、以下の対応を取ることもできます。 不要なパラメータのマッピングを行わないようにコードを追加する (Binding のブラックリストへ class.* 系を追加) Java8 へ一旦ダウングレードする Tomcat 9.0.62 へ Update することで設定値自体の書き換えをできないよ

                                                      cve-2022-22965 Spring4Shell の影響調査 | DevelopersIO
                                                    • 3年ぶりの長期サポート版となる「Java 17」正式版がリリース。M1 Macのサポート、Sealed Classの追加など

                                                      3年ぶりの長期サポート版となる「Java 17」正式版がリリース。M1 Macのサポート、Sealed Classの追加など Javaの新バージョン「Java 17」が正式にリリースされました。Java 17は、Java 11以来3年ぶりの長期サポート対象となるJavaのバージョンです。 Java 17 is now available! #Java17 #JDK17 #OpenJDK Download now: https://t.co/ui83Aehxoq Release notes: https://t.co/VKB0vfaPsP API Javadoc: https://t.co/VHs6UWdka8 Documentation: https://t.co/74Dk6r23Dt pic.twitter.com/NZvvxchXGT — Java (@java) September

                                                        3年ぶりの長期サポート版となる「Java 17」正式版がリリース。M1 Macのサポート、Sealed Classの追加など
                                                      • トレンドから考えるフリーランスJavaエンジニアの生存戦略 | Offers Magazine

                                                        「Offersエージェント」では、業界で活躍するプロフェッショナルがあなたの転職を徹底サポート。CxO経験者を含む現役エンジニア・デザイナー・プロダクトマネージャーが在籍し、職種に特化した専門的なアドバイスをご提供・非公開求人の紹介も可能です。 →【かんたん30秒】無料登録で転職相談する 今の案件内容と獲得経路 Javaをメインにフリーランスエンジニアをしている、いろふ(@irof)です。システム開発の仕事は10年以上、フリーランスとして独立して4年目になります。 会社員をしていた頃は主に企業内で使われる基幹システムの開発に携わってきました。フリーランスとしてはシステム開発だけでなく、Javaに限らない技術支援やチームビルディングのサポートなどいろいろさせてもらっています。コミュニティ活動として関西Javaエンジニアの会などをやっています。 ▲JJUGでの直近の登壇資料 今回は、フリーラン

                                                          トレンドから考えるフリーランスJavaエンジニアの生存戦略 | Offers Magazine
                                                        • 知って使えるJVMの概要とヒープダンプ取得から解析まで

                                                          本連載では、Javaプログラムの実行を担うJava仮想マシン(JVM)について、その情報を取得するさまざまなツールの利用を通じて理解を深めます。JVMやそのツールに関する知識はアプリケーションが正常に動作しているときではなく、障害など異常が起こった際に大いに活躍します。それだけでなく、Javaプログラムを動作させる仕組みを知ることはソフトウェアを開発するエンジニアの皆さんの知的な部分を刺激するとともに、シニアレベルのJavaエンジニアへと進む第一歩となります。連載第1回はJVMの概要を解説し、模擬的なトラブルシュート体験としてヒープダンプを取得して解析します。 はじめに 今後もアプリケーションをJavaで開発、運用していくことを前提にすると、そうした業務に携わる方は次のようなことを学び続けるでしょう。 Javaの半年ごとのバージョンアップに追随して新機能などを学ぶ アーキテクチャなどでの新

                                                            知って使えるJVMの概要とヒープダンプ取得から解析まで
                                                          • Javaアプリケーション配布方法 ~jlink ランタイム作成~ | tyablog.net

                                                            jlinkでランタイム用のイメージを作成する。 この記事では、Java9以降のモジュールシステム(JPMS) を使ったアプリケーションを JIMAGE(カスタムランタイム)という形で配布する方法について解説します。 JIMAGE形式では、配布先のPCにあらかじめ、Javaをインストールしておかなくても、 配布したファイルだけで、実行が可能になります。 Javaアプリケーションの配布方法 従来までは、配布先にJava(JRE)をあらかじめインストールしておいてもらい 作成したアプリケーション(jarファイルなど)を配布していました。 しかし、依存するJavaバージョンが異なるアプリケーションを複数併用したい場合、 すぐにJavaバージョンを上げる事ができません。 そこで、オラクルはJavaのアプリケーション配布方法として、次の方法を提唱しています。 アプリケーション開発者は、JIMAGE(カ

                                                              Javaアプリケーション配布方法 ~jlink ランタイム作成~ | tyablog.net
                                                            • GoogleのJava用Logging API「Flogger」を使ってみた

                                                              /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java -Dfile.encoding=UTF-8 -classpath /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines

                                                                GoogleのJava用Logging API「Flogger」を使ってみた
                                                              • [速報]オラクル、Java 8のままJava 17並の性能向上を得られるJava 8用パフォーマンスパックを発表。JavaOne 2022

                                                                オラクルは米ラスベガスで開催中のイベント「JavaOne 2022」において、Java 8のままでJava 17並の性能を得られるパフォーマンスパック「Java SE Subscription Enterprise Performance Pack」(以下、Enterprise Performance Pack)を発表しました。 Javaはバージョンアップによって機能追加だけでなく性能向上も行われてきています。 一方で多くの企業は稼働中のアプリケーションの安定稼働や互換性維持を優先して開発当時のJavaのバージョンを使い続けているのが現状です。特にモジュール機能など大きな新機能追加が行われたJava 9への以降には大きなハードルがあり、それゆえにJava 8のまま稼働し続けているシステムは少なくありません。 今回発表された「Enterprise Performance Pack」は、こうし

                                                                  [速報]オラクル、Java 8のままJava 17並の性能向上を得られるJava 8用パフォーマンスパックを発表。JavaOne 2022
                                                                • Using Native Memory by JVM | DevelopersIO

                                                                  はじめに こんにちは。事業開発部のこむろ@さっぽろです。 最近、諸事情から所属部署でどこにでも顔を出す人として活動しています。 今回はJVMのメモリ周りについて初めて調べました。 背景 Javaアプリケーションを利用している場合、最近ではContainerを利用してアプリケーションを起動しているところも多いかと思います。わたしの所属する事業開発部では、ECSを利用して複数のJavaアプリケーション(Spring Boot)をContainerで稼働させています。 Containerで稼働させるため一つのホストのリソースをすべて割り当てられるわけではありません。Containerには利用できるリソースにハードリミットが設けられているため、リソースの配分には少々気を使う必要があります。 今まであまり意識してチューニング等していなかったのですが(富豪的にメモリを割り当てたりしてて深く考えていなか

                                                                    Using Native Memory by JVM | DevelopersIO
                                                                  • マイクロソフト製Java 11ディストリビューション「Microsoft Build of OpenJDK for Java 11 LTS」正式リリース。無償長期サポート、コンテナイメージの配布も

                                                                    マイクロソフト製Java 11ディストリビューション「Microsoft Build of OpenJDK for Java 11 LTS」正式リリース。無償長期サポート、コンテナイメージの配布も マイクロソフトは、これまでプレビューリリースとして公開してきた同社製Javaディストリビューション「Microsoft Build of OpenJDK for Java 11 LTS」の正式リリースを発表しました(マイクロソフト寺田氏による日本語訳)。 We are proud to announce the General Availability of the Microsoft Build of #OpenJDK for Java 11 LTS. There's also a new #Java 16 EA now in use by millions of #Minecraft pla

                                                                      マイクロソフト製Java 11ディストリビューション「Microsoft Build of OpenJDK for Java 11 LTS」正式リリース。無償長期サポート、コンテナイメージの配布も
                                                                    • JVM勉強会(運用編)を開催しました - 株式会社ヘンリー エンジニアブログ

                                                                      こんにちは、SREの戸田です。本日は社内で開催したJVM勉強会(運用編)の一部を公開します。 JVM、使っていますか?弊社ではサーバサイドKotlinが活躍しているので、もちろん日常的にJVMが稼働しています。このためサービス運用の一貫で必要になる知識や関連ツールなどをSREないしプロダクトチームに共有することを目的として、この勉強会を開催しました。 図1 勉強会はGoogle Meetでオンライン開催しました パフォーマンス・チューニング サービスを開発していると、この処理をもっと高速化したい!ランニングコストを抑えてユーザ体験の向上に投資したい!というというシーンには多く遭遇しますよね。こうしたユーザが増えてサービスに負荷がかかるようになったことで生じた課題に対して迅速に打ち手が取れることは、とても重要です。 しかし焦ってはいけません。「このコードはめっちゃループしてるし遅そう!」「あ

                                                                        JVM勉強会(運用編)を開催しました - 株式会社ヘンリー エンジニアブログ
                                                                      • CircleCI の Android Docker Image でJDKが11にアップデートされた件のまとめ - nashcft's blog

                                                                        私は今回の件より前から CircleCI を使っておらず、最近は主に GitHub Actions でCIを構築していてこの件で被害は被っていないのだけど、軽く調べてみたところ Android project を JDK 9+ でビルドすることに強い興味をを持っている自分には結構興味深いことがわかったのでもう少し詳細に調べてまとめることにした。 何があったの 日本時間で 2020-08-18 のお話 CircleCI の Android Docker Image が更新され、JDK 8 ベースから JDK 11 ベースになった*1 これらの image を使ってCIを行っている Android project でビルドが失敗するものが発生した Twitter が少し賑やかになった 原因1: なぜビルドが失敗するようになったの この blog を書き始めてから調べて知った付け焼き刃な部分もあ

                                                                          CircleCI の Android Docker Image でJDKが11にアップデートされた件のまとめ - nashcft's blog
                                                                        • SpringのRCE脆弱性(CVE-2022-22965)について

                                                                          はじめに Log4jやStruts2など、Java製ソフトウェアにおいてリモートからの任意のコード実行(RCE)の脆弱性が目立つ時代になってしまっていますが、これにさらにSpringも加わってきました。この記事では特にCVE-2022-22965に焦点を当て、技術的な視点からの解説を行ってみます。 なぜJavaアプリでRCEとなるのか? Javaの(特にウェブアプリケーションで)RCEとなるパターンはいくつか知られており、以前こちらの記事にまとめました。今回のCVE-2022-22965はこの記事の「3. クラスローダを操作できてしまうパターン」のパターンになります。 なぜクラスローダを操作できるのか? そもそも「クラスローダの操作」とは何を意味しているのでしょうか。この文脈では、Javaのプロセス内のクラスローダ系のクラスのインスタンスの、getterやsetterのメソッドを攻撃者が実

                                                                            SpringのRCE脆弱性(CVE-2022-22965)について
                                                                          • 「Spring4Shell」脆弱性、マイクロソフトが詳細を説明

                                                                            印刷する メールで送る テキスト HTML 電子書籍 PDF ダウンロード テキスト 電子書籍 PDF クリップした記事をMyページから読むことができます Microsoftは米国時間4月5日、Java向けのアプリケーションフレームワーク「Spring Framework」に潜んでいることが最近報告された「Spring4Shell」脆弱性について、詳しく説明した。 同社は、「Microsoft Azure」クラウドサービスの顧客らに対してパッチの適用を呼びかけている。Spring4Shell(共通脆弱性識別子「CVE-2022-22965」)はリモードコード実行(RCE)攻撃につながる可能性のある脆弱性であり、「SpringShell」という名称でも呼ばれている。なおこれらの名称は、Javaのログ出力ライブラリー「Apache Log4j」で発見された「Log4Shell」脆弱性にちなんだ

                                                                              「Spring4Shell」脆弱性、マイクロソフトが詳細を説明
                                                                            • 【10分で分かる】Java8からJava15まで - Qiita

                                                                              Java 8からJava 15までの道のりには、朗報がたくさんだ。 はじめに この記事ではJava 7以降に追加された素晴らしい新機能を紹介します。2020年秋にリリースされたJava 15まで、Javaのバージョン毎に大きな改善点を見ていきます。Javaは今や、ラムダ式、関数型プログラミング、varによる型推論、単純なコンストラクタによる不変コレクション、複数行文字列を、完全にサポートするようになりました。さらに、データクラス(record)やsealedクラスなど、新しくて面白い実験的な機能があります。そして、時間対効果の高いJava REPLについて説明します。 1. 関数型プログラミング (Java 8) Java 8は、関数型プログラミングとラムダ式を言語機能として追加しました。関数型プログラミングの2つのコアパラダイムは、不変の値と関数の重要性向上です。データは変換処理のパイプ

                                                                                【10分で分かる】Java8からJava15まで - Qiita
                                                                              • Java 15正式版が登場。スケーラブルかつ低レイテンシなガベージコレクタ「ZGC」が正式版に

                                                                                Java 15正式版が登場しました。 2017年9月に登場したJava 9以降、Javaは6カ月ごとに「フィーチャーリリース」と呼ばれるメジャーアップデートが行われています。Java 15は、今年3月に登場したJava 14に続くメジャーアップデートとなります。 Oracle is proud to announce the availability of #Java 15! Download: https://t.co/DXhO6clfh7 Release Notes: https://t.co/REOt9dL8bI Documentation: https://t.co/rBSzBWPICP Blog: https://t.co/PaEr8x8fn0 pic.twitter.com/KwWWCyzPUw — Java (@java) September 15, 2020 主な新機能や変

                                                                                  Java 15正式版が登場。スケーラブルかつ低レイテンシなガベージコレクタ「ZGC」が正式版に
                                                                                • 【Java 14リリース記念】『みんなのJava』を読んだ感想 - 虎の穴開発室ブログ

                                                                                  皆さんこんにちは、虎の穴ラボのH.Kです。 本日(3/17)はJava 14がリリース日ですね。日頃Javaを使っている身としてはとてもワクワクします。 Java 14はPreview機能の追加が多いのですが、大きなところとしてはSwitch式がついに標準として組み込まれました。 さて、今回はそんなJavaの「今」がわかる、『みんなのJava』の感想を共有したいと思います。 これまで虎の穴ラボの書籍を読んだ感想記事は、オライリー社様が出版したものを多く取り扱ってきましたが、こちらの本は技術評論社様より出版されております。 虎の穴ラボでは福利厚生の一環として、個人での技術書の購入に対して年間5万円まで補助が受けられます。私が読んだ『みんなのJava』もその制度を利用して購入いたしました。 読んだ動機 前職からJavaでの開発に携わっており、一番得意な言語は何?と問われれば「Javaです。」と

                                                                                    【Java 14リリース記念】『みんなのJava』を読んだ感想 - 虎の穴開発室ブログ