タグ

ブックマーク / www.infoq.com (53)

  • Swift 5.3リリース - 新しい言語機能、開発者エクスペリエンスの向上、パフォーマンス改善

    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が最近リリースされ、重要な変...

    Swift 5.3リリース - 新しい言語機能、開発者エクスペリエンスの向上、パフォーマンス改善
  • Googleが新しいJavaロギングFrameworkをリリース

    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が最近リリースされ、重要な変...

    Googleが新しいJavaロギングFrameworkをリリース
  • GithubエンジニアリングがMySQL高可用性のために新しいアーキテクチャを採用

    「FinOps、アプリケーション単位の経済性、クラウドコストの最適化について、ロワ・ラヴホン氏語る」 このエピソードでは、Finoutの共同設立者兼CEOであるRoi Ravhon氏が、InfoQポッドキャストの共同ホストであるDaniel Bryant氏と対談し、FinOpsの出現と業界の採用について議論した。この対談では、FinOpsを採用するメリット、クラウド・コストについてもっと知りたいと考えている組織の典型的な道のり、実装を成功させるために必要な様々な文化やツールといったトピックが取り上...

    GithubエンジニアリングがMySQL高可用性のために新しいアーキテクチャを採用
  • 私がMVCフレームワークをもはや使わない理由

    数ヶ月前、私はなぜここにたどり着き、何が可能かを理解する旅に出ました。この旅は、私にアプリケーションアーキテクチャ、MVCという強烈な宗教に対する疑いをもたらしました。そして、リアクティブ、関数型プログラミングの真の実力に触れたのです。また、シンプルさに集中する旅でもあり、私たちの産業はうまくやっているという考えを捨てる旅でもありました。どんなことを見つけたか興味がある方もいるでしょう。 私たちの見ている画面の背後にあるパターンはMVC –Model-View-Controllerです。まだウェブがなくソフトウエアアーキテクチャも分厚いクライアントが単一のデータベースに原始的なネットワークでアクセスするのがせいぜい、という時代にMVCは生まれました。そして数十年後、MVCはまだ現役であり、衰え知らずでオムニチャネルアプリケーションの開発に使われています。 Angular2のリリースの前にM

    私がMVCフレームワークをもはや使わない理由
  • Swiftにおけるプロトコル指向プログラミング

    WWDCにて、C++/Boostで知られ、現在はAppleSwift Standard Libraryグループのリーダを務めるDave Abrahams氏が、Swiftをプロトコル指向言語として紹介し、プロトコルがコード改善にどう使えるのか説明した。 プロトコル指向プログラミングというのは、OOP(オブジェクト指向プログラミング)のパラダイムの一つで(注:Abrahams氏はそうは言っていないとのこと)、クラスよりもプロトコル(インターフェイスに相当)と構造体の利用を好んでいる。 クラスは素晴らしい? OOPで知られているように、クラスは以下を提供するのに使われる。 カプセル化 アクセス制御 抽象化 名前空間 表現力 拡張性 実のところ、これらはすべて型の特性であり、クラスは型を実装する一つの方法にすぎないとAbrahams氏は言う。だが、クラスはプログラマに多大な犠牲を強い、次のような

    Swiftにおけるプロトコル指向プログラミング
  • ParseがRubyからGoへ移行,信頼性が大きく向上

    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が最近リリースされ、重要な変...

    ParseがRubyからGoへ移行,信頼性が大きく向上
  • iOSで継続的デプロイメントを実現するfastlane

    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が最近リリースされ、重要な変...

    iOSで継続的デプロイメントを実現するfastlane
  • bitlyでの分散システム構築から学んだこと

    5月に開催されたBacon Conferenceで,bitlyのアプリケーション開発リーダのSean O’Connor氏は,毎月600億クリックを処理する分散システムの開発を通じてbitlyの開発者たちが学んだ,最も価値ある教訓について説明した。 分散システムとは何か? 分散システムを定義する3大特性は,氏によれば,Wikipediaで簡単に見付けることができる。 コンポーネントノードの真の並行性。これによってノード間の同調に関連するコストと複雑性が発生する。 共通クロックの不在。このため,異なるノードで発生したイベントを時間順に並べることは不可能になる。 障害の独立性。これはノード障害がシステム内の他のノードに影響を与えない,という能力として理解されるべきだ。 従って分散システムの構築では,これらの特性を扱うことを目標にする必要がある。 ただし氏の意見として,システムの分散的特性に起因す

    bitlyでの分散システム構築から学んだこと
  • Facebook の決断:MVCはスケールしない。ならば Flux だ。

    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が最近リリースされ、重要な変...

    Facebook の決断:MVCはスケールしない。ならば Flux だ。
  • Facebookが新しいNoSQLであるApolloを発表

    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が最近リリースされ、重要な変...

    Facebookが新しいNoSQLであるApolloを発表
  • APIファーストのWebフレームワークSynthを巡るコミュニティの困惑

    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が最近リリースされ、重要な変...

    APIファーストのWebフレームワークSynthを巡るコミュニティの困惑
  • ハイパーメディアAPIをめぐるREST主義者的危機

    ソフトウェア開発者のEvan Cordell氏は数週間前のAPI-Craftメールリストで,ハイパーメディアのREST制約は一般的なWeb API要件とどのように違うのか,という議論の口火を切った。 "REST主義者的危機(RESTistential crisis)"と題した論議の中で氏は,長年の議論と実践によってRESTスタイル最大の秘密,ハイパーメディア制約が明確になり始めたことを指摘している。Webでも明らかなように,人間中心のインタラクションには完璧に対応しているが,その一方でプログラマブルなWeb API一般においては,有用性に対する懸念がWeb APIコミュニティの中で増しつつあるようなのだ。 RESTに関する説明,ドメイン特有のWeb APIに適用した場合のハイパーメディアの制限,といった話題から始まった今回の議論では,新たなアーキテクチャスタイルの必要性の検討や,RESTを

    ハイパーメディアAPIをめぐるREST主義者的危機
  • Java 8 ローンチ Q&A

    Java 8は,長年に渡って最も待望されていた,プログラム言語のアップデートのひとつだ。今回のリリースでは日付APIやストリームAPI,ラムダ式といった新機能が導入される一方で,PermGenが廃止されるなど,総合的に見て望ましい方向の改良が行われている。我々はリリースの詳細を知るため,Java Platformグループでソフトウェア開発を担当する,Oracle VPのGeorges Saab氏に話を聞いた。 InfoQ: ラムダプロジェクトの経緯に詳しくない読者のために,今回導入される実装がどのようなものか,簡単に説明して頂けますか? 言語とVMとライブラリがすべて協調して関与するような改良は,今回が初めてではないかと思うのですが。 過去のリリースで実現された言語機能のほとんどは,その3つの領域のいずれかひとつだけに影響するものでした。あるいはメジャーリリースを機会として,それぞれの領域

    Java 8 ローンチ Q&A
  • RESTアンチパターン

    多くの人々にとって、RESTは単純にあるアプリケーションの機能を公開するためにHTTPを使用することを意味します。基的で最も重要なオペレーション (厳密に言えば、「動詞」や「メソッド」がより良い表現です)は、HTTPのGETです。GETはURIによって特定されるリソース表現が必要です。しかし、多くの場合、それがすべてではないとしても、既存のHTTPライブラリやサーバープログラミングAPIは、リソースの識別子としてではなくパラメータをエンコードするための便利な手段として見ることがとても多いです。結果、以下のようなURLとなります。: http://example.com/some-api?method=deleteCustomer&id=1234 実際、URLを作る人は、与えられたシステムの「RESTful具合」について何も言いません。しかし、私たちは特定の場合においてGETが「安全」では

    RESTアンチパターン
  • GoogleのJavaコーディング規約

    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が最近リリースされ、重要な変...

    GoogleのJavaコーディング規約
  • 複数プロバイダの認証処理をシンプルにするOAuth.io

    OAuth.ioは,80以上のOAuthプロバイダにインターフェースするAPIであり,サービスである。今回の記事では,共同創設者のMehdi Medjaoui氏とのインタビューを通じて,セキュリティやライセンスなどの詳細,今後の開発計画などについて紹介する。 OAuth.ioは,ユーザ認証やAPI認証のコード記述をシンプルにしようとする試みのひとつだ。開発者は異なるバージョンやプロトコル(1.0, 1.0a, 2.0)を実装した複数のOAuthプロバイダに対応しなくても,以下のスニペットに示すように,ひとつのAPIだけを使ってプログラムすればよい。 $('#fb-connect').click(function() { OAuth.initialize('YOUR_PUBLIC_KEY'); OAuth.popup('facebook', function(err, res) { if (

    複数プロバイダの認証処理をシンプルにするOAuth.io
  • Groovy 2.0の新機能

    静的型チェッカーは、戻り型や、代入時の値の整合性も検証します: import groovy.transform.TypeChecked @TypeChecked Date test() { // コンパイルエラー: // Date値はint型の変数には代入できない int object = new Date() String[] letters = ['a', 'b', 'c'] // コンパイルエラー: // String値はDate型の変数には代入できない Date aDateVariable = letters[0] // コンパイルエラー: // Date型を返すメソッドでString値を返すことはできない return "today" } この例では、int変数にDateは代入できないことや、メソッドシグネーチャで指定されているDate値のかわりにStringは返せないことをコン

    Groovy 2.0の新機能
  • RESTの代替は必要か

    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が最近リリースされ、重要な変...

    RESTの代替は必要か
  • PayPal社がバックエンドをJavaからJavaScriptへ移行

    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が最近リリースされ、重要な変...

    PayPal社がバックエンドをJavaからJavaScriptへ移行
  • Xtend、Javaをエクステンドする

    Eclipse Junoのリリースとともに、Eclipse FoundationはXtendのリリースを高らかに発表した。これはラムダを備えたJava互換の言語で、Javaランタイムに完全な互換性をもつ。XtendはXtextというDSLライブラリおよびエディタ生成のためのプラグインスイートをベースにしている。 ScalaやCeylon、Kotlinと違って、Xtendは独自のバイトコードコンパイラを必要としていない。その代わり、XtendのソースファイルはJavaのソースファイルに変換され、それから通常のJavaコンパイラでコンパイルされる。その結果、Xtendは、標準的なJavaプロジェクトで使えるJavaを生成する、開発時の変換ツールとして利用したり、コンパイル時にJavaソースファイルを生成するのに使うソースモデルとして利用することができる。 Xtendをコンパイルするには2つの方

    Xtend、Javaをエクステンドする