タグ

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

  • 第7回 テストコードの認知負荷 ~テストの名前、構造、情報量を工夫する~ | gihyo.jp

    サバンナ便り ~ソフトウェア開発の荒野を生き抜く~ 第7回テストコードの認知負荷 ~テストの名前⁠⁠、構造⁠⁠、情報量を工夫する~ 開発の現場では、既存のテストコードから仕様を読み解く機会がよく訪れます。そのようなとき、テスト対象の仕様やテストの意図を読み解きやすいテストとそうではないテストがあることに気付きます。今回はテストコードの読み解きやすさに寄与する要素を考えます。 認知資源と認知負荷 人間は何かを読み解くときに脳のリソース(脳内のワーキングメモリ)を使います。リソースの量は有限で、個人差があります。このような脳のリソースは「認知資源」と呼ばれています。 人間が何かを読み解くときに認知資源が何にどのくらい割かれているかという概念を「認知負荷」と言います。「⁠どのくらい」は状況に左右されます。たとえば、読み解く対象を知っているかどうかで認知資源が割かれる量は変化します。「⁠何に」も状

    第7回 テストコードの認知負荷 ~テストの名前、構造、情報量を工夫する~ | gihyo.jp
  • 第2回 プロダクトアンチパターン | gihyo.jp

    プロダクトの難しさ プロダクトを作るのは当に難しい。ユーザーが抱える問題を解決しようとしているのだから当然だ。ひょっとしたらあなたは人類史で初めてその問題に取り組んでいるかもしれない。プログラミングも難しいが、「⁠難しさ」の種類が違うように思う。プログラミングの難しさはソースコードを介して他者と共有可能であり、ソースコードは機械語を解するコンピュータとエンジニア向けに書かれたものなのであいまいさが少ない。一方でプロダクトが解こうとする問題はあいまいで多岐にわたる。「⁠タクシーを見つけるのが難しい」から「一緒にお昼ごはんをべる仲間がいない」まで、1つとして同じものはない。同じ問題を解いている人に出会えることは少ないだろう。 プログラミングにはデザインパターンというものがある。「⁠この形はどこかで見たことあるぞ」「⁠この種のコードはObserverパターンを使えばきれいに依存を分離できる」

    第2回 プロダクトアンチパターン | gihyo.jp
  • 第76回 Ubuntuのソフトウェアファイアウォール:UFWの利用(1) | gihyo.jp

    ufw(Uncomplicated FireWall)は、Ubuntuで標準的に利用できる、「⁠iptablesを簡単に設定するツール」です。ufwを利用することで、「⁠外部からの接続は基的に受け付けない」「⁠sshだけは許す」などといった設定を、iptablesにくらべて格段に少ない操作で実現できます。 今回と次回の2回にわけて、ufwを使って、サーバーなどの設定を簡単に行うレシピを紹介します。 ufwの基 ufwは、Canonicalの社員であり、Ubuntuのセキュリティ関連モジュールやセキュリティアップデートを主に担当しているJamie Strandboge氏が中心になって開発している、「⁠iptablesフロントエンド」となるツールです[1]⁠。Ubuntuには8.04で取り込まれています。過去にレシピでも、第45回でごく軽く内容を紹介しています。 今回はコマンドラインか

    第76回 Ubuntuのソフトウェアファイアウォール:UFWの利用(1) | gihyo.jp
  • 第17回 Webアプリケーションのパフォーマンス改善(1) | gihyo.jp

    大きな効果を上げるために チューニンガソン#1~#3の改善率を見ると、アプリケーションや全体のアーキテクチャに手を入れないで改善できるのは最大でも10倍以下です。もちろん数倍速度が違えばサーバ台数を大きく減らせるので有意義なのは間違いないのですが、ISUCONやチューニンガソン#4のような飛躍的な高速化は望めないことがわかります。 つまりチューニングでは、単にパラメータ設定を変更するのみではなく、ボトルネックになっているコードやクエリ、アーキテクチャに的確に手を入れていくことで大きな効果を上げることができるのです。 ボトルネックの発見と解消が大事 システム全体の処理時間についてパレートの法則(経験則)を適用すると、「⁠全体の処理時間の80%は20%の部分で発生している」ということになります。実際にシステム全体で一番ボトルネックになっている部分を解消しないことには、ほかの部分に手を入れても大

    第17回 Webアプリケーションのパフォーマンス改善(1) | gihyo.jp
  • PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp

    PHPの生みの親⁠⁠、ラスマス⁠⁠・ラードフ氏インタビュー 2015年12月に無事公開されたPHP7。その公開に先立ってPHPの生みの親であるラスマス・ラードフ氏に話を伺う機会がありました。英語で行われた一時間のインタビューは長大ですがラスマス氏の思想がよく分かる話題が多く、可能な限りそのままの形でお伝えすべく、その模様すべてをお届けします。 なお、インタビューは10月に開催されたPHPカンファレンス2015の講演終了後に行われ、リリースに関する話題などはその時点でのものです。 現在の仕事と生い立ち ―――― まずは、PHPを作ってくださってありがとうございます。今日の基調講演もすばらしかったです。 ラスマス:ありがとうございます。 ―――― いきなりですが、個人的な質問から始めてもいいでしょうか。 ラスマス:どうぞ。 ―――― Etsyではどのようなお仕事をなさっているんですか? ラスマ

    PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp
  • 責任重大,膨大な必須知識,不定期の深夜作業や肉体労働――そんな苦しさを上回るインフラの魅力とは?:新刊ピックアップ

    書籍案内 » 新刊ピックアップ » 責任重大,膨大な必須知識,不定期の深夜作業や肉体労働――そんな苦しさを上回るインフラの魅力とは? どんなに魅力的なサービスでも,インフラがしっかりしてなければ価値はない 「ユーザー登録が数十万,数百万人に達して大人気!」 「テレビ番組に取り上げられて,アクセス数がうなぎのぼりに!」 Webサービスがそんな華々しい実績とともに紹介されるのをよく目にしますが,その裏側で大きな問題が起きることはめずらしくありません。 「アクセスしてるのに,まったくつながらないんだけど……」 「なんとかつながるはつながるけど,異常に遅くてイライラする……」 そんな経験,あなたも一度はあるのではないでしょうか? どんなに便利で役に立つWebサービスがあったとしても,それを的確にお客さんに届ける基盤がしっかりしておらず,サイトが頻繁に落ちていたり,動作が遅かったりすれば,価値があり

    責任重大,膨大な必須知識,不定期の深夜作業や肉体労働――そんな苦しさを上回るインフラの魅力とは?:新刊ピックアップ
  • PHPはどのように動くのか ~PHPコアから読み解く仕組みと定石:書籍案内|技術評論社

    2015年9月17日紙版発売 2015年9月17日電子版発売 蒋池東龍 著 A5判/248ページ 定価2,508円(体2,280円+税10%) ISBN 978-4-7741-7642-0 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 同じようなスクリプトなのに,なぜパフォーマンスが違うのか? オブジェクト指向だと,なぜ遅いのか? PHP7は,なぜ速くなったか? 最も人気のあるWeb用プログラム言語であるPHPの知られざる内部構造を解説した,日初の書。「メモリを節約したり,処理を軽くしたりするスクリプトを書くには」「パフォーマンスの高いExtensionを作るには」「Zen

    PHPはどのように動くのか ~PHPコアから読み解く仕組みと定石:書籍案内|技術評論社
  • 第28回 Perlの構文解析器の作り方と応用例(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーPerl 5の字句解析器・構文解析器であるCompiler::Lexer/Parserを開発した五嶋壮晃さんです。Compiler::Lexer/Parserの開発で得られた知見をもとに、Perl 5がなぜ「Onlyperl can parse Perl」と言われているのかという謎に迫ります。また、言語処理系の字句解析器・構文解析器を開発する際の勘どころについてPerl 5の例を交えながら触れ、最後にCompiler::Lexer/Parserの応用例を紹介します。 構文解析器の役割とPerlとの関係 節では言語処理系の基的な構成や構文解析器の役割について触れ、筆者が開発しているCompiler::Lexer/Parserと、Perlコードの静的解析用途で広く利用されているPPIとの違いについて簡単に解説し

    第28回 Perlの構文解析器の作り方と応用例(1) | gihyo.jp
  • 大人気「WEB+DB PRESS plus」シリーズを一斉電子化、先着500名様にオリジナルステッカーをプレゼント ──12月10日に20冊を同時刊行 | gihyo.jp

    大人気「WEB+DB PRESS plus」シリーズを一斉電子化、先着500名様にオリジナルステッカーをプレゼント ─⁠─12月10日に20冊を同時刊行 株式会社技術評論社は、大人気シリーズ「WEB+DB PRESS plus」を電子化し一斉刊行することを発表いたします。 すでに発売されている『関数プログラミング実践入門 ─⁠─簡潔で、正しいコードを書くために』に続き、一斉刊行第一弾として下記20冊を電子書籍化して、12月10日に発売いたします(EPUB版は2015年1月末配信。PDF版ご購入の方には無償提供⁠)⁠。 Googleを支える技術 ─⁠─巨大システムの内側の世界 [24時間365日]サーバ/インフラを支える技術 ─⁠─スケーラビリティ、ハイパフォーマンス、省力運用 プログラマのための文字コード技術入門 Webを支える技術 ─⁠─HTTP、URI、HTML、そしてREST [We

    大人気「WEB+DB PRESS plus」シリーズを一斉電子化、先着500名様にオリジナルステッカーをプレゼント ──12月10日に20冊を同時刊行 | gihyo.jp
  • 第2回 深津貴之―アプリ開発者からその先へ | gihyo.jp

    先を歩むエンジニアへのインタビューを通してエンジニアのキャリアについて考える連載、今回は、UI(User Interface)に主眼を置いた斬新なWebサービスをFlashで提供し、iPhoneアプリの黎明期からヒットを何作も出してきた、「⁠fladdict」という名前でも有名なTHE GUILDの深津貴之さんにお話を伺いました。 [撮影:平野正樹] デジタルと物理的なデザインを学んだ大学時代 ─⁠─いつからテクノロジに興味を持ち始めたのでしょうか? 深津:大学で「都市情報デザイン研究室」に所属し、「⁠テクノロジで生活がどう変わるか」を研究していました。そこでおじいちゃんと孫に遠隔でコミュニケーションが発生するとどう変化が起こるのかなどを研究しました。いろいろとやっているうちにインタラクションやUIに興味を持ち、Flashを始めました。その後、就職に興味が湧かず、学びたいこともあったので

    第2回 深津貴之―アプリ開発者からその先へ | gihyo.jp
  • 第4回 memcachedの分散アルゴリズム | gihyo.jp

    株式会社ミクシィの長野です。第2回、第3回と前坂がmemcachedの内部について紹介しました。今回は内部構造から離れて、memcachedの分散についての紹介をいたします。 memcachedの分散 連載の1回目に紹介しましたが、memcachedは「分散」キャッシュサーバと言われていますが、サーバ側には「分散」の機能は備わっていません。サーバ側には当連載の第2回、第3回で前坂が紹介したメモリストレージの機能のみが組み込まれており、非常にシンプルな実装となっています。では、memcachedの分散はどのように実現しているのかと言うと、すべてクライアントライブラリによって実現されます。この分散方法はmemcachedの大きな特徴です。 memcachedの分散とは ここまで数度「分散」という言葉を用いてきましたが、あまり詳しく触れてきませんでした。ここでは各クライアントの実装に共通する大ま

    第4回 memcachedの分散アルゴリズム | gihyo.jp
  • PDF版の電子書籍に対して,購入前に全文検索ができるようになりました | Gihyo Digital Publishing … 技術評論社の電子書籍

    PDF版の電子書籍に対して、購入前に全文検索ができるようになりました 日頃より,Gihyo Digital Publishingをご利用いただきまして,ありがとうございます。 先日,電子書籍として販売しているPDF版の各書籍に対して,全文検索が利用できるようになりました。電子書籍のご購入を検討する際にご利用ください。 この全文検索の利用方法は次のとおりです。 ストアページにて,書籍を選択する。 書籍ページにて,右上のメニューから[目次]を選択する。 目次の項に移動したら,「書内のキーワード」と書かれている入力ボックスに,検索したい用語を入力する。文字列確定後,この入力ボックスの右側にある検索ボタンを押す。 これにより,検索ボックスの下部に書籍内で該当している箇所を上位5件,そのページの内容を表示します。 なお,検索結果の情報はPDFのテキスト情報を単に抜き出して利用しているため,「改行さ

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

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

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

    2013年12月21日紙版発売 2014年12月23日電子版発売 B5判/200ページ 定価1,628円(体1,480円+税10%) ISBN 978-4-7741-6120-4 ただいま弊社在庫はございません。 Amazon 楽天ブックス honto ヨドバシ.com Fujisan(定期購読のみ) 電子版 Gihyo Digital Publishing 書のサポートページサンプルファイルのダウンロードや正誤表など 特集1 実践スクラム 最も採用されているアジャイル開発手法 スクラムは,「複雑で変化の激しい問題」に対応することを第一目標としたアジャイル開発手法です。数あるアジャイル開発手法の中でも,いま圧倒的に採用されています。特集では,現在のソフトウェア開発におけるスクラムの意義から,実際の現場における取り組みまで,スクラムを徹底解説します。まず1章で,なぜソフトウェア開発は難

    WEB+DB PRESS Vol.78
  • 【特別企画】ソーシャルゲームのDevOpsを支える技術(前編)~魔法少女リリカルなのはINNOCENTの舞台裏~ | gihyo.jp

    【特別企画】ソーシャルゲームのDevOpsを支える技術(前編)~魔法少女リリカルなのはINNOCENTの舞台裏~ モバゲーから提供されているソーシャルゲーム『魔法少女リリカルなのはINNOCENT』は、企画・開発・運用を(⁠株⁠)ユビキタスエンターテインメントが行っています。このサービスを支えるインフラは物理サーバと仮想サーバのハイブリッド構成となっており、(⁠株)IDCフロンティアのクラウドサービスが採用されています。稿はこの両社から、人気ソーシャルゲームならではのデータを交えながら、DevOps実現に向けての取り組みを披露してもらいます。 どんなゲームなの? 『魔法少女リリカルなのはINNOCENT』は2013年3月にモバゲーにてリリースされたソーシャルゲーム[1]です。原作者の都築真紀氏がこのゲームのために構築した世界観、従来のカード型ソーシャルゲームのシステムを踏まえつつも他作品

    【特別企画】ソーシャルゲームのDevOpsを支える技術(前編)~魔法少女リリカルなのはINNOCENTの舞台裏~ | gihyo.jp
  • 第1回 「konashi」とiOSアプリを連携させる | gihyo.jp

    はじめに iPhoneiPadは、あたりまえですが画面があって音も出て、インターネットにもつながり、さらにはGPSや加速度センサも付いていて、スマートフォンアプリに必要な機能を実現するにはかなり「揃っている」デバイスです。ただ、それでもiPhoneからにおいは出せませんし、脳波はとれませんし、時計のように腕に巻くことはできませんし、直接電子回路をつなげることはできません。 そういった「iOSデバイスにない機能」を使うには、外部デバイスに頼る必要があります。嬉しいことに、昨今のスマホアプリ開発人気のおかげで、iOSアプリと連携させて使えるデバイス、すなわちiOSアプリと連携させるためのSDKや、Web APIが用意されているデバイスが色々と市販され始めています。 連載では、そういった「iOSアプリの可能性を広げるデバイス」を毎回1つずつ取り上げ、その特長や、連携させるためのアプリ側の実装

    第1回 「konashi」とiOSアプリを連携させる | gihyo.jp
  • 第3回 見つからないエンジニアを探し出す技術・リターンズ | gihyo.jp

    「ぶっちゃけ、『見つからないエンジニアを探し出す技術』っていうほどの内容ではないですよね」 「原稿を拝見したのですが、見つからないエンジニアを探し出す技術というタイトルから期待したほどは、掘り下げてないのですね。」 先週の原稿を提出した後の担当編集者の傳智之さんからのリプライに、私はショックを受けてしまいました。 「いや、掘り下げようもなにも、見つからないエンジニアを探し出す技術は、いまやどこの人材系企業も躍起になって磨いていて、おいそれとここで書いてしまっては大変なことに……。」 そう言い訳しようと思いつつも、 「確かに、もう少し書くと、ソーシャルネットワークなどでも評判になるかもしれない。そうしたら、プロデュースをしているCodeIQというサービスも、さらに評判になるかもしれない。」 と、邪な考えが頭をよぎったのでした。 ということで、今週は「見つからないエンジニアを探し出す技術・リタ

    第3回 見つからないエンジニアを探し出す技術・リターンズ | gihyo.jp
  • パーフェクトRuby

    2013年8月10日紙版発売 2014年11月1日電子版発売 Rubyサポーターズ 著 B5変形判/640ページ 定価3,520円(体3,200円+税10%) ISBN 978-4-7741-5879-2 ただいま弊社在庫はございません。 →書の新版が発行されています。 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 書は1冊でRubyの言語仕様から最新の技術までを網羅した内容となっています。また,網羅的に解説されているだけでなく各技術に関しては基からしっかり解説しており,体系的に知りたい初心者はもちろん中級者以上の方にもRubyを書く際に手元に置いておくと重宝する内容です。 Ruby 1.9.3とRuby 2.0対応。 こんな方におすすめ 他のプログラミング言語を触ったことがあり,これからRubyを始めようとしている人 過去にRubyは触っていたが,

    パーフェクトRuby
  • 2013年7月18日 「汚い言葉はやめて!」女性開発者の苦言にLinus倍返し | gihyo.jp

    もはやコーナーは"Linus暴言録"と陰で呼ばれているようだが、我らがLinus Torvaldsがまたまたカーネル開発メーリングリスト「LKML.org」での発言で物議を醸している。といっても今回の場合、どちらかと言うとLinusは巻き込まれた感が強いかもしれない。 コトの発端はLKMLに7月15日付でポストされたIntelの女性開発者 Sarah Sharpからのメールである。 LKML: Sarah Sharp: Re: [ 00/19] 3.10.1-stable review 彼女は、Linusがカーネルメンテナーの古参"GKH"ことGreg Kroah-Heartmanに対し"door-mat(ドアマット、踏みつけられてもしょうがないほどのボケ)"と呼んだことにひどく立腹し、「⁠これはもう暴力です! カーネルの質の向上に、こんな汚い言葉は必要ありません!! とても受け入れがた

    2013年7月18日 「汚い言葉はやめて!」女性開発者の苦言にLinus倍返し | gihyo.jp
  • 第16回 Perl内部構造の深遠に迫る(2) | gihyo.jp

    前回の(1)はこちらから。 文字化け問題 ─⁠─ Perlの文字列の実装に迫る 次のテーマは文字列です。文字化けは、プログラマの意図したエンコーディングと実際のエンコーディングが異なるときに起きる現象で、どんなプログラミング言語でも問題になります。ただPerlではv5.8.0以降、さらにテキスト文字列という概念ができたため、プログラマの意図をコードに落とす際に少し工夫が必要です。この概念を正しく理解していないと、エンコーディングが正しく見えるときでも文字化けが起きることがあるのです。そこで節では、文字化けをデバッグするという目的のもと、perlの文字列の実装に迫ります。 まず、よくある文字化けを再現するコードがリスト7です。CPANモジュールのEncode::Locale[6]をインストールしておいてください。また、ファイルはUTF-8で保存してください。 リスト7 hello-moji

    第16回 Perl内部構造の深遠に迫る(2) | gihyo.jp