Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
クラスまたはインタフェースはsealedと宣言されている場合があります。これは特定のクラスやインタフェースの集合だけがそれを直接拡張できることを意味します。 sealed interface Shape permits Circle, Rectangle { ... } これは Shape と呼ばれる Sealed インタフェースを宣言します。permits リストは、Circle と Rectangle だけが Shape を実装できることを意味しています。(場合によっては、コンパイラが permits 句を推論できるかもしれません)。 Shape を拡張しようとする他のクラスやインタフェースは、コンパイルエラーを受けます(または、Shape をスーパータイプとして宣言しているラベル外のクラスファイルを生成しようとした場合は、実行時エラーとなります)。 私たちは、final クラスを介し
このようなコンピューティングにおける新しい異種デバイスの中には、マルチコアCPU、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)などがあります。多様性はすばらしいことですが、これら新しいデバイスを効率的にプログラムする方法が必要です。 その最たるものとして挙げられるのが、ヘテロジニアス(異種)プログラミング言語の代表格である、CUDAとOpenCLの2つです。しかしこれらの言語では、APIに低レベルな機能が現れているため、専門家でないユーザが使うには非常に難しいものになっています。その例として、OpenCL 3.0標準の中から次の一節を引用してご紹介しましょう。 OpenCLが対象とするのは、ポータブルかつ効率的なコードの記述を望む専門的プログラマです。[...] 従ってOpenCLでは、低レベルのハードウ
参照カウントは、オブジェクト毎のメタデータをプログラム実行に沿って(例えば、参照タイプのフィールドに新たな値を設定する時に)更新することで動作します。メタデータ更新に必要な処理はアプリケーションスレッドで行われるので、独立したアクティビティとして明確に分離することはできません。 実践的なGCアルゴリズムはGC roots — 有効(live)であることが分かっているオブジェクトのセット — から始まり、ポインタを追って有効なオブジェクトをすべて決定することで進行します。 このようなトレーシングコレクタ(tracing collector)では、グラフ理論アルゴリズムを実装することによって、ヒープメモリを有効なものと再利用可能(reclaimable)なものとに分割します。 現代的なGCの文脈においては、コンカレント(concurrent)とパラレル(parallel)が、いずれもコレクショ
原文(投稿日:2020/05/19)へのリンク 新ライブラリのHegelは、JavaScriptで高度な静的型チェックを実現しようという試みだ。強い型推測と完全な型システムを提供するという。現在はまだアルファ版だが、専用のオンライン・プレイグラウンドで動作を確かめることができる。 Hegelは型アノテーションを備えたJavaScript用の型チェッカである。TypeScriptの場合のように、新たなプログラム言語構造を学ぶ必要はないが、アノテーション記法についての学習は必要だ。Hegelは強い、完全な型システム(Sound File System)を使うことで、実行時の型エラーを防止する。 const numbers: Array<number> = []; // HegelError: Type "Array<number>" is incompatible with type "Arr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く