並び順

ブックマーク数

期間指定

  • から
  • まで

41 - 80 件 / 1994件

新着順 人気順

javaの検索結果41 - 80 件 / 1994件

  • 株式会社リクルート エンジニアコース新人研修の内容を公開します!(2023年度版)

    こんにちは! 2023年度エンジニア新卒の、吉田です。 株式会社リクルート 新卒エンジニアコースでは、部署への配属前に、BootCampと呼ばれる新人研修を行っています。 本日は2023年度の研修の内容を、実際に受講した新卒の立場から紹介させていただきます。 研修の内容については毎年反響をいただいていますが、今年度も一段と進化し、より充実した研修でした。 ページ下部に研修資料を公開していますので、ぜひ研修の雰囲気を感じ取っていただけると嬉しいです。 研修の概要 エンジニアコースの新人研修は、配属後にスピード感を持って成長できるようになることを見据え、 「さまざまな技術領域の講座を受け、興味関心を広げて、知らなかった好奇心に出会う」 「現場で求められる『仕事への取り組みスタンス』をつかむ」 「気軽に相談できる仲間(同期)をつくる」 の3点が目的とされています。 今年度は、入社前に行われたスキ

      株式会社リクルート エンジニアコース新人研修の内容を公開します!(2023年度版)
    • 「やばすぎる」 Javaライブラリ「Log4j」にゼロデイ脆弱性、任意のリモートコードを実行可能 iCloudやSteam、Minecraftなど広範囲のJava製品に影響か

      Webセキュリティ製品などを手掛ける米LunaSecの報告によると、Minecraftの他、ゲームプラットフォームのSteamやAppleの「iCloud」もこの脆弱性を持つことが分かっており、影響は広範囲に及ぶと考えられるという。 この脆弱性の影響があるのは、Log4jのバージョン2.0から2.14.1までと当初みられていたが、Log4jのGitHub上の議論では、1.x系も同様の脆弱性を抱えていることが報告されている。対策には、修正済みのバージョンである2.15.0-rc2へのアップデートが推奨されている。 セキュリティニュースサイト「Cyber Kendra」によれば、この脆弱性に対して付与されるCVE番号は「CVE-2021-44228」という。 脆弱性の報告を受け、Twitter上ではITエンジニアたちが続々反応。「やばすぎる」「思っていたよりずっとひどいバグだった」「なぜこんな

        「やばすぎる」 Javaライブラリ「Log4j」にゼロデイ脆弱性、任意のリモートコードを実行可能 iCloudやSteam、Minecraftなど広範囲のJava製品に影響か
      • 【自動化】PDF内の表をPythonで抜き出す - Qiita

        PDFは扱いにくい PDFファイルをPythonで扱うのは大変です。 表がPDFの中に埋め込まれているケースも割とあります。 例えば 平成30年 全衛連ストレスチェックサービス実施結果報告書の中にはたくさんの表データが埋め込まれています。 例えばファイルの40ページの【表14 業種別高ストレス者の割合】を抜き出したいと思ったとします。 この表を選択して、Excelにコピペしてみましょう。 コピーして、Excelに貼り付けます。 おや?うまくいかないですね。 1つのセルの中に、全部のデータが羅列されてしまっています。 実はPythonを使ってこのPDF中の表を比較的簡単にcsvやExcelに変換することができます。 PythonでPDFの表をcsvに PythonでPDF内の表(テーブル)をcsvやexcelに変換する手順は2ステップです。 ステップ1. PDFから表をpandasのData

          【自動化】PDF内の表をPythonで抜き出す - Qiita
        • 日本に居ながら海外の会社にリモートワークで働いていい給料をもらう方法

          リモートワークをして Zoom で東京のオフィスに繋ぐんだったら、ロンドンやカリフォルニアに繋ぐのも同じ。だったら給料の高い英語圏の会社の仕事をした方が有利だと思う。 これを読めば日本に居ながら海外の会社からそれなりのいい給料をもらって働くことが可能になるはず。そうしてリモートでずっと英語を使って働いていれば、英語もかなり上達するし。 ずっと海外で働いてきて、それぞれのチームに必ず世界のいろんな場所からリモートで働いているメンバーが居た。現に今の職場にもアイルランド、ロシア、イスタンブールからリモートで入ってるメンバーがいる。彼らからも聞いた話しなどをまとめた。コロナの影響もあって IT 系の会社がエンジニアを募集する際に「オフィスに来て働いてもらう」という意識が希薄になったし、このチャンスは現在進行系で拡大しているのを日々感じる。 オフショア開発を再定義するまず「オフショア開発」というと

            日本に居ながら海外の会社にリモートワークで働いていい給料をもらう方法
          • 100万件ぐらいのレコードを扱ったらOOMEが出た話。 - 谷本 心 in せろ部屋

            要約 技術的な話だけ教えて、という方のために先に結論だけ書いておきますと、PostgreSQLはクエリを実行した時点で全レコードの情報を一気に読んできてヒープを埋めてしまう場合がある、ということ話です。 たとえば、ResultSet#nextメソッドを使いながら処理を回すようなコードを書いて、少ないヒープでも処理できるようにするのは常套手段だと思いますが、そういうコードを書いていても一気にヒープを消費してしまうことがあるのです。詳しくはこのドキュメントを見てください。 https://jdbc.postgresql.org/documentation/head/query.html#query-with-cursor ことの発端 ちょっと仕事でJava + jOOQ + PostgreSQLで、DBのデータを集計するようなバッチ処理を書いてまして、もちろん俺様の書いたコードにバグなんてある

              100万件ぐらいのレコードを扱ったらOOMEが出た話。 - 谷本 心 in せろ部屋
            • Javaなら「この書き方がベスト」と信じて書ける - きしだなおきに聞く、Javaのこれまでとこれから - エンジニアHub|Webエンジニアのキャリアを考える!

              エンジニアHub > 記事一覧 > Javaなら「この書き方がベスト」と信じて書ける - きしだなおきに聞く、Javaのこれまでとこれから Javaなら「この書き方がベスト」と信じて書ける - きしだなおきに聞く、Javaのこれまでとこれから Javaは1995年に誕生し、数多くのコミュニティや企業の影響を色濃く受けてきました。では、黎明期から現代に至るまで、Javaはどのように進化し、生態系を変化させてきたのでしょうか。Javaのスペシャリストとして知られる、きしだなおきさんに聞きました。 1995年に誕生した、オブジェクト指向プログラミング言語・Java。この言語の歴史は、数多くのコミュニティや企業の影響を色濃く受けてきました。 例えば、OracleによるSun Microsystemsの買収後、Javaのリリースサイクルは大きく変化しました。また日本においては、Javaカンファレンス

                Javaなら「この書き方がベスト」と信じて書ける - きしだなおきに聞く、Javaのこれまでとこれから - エンジニアHub|Webエンジニアのキャリアを考える!
              • log4jの脆弱性について

                log4jとはJava用のloggingライブラリだ。loggingライブラリというのはログとして記録すべき文字列を受け取り、それをどこかに出力するものだ。文字列の中身を通常のloggingライブラリは気にしない。 log4jが通常のloggingライブラリと違うのは、文字列の中身を見て、一部の文字列を変数とみなして置換することだ。これはlog4jのドキュメントではlookupと呼ばれている。 Log4j – Log4j 2 Lookups 例えばプログラムを実行中のJava runtimeのバージョンをログに含めたい場合は、"Java Runtime: ${java:runtime}"などとすると、"Java Runtgime: Java(TM) SE Runtime Environment (build 1.7.0_67-b01) from Oracle Corporation"などの

                • 『良いコード/悪いコードで学ぶ設計入門 』を出版します|ミノ駆動

                  こんにちは、リファクタリングが大好きなミノ駆動です。 これは、私が執筆した『良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方』について紹介する記事です。 2022年4月30日発売です(ほぼ同日に電子書籍版も出ます)。 AmazonなどECサイトで、すでに多くの予約が入っており、ヨドバシ.comでは一時期予約終了になったほどです。おかげさまで初版部数が2倍になりました。 ■どんな本?皆さんはプログラミングでバグを埋め込みたいですか?ロジック修正が上手くいかず、ヒィヒィ言いながら長時間残業したいですか?イヤに決まってますよね。ところが現実には、 何度もバグを埋め込んでしまう ロジックを読み解くのに時間がかかる やっとロジック修正しても、全然違う箇所がバグ化してしまう ……ほとんど誰もが体験しているのではないでしょうか。 でも、こうした状況をなんとかしたいと思って

                    『良いコード/悪いコードで学ぶ設計入門 』を出版します|ミノ駆動
                  • DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita

                    追記 2022/11/12 追記 この記事読んで、DI 便利だなって思ったらこちらも併せて読んでみてください。クリーンアーキテクチャーの開設の中で依存性逆転の説明が出てきます。難しいかもしれませんが、一度理解すればつぶしが効く考え方なので腰を据えて読んでみてください。 本文 ここでは、最近のそこそこの規模のアプリだと大体使われてる(と私は思ってる)Dependency Injection(DI)について、何故使ってるのか?というのを私の理解で書いていきたいと思います。 今回の対象言語は C# ですが、DI 使ってる言語であれば大体同じ事情なのかなと思います。 単体テストしたいよね アプリケーションを作るとうまく動いているかテストをすると思います。 たとえ、そのアプリがハローワールドだとしても動かして目視で確認してると思います。 もうちょっとアプリの規模が大きくなってくるとクラス単位やクラス

                      DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる - Qiita
                    • Slack のインフラはどのように進化してきたか?

                      NewsPicksのエンジニア採用サイトです。さまざまな強みを持つエンジニアが、自分たちの個性を活かし、未来を創るための挑戦をしてる自由な環境で、一緒に世の中をおもしろくしてみませんか?

                        Slack のインフラはどのように進化してきたか?
                      • 個人的なアプリケーション設計のバイブル3選 - Runner in the High

                        自分が本格的に設計を意識するようになったのは、2015年の夏に現職であるFringe81株式会社で開催されていたサマーインターンに参加してからだ。 インターンではDDDとクリーン・アーキテクチャ*1を一から勉強してAPIサーバーに実装する、というカリキュラムであったが、いま思うと2週間という比較的長いインターンで僕が学べたことと言えば本当に微々たるものだった。つまるところ、それくらいには設計というものは奥が深い。常になんらか特定のデザイン・パターンなりアーキテクチャ・パターンを適用することでアプリケーション開発がうまくいくということはなく、それらの様々な知識から少しづつ応用されたものが最終的なアプリケーションの設計に対して真の洞察を与えてくれるものというのが、僕自身のいまの認識である。 設計はまさに Connecting the dots そのものだ。多くを知れば知るほど、アプリケーション

                          個人的なアプリケーション設計のバイブル3選 - Runner in the High
                        • 「コンピュータシステムの理論と実装」をやりきりました - Qiita

                          コンピュータシステムの理論と実装 をやりきったので、メモを残しておきます。 本の紹介 コンピュータシステムの理論と実装 では、NAND ゲートからはじめて、最終的にはアプリケーションを動作させるところまで、ボトムアップの視点でコンピュータシステムの説明が記載されています。通称「Nand2Tetris」。名前がかっこいいですね。 とてもわかりやすい裏書きの説明は以下 コンピュータを理解するための最善の方法はゼロからコンピュータを作ることで、その構成要素は、ハードウェア、ソフトウェア、コンパイラ、OSに大別できる。本書では、これらの構成要素をひとつずつ組み立てる。具体的には、NANDという電子素子からスタートし、論理ゲート、加算器、CPUを設計。オペレーティングシステム、コンパイラ、バーチャルマシンなどを実装しコンピュータを完成させて、最後にその上でアプリケーション(テトリスなど)を動作させる

                            「コンピュータシステムの理論と実装」をやりきりました - Qiita
                          • インフラエンジニアとしてなんとなく役立っていそうな書籍をリストアップする - Qiita

                            2019/5/26 はてブで話題になっていたので慌ててアップデート、Docker実践ガイド 第2版が発売されていたので追記&修正しました。 はじめに 本投稿はRecruit Engineers その2 Advent Calendar 2018の5日目の投稿です。 そもそものきっかけ Rancher もくもく勉強&相談会 #02にて、現代的なインフラエンジニアとして どのようなことを勉強したらよいかという相談を受けたので、書籍ベースで改めて考えてみました。 ”どんな本でしたか”くらいしかまとめてないです。そのまとめも私の完全な主観である点はご注意ください。 筆者は何者? Web系の会社でインフラエンジニアをやっています。 パブリッククラウドやコンテナ系の技術をベースに先進アーキテクチャの装着みたいな役割で 新規サービスを中心にインフラアーキテクトみたいなお仕事をやっています。 具体的には、ア

                              インフラエンジニアとしてなんとなく役立っていそうな書籍をリストアップする - Qiita
                            • 防水で大容量のリュック探してる

                              今日の大雨で教材がびしょ濡れで鬱になりました ということでノースフェイス以外でタイトルの条件に当てはまるおすすめのリュックがありましたらぜひ教えていただきたいです 値段帯は特に気にしませんがあえて言うなら学生が使うものって範疇なら

                                防水で大容量のリュック探してる
                              • [速報]10年にわたる著作権訴訟でGoogleがオラクルに勝訴、米連邦最高裁判所で判決。Java SEのコードのコピーはフェアユースの範囲

                                [速報]10年にわたる著作権訴訟でGoogleがオラクルに勝訴、米連邦最高裁判所で判決。Java SEのコードのコピーはフェアユースの範囲 オラクルがGoogleに対して、Android OSがJavaの著作権を侵害しているとして訴えていた裁判で、米連邦最高裁判所はGoogleが著作権侵害をしていないとの判断を示し、Googleが勝訴しました。 以下は米連邦最高裁判所の動向を伝えているSCOTUSblogのツイートです。 BREAKING: In major copyright battle between tech giants, SCOTUS sides w/ Google over Oracle, finding that Google didnt commit copyright infringement when it reused lines of code in its An

                                  [速報]10年にわたる著作権訴訟でGoogleがオラクルに勝訴、米連邦最高裁判所で判決。Java SEのコードのコピーはフェアユースの範囲
                                • プログラミング言語の簡単な歴史を初心者にもわかるように解説 #さくマガ #さくらインターネット - さくマガ

                                  ≫ 【2週間無料!】初心者でもホームページが作れる!高速・安定・快適なレンタルサーバー みなさんこんにちは、文系出身のエンジニアのちょまど(@chomado)です。大手外資系IT企業でDevRel (Developer Relations) のお仕事をしています。 今回の記事では、プログラミング言語の歴史について書きたいと思います。私はもともとプログラミング言語が大好きで、歴史には大変興味があったので、今回、たくさん色々調べたり、ベテランの先輩エンジニアの方々に当時の様子をお聞きしたりして(ありがとうございます!)、記事にまとめました。 (*゚▽゚* っ)З「ちょまぎょです! 一緒にお勉強していこうね」 また、今回、Google Developers Expert の田中洋一郎さん (@yoichiro) に記事のレビュー(査読)や助言をしていただきました。誠にありがとうございました! そ

                                    プログラミング言語の簡単な歴史を初心者にもわかるように解説 #さくマガ #さくらインターネット - さくマガ
                                  • 実践クリーンアーキテクチャ with Java

                                    この記事について こちらの記事はクリーンアーキテクチャの Java 実装による解説記事です。 MVC フレームワークに組み込むために一部変更している部分もあります。 それをふまえてご覧ください。 講演内容が @IT さまに記事にしていただけました。 あわせてご参照ください。 https://www.atmarkit.co.jp/ait/articles/1907/08/news002.html クリーンアーキテクチャよりも軽量で無理なく導入しやすいアプリケーションアーキテクチャパターンを考案しました。 https://nrslib.com/adop/ スライド JJUG CCC 2019 Spring での発表資料です。 この発表をするにあたって記事を書くことにしました。 YouTube YouTube でこちらの解説を行いました。 その他解説もしています。もしよろしければチャンネル登録を

                                      実践クリーンアーキテクチャ with Java
                                    • 現状を打破できるアイデアを思いつく方法|ふろむだ@分裂勘違い君劇場

                                      アイデアにはたいした価値はない。 とよく言われますが、 ただ単に「思いつく」かどうかで勝負が半ば決まってしまう、というケースはけっこう多いです。 たとえば、iモードにJavaが搭載されたとき、「テトリスのように、誰もがやり慣れたシンプルな定番ゲームをiモードJavaで提供する」というアイデアで会社を作って爆速成長、2年後にはJASDAQに株式の店頭公開をしてしまった人がいます。 これ、「誰もがやり慣れたシンプルな定番ゲームを提供する」というアイデアを思いついた瞬間、勝負は半ば決まってるんです。 当時の起業家たちで、「くそ、やられた。なんでこれを思いつかなかったかな」と悔しがってた人はけっこういました。 もちろん、資本を調達し、版権交渉をし、優秀な人材を集め……という部分も難しいですし、それをやりきれるかどうかも運次第なところはありますが、そこは優秀な人が延々と努力し続ければなんとかなること

                                        現状を打破できるアイデアを思いつく方法|ふろむだ@分裂勘違い君劇場
                                      • 文字列を反転させたい|nona

                                        こんにちは。徒然なるままにTweetを眺めていたら、Tanakaさんがこのようなことを呟いていました。 そういやRustのStringにreverseメソッドないなと思ったけど、まあよく考えたらUTF-8で文字逆転させるとか地獄のような話になるしそもそも長さが変わるケースとかあったりしそうで怖いわな・・・(´・_・`) — Hideyuki Tanaka (@tanakh) May 1, 2021 背景等はよくわからないですが、文字列の反転というのは確かに難しい問題ですし、どう難しいのかというのを、ちょっと真面目に考えて解説してみました。というノートです。 本文での表記についてこれから文字とそのバイト表現の話をしていきます。文字のエンコードの方式で同じ数値でも色々意味が分かれてしまいますので、本文では以下のように表記することにします。 Unicodeコードポイント(以下、単にコードポイント

                                          文字列を反転させたい|nona
                                        • 実はDDDってしっくりこないんです - タオルケット体操

                                          DDD失敗パターン集 DDDという方法論それ自体に対する僕の立場はあんま好きじゃない寄りのフラット(といいつつほぼ忘れかけている)なんですが、過去何度もDDDでプロジェクトが爆死するのをみたり、爆破してしまったり……というのを見てきたので供養したいとおもいます。 メンバーの大半がDDDを知らない 「えっ!? ドメイン駆動を知らずにDDDを?」 「出来らぁっ!」 DDDを知らずにDDDをする、という前提がすでに禅問答じみてる気がしますが、たぶん一番よく見かける失敗パターンなんじゃあないでしょうか。 どういうことかというと、オニオンとかレイヤードとかクリーンなアーキテクチャのモジュールの命名ルールと構造を採用(採用できているとは言っていない)しただけの状態です。 私見ですが、アーキテクチャというのはメンバー全員がそれを理解できていない限り*1即破綻します。 理解できない人はどこに処理を書いてい

                                            実はDDDってしっくりこないんです - タオルケット体操
                                          • この10年のプログラミング言語の変化 - 西尾泰和のScrapbox

                                            @nishio: あ、そうか、10年前からあったけど10年間の間に勢力を拡大したケースがあるからあんまり厳しく切らない方がいいのか(TypeScriptの登場が2012年、Rustの登場が2010年だった)

                                              この10年のプログラミング言語の変化 - 西尾泰和のScrapbox
                                            • これだけは知っておきたいクラス設計の基礎知識

                                              JJUG CCC 2023 Spring 発表資料(ステップアップセッション)。 私がクラス設計をするときに重視している考え方とやり方を紹介。 主な内容 ・クラス設計のスキル 3段階 ・クラス設計の技能を習得するシナリオ ・7つの基礎知識 ① 入出力と計算判断 ② プログラムの中核と周辺 ③ モジュラー性 ④ データ抽象 ⑤ カプセル化 ⑥ 契約プログラミング ⑦ 不変(イミュータブル)

                                                これだけは知っておきたいクラス設計の基礎知識
                                              • TOMCAT殺害事件 - Qiita

                                                OOMKillerの殺意 顧客EC2のTomcatがアクセスの無い早朝にもかかわらずOOMKillerに突然殺されてしまったので、調査した顛末をたぶん同じような問題に直面されている方もおられるかと思いますので備忘録として記載します。 Javaヒープのチューニングにも多少役立つかと思います。 (この記事はJava8が対象となります。) OOMKillerとはOut of Memory時に、サーバ全体を守るためにメモリーを消費しているプロセスを停止するLinuxの標準機能です。 そのOOMKillerになんとTomcatが突然殺害されてしまいました。 問答無用の辻斬り状態です。 早朝ですのでアクセスログには何も記録されておらず、catalina.outには OpenJDK 64-Bit Server VM warning: Setting LargePageSizeInBytes has no

                                                  TOMCAT殺害事件 - Qiita
                                                • 「オープンソース」は壊れている

                                                  christine.websiteのブログより。 または: お金を払わない限り、有用なソフトウェアを書かないのか? 最近、重要なJavaエコシステム・パッケージに大きな脆弱性が見つかりました。この脆弱性が完全に兵器化されると、攻撃者はLDAPサーバから取得した任意のコードを実行するよう、Javaサーバを強制することができます。 <マラ> もしこれがニュースで、あなたがJavaショップで働いているなら、残念ですが、あなたには2、3日が待っています。 私は、これが「オープンソース」ソフトウェアの主要なエコシステム問題の全ての完璧な縮図だと考えています。log4j2が、この問題の最悪のシナリオの1つの完璧な例であると思うので、このすべてについていくつか考えを持っています。この問題に関与したすべての人が、現実世界の問題に対する完全に妥当な解決策のためにこれらすべてを行ったことは完全に合理的であり、

                                                    「オープンソース」は壊れている
                                                  • Twitter での 2年 · eed3si9n

                                                    2022-11-20 僕は Twitter社の Build/Bazel Migration チームでスタッフ・エンジニアとして勤務していた。信じられないような 2年の後、2022年11月17日をもって退職した (企業買収後のレイオフでも任意でもあんまり関係無いが、僕は任意退職希望のオファーを取った)。Twitter社は、切磋琢磨、多様性、そして Flock を構成する全ての人に対して溢れ出る優しさというかなり特別な文化を持った職場だった。これを間近で経験して、その一員となる機会を得たことに感謝している。(Flock は「鳥の群れ」の意で、社内での Twitter社の通称) 以下は過去2年の簡単な振り返りだ。尚本稿での情報は、既に公開されているトークやデータに基づいている。買収後、うちのチームだけでも 10名以上のメンバーが Twitter社を抜けたので、在籍・元含め LinkedIn プロ

                                                    • GitHub - google/budoux

                                                      You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

                                                        GitHub - google/budoux
                                                      • たった2つのステップを意識するだけで書けない単体テストがほぼなくなる - Qiita

                                                        はじめに この記事は レガシーコード改善ガイド: 保守開発のためのリファクタリング を参考に手を動かしてみて、ある程度自分の中で体系的にまとまった知識のアウトプットです。 この記事で扱う内容 この記事で扱うのは主にレガシーコードで単体テストを書く際のハードルになりがちな 依存関係の排除 に関する手法を紹介します。 この記事を読んだ後に、 『この観点を持っておけば単体テストをスムーズに書いていけそう!』 『今までモック使ってたけど意外とモック使わなくても書けるね!』 となったらいいな、と思います。 ちなみに、今まであんまりテスト書いたことないよーて人は以下の記事など参考にして一度やってみてください。 前提の話: この記事の本旨は「テスト書きにくいプロダクトコードも依存関係を排除すれば楽にテスト書けるよ」なので、それ設計的にアウトでは?リファクタリング耐性低くない?みたいな話は度外視してます。

                                                          たった2つのステップを意識するだけで書けない単体テストがほぼなくなる - Qiita
                                                        • オブジェクト指向宗教史

                                                          OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ 本コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。

                                                            オブジェクト指向宗教史
                                                          • 新卒1年目が荒れ果てた開発環境に1年間でCIを導入し単体テストを布教した話 - Qiita

                                                            この記事は 「Develop fun!」を体現する Works Human Intelligence Advent Calendar 2020 21日目の記事です。 昨日の記事は@sparklingbabyさんのStream API がもっとわかる記事でした。 あらすじ 私は2019年にWorks Human Intelligence(正確には分社前の会社)に新卒入社し、 19年10月からプロダクト開発部門に配属され、SETエンジニアとしてとある製品のJava開発環境の改善に取り組んでいます。 ざっくりとプロダクト開発を紹介するとこんな感じです。 3万クラス程度ある大規模Java Webアプリケーション 開発環境はEclipseを使用 開発者のOSはWindowsのみ Before 私が開発チームに参加した時点では 部門として新規開発に注力しており、足下の環境改善をやる担当者がおらず、 い

                                                              新卒1年目が荒れ果てた開発環境に1年間でCIを導入し単体テストを布教した話 - Qiita
                                                            • IntelliJ IDEAをもっと便利で使いやすく! つまずきがちな設定や、便利な機能を細かに解説します。 - エンジニアHub|Webエンジニアのキャリアを考える!

                                                              エンジニアHub > 記事一覧 > IntelliJ IDEAをもっと便利で使いやすく! つまずきがちな設定や、便利な機能を細かに解説します。 IntelliJ IDEAをもっと便利で使いやすく! つまずきがちな設定や、便利な機能を細かに解説します。 Javaの統合開発環境であるIntelliJ IDEAの人気が高まっています。興味はある方や使い始めたばかりの方に向けて、つまずきがちなポイントや、地味だけど便利な機能などを、IntelliJ IDEA関連の著作も多い今井勝信さんが紹介します。 IntelliJ IDEA(インテリジェイ・アイデア)は、JetBrainsが開発・販売しているJavaの統合開発環境(IDE)です。最初に登場したのは2001年と古く、しばらくマイナーIDEとしてひっそり存在していましたが、ここ数年で知名度も上がってきました。 近年の人気も相まって、IntelliJ

                                                                IntelliJ IDEAをもっと便利で使いやすく! つまずきがちな設定や、便利な機能を細かに解説します。 - エンジニアHub|Webエンジニアのキャリアを考える!
                                                              • より美しいコードを書くことに対する感情を失ってしまったのは衰えか成長か - まいくろ🍣きりみん

                                                                昔:感情があった 元々ぼくはきれいなコードを書くことへのモチベーションが高かった。 プログラマーになったばかりの頃にリーダブルコードを読んで感動したというのもあるし、ちょうどその頃DDD原理主義みたいなものが流行ってて、はてブのITタブにはきれいなコードを書くためのコーディング規約やテクニックに関するブログエントリやLT資料がたくさん流れていた。 最初にAndroidの大規模プロジェクトに関わった時は、元々のコードがかなりひどかった(初めてJavaを書く人達だけで書いたとしか思えない、現代ではおおよそあり得ないようなレベル)ため、リファクタリングをすることに非常に意義もやりがいも感じたし、どうせきれいにするのならばと張り切って出来るだけリーダブルなコードを書こうとした。 その後チームにgit化の波が訪れ(自分が推進したんだが)PRによるコードレビューなるものもやるようになった。 意識が高か

                                                                  より美しいコードを書くことに対する感情を失ってしまったのは衰えか成長か - まいくろ🍣きりみん
                                                                • 現代のオブジェクト指向の class の割れ窓化と宣言的プログラミング

                                                                  オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだの Hatena の件。基本的には同意。ただちょっと切り口が違うので自分の意見を言っておく。ただ、このテーマで何度か書こうとして失敗していて、今回も成功しているとはいえない。 宣言的プログラミングの時代 現代の主流は「宣言的プログラミング」であると思っている。これはリソースの宣言と、その状態遷移の手続きや振る舞いの付与が中心にある。 宣言型プログラミング - Wikipedia その代表的な例がフロントエンドの React と、バックエンドの k8s で、どちらも時系列に基づいた状態の宣言と、フレームワーク側による状態遷移処理、 Reconcillation(調停) が基礎にある。 フロントエンドとバックエンドという両極端な世界で、この変化が起きたのがこの時代を反映したものであると思う。 例えば、jQuer

                                                                    現代のオブジェクト指向の class の割れ窓化と宣言的プログラミング
                                                                  • 継承はなんでダメ? - まめめも

                                                                    「オブジェクト指向の継承を使うな」という主張が広まっているようです。なんでダメになったんでしょうか。 インターネットで見かけた「継承はダメ」という主張をいくつか眺めて、友人と議論しつつ、考えてみました。 「コードが読みにくくなる」 継承があると、メソッド呼び出しが実際にどのメソッド定義を呼び出すのか字面でわからない。 デバッガを使って、親クラスのメソッドに飛んだり、子クラスに飛んだりするのを追いかけないと行けない。 つらい。という主張。 めっちゃわかる。わかるんですが、これは「高度に共通化されたコードは読みにくい」という一般的な側面がかなり大きいような。 たとえば継承の代わりに高階関数を使うと、関数呼び出しがどのクロージャに飛ぶか字面でわからなくなる。 ひどいとコールバック地獄になって何が何やらになります。 継承がことさらにまずい理由を想像すると、すべてのメソッド呼び出しがポリモーフィック

                                                                      継承はなんでダメ? - まめめも
                                                                    • マイクロソフトが無償でJavaの長期サポートを提供へ、「Microsoft Build of OpenJDK」をリリース

                                                                      マイクロソフトが無償でJavaの長期サポートを提供へ、「Microsoft Build of OpenJDK」をリリース マイクロソフトは同社独自のOpenJDKディストリビューションとなる「Microsoft Build of OpenJDK」のプレビューリリースを発表しました。 Say hello to Microsoft Build of #OpenJDK! New Long-Term Support distribution of @OpenJDK for your @Java workloads, in the #Cloud and everywhere else! Visit https://t.co/VPM63V5M2H to learn more. pic.twitter.com/8MBIFu1PF5 — Java at Microsoft (@JavaAtMicrosof

                                                                        マイクロソフトが無償でJavaの長期サポートを提供へ、「Microsoft Build of OpenJDK」をリリース
                                                                      • 『プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書』は書名に偽りのない、全部入りの1冊 - Magnolia Tech

                                                                        プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書 作者:きしだ なおき,山本 裕介,杉山 貴章技術評論社Amazon 予約していたので、早速届きました。 Javaを使ってプログラミングを学ぼうとする人は、とりあえずこれ買っておけばいいんじゃね?っていう全部入りの1冊ですね。 JDKのインストールから、IDE/REPLの使い方、基本的な文法、エラーメッセージの読み方、オブジェクト指向、関数型プログラミング、各種ツールチェーン(ユニットテスト、ビルドツール、バージョン管理)と、全部入りの全部入り。 全般的に単なる文法の解説に終始せず、初学者がつまづきやすいところにページを割いているところが良くて、特に「最初からIDEを使う」と、「エラーが出ることと、その読み方を最初から書いていること」、「理解が難しそうな”ループ”の概念にフォーカスしていること」あたりは、上手

                                                                          『プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書』は書名に偽りのない、全部入りの1冊 - Magnolia Tech
                                                                        • Google Best Practices for Java Libraries

                                                                          Google Best Practices for Java Libraries Google Best Practices for Java Libraries are rules that minimize problems for consumers of interconnected Java libraries. These practices come from decades of aggregated experience in maintaining open source Java libraries and are informed by many hard-learned lessons from mistakes that have been made. We have found that following these rules results in hig

                                                                          • JavaプログラマーのためのGo言語入門 | フューチャー技術ブログ

                                                                            JavaプログラマーのためのGo言語入門こちらはJava to Go in-depth tutorialの日本語訳です 原文の著者に許諾を得て翻訳・公開いたします。 このチュートリアルは、JavaプログラマーがすばやくGo言語にキャッチアップできるようにすることを目的としています。 目次 Hello stack 主な違い シンタックス(文法) 定数 構造体 ポインタ スライス 値の作成 メソッドとインターフェース エラー PanicとRecover ゴルーチンとチャネル Hello server Hello stack 1まずはじめに簡単な例を見ていきましょう。この例ではシンプルな抽象データ型をGoで実装しています。 // collectionパッケージはstring型を格納できるスタックを実装している package collection // Stackのゼロ値はすぐに使用できる空のス

                                                                              JavaプログラマーのためのGo言語入門 | フューチャー技術ブログ
                                                                            • プログラミング言語へのMicrosoftの影響力がヤバい - きしだのHatena

                                                                              Tiobe indexを眺めながら、C#とVBが入っていてMicrosoftは強いなーと思ったのだけど、よくみると他の言語もMicrosoftの影響力すごいのではとなったので調べてみた。 https://www.tiobe.com/tiobe-index/ Python 例えば1位のPythonにMicrosoftはかなり力をいれている。象徴的なのが、Pythonのオリジナル開発者の入社 C/C++ Windows上でのC/C++コンパイラではMS C/C++が圧倒的シェアであるし、C++の標準化団体にMicrosoftはGold Memberとして参加している。 https://isocpp.org/about Java 4位のJavaに関してもかなりリソースは割いているわけですが、全体の影響度としてそこまで大きくはないですね。 昨日のブログにも書いたようにOpenJDKビルドを出してい

                                                                                プログラミング言語へのMicrosoftの影響力がヤバい - きしだのHatena
                                                                              • セキュリティツールの評価は難しい - knqyf263's blog

                                                                                前から思ってたことをちょっと書かずにいられなくなったのでポエムを書きました。 背景 問題 検知している方が正しいように見えがち 条件を揃えるのが難しい 環境の再現が難しい 検知数が多い方が良さそうに見える 正解かどうかの判断が難しい カバー範囲の正確な見極めが難しい 検知されないほうが嬉しい まとめ 背景 お前誰だよってなるかもしれないので書いておくと、Trivyという脆弱性スキャナーのメンテナをやっています。 github.com とある有名な方による以下のツイートがありました。 I just discovered, during @cloudflare #SecurityWeek no less, that Trivy (the vuln scanner) doesn't detect known issues in Alpine images. Including a critica

                                                                                  セキュリティツールの評価は難しい - knqyf263's blog
                                                                                • タイムスタンプの精度を落とすときは切り捨てろ - methaneのブログ

                                                                                  とあるプロジェクトでナノ秒からミリ秒への変換で四捨五入してきた人がいて、時刻を扱うときは保存精度未満は切り捨てるべきというのが常識になっていないなーと思ったので。 2023-10-01 を、何年か表示する時に、2024年に丸める人はいないだろう。 13:45 が何時か表示する時も、13時と表示するだろう。(口頭で何時?と聞かれたら14時と答えるかもしれないけれど) つまり、ある精度で表した時刻は、実際には次のような半開区間を示しているのである。 2023-01-01 00:00:00 <= 2023年 < 2024-01-01 00:00:00 13:45:00.000 <= 13:45 < 13:46:00.000 そして、そう決めたからには一貫して同じように、指定精度未満は切り捨てというルールを維持しなければならない。秒以下は四捨五入で、とかやってはいけないのだ。 一貫しないと何が問題

                                                                                    タイムスタンプの精度を落とすときは切り捨てろ - methaneのブログ