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

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

    1978年4月に九州工業大学情報工学科に入学して初めてコンピュータに触れてから,さまざまなソフトウェア開発に従事してきました。しかし,大学・大学院での6年間や社会人になってからも,ソフトウェア開発におけるAPI(Application Programming Interface)設計とは何かを教えてもらったことはなく,試行錯誤してきました。今から思えば,最初のころはかなりひどいAPI設計を行っていたのではないかと思います。 たとえば,C言語で実装を隠ぺいするAPI設計の方法を覚えたのは,社会人となってから7,8年が過ぎたころでした。防御的プログラミングを始めたのは,社会人になってから15年もすぎたころでした。当然,それまでに設計したさまざまなソフトウェアでは,そのAPI仕様に防御的プログラミングを反映したような仕様は書いていなかったことになります。 防御的プログラミングを反映して,かなりき

    著者の一言:Web API設計実践入門──API仕様ファーストによるテスト駆動開発
    toshikish
    toshikish 2024/07/07
  • [入門]ドメイン駆動設計 ――基礎と実践・クリーンアーキテクチャ

    2024年7月1日紙版発売 2024年7月1日電子版発売 増田亨,田中ひさてる,奥澤俊樹,中村充志,成瀬允宣,大西政徳 著 B5判/160ページ 定価2,200円(体2,000円+税10%) ISBN 978-4-297-14317-6 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle honto このの概要 ソフトウェア開発でドメイン駆動設計が注目されています。ソフトウェアデザイン誌で大変好評だった,ドメイン駆動設計特集の過去記事(2024年3月号,2023年2月号など)を再編集し,1冊にまとめました。ソフトウェアの設計は現在さまざまな視点で検討されており,開発の成功をいかに実現し達成するか重要になっています。書は,ドメイン駆動設計の第一人者である増田亨氏を中心に,現場でドメ

    [入門]ドメイン駆動設計 ――基礎と実践・クリーンアーキテクチャ
    toshikish
    toshikish 2024/06/19
  • 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仕様ファーストによるテスト駆動開発
    toshikish
    toshikish 2024/06/12
  • 高速インプロセスデータベースDuckDB 1.0.0がリリース | gihyo.jp

    DuckDB Foundationは2024年6月3日、オープンソースのインプロセス分析データベース「DuckDB」の正式リリースバージョン1.0.0(コードネーム“⁠Snow Duck⁠”⁠)をリリースした。 Announcing DuckDB 1.0.0 DuckDBは高速に動作するインプロセス分析データベース。ビルドする際に外部依存関係がなく、インストールとデプロイが簡単で、ホストアプリケーション内でインプロセスで実行したり、単一のバイナリとして実行できる。LinuxmacOSWindowsや、すべての一般的なハードウェアアーキテクチャ上で実行可能で、 Python、Rに深く統合されているほか、Java、C、C++といった主要なプログラミング言語用のクライアントAPIを備えている。また豊富なSQL方言が利用可能で、CSV、Parquet、JSONなどのファイル形式で、ローカルファ

    高速インプロセスデータベースDuckDB 1.0.0がリリース | gihyo.jp
    toshikish
    toshikish 2024/06/07
  • Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで

    このの概要 小さなプログラミング言語から格的なプログラミング言語へ……ステップバイステップでの開発を通して,プログラミングそのものへの理解を深めよう! こんな方におすすめ コンピュータサイエンス,とくにプログラミング言語そのものやコンパイラについての素養を得たいと考えている人 他言語でのプログラミング経験があり,Rustの習得に興味のある人。とくに,学習のための題材を探している人 第1章:プログラミング言語概論 プログラミング言語の分類 他の切り口での分類方法 コンパイルパイプライン 第2章:スタックベース仮想マシン 仮想マシン概論 Rustでの実装 標準入力からの読み込み パースとコマンドの実行 ブロックとネスト構造 if制御構文 変数の定義 複数行のソースコードへの対応 関数呼び出し 関数の再帰呼び出し WebAssemblyへのコンパイルとブラウザでの実行 第3章:プログラミング

    Rustで作るプログラミング言語—— コンパイラ/インタプリタの基礎からプログラミング言語の新潮流まで
    toshikish
    toshikish 2024/05/25
  • GitHub CI/CD実践ガイド ――持続可能なソフトウェア開発を支えるGitHub Actionsの設計と運用

    このの概要 書はCI/CDの設計や運用について,GitHubを使ってハンズオン形式で学ぶ書籍です。GitHub Actionsの基構文からスタートし,テスト・静的解析・リリース・コンテナデプロイなどを実際に自動化していきます。あわせてDependabot・OpenID Connect・継続的なセキュリティ改善・GitHub Appsのような,実運用に欠かせないプラクティスも多数習得します。 実装しながら設計や運用の考え方を学ぶことで,品質の高いソフトウェアをすばやく届けるスキルが身につきます。GitHubを利用しているなら,ぜひ手元に置いておきたい一冊です。 こんな方におすすめ GitHubは使っているけれど,プルリクエストぐらいしか利用していない CI/CDというキーワードは知っているけれど,自分で設計したことはない GitHub Actionsには触れているけれど,正直雰囲気で運

    GitHub CI/CD実践ガイド ――持続可能なソフトウェア開発を支えるGitHub Actionsの設計と運用
    toshikish
    toshikish 2024/05/17
  • エンジニアと伴走するDevRelの存在――モノづくりからコトづくりを支える技術~@941こと櫛井優介氏に訊く | gihyo.jp

    まず、gihyo.jpにもお世話になったものとして、YAPC::AsiaとISUCONがありますね。どちらも馮さんにご取材いただいたり、また、ご登壇をお願いしたこともありました。 それぞれを話すと、まずYAPC::Asiaは、2006年から開催が行われている中で、2010年から企業に所属する立場として、JPAの理事である牧さんとともに運営をすることになったんです。すでに一大技術イベントとして確立され、また、当時の日のサービスを支えていたスターエンジニアを筆頭に、Perl Mongerと呼ばれる多くのPerlエンジニアたちが参加していたのは認識していました。 一方で、イベントの回数が増え規模が大きくなるにつれ、開催コスト(経済的・人的など)が大きくなっていたのは知っていました。YAPC::Asiaというエンジニアにとって大事な場をサポートすることは、実はエンジニアそのものをサポートすること

    エンジニアと伴走するDevRelの存在――モノづくりからコトづくりを支える技術~@941こと櫛井優介氏に訊く | gihyo.jp
    toshikish
    toshikish 2024/05/15
  • Vivliostyleで市販書籍とそっくりに組んでみよう | gihyo.jp

    上達のコツはやはり反復練習!ということで、第4回では、InDesignで作られた書籍のPDF(なければプリントアウト)をもとに、紙面デザインをそっくりに再現する方法について解説します。何度か作成していくうちに、Vivliostyleの可能性やクセがつかめてくるはずです。 CSS組版を覚える早道は……? 筆者は2023年に『Web技術で「」が作れるCSS組版 Vivliostyle入門』を執筆しましたが、これを読んだだけで自在にを組めるようになるかといえば、残念ながらそう簡単なものではないというのが正直なところです。 では、どうやってCSS組版を勉強すればいいのでしょうか? ひるがえって、自分がたどった道のりを思い出してみると、CSS組版とVivliostyleを使い始めたのは、書籍の原稿整理の一環として、書籍デザイン通りの字数・行数をCSS組版で再現したのが始まりでした。何度もそれを繰

    Vivliostyleで市販書籍とそっくりに組んでみよう | gihyo.jp
    toshikish
    toshikish 2024/05/14
  • 第6回 アクセシビリティを必要とする人に会う | gihyo.jp

    連載は『Webアプリケーションアクセシビリティ─⁠─今日から始める現場からの改善』の第7章「アクセシビリティの組織導入」を公開するものです。 改正された障害者差別解消法や、デジタル庁の取り組みからの影響を受け、アクセシビリティ向上への機運は日ごとに高まっているように感じます。著名な企業がアクセシビリティへのスタンスを表明するケースも増えてきました。 しかし、こうした情報が目に入っているのは、あなたがアクセシビリティに関心がある側の人だからです。多くの場合、社内でのアクセシビリティへの意識はまだまだ高くないのが実態です。 個人や有志による非公式な取り組みでも、アクセシビリティは徐々に改善することは可能です。しかし、いずれは限界を迎えます。企業が提供するWebサイトやWebアプリケーションは組織で開発されており、大規模であり、かつ成長していくからです。 継続的に取り組み、成果を出し続けるため

    第6回 アクセシビリティを必要とする人に会う | gihyo.jp
    toshikish
    toshikish 2024/05/04
  • SSL/TLS実践入門 ──Webの安全性を支える暗号化技術の設計思想

    2024年4月25日紙版発売 2024年4月25日電子版発売 市原創,板倉広明 著 A5判/456ページ 定価3,740円(体3,400円+税10%) ISBN 978-4-297-14178-3 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle 楽天kobo honto このの概要 SSL/TLSは,通信の秘密を守るために利用されている通信プロトコルです。HTTPSやHTTP/3にも利用されており,今日のWebでは利用が一般的になっています。書では,その最新バージョンであるTLS 1.3のしくみと,その使い方を解説します。SSL/TLSは公開されている実装例などを真似すれば基的な動作はさせられますが,それを応用していくには技術に関する理論の理解が必須になります。しかしSSL

    SSL/TLS実践入門 ──Webの安全性を支える暗号化技術の設計思想
    toshikish
    toshikish 2024/04/17
  • WEB+DB PRESS総集編[Vol.1~136]

    2024年4月18日紙版発売 WEB+DB PRESS編集部 編 B5判/128ページ 定価3,300円(体3,000円+税10%) ISBN 978-4-297-14156-1 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 『WEB+DB PRESS』全号のバックナンバーを収録 Webアプリケーション開発のためのプログラミング技術情報誌「WEB+DB PRESS」は,2000年から2023年までの23年間という長きにわたり,現場で活躍するWeb開発者の方々に向けた技術情報を提供してまいりました。そして2023年8月発売のVol.136をもって,隔月刊誌としては休刊いたしました。 総集編には,WEB+DB PRESSVol.1から隔月刊最終号となるVol.136までのバックナンバーと,今まで刊行した総集編7冊の書き下ろし記事を収録しています。1冊1ファイルの記

    WEB+DB PRESS総集編[Vol.1~136]
    toshikish
    toshikish 2024/04/09
  • 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
    toshikish
    toshikish 2024/04/03
  • 第807回 Vaultwardenでパスワードをセキュアに管理しよう | gihyo.jp

    パスワードの安全な管理は頭の痛い問題ですよね。そもそも今時であれば、パスワードレス認証に移行すべきではあるのでしょう。ですが世の中のサービスすべてが、すぐにパスワードレス認証に対応してくれるわけでもありません。まだまだしばらく人類とパスワードの戦いは続きそうです。 パスワードを少しでも安全に使うためには、「⁠十分に複雑で長い文字列を使う」「⁠使い回しを避ける」といった対策が必須です。しかし十分な強度のパスワードを、サービスの数だけ暗記するのは、人間の頭脳では困難です。 図1 パスワードの暗記を諦めた人類は、こうしたアイテムに手を出しがちである そこで登場するのが「パスワードマネージャー」です。筆者は以前より、第508回でも紹介したpassword-storeを愛用していました。これはGPGで暗号化したテキストファイルをGitで管理するための、シェルスクリプトで実装されたパスワードマネージャ

    第807回 Vaultwardenでパスワードをセキュアに管理しよう | gihyo.jp
    toshikish
    toshikish 2024/04/03
  • Linux Foundation、Redisをフォークした「Valkey」プロジェクトを始動 ―BSDライセンスでオープンソースとして提供 | gihyo.jp

    Linux Foundation⁠⁠、Redisをフォークした「Valkey」プロジェクトを始動 ―BSDライセンスでオープンソースとして提供 Linux Foundationは2024年3月28日、Redisに代わるオープンソースの新しいインメモリキャッシュストアシステム「Valkey」のコミュニティを立ち上げ、開発を行うことを発表した。 Linux Foundation Launches Open Source Valkey Community -linuxfoundation.org valkey : A new project to resume development on the formerly open-source Redis project. We're calling it Valkey, like a Valkyrie. -GitHub We are excited

    Linux Foundation、Redisをフォークした「Valkey」プロジェクトを始動 ―BSDライセンスでオープンソースとして提供 | gihyo.jp
    toshikish
    toshikish 2024/03/29
  • 高性能・高効率なAIチップ“MN-Core 2”の設計アプローチ――Preferred Networksによる新しいハードとソフトの役割分担 | gihyo.jp

    高性能⁠⁠・高効率なAIチップ“MN-Core 2”の設計アプローチ ――Preferred Networksによる新しいハードとソフトの役割分担 Preferred Networksという企業 Preferred Networks社(PFN)は2014年に創業した深層学習技術を軸とした企業です。PFNが開発したChainer(PFNは2019年にChainer(チェイナー)から PyTorchに移行すると発表し、開発を終了した)は、このころに深層学習を試した人にはなじみ深いツールでしょう。2017年にトヨタから105億円の出資を受けたり、Green500に何度も選出されたりと、深層学習関連ではトップランナーの1つと思います。 筆者は2023年の12月にPFNを訪問し、土井裕介氏(計算基盤担当VP)に取材する機会を得ました。土井氏は早くからPFNに参加したスタッフの1人でもあり、アーキテク

    高性能・高効率なAIチップ“MN-Core 2”の設計アプローチ――Preferred Networksによる新しいハードとソフトの役割分担 | gihyo.jp
    toshikish
    toshikish 2024/03/22
  • 第804回 mininetでお手軽ネットワークテスト環境を構築する | gihyo.jp

    3月も半ばになり、暖かい日も増えてきました。これだけ暖かくなってくると、ちょっとしたアプリで少し特殊なネットワークフレームを流したり、普段使わないネットワークプロトコルを試したくなりますよね。でも番環境でそれをやってしまうと、変質者としてしかるべき場所に通報されてしまいます。そこで今回は他人に迷惑をかけずに隔離されたネットワークテスト環境を構築できる「mininet」を使って、お縄にかからないようにしてみましょう。 Open vSwitchとネットワーク名前空間で気軽にテスト環境を構築する Linuxカーネルには「ネットワーク名前空間(netns)」という機能があります。これはホストや他のコンテナから隔離された環境でネットワークインターフェースを作成し、操作できるようになる仕組みで、特にLinuxのコンテナ系ツールで使っている基礎技術のひとつです。 Ubuntuだと「ip netns」コ

    第804回 mininetでお手軽ネットワークテスト環境を構築する | gihyo.jp
    toshikish
    toshikish 2024/03/13
  • Google Cloudのサーバーレス製品を活用したアーキテクチャ | gihyo.jp

    連載は、Google Cloudのアプリ開発とDBプロダクトにおけるスペシャリスト達が、Google Cloudプロダクトを利用した、クラウドネイティブな開発を実践する方法を解説しています。 第5回の今回は、Google Cloudのサーバーレス製品を活用したアーキテクチャに焦点を当て、アプリケーション開発における実装パターンを実践的ないくつかのユースケースにあわせて紹介をします。また、サービスの選定にまよったときの判断のポイントも紹介します。 基のアーキテクチャパターン まず最初に、クラウドアーキテクチャセンターを紹介します。Google Cloudでワークロードをビルドまたは移行するためのリファレンスアーキテクチャ、ガイダンス、ベストプラクティスがまとまっているページです。クラウドのアーキテクチャを検討する際に、こまったらここを参考にするとヒントが詰まっています。 Webアプリケー

    Google Cloudのサーバーレス製品を活用したアーキテクチャ | gihyo.jp
    toshikish
    toshikish 2024/03/05
  • 人間中心設計からAI中心設計へ ~AIエージェントによって変わるソフトウェアのパラダイム | gihyo.jp

    チャット型ソフトウェアからAIアシスタント型ソフトウェアへの変化 OpenAIが発表したChatGPTの登場から、一年以上が経とうとしています。ChatGPT API公開後の初期段階では、人間とAI(特にここでは大規模言語モデル)との単純な対話を提供するソフトウェアが中心でした。しかし今では、OpenAI GPTs(以下GPTs)やMicrosoft Copilot(以下Copilot)を代表とする、AIによる外部データへのアクセスやAPI通信によって人間を支援する「AIアシスタント型」のソフトウェアが台頭してきています。 GPTsは、ユーザー自身が好みのAIアシスタントを制作できる仕組みです。ChatGPTは汎用的な仕組みのため、特定の業務を行わせようとすると、役割や前提を含んだ長々としたプロンプトを入力する必要がありました。その点でGPTsは、AIに対する指示だけでなく、AIが参照可能

    人間中心設計からAI中心設計へ ~AIエージェントによって変わるソフトウェアのパラダイム | gihyo.jp
    toshikish
    toshikish 2024/03/01
  • 第9回 自動テストの実行結果 ~意思決定と行動を促す情報としての役割~ | gihyo.jp

    WEB+DB PRESS休刊に伴い、今回からWeb上で連載を継続させていただくことになりました。今後とも何卒よろしくお願いします。さて、あらためて連載の最近の連載のテーマを振り返りますと、それは「信頼性の高い実行結果に短い時間で到達する自動テスト群を組み上げ、ソフトウェアの成長を持続可能なものにする」となります。今回はそのなかから「実行結果」に光を当てます。 多くのテスティングフレームワークには実行結果の出力フォーマットを変更するオプションやプラグイン機構があり、自動テストはその実行結果を様々なフォーマットで出力します。それらテストの実行結果は「情報」であり、情報の役割とは意思決定と行動を促すことです。テストの実行結果が促す行動とはデプロイ、マージ、コードの修正などです。今回は、そのようなテスト実行結果出力の種類と目的についてまとめます。 信号機としてのテスト出力 意思決定から行動へつな

    第9回 自動テストの実行結果 ~意思決定と行動を促す情報としての役割~ | gihyo.jp
    toshikish
    toshikish 2024/02/29
  • 実践Next.js ——App Routerで進化するWebアプリ開発

    このの概要 最新のNext.jsを現場で使うために実践的な知識を詰め込んだ一冊です。フレームワークの基礎はもちろん,パフォーマンスを上げるための知識や関連ライブラリまで,詳細なサンプルコードをもとに解説していきます。 こんな方におすすめ 最新のNext.jsに入門したいエンジニアNext.jsに多少の経験があるが,より良い使い方を知りたいエンジニア 第1章:Next.jsの基礎 1.1:Next.jsプロジェクトの始め方 1.2:アプリケーションのルーティング 1.3:SPAならではのナビゲーション 1.4:ネスト可能なレイアウト 第2章:Server Componentとレンダリング 2.1:Server ComponentとClient Component 2.2:Server Componentのデータ取得 2.3:動的データ取得と静的データ取得 2.4:Routeのレンダリング

    実践Next.js ——App Routerで進化するWebアプリ開発
    toshikish
    toshikish 2024/02/28