タグ

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

  • 保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像 ~Software Design 2022年3月号「そろそろはじめるテスト駆動開発」より | gihyo.jp

    保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発⁠⁠、その全体像 ~Software Design 2022年3月号「そろそろはじめるテスト駆動開発」より 今回、Software Design 2022年3月号 第2特集「そろそろはじめるテスト駆動開発 JavaScriptでテストファーストに挑戦」の第1章「保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像」をサイトに掲載します。第2章以降については、誌『Software Design 2022年3月号』電子版(Gihyo Digital Publishing、Amazon Kindle)をご購読いただければ幸いです。 第1章では、混同されることの多い自動テスト関係の概念を、自動テスト、テストファースト、テスト駆動開発の3つの段階に分け、それぞれの効果や注意点を説明します。ソフ

    保守しやすく変化に強いソフトウェアを支える柱 自動テストとテスト駆動開発、その全体像 ~Software Design 2022年3月号「そろそろはじめるテスト駆動開発」より | gihyo.jp
  • 第46回 Perl 5.26で変わること(1):Perl Hackers Hub|gihyo.jp … 技術評論社

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはcharsbarこと石垣憲一さんで、テーマは「Perl 5.26で変わること」です。 Perl 5.26リリース 去る2017年5月30日にPerl 5.26がリリースされました。これは1987年にPerl 1.0が生まれてから30年、モダンPerl運動のきっかけとなったPerl 5.10が2007年に生まれてから10年という節目のリリースです。2016年春に新たにパンプキン[1]に就任したSawyer X氏のリードのもとでリリースされる最初の安定版[2]でもあります。 Perl 5はかれこれ20年以上も同じメジャーバージョンを使い続けていることからも察せられるように、後方互換性が比較的よく保たれている言語です。それでも、節目節目では新機能の追加とともに多かれ少なかれ互換性が失われるような変更が行われてきました

    第46回 Perl 5.26で変わること(1):Perl Hackers Hub|gihyo.jp … 技術評論社
  • 追悼 Bram Moolenaar ~Vimへの情熱と貢献を振り返る | gihyo.jp

    Bram Moolenaar the Creator of Vim 2023年8月5日、悲しい知らせが入ってきました。長年、多くのエンジニアに愛され今もなお使われ続けているテキストエディタVimの作者Bram Moolenaar氏が同月3日に亡くなったという知らせです。ショックでしばらく信じることができませんでした。 筆者は長年Vimを使い、Vimに多くのコントリビュートを行ったり、その都度Bram氏と対話したり議論したりしてきました。そのBram氏が突然、この世界からいなくなってしまったことをしばらく受け入れられなかったからです。 記事では追悼の意味を込め、Bram氏がどのようにVimの開発を始め、Vimがどのように広まっていったのか、また長年Vimを追い続けてきた筆者から見たBram氏の人物像を筆者の思いを交えて解説していきます。 Vim歴史 Bram氏についてお話しする前に、まず

    追悼 Bram Moolenaar ~Vimへの情熱と貢献を振り返る | gihyo.jp
  • 第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
  • ChatGPT APIとWhisper APIで議事録文字起こしアプリを作り、Hugging Face Spacesで公開する | gihyo.jp

    ChatGPT APIの使い方 実際にChatGPT APIを使ってみましょう。 openai-pythonのインストール 今回はOpenAIPython用ライブラリであるopenai-pythonを使います。pipを用いて、openai-pythonをインストールしましょう。 pip install openai APIリクエスト ChatCompletion.createで対話を生成できます。たとえば、以下のようなコードになります。 import openai openai.api_key = "sk-..." # APIキー completion = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "こんにちは!"}] ) print(complet

    ChatGPT APIとWhisper APIで議事録文字起こしアプリを作り、Hugging Face Spacesで公開する | gihyo.jp
  • Goのカバレッジツールを使いこなす | gihyo.jp

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

    Goのカバレッジツールを使いこなす | gihyo.jp
  • 軽量RustフレームワークTauriでデスクトップアプリ開発をはじめよう | gihyo.jp

    TauriはRustで書かれた軽量なGUIフレームワークで、WindowsmacOSLinux向けのデスクトップアプリを開発できます。2022年6月に最初の安定版であるバージョン1.0がリリースされました。 Tauriでは、メインプロセスはRustで記述しますが、UI(User Interface)にはWeb技術を利用します。ReactVue.jsのようなJavaScriptフレームワークがそのまま使えるので、インタラクティブで見栄えの良いUIを簡単に構築できます。同種のフレームワークにElectronがありますが、後発であるTauriにはインストーラのサイズを小さくできるなどの強みがあります。 Tauriのロゴは、おうし座の二重星であるシータタウリ(θ Tauri)をモチーフ[1]にしており、Webとネイティブアプリの相互作用を意味しています。 図1 Tauriロゴ 稿では、Ta

    軽量RustフレームワークTauriでデスクトップアプリ開発をはじめよう | gihyo.jp
  • 第715回 Lenovo ThinkPad X13 Gen2 AMDにUbuntu 22.04 LTSをインストールして使用する | gihyo.jp

    Ubuntu Weekly Recipe 第715回Lenovo ThinkPad X13 Gen2 AMDにUbuntu 22.04 LTSをインストールして使用する 今回は、新たに購入したLenovo ThinkPad X13 Gen2 AMDに、Ubuntu 22.04 LTSをインストールして使用してみました。使用感やベンチマークを見ていきます。 選定理由 これまで使用していたパナソニック レッツノート CF-SZ6FD3QRは購入から5年以上経過し、ただでさえ少ない8GiBメモリーでは日常的な使用が厳しくなってきました。もちろん故障の心配もあります。 次のノートPCを何にするかは悩ましかったのですが、AMD好きとしてはやはりノートPCでもAMDを使用することを決めて機種選定しました。となるとレッツノートは選択肢から外れることになります。軽量かつ頑丈でUbuntuも素直に動くので、

    第715回 Lenovo ThinkPad X13 Gen2 AMDにUbuntu 22.04 LTSをインストールして使用する | gihyo.jp
  • 第1章 進化するHTTPの歩み ~ HTTP/1.1とHTTP/2をおさらいし、HTTP/3の基本を知る | gihyo.jp

    HTTP/3入門 第1章進化するHTTPの歩み ~ HTTP/1.1とHTTP/2をおさらいし⁠⁠、HTTP/3の基を知る この特集記事は2021年6月24日に発売されたWEB+DB PRESS Vol.123に掲載された特集1「HTTP/3入門」を再掲したものです。 先日2022年6月にHTTP/3を含むHTTP関連の仕様が正式なRFCとなりました。ここではRFCの正式リリースに伴い、いち早く変更点を抑え、囲みボックスを用いた加筆解説でわかりやすくお伝えしております。 特集のはじめに HTTP(Hypertext Transfer Protocol)の最新版であるHTTP/3が登場しました。HTTP/3では、より安全で速い通信が行えます。特集では、今までのHTTPにあった課題と、HTTP/3で課題をどのように解決し、改善が行われたかを解説します。 章では、HTTPそのものと各バージ

    第1章 進化するHTTPの歩み ~ HTTP/1.1とHTTP/2をおさらいし、HTTP/3の基本を知る | gihyo.jp
  • 第632回 AMD Ryzen 7 PRO 4750Gを使用する[後編] | gihyo.jp

    前回に続き、AMD Ryzen 7 PRO 4750G搭載PCでUbuntuを動作させ、ベンチマークを行った結果を報告します。比較対象のハードウェアについては、第631回の前編をご覧ください。 前編の補足 前編である第631回の補足事項が2つあります。 まずはチップセットというかマザーボードの選択で、「⁠一部の例外を除くと現状はチップセットにX570とB550を採用しているモデルであることが必須で」と述べましたが、先週末からA520チップセットを搭載したマザーボードの販売が開始されました。Mini-ITXでもNMVe SSDスロットが2つ必要などということでもなければ、安価なためこちらのほうがいいかもしれません。採用しているチップ的に有線LANにも無線LANにも悩む必要がなさそうです。 前編ではグラフィックが正しく認識されないということでMainline Kernelの5.8を使用しました

    第632回 AMD Ryzen 7 PRO 4750Gを使用する[後編] | gihyo.jp
  • 第631回 AMD Ryzen 7 PRO 4750Gを使用する[前編] | gihyo.jp

    CPUファンは筆者のお気に入りの大手裏剣参 RGBです。検証した限りではRyzenのリテールクーラーであるAMD Wraith Stealthでも冷却能力自体は充分なものでした。 Ryzen 7 PRO 4750Gを使用するのであれば、選択できるマザーボードはあまり多くありません。一部の例外を除くと現状はチップセットにX570とB550を採用しているモデルであることが必須で、たいていの場合は新規に購入することになるでしょう。今回はB550I AORUS PRO AXを購入しました。Mini-ITXのB550チップセット搭載モデルとしては比較的安価で、APUを使用する以上ディスプレイ出力ポートが豊富(DisplayPortが1ポート、HDMIが2ポート)なのもポイントが高いです。ただし新しすぎるため、Ubuntuで使う分にはいくつか問題もあります。 メモリはCT2K16G4DFD832Aで、

    第631回 AMD Ryzen 7 PRO 4750Gを使用する[前編] | gihyo.jp
  • 第25回 猛暑とCPUの発熱対策[その2] | gihyo.jp

    前回紹介したように、手元のCore i7 CPUを使った開発機ではカーネルやGCCといった大規模なソフトウェアをmakeの-jオプションを使って並列度を上げてビルドしようとするとCPUの温度が危険なほど上昇してしまいます。この問題が起きるのは「大規模なソフトウェアを並列度を上げてビルドする」というかなり限定された場合のみなので、並列度を下げることで問題を回避することは可能ですが、そうするとビルドにかかる時間がずいぶん長くなってしまって不便です。 何かいい方法はないかなぁ……、と考えているうちにCpufreqと呼ばれる動作周波数数管理機能のことを思い出しました。 Linuxの動作周波数管理機能 去年買ったCore i7の動作周波数は2.93GHzだったように、最近のCPUの動作周波数は2GHzを大きく超えています。CPUの動作周波数は高ければ高いほど、1秒あたりの処理回数が増えて性能は向上し

    第25回 猛暑とCPUの発熱対策[その2] | gihyo.jp
  • 本日12月1日より、プログラマ有志による2014年の技術系Advent Calendarが各所ではじまる | gihyo.jp

    日12月1日より、プログラマ有志による2014年の技術系Advent Calendarが各所ではじまる 日12月1日より、プログラマ有志による2014年の各技術系Advent Calendar(アドベントカレンダー)が一日目を担当する人のblogではじまっている。技術系Advent Calendarの数の増加傾向は今年も続いており、Qiitaを利用したものがとても多くなっている。 一般的なAdvent Calendarは、12月25日のクリスマスを楽しみに待つために、12月1日から24日までのカレンダーの日付それぞれの部分が扉になっており、1日ずつその日の日付の部分を開くと天使や動物の絵などが見えるという仕組みになっている(もちろん、様々なバリエーションがある⁠)⁠。 これに発想をえて、技術系Advent Calendarでは基的に、12月1日から25日までの25日間、特定のプログラ

    本日12月1日より、プログラマ有志による2014年の技術系Advent Calendarが各所ではじまる | gihyo.jp
  • LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術 記事一覧 | gihyo.jp

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

    LXCで学ぶコンテナ入門 -軽量仮想化環境を実現する技術 記事一覧 | gihyo.jp
  • 第23回 Perlアプリケーションのテストと高速なCI環境構築術(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回はmyfinderこと久森達郎さんで、テーマは「Perlアプリケーションのテストと高速なCI環境構築術」です。テストに利用するさまざまなモジュールから、CI(Continuous Integration、継続的インテグレーション)環境の構築、そして増えたテストを高速に実行する枠組みの構築までを紹介します。 なお稿のサンプルコードは、誌サポートサイトから入手できます。 テストの目的 まずはテストを行う目的を整理します。 コードを壊していないことを確認する 1人で開発するものであれば、どんな状況であれ責任を負うのは自分だけですが、チームや組織が複数にまたがる場合にはテストが重要になります。プロダクトが大きくなるにつれ、自分の開発によって想定外の機能にも影響を与えることが多くなります。逆にほかの開発者が行ったコミットによって

    第23回 Perlアプリケーションのテストと高速なCI環境構築術(1) | gihyo.jp
  • 1