タグ

ブックマーク / atmarkit.itmedia.co.jp (32)

  • コードのコメント、何をどう書けばよいのか

    開発者向けQ&Aサイト「Stack Overflow」は2021年12月23日(米国時間)、コードコメントを書くためのベストプラクティスを紹介した。これはミルズ大学のコンピュータサイエンスの教授であるエレン・スパータス氏による寄稿記事だ。 この記事は2021年7月5日に掲載されたもので、同ブログで2021年に人気を博した記事のトップ10の1つとして再掲載された。 スパータス氏は、「コメントは、出来の悪いコードの言い訳や修正として書くものではなく、(コードが表すものと)異なるタイプの情報を提供することで、良いコードを補完するものだ」との見解を示した。その理由としてシステムアーキテクトのピーター・ヴォーゲル氏が2013年に投稿したコメントに関する3つの事実を挙げた。 (1)コメントを書いて、維持するには費用がかかる (2)コンパイラはコメントを無視するため、コメントの内容が正しいかどうか機械的

    コードのコメント、何をどう書けばよいのか
  • 図解:OAuth 2.0に潜む「5つの脆弱性」と解決法

    SNSなど複数のWebサービスが連携して動くサービスは広く使われている。連携に必要不可欠なのが、アクセス権限をセキュアに受け渡すための「OAuth 2.0」といった仕組みだ。今回はOAuth 2.0に関連する代表的な5つの脆弱(ぜいじゃく)性と攻撃手法、対策についてシーケンス図を使って解説する。 OpenID Foundation Japan Evangelistのritouです。 連載第1回では、RFCが公開されてから5年が経過した「OAuth 2.0」を振り返り、3つのユースケースを通じて、アクセス権限を受け渡す仕組みを紹介しました。OAuth 2.0はさまざまなユースケースに適用できます。その際、開発者はアプリケーションが動作する環境の特性を考慮しながら、仕様で定義されている処理を実装する必要があります。 今回は、脆弱(ぜいじゃく)性を作り込まないOAuth 2.0の実装手法を紹介し

    図解:OAuth 2.0に潜む「5つの脆弱性」と解決法
  • Keycloakクライアントアダプターを利用してAPIサービスを構築してみよう

    Keycloakクライアントアダプターを利用してAPIサービスを構築してみよう:Keycloak超入門(3)(1/4 ページ) 連載では、近年注目されている認証プロトコル「OpenID Connect」をサポートするオープンソースのシングルサインオン(SSO)ソフトウェア「Keycloak」の活用方法を解説していきます。今回は、Keycloakクライアントアダプターを利用して、APIサービスを構築してみます。 連載目次 連載第3回目となる今回は「Keycloak」が提供するクライアントアダプターを利用して、OpenID Connectに対応したAPIサーバとクライアントアプリケーションを構築します。Keycloakクライアントアダプターを利用すると、Keycloakと連携できるようになり、簡単にシングルサインオン(SSO)や公開APIサービスを実現することができます。 Keycloak

    Keycloakクライアントアダプターを利用してAPIサービスを構築してみよう
  • サンプルアプリケーションでKeycloakのSSO動作を確認してみよう

    サンプルアプリケーションでKeycloakのSSO動作を確認してみよう:Keycloak超入門(2)(1/3 ページ) 連載では、近年注目されている認証プロトコル「OpenID Connect」をサポートするオープンソースのシングルサインオン(SSO)ソフトウェア「Keycloak」の活用方法を解説していきます。今回は、サンプルアプリケーションを使って、KeycloakによるSSOの動作を確認してみます。 連載目次 連載第2回目となる今回は「Keycloak」サーバを起動して、Keycloakが提供するサンプルアプリケーションを実行し、シングルサインオン(SSO)の動作を確認してみます。確認に利用したKeycloak、サンプルアプリケーションのバージョンは「3.2.0.Final」です。 今回はCent OS 7.2 64bitを使用しますが、他のLinux系OSやWindows OS上

    サンプルアプリケーションでKeycloakのSSO動作を確認してみよう
  • 「OAuth」の基本動作を知る

    デジタル・アイデンティティの世界へようこそ はじめまして、OpenID Foundation JapanでエバンジェリストをしているNovです。 この連載では、僕を含めOpenID Foundation Japanにかかわるメンバーで、OpenID ConnectやOAuthなどの「デジタル・アイデンティティ(Digital Identity)」にかかわる技術について紹介していきます。 APIエコノミー時代のデジタル・アイデンティティ 世界中で9億人のユーザーを抱える「Facebook」や5億人のユーザーを持つ「Twitter」など、巨大なソーシャルグラフを持つサービスが、日々その存在感を増しています。日でも、グリーやモバゲーなどがそれぞれソーシャルゲームプラットフォームを公開し、国内に一気に巨大なソーシャルゲーム市場を作り上げました。最近では、ユーザー数が5000万人を突破し、プラット

    「OAuth」の基本動作を知る
  • マイクロサービス時代のSSOを実現する「Keycloak」とは

    連載では、近年注目されている認証プロトコル「OpenID Connect」をサポートするオープンソースのシングルサインオン(SSO)ソフトウェア「Keycloak」の活用方法を解説していきます。第1回目は、APIにおける認証/認可の仕組みとKeycloakの概要を紹介します。 連載目次 APIにおける認証/認可の仕組み 近年、金融や流通分野で注目されている「APIエコノミー」や「マイクロサービスアーキテクチャ」などの登場により、サービスの機能を「REST API」として提供することが当たり前になってきています。そして、REST APIを公開するためには、誰がアクセスしてきたのかを確認するための「認証(Authentication)」と、APIへのアクセスを誰に許可するのかという「認可(Authorization)」の仕組みが不可欠です。 しかし、複数のサービスがそれぞれ個別に認証/許可を

    マイクロサービス時代のSSOを実現する「Keycloak」とは
  • Chatwork、LINE、Netflixが進めるリアクティブシステムとは? メリットは? 実現するためのライブラリは?

    Chatwork、LINENetflixが進めるリアクティブシステムとは? メリットは? 実現するためのライブラリは?:リアクティブプログラミング超入門(1)(1/2 ページ) 連載では、リアクティブプログラミング(RP)の概要や、それに関連する技術、RPでアプリを作成するための手法について解説します。初回は、「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します。 「リアクティブ」という新たなプログラミングのパラダイム 最近、「リアクティブプログラミング」という言葉をよく見るようになりました。この「リアクティブプログラミング」(以下、RP)とは、“時間とともに変化していくデータ”(ストリーム)同士の関連性と操作を、“宣言”的に記述するプログラミングの手法です。 RPではデータを「ストリーム」として捉え、その“流れてくるデータ”

    Chatwork、LINE、Netflixが進めるリアクティブシステムとは? メリットは? 実現するためのライブラリは?
  • 【PostgreSQL】本番稼働中のPostgreSQLシステムで押さえておくべき「3つ」の監視項目

    【PostgreSQL番稼働中のPostgreSQLシステムで押さえておくべき「3つ」の監視項目:データベースサポート最前線の現場から(10)(1/2 ページ) データベース管理システムの運用でトラブルが発生したらどうするか。データベースサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、監視ツールを活用してPostgreSQLを監視する際に最低限押さえておくべき「監視項目」を紹介します。 連載バックナンバー アシストのサポートセンターには、「“番稼働中”のデータベースの監視」に関する問い合わせがよくあります。そこで今回は、監視ツールを活用してPostgreSQLを監視する際に最低限押さえておくべき3つの「監視項目」を紹介します。 「プロセス」の監視 「ログファイル」の監視 「ディスク空き容量」の監視 この3つの情報を適切に採取し、監視ツールで監視するようにしておく

    【PostgreSQL】本番稼働中のPostgreSQLシステムで押さえておくべき「3つ」の監視項目
  • 「Deep Learningをサービスに導入したい!」人に周囲が泣かされないために

    リクルートテクノロジーズにおける検索改善施策の事例を通じて、Deep Learningをはじめとした機械学習の強みと限界を探る連載「機械学習活用プロジェクト大解剖」。 前回は、検索改善のためのアーキテクチャ(QueryRewriter)とDeep Learningを導入する動機を紹介しました。今回は、「Deep Learningの導入のために何が必要であり、なぜQueryRewriterが開発されたのか」について解説します。 より具体的な改善事例は次回解説します。 機械学習を活用しやすくする開発・運用体制――2つのアンチパターン まず、「とにかくDeep Learningを使いたい!」というようなデータサイエンティストに周囲を泣かされないための仕組みと開発・運用体制について考えます。 新しい技術を導入する際は、何であれ慎重に進めた方がいいです。Deep Learningのような解釈可能性

    「Deep Learningをサービスに導入したい!」人に周囲が泣かされないために
  • FinTech時代の銀行に求められるSoE/SoRアーキテクチャとAPI管理とは

    FinTech時代の銀行に求められるSoE/SoRアーキテクチャとAPI管理とは:FinTech時代、銀行系システムはどうあるべきか(3)(1/4 ページ) 連載では、銀行系システムについて、その要件や歴史を整理しつつ、スマートフォンを使う銀行取引やブロックチェーンなど、新しい技術が及ぼす影響を考察していきます。今回は、FinTech時代に求められる銀行業務のシステム要件として、Systems of EngagementとSystems of Record、API連携基盤(API管理)に必要な機能や課題、OpenAPIの在り方などについて考察。 連載「FinTech時代、銀行系システムはどうあるべきか」では、銀行系システムについて、その要件や歴史を整理しつつ、スマートフォンを使う銀行取引やブロックチェーンなど、新しい技術が及ぼす影響を考察していきます。 前回の「FinTech時代の今、

    FinTech時代の銀行に求められるSoE/SoRアーキテクチャとAPI管理とは
  • 「ソフトウェア品質向上の”変”2016初夏~FinTech、IoTを見据えた”テスト自動化の勘所”」セミナーリポート(前編)

    「ソフトウェア品質向上の”変”2016初夏~FinTech、IoTを見据えた”テスト自動化の勘所”」セミナーリポート(前編):ゴールドマン・サックス、マネーフォワードのサービス開発の在り方とは(1/2 ページ) ITサービスをリリース・改善するスピードが、ビジネス差別化の要件となっている今、サービス開発の在り方にも変革が求められている。では具体的に、どのような変革が必要なのか? @IT編集部が6月に主催したセミナー「ソフトウェア品質向上の”変”2016初夏」からそのポイントを紹介する。 IoT、FinTechトレンドも格化している近年、刻々と変化する市場に合わせて、顧客の求めるITサービスをスピーディに開発・改善することが、差別化に不可欠な取り組みとなっている。だが求められているのはスピードだけではない。サービスの安定性やセキュリティなど、さまざまな側面の“品質”も確実に担保できなければ

    「ソフトウェア品質向上の”変”2016初夏~FinTech、IoTを見据えた”テスト自動化の勘所”」セミナーリポート(前編)
  • 残業も減らせる!? 上級エンジニアになるためのDesign Doc超入門

    残業も減らせる!? 上級エンジニアになるためのDesign Doc超入門:プロジェクト成功確率向上の近道とは?(3)(1/3 ページ) ITシステム開発の問題点の一つであるコミュニケーションの失敗。連載では、これを防ぐ方法としてお勧めしたい3つのドキュメントを紹介していく。今回は、「技術視点」のドキュメントとして、2000年代以降注目されている「Design Doc」について解説します。 IT技術がビジネスに貢献していくためには、まずはシステム開発を成功させることが重要です。連載「プロジェクト成功確率向上の近道とは?」では、システム開発を成功させるために、コミュニケーションが果たす役割の重要性と、ドキュメントによるコミュニケーションの重要性について解説してきました。 連載1回の「ドキュメントは最強のコミュニケーションツールである――Joelの機能仕様書入門」、第2回の「サンプル例に見る

    残業も減らせる!? 上級エンジニアになるためのDesign Doc超入門
  • なぜDevOpsは正しく理解されてこなかったのか?~ベンダーキーパーソンが徹底討論~(前編)

    なぜDevOpsは正しく理解されてこなかったのか?~ベンダーキーパーソンが徹底討論~(前編):「DevOps」が誤解されてきたこれだけの理由(1/4 ページ) IoTやFinTechトレンドの格化に伴い、DevOpsが今あらためて企業からの注目を集めている。だがDevOpsは、いまだ正しい理解が浸透しているとは言いがたい状況だ。そこで@IT編集部では、国内のDevOpsの取り組みをリードしてきた五人のベンダーキーパーソンによる座談会を実施した。前後編に分けてその模様をお伝えする。 「DevOpsとは何か」というフェーズに終止符を 市場変化の加速、スピーディなサービス開発・改善により収益向上を狙うIoTトレンドの格化などに伴い、2015年はあらためてDevOpsが見直される年となった。こうした中、欧米ではFinTechも追い風に、金融、製造、流通など幅広い業種でDevOpsの適用が進んで

    なぜDevOpsは正しく理解されてこなかったのか?~ベンダーキーパーソンが徹底討論~(前編)
  • 「複雑な混在環境を使いこなす」クラウド/OSS時代の運用管理、4つの視点

    「複雑な混在環境を使いこなす」クラウド/OSS時代の運用管理、4つの視点:特集:クラウド/OSS時代の「業務を止めない」運用ノウハウ(1) 近年の「先が見えない」市場環境の中、ビジネス要請へのスピーディな対応が求められるシステム運用管理にも新しいアプローチが求められている。特集『クラウド/OSS時代の「業務を止めない」運用ノウハウ』では、そのアプローチを一つ一つ掘り下げていく。 着実に浸透が進む運用自動化 市場環境変化が激しい現在、企業にとって日々変化するニーズへの俊敏な対応が、差別化の一大要件となっている。これを受けて、あらゆる業務を支えるシステム運用にも一層のスピードと柔軟性が求められている。 だが現在は、OSS(オープンソースソフトウェア)も含め、マルチベンダー製品で構成されたヘテロジニアスな環境であることが一般的。加えて、サーバ仮想化やパブリッククラウドを導入している企業も多く、

    「複雑な混在環境を使いこなす」クラウド/OSS時代の運用管理、4つの視点
  • 5分で絶対に分かるAPI設計の考え方とポイント

    API設計を学ぶべき背景と前提知識、外部APIと内部API、エンドポイント、レスポンスデータの設計やHTTPリクエストを送る際のポイントについて解説する。おまけでAPIドキュメント作成ツール4選も。 【0分】API設計を学ぶべき背景 APIの公開が増えている 最近、自社で保有するデータや、システム、アプリケーション、Webサービスの機能を「API(Application Programming Interface)」として公開する企業が、増えてきています。これに伴い、「API経済圏(APIエコノミー)」という新たなビジネスモデルが確立されつつあります(参考:5分で絶対に分かるAPIマネジメント、API経済圏)。 「ProgrammableWeb」というAPIに関するニュースサイトや、さまざまな企業が提供するAPIのリンクがまとまったサイトもあり、APIの普及はものすごいスピードで進んでいる

    5分で絶対に分かるAPI設計の考え方とポイント
    etakaha
    etakaha 2015/11/22
  • DevOpsの本質はツールではなく考え方と実践――国内での普及を目指すDevOpsハッカソンの狙いと実態

    DevOpsはツールよりも考え方と手法こそが重要 「DevOpsをエンタープライズ分野にも適用していこう」という機運が高まっている。米国では業種、領域を問わずDevOpsを適用する動きが進んでおり、国内でもそれを受けて取り組みを進める企業が増えている。だが牛尾氏によると「国内の状況を見ると、ツールの導入が先行するあまり、DevOpsの質が見落とされがちだ」という。 「ツールをどう利用するかはDevOpsの取り組みに欠かせない要素の一つです。ただ、それよりも重要なのは、DevOpsにどういった考えで取り組めばいいのか、どのような手法や方法論を実践すればいいのかといった、マインドセットやプラクティスです。その質の部分をよく理解していれば、むしろツールは何でもよく、OSS(オープンソースソフトウエア)であれ、商用製品であれ、好きなものを使えばいいのです」(牛尾氏) 牛尾氏は、OSS畑出身の開

    DevOpsの本質はツールではなく考え方と実践――国内での普及を目指すDevOpsハッカソンの狙いと実態
  • EJB、SOA、マイクロサービスへと至る大規模システム向けアーキテクチャの変遷

    EJB、SOA、マイクロサービスへと至る大規模システム向けアーキテクチャの変遷:15周年記念特別企画(1/3 ページ) 2000年前後からのアプリケーションアーキテクチャやEJB、SOAに触れながら、今後、大規模システム構築で主流になるであろう「マイクロサービス」アーキテクチャの意義と価値を考える。 近年、「マイクロサービスアーキテクチャ」という言葉が徐々に広がりつつある。「何年か前からあるSOAの概念の焼き直しでは」という意見もあるが、「SOA」の概念自体、さまざまな解釈があるなど、その正しい理解はなかなか難しいのではないだろうか。 稿では、2000年前後からのアプリケーションアーキテクチャにおける代表的なフレームワークについて簡単に触れながら、今後主流になってくると思われるマイクロサービスアーキテクチャの理解を試みる。 マイクロサービスアーキテクチャの実例と9つの特徴 マイクロサービ

    EJB、SOA、マイクロサービスへと至る大規模システム向けアーキテクチャの変遷
  • 1000万行のコードと向き合う3つのステップ――富士ゼロックスはリファクタリングにどう取り組んでいるのか

    1000万行のコードと向き合う3つのステップ――富士ゼロックスはリファクタリングにどう取り組んでいるのか(1/2 ページ) 大企業では実施が難しいと思われるソフトウエアのリファクタリング。富士ゼロックスでは、どのように取り組んでいるのか。リファクタリングの実施を決断した理由、課題とその対応方針、成果、今後の展望などについて聞いた。 バグの有無ではなく保守性を品質管理の指標にすべき 1962年設立の富士ゼロックスは、主に複合機やオフィスプリンターなどに内蔵されるコントローラーソフトウエアの開発を行っている。コントローラーソフトウエアは、スキャナーで撮り込んだ画像の加工や印刷、ネットワーク経由の通信、セキュリティなどの各種機能を、操作パネルのユーザーインターフェースを介して制御しており、昨今の多機能なオフィス機器の要といえる。 一方で、多機能になったことでコードは大規模かつ複雑化の一途をたどっ

    1000万行のコードと向き合う3つのステップ――富士ゼロックスはリファクタリングにどう取り組んでいるのか
  • 【総まとめ】Windows 10コマンドプロンプトの入門から使いこなしまでの記事

    Windows OSの管理業務では、まだまだ「コマンドプロンプト」を使った作業が少なくない。GUI(グラフィカルユーザーインタフェース)では面倒な操作でも、コマンドプロンプト上でコマンドを実行するCUI(キャラクタユーザーインタフェース)なら簡単に、そして何度でもすぐに繰り返して実行できるからだ。記事では、主にWindows 10のコマンドプロンプトを便利に使うための記事や情報をまとめておく。 なお、稿では旧来のコマンドプロンプト(cmd.exe)を対象に解説していく。Windows 10では「Windowsターミナル」からコマンドプロンプトを利用できるし、Windows 11バージョン22H2以降ではデフォルトでWindowsターミナルが旧来のコマンドプロンプトの代わりに起動する。ただ、Windowsターミナル上のコマンドプロンプトは、旧来のコマンドプロンプトとは挙動や設定などが大き

    【総まとめ】Windows 10コマンドプロンプトの入門から使いこなしまでの記事
  • 技術者/開発者のための「デザイン思考」超入門~今日から手軽にできる、Design Thinkingの心掛け~

    技術者/開発者のための「デザイン思考」超入門~今日から手軽にできる、Design Thinkingの心掛け~:安藤幸央のランダウン(68) 「デザイン思考」がどのようのものなのかを紹介し、必要性やメリット、実践するための五つのポイント、企業内に浸透させていくための八つのポイント、参考動画や書籍などをお伝えします。 誰もが関係のある「デザイン思考(シンキング)」 デザインはデザイナーだけに任せるには重要過ぎる――ティム・ブラウン(IDEO) 「デザイン」と聞くと、デザイナー職以外の人は、「自分の仕事じゃない」「自分はセンスがないから関係ない」と、敬遠してはいないでしょうか? デザイン思考(Design Thinking)とは、人間を中心に考えたデザインに基づき、革新的なものを作り上げるための発想法です。デザイン思考は「デザイン」という文言を含みますが、デザイナー以外の全ての人が活用でき、むし

    技術者/開発者のための「デザイン思考」超入門~今日から手軽にできる、Design Thinkingの心掛け~