タグ

knj2918のブックマーク (31,526)

  • Javaの例外処理を正しく理解する — 検査例外・非検査例外・throwsの使いどころ - Qiita

    はじめに Javaを学び始めると、例外処理は早い段階でつまずきやすいテーマのひとつです。 「とりあえず try-catch で囲めばいい」「throws Exception と書けばコンパイルが通る」という理解のまま進んでしまうと、バグの原因に気づきにくいコードになってしまうことがあります。 この記事では、例外処理を基礎から理解したい方に向けて、なぜそう書いてはいけないのかを、検査例外・非検査例外の違い、throws の正しい使いどころ、やってはいけないアンチパターンまで、順を追って解説します。 例外の全体像 まず、Javaの例外クラスの階層を把握しましょう。 Throwable ├── Error ← JVMレベルの深刻なエラー(基的に対処不可) │ ├── OutOfMemoryError │ └── StackOverflowError │ └── Exception ← プログラ

  • 5年間で凝り固まったRDB脳をNoSQLに順応させる〜DynamoDB入門〜 - Qiita

    概要 筆者はエンジニアになって5年間ずっとRDB(リレーショナルデータベース)のMySQL(MariaDB)やPostgreSQLを使ってきました。 この度転職をきっかけにNoSQL(非リレーショナルデータベース)のDynamoDBを使う事になりました。 DB周り以外にも技術領域やプロダクトが大幅に変わりましたが、転職1か月弱でDB周りがかなりしんどい状態だったので、苦しみのおすそ分けと、同じ境遇の同志へのエールの意味も込めてRDB → NoSQLの差分やDynamoDBの入門的な知識をざっくばらんにまとめます。 サクッとDynamoDBについて学ぶなら記事より下記の記事がおすすめです。 注意 記載内容はあくまで筆者の所感です。 間違えている箇所もあるかもしれません。ご注意ください。 RDBを知ってる人がNoSQLの雰囲気や概念を掴むために書きました。 厳密に言うと違う部分や正しい設計で

    5年間で凝り固まったRDB脳をNoSQLに順応させる〜DynamoDB入門〜 - Qiita
  • 「データセンター」の中ってどうなってるの? 潜入して分かった、生成AIを支える「冷却技術の進化」

    「データセンター」の中ってどうなってるの? 潜入して分かった、生成AIを支える「冷却技術の進化」(1/2 ページ) データセンターが集積していることから“データセンター銀座”と呼ばれる千葉県印西市で、新たなデータセンター「NRT14」が4月8日に稼働した。生成AIに代表されるAI向けインフラの需要を取り込むために、高度な計算処理に対応できる冷却・電源設備を備えている。三菱商事と世界に300以上のデータセンターを保有する米Digital Realtyとの合弁会社MCデジタル・リアルティ(以下、MCDR)が運営する。 AI用インフラは、従来のITインフラと設計や運用方法が異なる。特に、AI処理に適したチップは発熱しやすく、冷却に多くの電力を消費する。NRT14は、約25メガワットの電源容量を備えており、これは一般家庭5000~8000世帯の最大消費電力に相当する(電力会社の電気料金プランを基に

    「データセンター」の中ってどうなってるの? 潜入して分かった、生成AIを支える「冷却技術の進化」
  • もっと早く買えばよかった!! デスクワークの肩こり対策にマッサージガンを使ったら気持ちよすぎてクセになった件 【テレワークグッズ・ミニレビュー 第159回】

    もっと早く買えばよかった!! デスクワークの肩こり対策にマッサージガンを使ったら気持ちよすぎてクセになった件 【テレワークグッズ・ミニレビュー 第159回】
  • 「QAって何?」の認識を揃えたら、PdMもデザイナーもコードを書くチームになった話 - Qiita

    こんにちは!株式会社Schoo(以後スクー)の @hiroto_0411 です。エンジニアをしています。メインの業務はバックエンド開発ですが、QA専任者が不在のチームでQAリーダーも兼任しています。 「QAって具体的に何をするんだっけ?」「POレビューとの違いは?」「そもそも誰がやるもの?」かつて私たちのチームでは、QAに対する認識が人によってバラバラで、ふわっとしたまま開発が進んでいました。その課題と向き合った結果、チーム全員が品質に向き合い、それぞれの強みを活かして品質を磨き込むQAフローが出来上がったので、そのチーム状態になるまでの取り組みをお届けします。 この記事で分かること QA専任者がいない中でどのように品質と開発速度を両立させたか 職能を超えて品質を磨き込むチームになるまでの過程 所属するチームの文化 QAフローを考える上でチームの特性にあったフローを選択することが大切だと思

  • "再発明された車輪"をメンテナンスする羽目になったお話 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに エンジニアの世界では「車輪の再発明」1を避けるべきだという格言があります。しかし、保守では、稀に出くわすことがあります。 今回は、独自実装に苦戦させられた経験をお話できればと思います。 独自実装という名の「負債」 私が保守を担当したのは、Javaで構築されたシステムの保守でした。当時としても徐々にレガシー化が進んでいた構成でしたが、ソースコードを読み進める中で奇妙なクラスに遭遇します。 それは、標準的なライブラリ(JSONICやJackson、Gsonなど)を使わず、文字列操作を組み合わせて構築された独自実装のJSON解析処理

  • DI教えようとしたら難しすぎたので整理した - Qiita

    この記事の目的 Dependency Injection(DI)の基的な考え方と必要性を、具体例(決済処理)を通して理解することを目的としています。 「なぜDIが必要なのか」「使うと何が良くなるのか」 を、実務でイメージできるレベルで理解できる状態を目指します! 対象者 DIという言葉は聞いたことがあるが、よく分かっていない方 クラス設計で「とりあえず new している」状態の方 外部サービス(APIなど)を使った実装で設計に悩んでいる方 テストしづらいコードに課題を感じている方 オブジェクト指向や設計の理解を深めたいエンジニア Dependency Injection(依存注入)とは? 設計手法の一つで、簡潔に言えば クラスが依存するオブジェクトを自身で生成せずに、外部から注入する設計手法 です。(これだけじゃ分かりづらいので、具体例で説明します) もうちょい詳細に! ビジネスロジック

    DI教えようとしたら難しすぎたので整理した - Qiita
  • 布製ならば、だいたいショルダーバッグ化。金属リング「Snatch」がおもしろい

    布製ならば、だいたいショルダーバッグ化。金属リング「Snatch」がおもしろい2026.04.09 23:0088,860 ハル 2026年3月17日の記事を編集して再掲載しています。 たまたま見つけたこの謎の金属リング。一見ガジェットのようなこちらは「Snatch(スナッチ)」(日での購入価格は税込11,000円)。あらゆる布バッグを“斜めがけ化”できるアイデア商品です。 便利そうだし、何より見た目がかっこいいので、期間限定のポップアップで買ってみました。 あのストレスから解放されたPhoto: ハルたとえば、トートバッグ。自転車に乗るときや、重い荷物が入っているとき、肩からずり落ちてくるのが地味にストレスでした。そういう「斜めがけできたら楽なのに」と思うバッグこそ、Snatchの出番。バッグの布地をSnatchで固定することで、ショルダーストラップを後付けできるんです。 Photo:

    布製ならば、だいたいショルダーバッグ化。金属リング「Snatch」がおもしろい
  • PMが本来やるべき仕事の時間を取り戻す — Claude Codeで変わった3つのPM業務

    1. はじめに Claude Code、使っていますか? 「エンジニア向けのツールでしょ?」と思っていた時期が、私にもありました。 でも実際に触ってみて気づいたんです。私にとってのClaude Codeは、エンジニア向けツールというより、PM業務の前後にある“重い作業”を減らすための道具 だったと。 半信半疑で使い始めてみたら、PM(プロダクトマネージャー)の仕事が 質も速度も 変わりました。 この記事では、PMの私がClaude Codeを使いこなして変わった 3つの仕事 を紹介します。 目指すのは「速いだけ」のAI活用ではなく、質と速度を両立しながら、PM来の仕事に時間を取り戻す ワークフローです。 2. Claude Codeとは Claude Codeは、Anthropic(Claude開発元)公式のAIアシスタントツールです。 ターミナルで動きますが、自分でコードを書かなくても

    PMが本来やるべき仕事の時間を取り戻す — Claude Codeで変わった3つのPM業務
  • 今、このタイミングで私が Jujutsu 本を書かずにはいられなかった理由 - くるみ割り書房

    構想 2ヶ月、制作 1ヶ月。 最初の出会いは今年 1 月初旬。タイムラインに「Jujutsu」という見慣れない変な名前のバージョン管理システムを紹介する記事が、いくつか流れてきたのに目が止まりました。 折しも前年 2025 年 8 月から Claude の Max プランを契約、10 月に Haiku 4.5 が出たあたりから AI エージェントにコーディングのほとんどを任せるようになっていたのですが、どうも従来の Git のワークフローとの軋轢を感じていた時期。 AI が次々と書き上げてくるコードを逐一 add して commit してがまどろっこしい。AI によって試行錯誤のコストが劇的に下がってるのに、とりあえずやってダメだったら捨てるの繰り返しが Git の慎重さに足を引っ張られる。 それで commit するのをさぼって AI に次の指示を与えたら、「そうじゃないだろ」的な変更で

    今、このタイミングで私が Jujutsu 本を書かずにはいられなかった理由 - くるみ割り書房
  • オブジェクトストレージ ファイル書き込み時の整合性チェック仕様変更についてのお知らせ

    2025年4月に掲載させていただきました一部のAWS CLI/SDKご利用時に不具合が生じる事象についてのお知らせの通り、オブジェクトストレージにおいて不具合が生じるリクエストはエラーを返答し利用を制限する対応を行なっておりましたが、問題が解消したことにより日にて制限を解除させていただきました。 なお、今回の解除作業に伴い、ファイル書き込み時にAWS CLI/SDKにて指定するチェックサムのアルゴリズムにより、以下のような挙動となります。 ・MD5の場合: 整合性チェックを行い、不整合があった場合はエラーを返します。 ・MD5以外の場合: 整合性チェックは行いません。実際の不整合の有無にかかわらず、常に正常判定として応答します。 ※データ整合性チェックを必要とされる利用においては、MD5に対応したバージョンのSDKをご利用ください。 詳細についてはオブジェクトストレージ APIのページを

    オブジェクトストレージ ファイル書き込み時の整合性チェック仕様変更についてのお知らせ
  • 【t_wadaさんの持つ現在の答え】AI疲れとの向き合い方 / "ジュニア不要論"の本質 / "エンジニア育成"の解法 / ”バイブコーディング”は正義か悪か / ”チーム開発"はモブプロで解決

    チャンネル登録、高評価、コメントよろしくお願いします🙇 ▼ゲスト ・和田卓人 | プログラマ、テスト駆動開発者 学生時代にソフトウェア工学を学び、オブジェクト指向分析/設計に傾倒。執筆活動や講演、ハンズオンイベントなどを通じてテスト駆動開発を広めようと努力している。 『プログラマが知るべき97のこと』(オライリージャパン、2010)監修。『テスト駆動開発』(オーム社、2017)翻訳。『事業をエンジニアリングする技術者たち』(ラムダノート、2022)編者。『SQLアンチパターン第2版』(オライリージャパン、2025)監訳。テストライブラリ power-assert-js 作者。 X: https://x.com/t_wada GitHub: @twada Bluesky: @twada ▼MC 蜂須賀 大貴 | テクノロジーメディア「Newbee」代表 メディア・エンタメにずっ

    【t_wadaさんの持つ現在の答え】AI疲れとの向き合い方 / "ジュニア不要論"の本質 / "エンジニア育成"の解法 / ”バイブコーディング”は正義か悪か / ”チーム開発"はモブプロで解決
  • 開発現場のエンジニアが語る、AI活用のリアルとこれからのエンジニア像 - stmn tech blog

    AIツールの進化が加速するなか、エンジニア仕事はどう変わっているのか。日々の開発でAIを使い続けるエンジニア3名に、活用の実態から失敗談、半年後の開発スタイルの展望まで、音で語ってもらいました。 登場人物 名前 役割 あさしん(@asashin227)(写真右下) 名古屋プロダクト部のエンジニアリングマネージャー。仕事でもプライベートでもAIをうまく使う方法を常に模索中。エンジニア以外でもAIを使えるようにスタメン内でのハンズオンやAIもくもく会を運営しています おしん(@38Punkd)(写真左下) iOS開発を得意とするエンジニアAIを使って積極的にAndroidやWeb技術にチャレンジ中。プライベートではAIでインフラ中心のエンジニアをしている いが(@cochumo)(写真真ん中) フロントエンドを専門領域としているエンジニアAIを使ってバックエンド開発にも軸足を伸ばしてい

    開発現場のエンジニアが語る、AI活用のリアルとこれからのエンジニア像 - stmn tech blog
  • Reactのレンダリングの仕組みを整理する - Qiita

    前回と前々回で、Reactにおける state と ref について整理してきました。 state は、画面に反映したい値を持つもの ref は、再レンダリングを発生させずに値やDOMを保持するもの この2つを整理すると、 「そもそもReactのレンダリングとは何をしているのか」 という点が気になります。 そのため今回は、Reactのレンダリングについて、整理しようと思います。 1. レンダリングとは何か Reactにおけるレンダリングとは、Reactがコンポーネントを実行し、次にどのようなUIを表示するかを計算することです。 ここで最初に押さえておきたいのは、レンダリングと実際の画面更新は同じ意味ではないという点です。 Reactの更新は大きく2つのフェーズに分かれます。 レンダリング — コンポーネントを実行して、次に表示したいUIを計算する コミット — 計算結果をもとに、必要な変更

  • 初心者こそ知っておきたい「単一責任の原則」 - Qiita

    プログラミングを始めたばかりの頃って、 「動けばいいや!」と勢いでコードを書きがちですよね。 でも、あとで読み返すと、 どこを直せばいいのか分からない 1行変えたら別の場所が壊れた クラスが巨大化して手がつけられない こんな経験、ありませんか。 そんな“未来の自分を助ける”ための考え方として、 単一責任の原則(Single Responsibility Principle / SRP) というものがあります。 単一責任の原則って何? ざっくり言うと、 「1つのクラス(またはメソッド)は、1つの責任だけを持つべき」 という考え方です。 もっと噛み砕くと、 1つのクラスにいろんな役割を詰め込まない 1つのメソッドに“あれもこれも”やらせない 1つの変更理由しか持たないようにする ということです。 なんでそんなに大事なの? 初心者のうちは「別に1クラスで全部書いても動くし…」と思うかもしれません

  • 脱・セキュリティ初心者。現場の信頼を勝ち取るための「3つの原則」と「1つの習慣」 - Qiita

    「コードさえ書ければOK」だと思っていませんか?実は僕もそうでした。 でも、技術以前に「信頼」を守るセキュリティ意識も非常に大切です。 エンジニア未経験の方々が、最初の一歩で躓かないための「守りの質」を、社内の情報セキュリティを守る活動もしている私の経験を交えて共有します。 はじめに 「セキュリティ? ああ、ウイルス対策ソフトを入れておけば大丈夫でしょ」 「そもそも、僕みたいな新人の書くコードを誰が狙うっていうんだ」 エンジニアになりたての頃、僕は気でそう思っていました。プログラミング言語の構文を覚えるのに必死で、セキュリティなんて「すごいエンジニアがどこか遠い場所でやってくれていること」だと思い込んでいました。 でも、その考えは大きな間違いでした。現代のサイバー攻撃は、特定の有名人を狙うだけではなく、システムの「隙」を探して無差別に襲いかかってきます。 一度情報が漏れてしまえば、どれ

  • 【35歳未経験でも理解できた】SPAへの進化 - Qiita

    「会議の紙資料」で例えるSPAの仕組み 〜もう全ページ印刷し直さない〜 こんにちは! 35歳、未経験からWebエンジニアの道を歩み始めた者です。 さて、みなさんは普段スマホでSNSを見ているとき、「いいね」を押しても画面が真っ白にならずにサクサク動くのを当たり前に感じていませんか? もし「いいね」を1回押すたびに、画面全体が真っ白になってイチから読み込み直されたら……想像するだけで「よくないね」になりますよね。 今回は、今のWebアプリが当たり前のようにサクサク動く裏側にある 「SPA(シングルページアプリケーション)」という技術について、働く人なら誰もが共感するであろう「会議の紙資料」に例えてスッキリ解説します! この記事はこんな人におすすめ 「SPA」という言葉を初めて聞いた、Webの仕組みが分からない方 「Fetch」や「Promise」といった専門用語が並ぶと、ページを閉じたくなる

  • ローカル環境のS3をlocalstackからRustFSへ - Qiita

    結論 タイトル通りlocalstackからRustFSへ変更しました 目的 localstackの無料版でも認証トークン必須となったのでローカル環境のS3を変更する 何に変更するか 最初にMinIOが浮かんだのですがここ最近、利用することがなかったので調査 このタイミングで知りましたがソースのみの配布となりコンテナ利用がひと手間かかるので却下 調べた所、RustFSが良さそうと思い試してみました RustFSを試してみる 公式のこちらを参考にcompose.ymlを変更。 volumes: test-rustfs-data: services: test-rustfs: image: rustfs/rustfs:latest container_name: test-rustfs ports: - 9000:9000 - 9001:9001 environment: - RUSTFS_AD

  • 「なぜこの言語で開発するの?」と聞かれた時に、納得してもらう説明の方法 - Qiita

    (異論は受け付けます(笑)これはあくまで筆者の経験に基づく見解です) どの言語にも長所と注意点があります。完璧な言語は存在しません。 だからこそ、「今回の前提条件では、どれが一番合っているのか」 を、相手の立場に立って説明できるかが勝負です。 上司に聞かれたらこう答えよう → そのまま使える説明テンプレート ここまで読んで「なるほど、考え方はわかった。で、実際にどう言えばいいの?」と思った方のために、そのまま使えるテンプレートを置いておきます。 説明テンプレート(1〜2分で落ち着いて話せる量) 今回の開発では、性能やトレンドだけでなく、長期運用と組織へのフィットを重視して技術選定を行いました。 [選んだ言語] は [その言語の実績・シェア] があり、[具体的なプロダクト例] など長く運用されている実績も多い技術です。 エンジニア人口が多く採用や引き継ぎのリスクが低いこと、[言語の得意領域]

    「なぜこの言語で開発するの?」と聞かれた時に、納得してもらう説明の方法 - Qiita
  • C# / .NETで始める依存性注入(DI) - Qiita

    C# や .NET を触っていると、DI(依存性注入)という言葉をどこかで必ず耳にします。 ただ、実際のところはどうでしょう。 コンストラクタでインターフェースを受け取っているけど、理由はよく分からない DI コンテナって便利らしいけど、何が嬉しいのかピンとこない ASP.NET Core では勝手に動いてるけど、仕組みを理解してるかと言われると微妙 こんな感覚を持っている人は意外と多いんです。 でも DI は、特定のフレームワークの機能ではありません。 もっと根っこの部分にある、“設計を柔らかくするための考え方” です。 コンソールアプリでも、ライブラリでも、WPF でも、Unity でも、.NET であればどこでも活かせます。 この記事では、 「DI を使うと何が変わるのか」 「どう書けば実務で役立つのか」 を、できるだけ肩の力を抜いて話していきます。 1. DI が解決したい問題は「