タグ

ブックマーク / thinkit.co.jp (15)

  • [ThinkIT] 第1回:意外と知らないZend Engine (1/3)

    「Webシステムを支えている言語は何か」と聞かれたときに何と答えますか。 ThinkITを読んでいる方なら即座に「PHP」と答えていただけるでしょう。「Java」と答える方もいるかもしれません。しかし、インターネットの普及と共にPHPは多くのWebサイトで使用されるようになり、今ではWeb 2.0と呼ばれるような新しいスタイルのWebサイトのほとんどがPHPで構築されています。 ここまで普及しているPHPですが、実際にPHPを使用してWebシステムを開発されている方でもその根幹となっているZend Engineについて、ご存知ない方も多いでしょう。Zend Engineとは、簡単にいえばPHPの高速性を支えている重要なモジュールですが、それ以外の機能も備えています。 そこで連載では、全2回に渡って意外と知られていないZend Engineにフォーカスを当て、Zend Engineの存在と

    foaran
    foaran 2018/08/21
    “ ちなみに「Zend」は、Zeevの「Ze」とAndiの「nd」を組み合わせたものです。日本の禅(ぜん)という言葉もフューチャーしています。”
  • ITエンジニアのためのデザイン入門

    Copyright © 2004-2024 Impress Corporation. An Impress Group Company. All rights reserved.

  • 構造を決定するテスト

    はじめに 今回は前回に引き続き、「構造を浮き彫りにするテスト」と「構造を決定するテスト」のうち「構造を決定するテスト」について解説します。 構造を決定するテストは、これから作るものの形や手触りがこうあるべき、と定義します。これにより、来あるべき形や手触りからずれることなくソフトウェアを開発できます。これらのために具体的に利用するプラクティスについて解説します。 まず、テストによってソフトウェア構造を決定する体系として「TDD」について解説し、その後、部分的に開発を進めながら全体としてソフトウェア構造を決定する方法として「テストダブル」について解説していきます。 構造を決定するテストとして体系化されたもの 構造を決定するテストには、「設計活動として取り組んでいく活動のもの」と「構造を浮き彫りにするテストによって発見されたものを精査して変化させる活動のもの」と大きく2通りがあります。後者の具

    構造を決定するテスト
  • Dockerの誤解と神話。識者が語るDockerの使いどころとは? Docker座談会(前編)

    では題に入ります。まず、Dockerは何がいいのか、あるいはどういうことには向かないか。実際に仕事で関わっている立場から語ってください。 松井:SIerをやっていて、最近はお客様からDockerという言葉が出てくるようになりました。とあるお客様からは、Solarisコンテナーで動いているシステムが古いので乗り換えたい、そのためにDockerはどうかと具体的な話を聞かれました。一方、「Dockerってどう?」と漠然とした話をいただいて、お客様の環境でしたらこう使えます、という話をすることもあります。 実案件まではまだありません。アプリケーションが対応していないと使えない、という話になることが多い。Dockerでは、いままでのアプリをそのまま使おうとすると、失敗すると思います。 前佛:無理をしてDockerを入れるのは違うと思いますね。Docker社が、仮想化を置きかえるというような見せ方を

    Dockerの誤解と神話。識者が語るDockerの使いどころとは? Docker座談会(前編)
  • 一流のエンジニアが集まるクックパッドで聞いたエンジニアのライフスタイルと求められるスキル

    ソーシャルゲームブームを皮切りにしてエンジニア不足が叫ばれるなか、主婦向けのレシピサイトという一見エンジニアからほど遠いWebサービスに、なぜ一流のエンジニアが魅力を感じて次々と集まってくるのか。その秘訣とエンジニアのスキルセットについて、クックパッド技術部長の小川伸一郎氏に伺った。 重力に引かれるように、いいエンジニアが集まってくる ――なぜクックパッドには優秀なエンジニアが集まるのか、その秘訣をお聞きしたいと思います。まず、小川さんはどうしてクックパッドに入られたのでしょうか。 外から見た時には、Rubyの業界で知れ渡った、優秀で知名度の高いエンジニアが、数多く在籍していたから、ということがあります。2010年頃に、当時技術部長だった井原さん(編注:井原正博氏)が、優秀なエンジニアを多数採用するという方向に舵を切りました。その頃から、RubyのコミッターやRuby界隈で知名度のある優秀

    一流のエンジニアが集まるクックパッドで聞いたエンジニアのライフスタイルと求められるスキル
  • 見えない「運用」 - 疲弊する運用現場

    インターネットのインフラ化と運用現場の疲弊 インターネットの急速な普及および発展により、インターネットを含むIT情報基盤は、社会基盤(インフラ)としての性格を色濃く帯びてきています。 しかし、これらのシステムやサービスを運用している現場では、メンバーに対する恒常的な高負荷、属人的な運用、トラブルの多発に悩まされるなど、事業継続面でのリスクを抱え、コストや効率面での課題に追われながらも、現場の個々人の過大な努力によって日々の運用を維持しているのが現状です。 なお、システムやサービスを「運用している現場」とは、例えば組織や企業において社内向け、対外向けなどを問わず「ユーザーや相手に対して何らかのサービスを提供している人たち」をイメージしています。 連載では、従来であれば「現場ごとの個別事情に応じて、やり方が異なるため、標準化が難しい」と言われてきた「運用」について、「運用設計」という観点から

    foaran
    foaran 2014/09/11
  • youRoomとPivotalTrackerではじめる無駄のないコミュニケーション

    foaran
    foaran 2013/12/19
  • MySQL Clusterのインストール

    MySQL Clusterとは MySQL ClusterはMySQL Serverのストレージエンジンの1つであり、「並列」「負荷分散」「高可用性」という特徴を備えています。 ストレージエンジンであるため、MyISAMやInnoDBと同じようにテーブル定義においてENGINE=NDBCLUSTERとすることで、MySQLのデータを格納する実体として利用することができます(100%完全にというわけにはいきませんが、MySQLではユーザーが特にクエリを変更しなくても違う種類のストレージエンジンに対して同じ操作が行えます)。 そして、MySQL Clusterにはほかのストレージエンジンにはない、いくつかの特徴を備えています。その特徴を紹介していきましょう。 まず、ストレージエンジンを提供するプログラムが、MySQL Serverの外部のプロセスであるということです。そして多くの場合、プロセス

    foaran
    foaran 2011/06/08
  • [ThinkIT] 第2回:Rubyを使ったエンタープライズ・インテグレーション (4/4)

    foaran
    foaran 2007/04/10
  • [ThinkIT] 第14回:メール・プロトコル環境における仮想CPU(リソース管理編) (1/3)

    第12回からは、PCPU、VCPUCPUなどのリソース利用率にまつわる概念を説明すると共に、ESX Serverカーネルがこれらのリソースをどのようにスケジュール管理していくのかを見てきました。 いくつかのOWAテスト・シナリオを実行して物理CPUと論理CPUに負荷をかけたところ、物理リソースと論理リソースの利用率に違いが出ることがわかりました。以降では、ESX Serverが複数のVMを実行するときの管理方法や、物理リソースの割り当て方法を見ていきます。特に、ESX Serverホスト上のプロセッサ・リソースを各VMに分配するとき、VMに応じて仮想CPUリソースの割り当て量を変える方法を詳しく説明します(注1)。 注1:今回で述べる動的なリソース割り当ては、ESXホストごとに設定しています。VMotionテクノロジを使っている場合、VM上の設定内容が他のESXホストに移行されることはあ

  • [ThinkIT] 第8回:フレームワークの利用 (1/4)

    Webアプリケーションの開発は、思いのほか面倒な部分が多くあります。特に手間のかかる部分は、Javaというオブジェクト指向言語と相性の悪い2つの外部環境との連携部分です。1つはWebクライアントとの連携、もう1つはデータベースとの連携です。 どちらの外部環境も、もともとクラスといった概念はなく、「Javaオブジェクトとの変換」を行う手間がかかります。このデータ構造が異なるものを連携する際の手間は、一般にインピーダンスミスマッチと呼ばれます。このミスマッチを解決する主な方法には以下の2つがあります。

  • [ThinkIT] 第1回:時代は今「DIxAOPコンテナ」 (3/4)

    DI(依存性の注入)についての解説を行ってきましたが、ではDIxAOPコンテナが提供する依存性の注入はどのようなシステムを構築する時に利用すればよいでしょうか。 DIxAOPコンテナが解決する依存性の注入は、ステートレスつまり値を持たないオブジェクトをつなぐのに向いています。このようなステートレスなオブジェクトを利用した設計パターンをトランザクションスクリプト(図4)といいDIxAOPコンテナはトランザクションスクリプトを実現するのに向いています。 トランザクションスクリプトで扱うドメインオブジェクトは、振る舞いを持たないシンドメイン(やせたドメイン)です。シンドメインに値を設定するのは、DIxAOPコンテナではなくデータベースにアクセスして値を取得するDAO(Data Access Object)です。またDAOが値をセットするシンドメインのことをTO(Transfar Object)や

    foaran
    foaran 2007/04/07
  • AtomPP を利用したWeb API

    それでは実際にAtomPPを利用したプログラムを書いてみることにしましょう。PerlにはXML::AtomというAtomPPやAtom Feedを扱うモジュールがあるので、こちらを利用します。 題材としては、はてなブックマーク(注3)を利用してみます。はてなブックマークはソーシャルブックマークサービスで、ブックマークの登録や取得、編集をAtomPPで行うことができます。 #!/usr/bin/perl use strict; use warnings; use XML::Atom::Client; use XML::Atom::Entry; use XML::Atom::Link; my $api = XML::Atom::Client->new; $api->username('ユーザー名'); $api->password('パスワード'); my $collection_uri =

  • [ThinkIT] 第9回:O/Rマッパーの利用 (3/4)

    SeasarプロジェクトのWebページ(http://www.seasar.org/)より、S2(Seasar2)およびS2Daoをダウンロードします。ここでは、執筆時点の最新版のS2.1.11およびS2DaoV1.0.18をダウンロードしました。 ダウンロードしたファイルを適当なディレクトリに展開します。これらは、データベースサービスのように別途起動するタイプのツールではなく、JARファイルをアプリケーション内にコピー(あるいは直接外部のクラスパスを指定)して利用します。

    foaran
    foaran 2007/01/02
  • [ThinkIT] DIxAOPコンテナ「Seasar2とSpring」 第3回:Seasar2の導入によるDIの実現 (1/4)

    前回は、Seasar2とSpringについての概要、ならびに各ソフトウェアの導入について説明しました。 今回は、連載の第1回に引き続きインターフェースベースの設計についてSeasar2を例にして解説します。 それでは、第1回の最後に出てきた従業員管理WebアプリケーションにSeasar2を導入したもの(連載の第2回でインストールした従業員管理Webアプリケーション。以下、サンプルと記述)を見てみましょう。Seasar2の定義ファイルについての詳細な解説は後ほど行います。 サンプルコードではSeasar2を導入することによって、DIを利用する際にEmployeeManagerImplがEmployeeDaoインターフェースの実装を知らなくても済むようにしています。また、EmployeeManagerImplで明示的にコーディングしていたトランザクション管理(commitやrollback

  • 1