タグ

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

  • 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法

    2017年7月5日紙版発売 2017年7月5日電子版発売 増田亨 著 A5判/320ページ 定価3,234円(体2,940円+税10%) ISBN 978-4-7741-9087-7 Gihyo Direct Amazon 楽天ブックス honto ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 「ソースがごちゃごちゃしていて,どこに何が書いてあるのか理解するまでがたいへん」「1つの修正のために,あっちもこっちも書きなおす必要がある」「ちょっとした変更のはずが,来はありえない場所にまで影響して,大幅なやり直しになってしまった」といったトラブルが起こるのは,ソフトウェアの設計に問題があるから。日最大級となる60万件以上の求人情

    現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
  • 第1回 ニコ動/ニコ生 HTML5化への奮闘~ドワンゴ流動画配信サービスのつくりかた~ | gihyo.jp

    不動の人気を誇る動画配信サービス「ニコニコ動画」(⁠ニコ動)と「ニコニコ生放送」(⁠ニコ生)において、動画プレーヤのHTML5化、そしてバックエンドシステムの刷新が図られました。このプロジェクトの背景や使われた技術、苦労したポイントなどについて、ドワンゴのエンジニアである七田弘志氏(写真1⁠)⁠、後藤哲志氏(写真2⁠)⁠、三須健太郎氏(写真3)にお話を伺いました。 フロントエンドのみならず、バックエンドシステムも刷新 ─⁠─どのようなきっかけから、HTML5化プロジェクトが始まったのでしょうか。 七田:大きな要因となったのは、主要WebブラウザでFlashのサポートを打ち切るという方針が示されたことですね。今までもスマートフォンやテレビデバイスなどではHTML5プレーヤを実現できていたのですが、PC版のページは既存機能が大きく、プレーヤの作り変えが後手に回っていた部分が大きかったんです。そ

    第1回 ニコ動/ニコ生 HTML5化への奮闘~ドワンゴ流動画配信サービスのつくりかた~ | gihyo.jp
  • 第1回 Webセキュリティのおさらい その1 | gihyo.jp

    はじめに みなさんこんにちは、セキュアスカイ・テクノロジーのはせがわようすけと申します。 周知のとおり、ここ数年のブラウザの機能強化は目覚ましいものがあり、CSS3やSVGを含むHTML5ブーム以降のブラウザ内での表現力の向上や、JavaScriptエンジンの最適化による実行速度の向上は、数年前では考えられないような目を見張るものがあります。また、HTML5の仕様策定後の現在でも、WHATWGやW3Cではさまざまな議論が継続的に行われており、これまでブラウザ上に存在しなかったような多様なAPIの仕様が生み出され、各ブラウザに日々実装されています。 利用者視点だけでなく、以下のような開発者視点での需要に応えるフロントエンド開発環境の改善も、ここ数年でかつてないほど大きく進んでいます。 CoffeeScriptやTypeScriptに代表されるaltJSと呼ばれる言語処理系の登場 ES2015

    第1回 Webセキュリティのおさらい その1 | gihyo.jp
  • 第25回 cron周りのベストプラクティス(1) | gihyo.jp

    連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーはsongmuさんこと松木雅幸さんで、テーマはcronです。 なお稿のサンプルコードは、誌サポートサイトから入手できます。 cronとは? cronは指定日時にジョブの自動実行を行うジョブスケジューラです。UNIX系のOSであれば実装の違いこそあれ、ほぼ標準でインストールされています。 作業自動化や、タスクを自動実行したいなどといった場合にcronは避けては通れません。Perlでバッチ処理を書く際などに多くの人が活用していると思いますが、ベストプラクティスがわからず恐る恐る使っている人も多いのではないでしょうか。 稿では、cron活用におけるベストプラクティスについてお話します。 cronの使いどころ cronの使い途は、主に次の3つが考えられます。 a.アプリケーションのジョブの実行 b.システムに関わる

    第25回 cron周りのベストプラクティス(1) | gihyo.jp
  • PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp

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

    PHPの生みの親、ラスマス・ラードフ氏インタビュー | gihyo.jp
  • Itamaeが構成管理を仕込みます! ~新進気鋭の国産・構成管理ツール~ 記事一覧 | gihyo.jp

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

    Itamaeが構成管理を仕込みます! ~新進気鋭の国産・構成管理ツール~ 記事一覧 | 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
  • 本日12月1日より、プログラマ有志による2013年の技術系Advent Calendarが各所ではじまる | gihyo.jp

    日12月1日より、プログラマ有志による2013年の技術系Advent Calendarが各所ではじまる 日12月1日より、プログラマ有志による2013年の各技術系Advent Calendar(アドベントカレンダー)が一日目を担当する人のblogではじまっている。 昨年以上に細分化されたため、昨年よりも今年のAdvent Calendarの数が多くなっているようだ。また、技術系以外の人に対してもこのような形式のAdvent Calendarの認知度が上がり、技術系以外のAdvent Calendarも昨年より増えている。 一般的なAdvent Calendarは、12月25日のクリスマスを楽しみに待つために、12月1日から24日までのカレンダーの日付の部分(扉だったりする)を開けるようになっており、1日ずつその日の日付の部分を開くと天使や動物の絵などが見えるという仕組み(もちろん、様々

    本日12月1日より、プログラマ有志による2013年の技術系Advent Calendarが各所ではじまる | gihyo.jp
  • 第19回 Node.jsに見るSOAP vs. REST論争 | gihyo.jp

    3年ほど連載を続けているこのコラムだが、今号からは少し装いを変え、最新の技術トピックを業界全体の流れから俯瞰(ふかん)的に見た考察を加えていきたい。最初のトピックはNode.jsだ。 Node.jsを取り巻く議論の背景 2009年に発表されて以来、ソフトウェアエンジニアの間で注目を集めているNode.js だが、それを取り巻く非同期プログラミングへの賛否両論の根底は、1990年代の初めにミニコンピュータからパーソナルコンピュータ(以下PC)へと引き継がれたRPC(Remote Procedure Call)に関する議論にある。 RPCの発想をPCの世界に持ち込んだのはMicrosoftである。Windows 95より前は、ノンプリエンプティブマルチタスク[1]しかサポートしていなかった。 Windows格的なマルチタスク機能を持ち込んだのは、David Cutlerを筆頭とするDEC(

    第19回 Node.jsに見るSOAP vs. REST論争 | gihyo.jp
  • 第1回 JVMはどのようにメモリ空間を利用するのか | gihyo.jp

    あのWebサービスもJVMを利用している 「Javaは大規模なエンタープライズシステムにしか使われない」 それが常識だと思っていませんか? たしかに、これまでJava Virtual Machine(JVM)は、他の言語を実行すると遅く、Javaのプログラムを実行する環境にすぎないものでした。ところが、Java 7から実装されたInvokeDynamicにより、JVM上で、RubyPHPなどさまざまなコンピュータ言語で記述されたプログラムをより高速に実行できるようになりました。 これにより、今までエンタープライズでJava言語で記述されたプログラムを実行するだけの環境であったJVMが、汎用的な実行環境になったと言えます。また、これまでJavaの実行環境として使用されていたノウハウが、他の言語で記述されたプログラムを実行する際にも利用できます。 最近では、TwitterがJVMをアプリケー

    第1回 JVMはどのようにメモリ空間を利用するのか | gihyo.jp
  • 第1回 大規模データではRDBMSのどこがボトルネックになるのか? | gihyo.jp

    RDBMSはオワコン? 「右を向いても左を向いても“⁠ビッグデータ⁠”というキーワードが闊歩する時代に、いまさらRDBMSの話題?」 連載のタイトルを見てそう思われたかもしれません。 「ディスクベースのRDBMSはオワコン、これからは○○(お好きなアーキテクチャを入れてください)の時代だ!」 とおっしゃる方もいるかと思います。 しかし、むしろ多くの企業がビッグデータに注目しているおかげで、RDBMS側でも大規模データを取り扱うニーズが増えています。 大規模データを取り扱う時にボトルネックとなる5つのポイント 数百ギガバイトといったレベルのRDBMSであれば、現場のエンジニアの方にとってはあたりまえの世界でしょう。しかし、テラバイトを大きく超えたデータを扱う場合には、ボトルネックの傾向が変化するのはご存じでしょうか。 次の図は、RDBMSにまつわるボトルネックを示したものです。 図1 大規

    第1回 大規模データではRDBMSのどこがボトルネックになるのか? | gihyo.jp
  • 第1回 WebSocket登場までの歴史 | gihyo.jp

    はじめに 初めまして。NTTアドバンステクノロジの金城と申します。幸運にも記事を執筆させていただけることになりました。WebSocketという新しいウェブの規格についての連載を、全4回の予定でお届けします。 用語統一について WebSocketは「WebSocket」「⁠WebSockets⁠」⁠、単語を切り離した「Web Socket」等、表記に揺れがあります。2009年12月22日のワーキングドラフトのタイトルは「The Web Sockets API」となっていますが、2010年4月26日のエディターズドラフトでは「The WebSocket API」となっています。この連載では、最新の仕様書に則り、用語を「WebSocket」で統一します。 HTML5とWebSocketの関係 WebSocketは、もともとHTML5の一機能として仕様の策定が進められていました。しかし、Web S

    第1回 WebSocket登場までの歴史 | gihyo.jp
  • Gitに潜む光と闇 | gihyo.jp

    今年に入ってから、急速にGitが注目を浴びています。Google Trendsを見ると、Subversion、Mercurialなどに比べると圧倒的にGitの人気が高いのがわかります(図1⁠)⁠。 図1 Google TrendsによるGit(青⁠)⁠、Mercurial(赤⁠)⁠、Subversion(橙)の検索数 しかしながら、Gitを利用する人の意見は2つに分かれています。 A.わかりにくい B.すごく便利だ なぜこのようなに印象が二分されてしまうのでしょうか? 稿では、「⁠Gitに潜む光と闇」と称してこれらの意見に対して考察していくことにします。 Gitはわかりにくい? Gitがわかりにくいと思う人は、どうしてそう感じるのでしょうか。そのあたりのおおよその事情は下記のようなことだと考えられます。 (1)Subversionとコマンド体系が少し違う バージョン管理ツールとして、Su

    Gitに潜む光と闇 | gihyo.jp
  • フロントエンドWeb戦略室 記事一覧 | gihyo.jp

    第1回外部サイトに貼り付けるJavaScriptの作法―ポリシー、速度、セキュリティ、プライバシー(3) mala 2012-07-04 第1回外部サイトに貼り付けるJavaScriptの作法―ポリシー、速度、セキュリティ、プライバシー(2) mala 2012-07-03

    フロントエンドWeb戦略室 記事一覧 | gihyo.jp
  • 第3回 Meteorの基本的なAPI | gihyo.jp

    Meteorの基的なAPIを紹介 前回は、Meteorプロジェクトのディレクトリ構造と、それらがMeteorによって実行時にどのように取り扱われるかを解説しました。それにより、MeteorはクライアントとサーバをどちらもJavaScriptで記述でき、コードの共有も非常に容易だということを明らかにしました。 今回は、「⁠サーバとクライアントのどちらもJavaScriptで書ける」というMeteorの特色を示すような、Meteorの基的なAPIについて解説します。 MeteorのコアAPI まずは最も基的なAPIとして、以下の3つがあります。 Meteor.is_client 現在のコードがクライアント上で実行されている場合はtrue Meteor.is_server 現在のコードがサーバ上で実行されている場合はtrue Meteor.startup() アプリケーションの開始後に呼び

    第3回 Meteorの基本的なAPI | gihyo.jp
  • 第2回 Meteorアプリケーションの実行環境 | gihyo.jp

    Meteorの実行環境 連載第2回では、Meteorアプリケーションの実行環境についてお話しします。 Meteorは、すべてをJavaScriptで書くことができるという利点を最大限に活かし、サーバとクライアントでコードを共有したり、サーバのコードをクライアントから呼び出すことができます。そうしたことを実現するには、今回の内容を理解しておく必要がありますが、幸いにも大して難しい話ではありません。 MeteorによるJavaScript/CSSの管理自動化 HTML/JavaScriptを用いたクライアントを作成する上で、いつも頭を悩ませるのがリソースの管理です。 大規模なアプリケーションともなると、JavaScriptCSSが数十ファイルに上ることも珍しくありません。それらを通常の<script>や<link>で読み込むと、それらのファイルを読みこむごとにHTTPリクエストが発生するため

    第2回 Meteorアプリケーションの実行環境 | gihyo.jp
  • 第1回 LESSのメリットと導入方法 | gihyo.jp

    CSSをより柔軟に、わかりやすく、速く、ミスを少なく記述できる 最近、CSSの拡張メタ言語「LESS」が話題になっています。LESSとは、かんたんに言えば、CSSの良いところを活かしつつも 「より柔軟に」 「よりわかりやすく」 「より速く」 「よりミスを少なく」 記述できるという、新しい書き方です。うさんくさいと感じるほどにいいことづくめですね。 CSSの拡張メタ言語には、LESSの他にも、Sass、Stylusといったものがありますが、LESSは一番CSSの書式に近く、活用するためのツールがそろっているのが特徴です。 最近LESSについて、はてなブックマークや技術系ブログでもたくさんとりあげられているので、実際に興味を持っている方や試した方もいらっしゃるかもしれません。しかし、まだ入門記事が多く、実際に導入したときのメリットをイメージできないことも多いのではないでしょうか? 連載では、

    第1回 LESSのメリットと導入方法 | gihyo.jp
  • 第1回 Meteorをはじめよう | gihyo.jp

    Meteorとは? Meteorは、2012年4月に彗星のように登場した、新たなアプリケーションプラットフォームです。この原稿の執筆時で、バージョンは0.3.6とされており、まだまだプレビュー版の域は超えていません。また、現状ではUNIX環境(MacOS Xを含む)でしかうまく動作しないようです。 しかし、Webアプリケーション開発をとことんまで素早く、楽に行えるようにするためのさまざまな仕組みが盛り込まれていることから、登場直後からかなりの注目を集めています(公式サイトには、「⁠1日か2日でプロトタイプを、2~3週間で製品レベルのアプリを構築できるようにする」とあります⁠)⁠。 MeteorはMITライセンスに基づくオープンソースプロジェクトとして、Github上で公開されています。現在4人の開発者がフルタイムで開発に従事しており、1年以内に1.0をリリースする予定だとされています。 M

    第1回 Meteorをはじめよう | gihyo.jp
  • 第1回 PHPでアセンブラを作ってみた | gihyo.jp

    最近、FPGAなどを使ってCPUを自作する記事を目にするようになりました。CPUの命令コードは数字ですから、アセンブラソースを1行1行手で命令コードに変換していく(ハンドアセンブルする)ことになります。昔は、このためにコーディング用紙というものが売っていました。 最近のPICなどのマイコンには開発環境が用意されており、アセンブラなど必要な道具はすべて入っています。ですから、用意されているアセンブラを使うことがあっても、アセンブラを自分で作るという機会はなかなかないと思います。ここでは、アセンブラを作ってみることにしましょう。 PHPでアセンブラを作る アセンブラをどの言語で作るかですが、今回もPHPを使ってみました。フォーム上にソースを入力すると、バイナリが出力されます。対応しているのはPIC16Fの命令セットで、今回のアセンブラプログラムを使って開発環境で作ったものとまったく同じバイナリ

    第1回 PHPでアセンブラを作ってみた | gihyo.jp
  • 第31回 秋葉原に集結した技術者集団Ameba Technology Laboratoryの役割を探る[後編] | gihyo.jp

    統合ログ解析基盤と検索システム、そして機械学習の開発と運用を目的に、サイバーエージェントが秋葉原ダイビル内に開設したのが「Ameba Technology Laboratory」(⁠以下、ラボ)です。第28回の前編に引き続き、ここで行われている業務内容や今後の展開について、ラボのメンバーに話を伺っていきます。 Ameba Technology Laboratoryのオフィスのようす 即座にGOサインが出た統合ログ解析基盤の開発 テキスト検索エンジンである「Lucene⁠」⁠、そしてWeb検索エンジンの「Nutch」の開発において中心的な役割を果たしたDoug Cutting氏は、2006年に新たなプロジェクトを立ち上げます。それが現在、大規模データ分散処理技術として注目を集めている「Hadoop」でした。 このHadoopの大きな可能性に魅せられ、多くの企業がHadoopを自社のデータ解析