タグ

ブックマーク / gihyo.jp (163)

  • Web API設計実践入門──API仕様ファーストによるテスト駆動開発

    2024年7月25日紙版発売 柴田芳樹 著 A5判/208ページ 定価2,860円(体2,600円+税10%) ISBN 978-4-297-14293-3 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Amazon Kindle honto このの概要 書は,著者が1993年から約30年間経験してきたAPI仕様の作成,2003年から20年間経験してきたテストファースト開発/テスト駆動開発の知見をまとめたものであり,一般的なソフトウェア開発者が習得することが容易ではない事柄を,書を通して学び,実践してもらうことを目的としています。 書が提唱する「API仕様ファースト開発」はWebサービスにおける大域的なテスト駆動開発の実現に必要なものであり,また,API仕様ファースト開発を実現するにはテスト駆動開発が必要です。API仕様ファースト開発とテスト駆動

    Web API設計実践入門──API仕様ファーストによるテスト駆動開発
    ryshinoz
    ryshinoz 2024/06/12
  • xzパッケージに仕込まれた3年がかりのバックドア、スケール直前に見つけたのはMicrosoftの開発者 | gihyo.jp

    Linux Daily Topics xzパッケージに仕込まれた3年がかりのバックドア⁠⁠、スケール直前に見つけたのはMicrosoftの開発者 “アップストリームのxzリポジトリとxz tarballsはバックドア化されている(The upstream xz repository and the xz tarballs have been backdoored)⁠”―2024年3月29日、Microsoftに所属する開発者 Andres Freundが「Openwall.com」メーリングリストに投稿したポストは世界中のオープンソース関係者に衝撃を与えた。 backdoor in upstream xz/liblzma leading to ssh server compromise -oss-security 主要なLinuxディストリビューションにはほぼ含まれているデータ圧縮プログラ

    xzパッケージに仕込まれた3年がかりのバックドア、スケール直前に見つけたのはMicrosoftの開発者 | gihyo.jp
    ryshinoz
    ryshinoz 2024/04/03
  • GitHub資格認定プログラムが一般ユーザも利用可能に | gihyo.jp

    2024年1月8日、GitHubはこれまでGitHub/Microsoftの従業員とパートナーのみが利用可能であったGitHub Certifications(資格認定)プログラムを、世界中のすべての顧客も利用可能とすることを発表した。1月8日から誰でも登録サイトにアクセスしてGitHub Certificationsの学習と認定試験の準備を進めることができる。 GitHub Certifications are generally available -The GitHub Blog 利用可能な認定プログラムは以下の4種。 GitHub Foundations Certification GitHubプラットフォームの基的な概念とGitHub製品を初めて学ぶ人向け。gitの使用方法からリポジトリ管理、コミット、ブランチ、マージ、プロジェクト管理などのGitHubコア機能をひと通り学習で

    GitHub資格認定プログラムが一般ユーザも利用可能に | gihyo.jp
    ryshinoz
    ryshinoz 2024/01/10
  • 第54回 Linuxカーネルのコンテナ機能 ―cgroup v2から使うCPUの帯域幅制限(2) | gihyo.jp

    前回は、CPUコントローラでの帯域幅制限がどのように行われるのかについて簡単に説明しました。 前回の最後に、説明のために挙げた例がかなり理想的な状況であると書きました。今回は、帯域幅制限の機能を詳しく見ていくために、前回よりはもう少し複雑な状況について説明していきましょう。 未使用クォータの返却 前回説明で示した例では、CPUは割り当てられたスライスをすべて使いきっていました。しかし、複数のCPUがある環境で、タスクが終了したり、I/O待ちなどにより、クォータが割り当たったCPUで実行可能なタスクがなくなった場合はどうなるでしょう? 図1 割り当てられたスライスが使われない場合 図1のように、クォータプールに10msクォータが残っているとします。 ①でCPU1でCPUを使用するタスクから要求がありスライスが転送され、クォータの残りが5msとなりました ②で再度CPU1でCPUを使用するタス

    第54回 Linuxカーネルのコンテナ機能 ―cgroup v2から使うCPUの帯域幅制限(2) | gihyo.jp
    ryshinoz
    ryshinoz 2023/11/09
  • 第2章 詳解QUIC ~ TCPに代わり下位層で使用する新しいトランスポートプロトコル | gihyo.jp

    章では、HTTP/3がTCPに代わって下位層で用いるQUICについて解説します。 QUICはトランスポートプロトコル QUICはトランスポートプロトコルです。QUICの説明に入る前に、トランスポートプロトコルついておさらいします。 TCP/IPの4階層モデル プロトコルは階層で役割を分担しています。TCP/IPの4階層モデルでは、アプリケーション層、トランスポート層、インターネット層、ネットワークインタフェース層に分かれます(図1⁠)⁠。 図1 TCP/IPの4階層モデル アプリケーション層に分類されるアプリケーションプロトコルは、クライアントやサーバで動作するアプリケーションの動作に関するデータやメッセージの通信ルールを規定します。たとえばSMTP(Simple Mail Transfer Protocol)は、メールを送信する通信ルールを規定しています。HTTPはこの層に属します。

    第2章 詳解QUIC ~ TCPに代わり下位層で使用する新しいトランスポートプロトコル | gihyo.jp
    ryshinoz
    ryshinoz 2023/08/19
  • システム障害対応の教科書

    第1章 システム障害対応を学ぶ意義 1.1 なぜシステム障害対応は暗黙知だったのか 1.2 上昇し続けるシステム障害対応の難易度 1.3 システム障害対応時に起こり得るさまざまな問題 第2章 システム障害の定義 2.1 システム障害とは何か 2.2 システム障害対応の目的と定義 第3章 システム障害対応の登場人物と役割 3.1 システム障害対応の登場人物の概要と体制 3.2 インシデントコマンダーの役割と基動作 3.3 作業担当 3.4 ユーザ担当 3.5 CIO 第4章 各プロセスの基動作~発生から終息まで 4.1 検知・事象の確認 4.2 業務影響調査 4.3 原因調査 4.4 復旧対応 4.5 イベントの確認/事後対応 第5章 障害対応に必要なドキュメント 5.1 障害対応フロー図 5.2 オンコールシフト表と連絡先管理表 5.3 障害レベル管理表 5.4 障害状況ボード 5.5

    システム障害対応の教科書
    ryshinoz
    ryshinoz 2023/08/03
  • Maxime Chevalier-Boisvertさん「Optimizing YJIT’s Performance, from Inception to Production」 ~RubyKaigi 2023 2日目キーノート | gihyo.jp

    RubyKaigi 2023 キーノートレポート Maxime Chevalier-Boisvertさん「Optimizing YJIT’s Performance, from Inception to Production」 ~RubyKaigi 2023 2日目キーノート 最近のRubyインタプリタの進化において非常に重要なトピックの一つが、JITコンパイラの登場です。特にShopifyのJITコンパイラチームを中心に開発されたYJITは、世の中で広く使われているRailsアプリケーションを有意に高速化できるJITコンパイラとして、既にproduction-readyであると評価されており、各所で採用が進んでいます。 RubyKaigi 2023 2日目のMaxime Chevalier-Boisvertさんによるキーノートでは、開発チームがYJITを開発するにあたってどういったアプロ

    Maxime Chevalier-Boisvertさん「Optimizing YJIT’s Performance, from Inception to Production」 ~RubyKaigi 2023 2日目キーノート | gihyo.jp
    ryshinoz
    ryshinoz 2023/06/20
  • KeebKaigi 2023 レポート ~Rubyコミュニティと自作キーボードコミュニティのつながりから生まれたイベント | gihyo.jp

    KeebKaigi 2023 レポート ~Rubyコミュニティと自作キーボードコミュニティのつながりから生まれたイベント 2023年5月11日から13日に行われたRubyKaigi 2023のプレイベントとして、5月10日に自作キーボードに関するイベントであるKeebKaigi 2023が長野県松市のコワーキングスペース33GAKUにて行われました。 会場入り口 KeebKaigiとは なぜ、RubyKaigiのプレイベントに自作キーボードのイベントが行われたのでしょうか? 近年のRubyKaigiの会場では、RubyKaigiの参加者たちが自主的に自作キーボードを持ち寄り廊下でミートアップが開催されていました。 そして今年の開催地である松市には、44キーの分割キーボードであるSilverBulletや、自作キーボードの試作に便利な基板である無限の可能性の設計者である王立魔界鍵盤製作所

    KeebKaigi 2023 レポート ~Rubyコミュニティと自作キーボードコミュニティのつながりから生まれたイベント | gihyo.jp
    ryshinoz
    ryshinoz 2023/05/30
  • 『WEB+DB PRESS』 休刊のお知らせ:WEB+DB PRESS

    WEB+DB PRESSは,2023年8月発売のVol.136をもって隔月刊誌としては休刊させていただきます。物価上昇による製作費の高騰など諸般の事情により,今回の決定に至った次第です。 突然の休刊案内にてたいへん恐縮ではございますが,何卒ご理解を賜りますよう,お願い申し上げます。 22年以上の長きにわたり,絶大なご支援をいただきましたことを,厚く御礼申し上げます。 弊誌で扱っていた分野のコンテンツは,今後も弊社刊行のSoftware Designやgihyo.jp,書籍などで提供させていただきます。また,必要な場合には「特別号」の編集・刊行なども検討してまいります。 最後に,皆様の一層のご活躍を心より祈念しております。

    『WEB+DB PRESS』 休刊のお知らせ:WEB+DB PRESS
    ryshinoz
    ryshinoz 2023/05/01
  • LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術 記事一覧 | gihyo.jp

    第54回Linuxカーネルのコンテナ機能 ―cgroup v2から使うCPUの帯域幅制限(2) 加藤泰文 2023-11-08

    LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術 記事一覧 | gihyo.jp
    ryshinoz
    ryshinoz 2023/03/30
  • Goのカバレッジツールを使いこなす | gihyo.jp

    はじめに テストでコード品質を担保していくことは、継続的インテグレーションの観点などで必要不可欠です。そして、十分なテストコードが書かれているかどうかの指標として、よく使われるものといえばテストカバレッジがあります。 Goではgo testコマンドと、go tool coverコマンドがカバレッジ計測の機能を担っています。今回は、これらのツールをより深く使い込んでいくために、既存機能の一歩進んだ使い方や最新機能について紹介します。 なお、記事で紹介しているコマンドなどはmacOSで実行した場合の例となります。 オリジナルのカバレッジ統計データを集計する まずは既存のカバレッジの統計データを取得する方法を振り返り、より詳細な情報を集計するアプローチについて紹介します。 Goのカバレッジツールで出力できる統計データ 既存のgo testコマンドおよびgo tool coverコマンドで出力で

    Goのカバレッジツールを使いこなす | gihyo.jp
    ryshinoz
    ryshinoz 2023/03/14
  • 簡単で強力!誰でも始められる情報整理ツール「RemNote」を始めよう | gihyo.jp

    学習している内容や日々の考え事など、さまざまな情報を入力しながら自然に整理していくパーソナル・ナレッジ・マネージメント(PKM)ツールが注目されています。 しかし便利ではあるものの使い方が難しかったり、マニアックな設定が要求されたりするPKMツールが多い中、高機能なのに簡単に利用できるRemNoteが、最近モバイルアプリも登場して頭一つ抜けた存在になってきたように思います。そこで稿では初心者向けにRemNoteの使い方の紹介を通して、PKMの基的な考え方について深めてみます。 情報が複雑になってきたら、ツールも進化しなければいけない 忘れてしまっては困ることがあると、私たちはメモをとります。買い物でそろえるもの、テレビで耳にしたお得な情報、来週の予定、ちょっとした考え事。どんなことであっても私たちはメモをとります。 手段は紙でもスマートフォンでも変わりません。ふだんは意識しないほど当た

    簡単で強力!誰でも始められる情報整理ツール「RemNote」を始めよう | gihyo.jp
    ryshinoz
    ryshinoz 2023/03/03
  • 第4回 テストダブル ~忠実性と決定性のトレードオフを理解する~ | gihyo.jp

    自動テストを書く際に使いどころをマスターしたいテクニックがテストダブル(Test Double)です。テストダブルを効果的に使えばテストの網羅性、速度、再現性を向上させますが、使いどころを誤れば変更や改善の妨げになりかねません。今回は、テストダブルの利点と注意点をまとめます。 テストダブルとは何か テストダブルとは、自動テストに使用する偽物、代用品のことです。たとえば、データベースや外部サービスの動作を模倣した偽物(テストダブル)を作り、自動テストから使います。 自動テストで偽物を活用するテクニックを「モック」(⁠Mock)と呼ぶ方も多いですが、より正確には、テストに偽物を使う技術を総称してテストダブルと呼びます。この場合の「ダブル」は身代わりや影武者のようなイメージでとらえてください。テストに使う身代わりなのでテストダブルです。テストダブルの種類として詳しくはスタブ(Stub⁠)⁠、スパ

    第4回 テストダブル ~忠実性と決定性のトレードオフを理解する~ | gihyo.jp
    ryshinoz
    ryshinoz 2023/02/22
  • Go言語プログラミングエッセンス

    このの概要 Go言語ユーザーとして,「もう一段レベルアップしたい」「開発に使いたい」と思っている方に向けた,Go言語の解説です。関数やパッケージの使い方,並行処理,テストといった基的なトピックにおいて,「こう書くと綺麗になる」「こう書くとパフォーマンスが上がる」といったエッセンスを紹介します。後半ではCLIアプリ/Webアプリの開発手順や,現場で使われている便利なパッケージなど,著者が業務やOSSの開発で培った技術をふんだんに紹介します。 こんな方におすすめ Go言語の入門を終え,さらに深く学びたい人 第1章 プログラミング言語Goとは 1.1 Goの簡単な歴史 1.2 Goの立ち位置 1.3 Goが利用される場面 標準でUTF-8をサポート マルチプラットフォーム 並行処理の扱いやすさ ストリーム指向 シングルバイナリ 1.4 教育用途としてのGo 1.5 なぜGoが使われるのか

    Go言語プログラミングエッセンス
    ryshinoz
    ryshinoz 2023/02/16
  • パーフェクトRust

    2023年2月22日紙版発売 2023年2月22日電子版発売 古川正寿 著 B5変形判/464ページ 定価4,180円(体3,800円+税10%) ISBN 978-4-297-13322-1 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto このの概要 Rustは2015年に1.0がリリースされた比較的新しい言語ですが,メモリの安全性が保障されていながら,C++並みの高速性があるという点でC/C++の代替えとして注目されています。近年,グーグルAndroid OSの開発言語にマイクロソフトがWindowsの開発にRustを採用したことにより,今後の主流言語の1つとしてRustの可能性を感じているエンジニアも増えてきています。そこで書籍

    パーフェクトRust
    ryshinoz
    ryshinoz 2023/02/09
  • 改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで

    このの概要 2010年の刊行から約100,000部の実績を誇るロングセラーを,ECMAScript 2022に対応した内容で200ページ増の大幅改訂。最新の基文法から,開発に欠かせない応用トピックまで解説します。JavaScriptらしく書くために大切なオブジェクトの扱い方や,大規模開発でさらに実用的になったオブジェクト指向構文を学び,しっかりと動くプログラムの作り方を質から理解できます。 こんな方におすすめ JavaやC言語などほかのプログラミング言語の経験があり,JavaScriptを新規に学びたい方 JavaScriptを多少使えるけど基が不安な方 ECMAScript 2022による新たなJavaScript記法を学びたい方 Chapter 1 イントロダクション 1.1 JavaScriptとは? 1.1.1 JavaScript歴史 1.1.2 復権のきっかけはAja

    改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
    ryshinoz
    ryshinoz 2023/01/13
  • 実践Node.js入門 ―基礎・開発・運用

    このの概要 Node.jsの入門書です。Node.jsは今やWebアプリケーション開発には欠かせない存在です。 書には,Node.jsで実際にアプリケーション開発をはじめるための知識がまとまっています。 基礎知識,環境構築,重要文法,非同期,CLIツール開発,Expressを用いたサーバーサイドの開発やフロントエンドReact)との連携などNode.jsの全体像が学べます。 現場で活躍する第一人者が,Node.jsのアプリケーション開発の指針やノウハウを教えます。 こんな方におすすめ Node.jsを学びたいエンジニア JavaScriptへの基的な知識のあるエンジニア,サーバサイドもある程度しっかりやりたい人 他言語でサーバサイド開発の経験があり,Node.jsも身につけたいエンジニア この書籍に関連する記事があります! 人気のNode.jsをはじめよう 書には、Node.js

    実践Node.js入門 ―基礎・開発・運用
    ryshinoz
    ryshinoz 2022/12/29
  • 第3回 テストサイズ ~自動テストとCIにフィットする明確なテスト分類基準~ | gihyo.jp

    テストの分類として開発者に馴染み深いのは、検証の対象となるコードの範囲や粒度での分類でしょう。範囲が狭く粒度が細かい順に、ユニットテスト、インテグレーションテスト、E2E(end to end)テストなどと呼ばれます。今回は、自動テスト前提の時代にうまくフィットするテスト分類について考えます。 現場の混乱 実は、範囲や粒度による分類に現場は混乱しがちです。「⁠1つの対象」を検証する狭いテストをユニットテスト、単体テスト、コンポーネントテストなどと呼びますが、これらをほぼ同じものと言う人も、異なると言う人もいます。「⁠1つの対象」も関数、メソッド、クラス、モジュール、パッケージ、振る舞い、1つの画面と、人や組織によってバラバラです。 複数のレイヤ、たとえばコントローラとモデルをまたいで検証するテストをインテグレーションテストと呼ぶ人もいれば、それもユニットテストと呼ぶ人もいます。ユニットテス

    第3回 テストサイズ ~自動テストとCIにフィットする明確なテスト分類基準~ | gihyo.jp
    ryshinoz
    ryshinoz 2022/12/29
  • Goで書くテスタブルなCLIツールの作り方 | gihyo.jp

    CLIツールをテストする難しさ ターミナルなどで動作するCLI(コマンドラインインタフェース)ツールは、パッケージを公開して利用してもらうライブラリと比べてテストがしにくいと感じる読者も多いでしょう。 CLIツールは、ファイル/標準入力からの入力や、ファイル/標準出力/標準エラー出力への出力があることが多いです。また、コマンドライン引数やオプション(フラグ)によって変わる挙動のパターンが多いため、網羅的なテストが大変です。 入出力についても単一のファイルを読み書きするだけではなく、ディレクトリごと作成したり、特定のディレクトリ以下を再帰的に読み込むような処理もよくあります。 main関数にすべての処理をすべて書くような作りのCLIツールだと、実際にビルドしてテストスクリプトなどから動かしてテストするしかありません。しかし、せっかくCLIツールをGoで書いているのであれば、テストもGoで書き

    Goで書くテスタブルなCLIツールの作り方 | gihyo.jp
    ryshinoz
    ryshinoz 2022/11/15
  • 今からはじめる、データエンジニアリング・ロードマップ | gihyo.jp

    データエンジニアリングとは何か 昨今、データドリブンな経営・事業推進の重要性が日に日に高まってきていますが、それを実現するためにはデータの分析環境(≒データ分析基盤)が必要不可欠です。しかしながらデータ分析基盤を構築・運用するためには、専門性の高いデータエンジニアリングのスキルやノウハウを身につける必要があります。 この記事ではデータエンジニアリングを実践するにあたって「何が必要か」「⁠どうキャッチアップすれば良いのか」を説明していきます。 なお、記事は筆者の経験則に基づく解釈が多く含まれております。より客観的に学びたい方に向けて参考文献も記載しておりますので、併せてご参照頂けますと幸いです。 データ分析基盤の必要性 データ分析やデータ活用を行うシステム基盤のことを、データ分析基盤と言います。 通常分析に必要なデータは企業内に散在しており、分析するためには1箇所に集約する必要があります。

    今からはじめる、データエンジニアリング・ロードマップ | gihyo.jp
    ryshinoz
    ryshinoz 2022/11/07