タグ

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

  • 和田卓人さん、PHPで堅牢なコードを書く—例外処理、表明プログラミング、契約による設計 〜PHPカンファレンス2016 | gihyo.jp

    PHPカンファレンス2016 レポート 和田卓人さん、PHPで堅牢なコードを書く—例外処理、表明プログラミング、契約による設計 〜PHPカンファレンス2016 2016年11月3日にPHPカンファレンス2016が開催されました。稿では、ゲストスピーカーである和田卓人さんによる講演「PHP7で堅牢なコードを書く - 例外処理、表明プログラミング、契約による設計」についてレポートします。 PHP7では例外や表明の機能が大幅に見直され、強化されました。この講演では、例外処理を設計する際の基的な考え方や、表明(assertion)の使い方、そして表明と例外を使い分け、堅牢なコードに導くための設計手法「契約による設計(Design by Contract⁠)⁠」の考え方を説明しました。 導入 はじめに、和田さん自身が監訳に関わった『SQLアンチパターン』に掲載されているコードを、よりひどくさせた

    和田卓人さん、PHPで堅牢なコードを書く—例外処理、表明プログラミング、契約による設計 〜PHPカンファレンス2016 | gihyo.jp
    okinaka
    okinaka 2016/11/22
    class $status は class Status の誤り?タイポ多いな。
  • 第3回 Vue.jsでコンポーネント開発 | gihyo.jp

    はじめに 第3回では、Vue.jsのコンポーネントの基的な作成の仕方と使用方法を紹介します。 Vue.jsは、UIをコンポーネント化する仕組みを持っています。HTMLCSSJavaSciptで構築されたUIの再利用性が高まり、カプセル化されて開発で意識すべき範囲を限定できるようになります。今回の記事が、プロジェクトVue.jsを導入する際のコンポーネント設計のイメージをつかむ助けになれば幸いです。 Vue.jsのコンポーネント指向 Vue.jsのコンポーネント指向について Vue.jsのコンポーネントは、大まかにWeb ComponentのCustom Elementsの仕様に沿って設計されています。コンポーネントは、定義したタグ名で親となるコンポーネントのHTML上に記述できます。 大規模なアプリケーションを作成する際は、コンポーネントをツリー状に構成してわかりやすく設計すること

    第3回 Vue.jsでコンポーネント開発 | gihyo.jp
  • 第2回 Vue.js基礎文法最速マスター | gihyo.jp

    第2回では、Vue.jsの基礎文法について、駆け足で紹介します。 Vue.jsは、ビューの領域にフォーカスしたシンプルなライブラリです。そのため、他のライブラリとの連携や、既存のプロジェクトへの導入も容易です。今回の内容を通して、自身のプロジェクトVue.jsを導入するきっかけにしてください。 記事の内容は、Vue.jsがロードされたjsfiddleにアクセスして、コードを入力することで試せます。詳しい文法について知りたい場合は、公式のガイドやAPIリファレンスを参照してください。 Vueインスタンスとデータバインディング Vue.jsで基になるのは、Vueコンストラクタから生成されるインスタンスです。 var vm = new Vue({ el: '#example', // document.getElementById('example'), $('#example')[0] も

    第2回 Vue.js基礎文法最速マスター | gihyo.jp
  • 第1回 プログレッシブフレームワーク Vue.js:Vue.js入門 ―最速で作るシンプルなWebアプリケーション|gihyo.jp … 技術評論社

    Vue.jsとは Vue.js(ビュージェイエス)は、インタラクティブなUIを構築するためのJavaScriptライブラリです。Webサイト内のウィジェットや管理画面のダッシュボードといったビュー(view)層に特化しています。設計の特徴としてMVVMパターンに影響を受けています。 Vue.jsは2013年にEvan You氏の個人プロジェクトとして開始、2014年2月にバージョン0.8が正式に公開されます。その後いくつかのリリースを経て、2015年4月にLaravelへの標準搭載決定を機に一気に知名度があがりました。2015年10月に1.0が、2016年10月1日(日時間)に2.0がリリースされ現在に至ります。 Vue.jsの主な特徴には以下のものがあります。これらによって短期間で実用的なアプリケーションを作成できるため人気を集めています。 シンプルなAPIHTMLベースの平易なテン

    第1回 プログレッシブフレームワーク Vue.js:Vue.js入門 ―最速で作るシンプルなWebアプリケーション|gihyo.jp … 技術評論社
  • 現在,さまざまな分野で注目されるベイズ統計学:新刊ピックアップ

    ベイズの理論の広がり この10年,ベイズの理論は幅広い分野で活用されるようになりました。例えば,ホームページの検索で有名なグーグルでは,効率の良い検索ができる論理としてベイズの理論が利用されています。また,電子メールの迷惑メールの振り分けに,この考え方が活かされています。「⁠感情が経済を動かしている」と主張する行動経済学などの分野でも,盛んに利用されるようになってきました。 近年,マスコミ界ではAI人工知能)の研究やビッグデータ,IoT(モノのインターネット)など,情報理論の言葉が日常的に飛び交っています。 その最新の世界にもベイズの理論は活躍の場を広げています。 一方,ベイズの理論に関して,「⁠わかりにくい⁠」⁠,「⁠複雑だ」といった話をよく耳にします。確かに,ベイズの理論に関する文献をひも解くと,たくさんの数学記号が紙面を埋めていたり,著者の研究分野に偏った内容に主眼が置かれたりして

    現在,さまざまな分野で注目されるベイズ統計学:新刊ピックアップ
    okinaka
    okinaka 2016/05/09
  • 第413回 UbuntuでGyazoサーバーを構築する | gihyo.jp

    Gyazoというサービスがあります。これはPC上で撮影したスクリーンショットをサーバーにアップロードし、共有するサービスです。「⁠操作方法を質問したい」「⁠エラーが出たので見てほしい」「⁠おもしろいWeb広告見つけた」などなど、PCを利用していると、今の画面の状態をそのまま人に見せたいシーンには数多く遭遇しますよね。Gyazoはそんな時に活躍するツールです。デスクトップ上の選択した領域のスクリーンショットを撮影し、サーバーにアップロードしてURLを生成してくれます。 大抵のデスクトップ環境にはスクリーンショットを撮影する機能が用意されています。UbuntuであればPrtScキーを押してスクリーンショットアプリを起動し、保存した画像をDropboxあたりにアップロードすれば、Gyazoを使わなくても目的を達成することは可能です。しかし、これは非常に手間ですよね。Gyazoは「やっていることは

    第413回 UbuntuでGyazoサーバーを構築する | gihyo.jp
  • 第411回 VNCサーバー/クライアントを使用してみる | gihyo.jp

    今回は、もっとも簡単に利用できるリモートデスクトップ接続であるVNCについて解説します。 リモートデスクトップいろいろ 過去には、連載第21回(!)で、すでにVNCについて解説しています。また、RDP互換のxrdpの解説は第208回と第376回で行っています。そしてX2Goについては第330回で解説しています。 これらは、デスクトップ画面を転送するということに絞れば方式は違えど結果は概ね同じことを行っていますが、それぞれ付加価値があり、使用されるシーンも分かれてきます。 今回はある意味原点回帰なVNCをあらためて紹介することにしたのは、8年前とはVNC事情が変わっていること、4G回線の普及によるモバイル通信の高速化により、外出先からのデスクトップ転送も現実味を帯びてきたこと、VPSの普及によるVDIもまた考慮に値するなど、充分に価値がある情報であると思ったからです[1]⁠。 Ubuntu

    第411回 VNCサーバー/クライアントを使用してみる | gihyo.jp
    okinaka
    okinaka 2016/03/09
  • 進化するSeleniumとテスト自動化 ―「第3回日本Seleniumユーザーコミュニティ勉強会」レポート | gihyo.jp

    2016年2月6日、東京ミッドタウンのヤフー株式会社にて、日Seleniumユーザーコミュニティ主催による「第3回日Seleniumユーザーコミュニティ勉強会」が開催されました。今回は、2015年9月発行の『Seleniumデザインパターン&ベストプラクティス』で監訳を務められた玉川紘子氏・太田健一郎氏、2016年2月に発売された『Selenium実践入門』の著者である伊藤望氏・戸田広氏・宮田淳平氏を筆頭に、Seleniumを使って最先端で活躍しているエンジニア9名が登壇し、熱い思いや事例を参加者と共有しました。 ごあいさつ(伊藤望氏) 日Seleniumユーザーコミュニティの主宰者である伊藤望氏による開会のあいさつがありました。勉強会をはじめとするコミュニティの活動が活発であり、人数も拡大しているというお話に続き、勉強会申込者アンケートの結果が発表されました。 伊藤望氏 アンケート

    進化するSeleniumとテスト自動化 ―「第3回日本Seleniumユーザーコミュニティ勉強会」レポート | gihyo.jp
  • ソフトウェアテスト基本テクニック 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    ソフトウェアテスト基本テクニック 記事一覧 | gihyo.jp
    okinaka
    okinaka 2016/02/08
  • ドキュメントの構造化による、良いドキュメントの作成方法 | gihyo.jp

    あけましておめでとうございます。 ソフトウェアを開発し公開する場合、ドキュメント(マニュアル)を作成することが求められます。しかし、良いドキュメントを作成する方法というのはあまり知られていません。どのようにすれば良いドキュメントを作成できるのでしょうか? 稿では、ソフトウェアと同じくドキュメントを要素と性質に構造化することで、良いドキュメントを作成する方法を紹介します。そして、その要素と性質に対してアプローチを行っているESDocというJavaScript(ECMAScript2015)向けのドキュメンテーションツールについても簡単に紹介します。 対象とするドキュメント ドキュメントと一口にいっても仕様書、設計書、マニュアルなど様々な種類が存在します。そこで、稿が対象とするドキュメントを「ライブラリやフレームワークなどを開発するソフトウェア開発者自身が、そのソフトウェアの使い方をエンド

    ドキュメントの構造化による、良いドキュメントの作成方法 | gihyo.jp
    okinaka
    okinaka 2016/01/04
  • 第402回 SystembackでUbuntuをホットバックアップする | gihyo.jp

    今回はSystembackというUbuntuで動作するホットバックアップやライブイメージ作成を行うツールを紹介します。 バックアップは大事です 第399回執筆後に筆者のメインPCのHDDが故障しました。その前からHDDの読み書きに異常に時間がかかるようになり、それでも無理して使用していたのですが、突然リードオンリーになってしまいました。いよいよダメだということで新しいHDDを購入し、データをコピーしました。 どうしても読み出せないセクタがあり、いくつかのファイルはコピーできませんでしたが、そのうち甚大な被害となるところだったVirtualBoxのゲストOSになっているWindows 10のスナップショットファイルは、辛くもバックアップがあったのでなんとかなりました。ご存知のとおり、Windows環境の再構築には多大な時間がかかるため、大変助かりました。バックアップは大事です。 図1は、読み

    第402回 SystembackでUbuntuをホットバックアップする | gihyo.jp
  • 第11回 テストにもっと光を! 言うは易く行うは難し。テスト工程を改善しよう!(前編) | gihyo.jp

    開発のボトルネックはどこだ?―迷えるマネージャのためのプロジェクト管理ツール再入門 第11回テストにもっと光を! 言うは易く行うは難し。テスト工程を改善しよう!(前編) みなさんはソフトウェア開発においてどのようなテストを実施されているでしょうか。単体テスト、結合テスト、総合テストなど、さまざまなテストを実施されていることと思います。では、これらのテストをどのように計画・実行し、管理されているでしょうか。 ソフトウェアの品質を向上・維持していくうえで、テストは非常に重要です。今回は、その重要性が指摘されながら、あまり取り上げられることがなく、開発の花形である設計やプログラミングに比べて少々地味な役回りのテストについてお話したいと思います。 現状の課題 昨今のソフトウェア開発環境はめまぐるしく進化を続けており、開発サイクルはますます早くなっています。便利で使いやすいライブラリやフレームワーク

    第11回 テストにもっと光を! 言うは易く行うは難し。テスト工程を改善しよう!(前編) | gihyo.jp
    okinaka
    okinaka 2015/11/18
  • 第5回(最終回) 中規模環境でのItamae(複数ホストに対する実行) | gihyo.jp

    ここまで4回、Itamaeのレシピの書き方やプラグインの作り方などを説明してきました。最終回となる今回は複数サーバに対してItamaeを利用する場合の活用方法を3つ紹介します。 Capistranoを使ってItamaeを複数ホストに対して実行する CapistranoはRubyで書かれたデプロイツールで、アプリケーションのデプロイによく使われています。Capistranoを使ってSSH経由で複数台にItamaeを実行することで、手軽に並列でItamaeを実行することができます。ここではCapistranoのデプロイ機能を使ってレシピなどをデプロイし、デプロイ後にItamaeを実行する例を紹介します。 まず、Bundlerを使ってCapistranoをインストールし、cap installで初期ファイルを生成します。 $ cd itamae-repo $ bundle init # Gemf

    第5回(最終回) 中規模環境でのItamae(複数ホストに対する実行) | gihyo.jp
  • 第3回 ストリーミング処理とバッチ処理によるデータ収集 ~ Embulk編 ~ | gihyo.jp

    このデータをローカルのPostgreSQLのtestdb以下で定義しておきます。また合わせてサンプルデータもインポートしておきます。 create table users ( user_id bigint PRIMARY KEY, sex smallint, last_update timestamp NOT NULL, closed_account_time timestamp NOT NULL, age smallint, city varchar(30), device varchar(30), country varchar(30) ); INSERT INTO users (user_id, sex, last_update, closed_account_time, age, city, device, country) VALUES (1190452, 1, '2011-07

    第3回 ストリーミング処理とバッチ処理によるデータ収集 ~ Embulk編 ~ | gihyo.jp
  • 第4回 レシピプラグイン、リソースプラグインの作り方 | gihyo.jp

    前回はノード属性を使って汎用的なレシピを書く方法を紹介しました。汎用的なレシピは様々な環境で利用できるので、レシピをプラグインとして公開しておくことで再利用できます。また、プラグインとして独自のリソースを定義し、レシピを簡潔に書けます。 プラグイン Itamaeにはプラグイン機構が用意されていて、汎用的なレシピを公開したり、独自のリソースを実装することができます。プラグインはRubygemとして公開できるようになっていて、2015年8月24日(月)現在、33個のプラグインが存在します。プラグインは単なるGemなので、Bundlerを使って依存関係を管理できます。 レシピプラグイン レシピプラグインを作ることで、レシピを再利用できる形で公開できます。レシピプラグインGemの名前はitamae-plugin-recipe-(レシピ名)の形式にする必要があります。rubygems.orgでita

    第4回 レシピプラグイン、リソースプラグインの作り方 | gihyo.jp
  • 第386回 Unboundでお手軽に家庭内DNSサーバーを作ろう | gihyo.jp

    社内や家庭内でローカルな名前解決をする際、(⁠local.などのサブドメインをつけず)インターネット上に公開しているドメインと同じドメインを使いたいと思うことはないでしょうか。筆者はあります。とはいえ、インターネット上にある権威サーバーに、ローカルIPアドレスを返すレコードを登録するわけにもいきませんよね。そんな時はどうしたらよいでしょう? ある一つのドメインの中で、ローカルな名前はローカル内だけで解決し、かつインターネット上に公開している名前は来の権威サーバーにクエリーを投げて解決する、ということができればよさそうです。これが実現できると、グローバルIPとローカルIPを両方持つようなサーバー[1]は、家庭内で名前解決をした時のみはローカルIPを返す、というようなこともできそうです。 キャッシュリゾルバであるUnboundにはlocal-data(およびlocal-zoneのtransp

    第386回 Unboundでお手軽に家庭内DNSサーバーを作ろう | gihyo.jp
  • 第2回 レシピの書き方 | gihyo.jp

    前回はItamaeをインストールし、簡単なレシピを実行してみました。今回はさらに実践的なレシピの書き方について解説します。前回述べたようにItamaeはChefに強く影響を受けているため、概ねChefと同じように書けます。 リソースとは レシピにはリソースと呼ばれる、サーバ上のコンポーネント(ソフトウェア、ファイル、コマンドなど)を抽象化したものを記述します。リソースにはアクションをはじめとする属性を指定でき、操作の種類を指定することができます。前回も使ったpackageのリソースを例にすると package "nginx" do action :install # nginxパッケージをインストールする version "1.4.6-1ubuntu3.3" # 特定のバージョンをインストールする end package "nginx" do action :remove # nginx

    第2回 レシピの書き方 | gihyo.jp
  • 第1回 シンプル・軽量な構成管理ツールItamae | gihyo.jp

    はじめに はじめまして。クックパッド株式会社の荒井(@ryot_a_rai)と申します。 今回から全5回、構成管理ツールであるItamaeの入門から実際の活用例までを解説していきます。今まで構成管理ツールを使ったことがなかった方から、Itamaeをすでに使っている方まで、ぜひご覧ください。 Itamaeとは Itamaeは筆者が中心となって開発を進めているオープンソースの構成管理ツールです。同様のツールとしてはPuppet、Chef、Ansibleなどが有名ですが、ItamaeはChefに影響を受けています。Chefの記述性・柔軟性を持ちながら、シンプルで導入しやすい構成管理ツールを目指して開発が進んでいます。 構成管理ツールの必要性 Itamaeの解説を始める前に、構成管理ツールを使う理由について軽く考えてみたいと思います。 サーバ構築の自動化 手動構築の手間と時間を減らす 手動構築によ

    第1回 シンプル・軽量な構成管理ツールItamae | gihyo.jp
  • 第383回 Xymonではじめるサーバーモニタリング | gihyo.jp

    青葉若葉のみぎり、皆様にはますますご健勝のほどお喜び申し上げます。みなさまのサーバーも、なお一層お健やかにお過ごしのことと存じます。 連載359回ではMuninを利用したサーバーリソースの可視化を紹介しました。また361回では柴田さんがSensuを紹介してくれました。サーバーを運用するにあたって、監視と通知を実現してくれる監視システムの存在が必要不可欠なことは、みなさんご理解いただけているかと思います。 監視システムには様々なOSSや商用サービスが存在しますよね。OSSであればNagios、Zabbix、あるいはCactiあたりが定番でしょうか。商用サービスではmackerelなどが最近は話題になりましたね。日ではZabbixが比較的人気があるように思えます[1]が、実際のところ、何を使ったらよいのかよくわからないという方も多いのではないでしょうか。 筆者も、筆者の用途にとってはZab

    第383回 Xymonではじめるサーバーモニタリング | gihyo.jp
  • 第11回 設定ファイルの次世代フォーマットUCL | gihyo.jp

    プラットフォームへ、大きく変わる/etc/たち FreeBSDではシステムの設定ファイルは/etc/へ、サードパーティ製ソフトウェアの設定ファイルは/usr/local/etc/にインストールされる仕組みになっています。/etc/以下を調べればそのシステムがどういった動きをするかわかります。設定ファイルはソフトウェアごとに用意されていて、そのフォーマットもソフトウェアごとにさまざまです。 この状況は少しずつですが変わり始めています。早ければ11系のリリース時から、大きな阻害要因がない限りは12系や13系では/etc/以下の設定ファイルは大きく異なるものになっているかもしれません。 この動きの動機は、FreeBSDがサーバオペレーティングシステムから、さまざまなシステムの「プラットフォーム」としてのソフトウェアとして性格を変えてきていることにあります。FreeBSDが登場した20年以上前、F

    第11回 設定ファイルの次世代フォーマットUCL | gihyo.jp
    okinaka
    okinaka 2015/07/10