ブックマーク / atmarkit.itmedia.co.jp (258)

  • 1000万行のコードと向き合う3つのステップ――富士ゼロックスはリファクタリングにどう取り組んでいるのか

    1000万行のコードと向き合う3つのステップ――富士ゼロックスはリファクタリングにどう取り組んでいるのか(1/2 ページ) 大企業では実施が難しいと思われるソフトウエアのリファクタリング。富士ゼロックスでは、どのように取り組んでいるのか。リファクタリングの実施を決断した理由、課題とその対応方針、成果、今後の展望などについて聞いた。 バグの有無ではなく保守性を品質管理の指標にすべき 1962年設立の富士ゼロックスは、主に複合機やオフィスプリンターなどに内蔵されるコントローラーソフトウエアの開発を行っている。コントローラーソフトウエアは、スキャナーで撮り込んだ画像の加工や印刷、ネットワーク経由の通信、セキュリティなどの各種機能を、操作パネルのユーザーインターフェースを介して制御しており、昨今の多機能なオフィス機器の要といえる。 一方で、多機能になったことでコードは大規模かつ複雑化の一途をたどっ

    1000万行のコードと向き合う3つのステップ――富士ゼロックスはリファクタリングにどう取り組んでいるのか
    kkeisuke
    kkeisuke 2015/07/06
  • Web制作に使えるエディターAtom、Brackets、Coda、Sublime Textの現状まとめ

    Web制作に使えるエディターAtom、Brackets、Coda、Sublime Textの現状まとめ:新人Webデザイナー/開発者も知っておきたい Web制作に長年携わる筆者が数あるテキストエディターの中から代表的な4つをピックアップ。機能別に違いをまとめてみたので、エディター選びの参考にしてほしい。 皆さんは普段、Web制作にどのエディター(テキストエディター)を使っているだろうか? この記事を読んでいる方の中には、Webデザイナー/開発者になったばかりで常用しているエディターが決まっておらず、どれがいいのか探している方もいるかもしれない。また、今使っているエディターに不満があり、乗り換えを検討している方もいるかもしれない。 最近は、さまざまなエディターが登場しており好みに合わせて利用できるが、それぞれの特徴を把握し、自分に最適なものを選ぶためには、ある程度使ってみなければ分からない。

    Web制作に使えるエディターAtom、Brackets、Coda、Sublime Textの現状まとめ
    kkeisuke
    kkeisuke 2015/05/01
  • GitやDockerと連携するPuppet運用テクニック、filebucketによる自動バックアップ、GUIのPuppet Dashboard

    GitDockerと連携するPuppet運用テクニック、filebucketによる自動バックアップ、GUIのPuppet Dashboard:新人インフラ技術者のためのサーバー構築/運用自動化入門(終)(1/2 ページ) サーバー構築の自動化で利用される技術、自動化ツールとして「Kickstart」「Puppet」を紹介し、構築から運用まで、システムライフサイクル全体にわたる運用管理の自動化についても解説する連載。今回は、filebucketによる自動バックアップやGitDockerと連携する運用テクニック、GUIのPuppet Dashboardなどを紹介する。

    GitやDockerと連携するPuppet運用テクニック、filebucketによる自動バックアップ、GUIのPuppet Dashboard
    kkeisuke
    kkeisuke 2015/04/07
  • Web制作が爆捗するBracketsプラグイン13選&便利なプラグインを探すコツ

    OSSのテキストエディター「Brackets」で使える、Web制作に便利なプラグインを紹介し、拡張機能マネージャーの使い方や便利なプラグインを探すコツ、プラグインのインストール方法について解説する。 OSSのテキストエディターの豊富なプラグインをいろいろと使ってみよう OSSのテキストエディター「Brackets」は、拡張が容易に行えて好みの環境にカスタマイズしやすいのが特徴の一つだ。 筆者は、以前の記事でもBracketsの使い方について紹介したが、今回はBracketsのお勧めプラグイン(拡張機能)を紹介していこう。 その前に、Bracketsでプラグインをインストールする「拡張機能マネージャー」を紹介しておく。 Bracketsの「拡張機能マネージャー」とは Bracketsでは「拡張機能マネージャー」を利用してプラグインのインストールやアンインストールができる。「拡張機能マネージャ

    Web制作が爆捗するBracketsプラグイン13選&便利なプラグインを探すコツ
    kkeisuke
    kkeisuke 2015/03/24
  • 第10回 関数の基本的な取り扱い方

    プログラミング初心者向けのTypeScript入門連載。第10回は関数の基的な使い方について詳しく解説する。TypeScriptでプログラミングへの理解を一歩深めよう。 連載目次 前回は、TypeScriptの連想配列について説明した。今回は関数の基的な使い方を取り扱う。関数を利用して、複雑な処理やよく使う処理をひとまとめにしておけば、それらの処理が必要な箇所で簡単に再利用できる。今回は、関数の書き方を中心に解説し、Webページで対話的な処理をする方法にも触れる(なお、次回は引き続き、関数の高度なトピックを取り上げる)。 関数とは 関数とはひとまとまりの処理を記述して名前を付けたものと考えられる。関数の名前を指定し、必要に応じて値を与えてやれば、処理が実行され、結果が返される。TypeScriptJavaScriptでも、基的にはそういう理解でいいだろう。日常の例えでいえば、小麦粉

    第10回 関数の基本的な取り扱い方
    kkeisuke
    kkeisuke 2015/03/14
  • Node.jsのMVCフレームワーク「Express」の基礎知識とインストール

    連載目次 前回の「いまさら聞けないNode.jsの基礎知識とnpmGulpのインストール」において、サーバーサイドJavaScript実行環境であるNode.jsについて基的な説明を行いました。また、その周辺ツールであるnpmGulpを含めた環境のセッティングも行い、Node.jsを用いてMEANスタックアプリ開発ができる状態になったと思います。 記事では上記環境を用いて説明していくので、実際にサンプルを動かしたい場合には前回の記事を読んで環境を作成しておきましょう。 今回はサーバー側のMVCフレームワーク、「Express」について解説します。 MVCフレーワーク「Express」とは 「Express」とは、Node.js上で動作するWebアプリのフレームワークです。 Webアプリを構成する上で必要な機能がそろっており、ルーティングやビューヘルパー、セッション管理の機能もデフォ

    Node.jsのMVCフレームワーク「Express」の基礎知識とインストール
    kkeisuke
    kkeisuke 2015/03/05
  • 作業手順書はもういらない! Puppetにおける自動化の定義書「マニフェスト」の書き方と基礎文法まとめ

    連載目次 HTTPサーバーの「マニフェスト」を作ろう 前回の「Puppetのインストールと動作確認、トラブル対処法」では、無事PuppetのインストールをクリアしたR子さん、今回はついに「マニフェスト」(Puppetにおける自動化の定義書)を作成するようです。 K男 お、ちゃんとPuppetのmasterとagentのセットアップができたね! 感心感心。 R子 もう私、いっぱいいっぱいですぅ。許してくださいよぉ(悲)。 K男 うちの会社ではWebサーバーのチューニングノウハウがあるんだけど、手順書を見てやらなくても自動構築できるようにしたいんだよね。 R子 あ、私も手順書のコピペミスとかで怒られたことあるので、自動化でできると楽ですね~。 K男 では早速、PuppetでWebサーバーを自動構築してみて。あ、うちの部署では基CentOSだけど、他の部署ではUbuntu使ってるので、Cent

    作業手順書はもういらない! Puppetにおける自動化の定義書「マニフェスト」の書き方と基礎文法まとめ
    kkeisuke
    kkeisuke 2015/01/24
  • いまさら聞けないNode.jsの基礎知識とnpm、Gulpのインストール

    連載目次 前回から始まった「MEANスタックで始めるWebアプリ開発入門」ですが、第1回、「LAMPに代わる構成として注目のMEANスタックの基礎知識とインストール、ひな型作成」では、MEANスタックの概要について説明とセットアップ、サンプルアプリの作成を通して最初のMEANスタックアプリに触れてみました。 今回からはMEANスタックの各構成要素についてもう少し詳細な解説をしていきます。第2回となる記事では、MEANスタックの中心となる技術、Node.jsについて基的な部分やインストール方法、その周辺ツールを紹介していきます。 サーバーサイドJavaScriptの実行環境「Node.js」とは 前回も少し説明しましたが、Node.jsとはサーバーサイドJavaScriptの実行環境です。2009年にRyan Dahl氏によって開発され、Google ChromeJavaScript

    いまさら聞けないNode.jsの基礎知識とnpm、Gulpのインストール
    kkeisuke
    kkeisuke 2015/01/13
  • プッシュ通知の基礎知識&秒間1万を超えるプッシュ通知基盤のアーキテクチャと仕組みとは

    連載目次 プッシュ通知とは? なぜ開発者はアプリにプッシュ通知機能を搭載するのか スマートデバイスにおける「プッシュ通知」はアプリにとって欠かせない機能の一つであり、メールマガジンと同様に重要な集客ツールです(図1)。スマートフォンをお使いの方でしたら、一度はプッシュ通知を受け取ったことがあるのではないでしょうか。 プッシュ通知はユーザーがスマートデバイスを起動していなくても通知を送ることができる仕組みであり、以下の特徴があります。 開くと直接アプリを起動するためアクションにつながりやすい アプリをインストールしているユーザーのみに届くため開封率が高い 上記のような特徴から、プッシュ通知は以下の用途で使うことが多くなります。 リアルタイムな情報配信 直接アプリ起動につながるため、ニュースなどリアルタイム性の高い情報の配信に向く ユーザーのアクティブ率向上 開封率が高いため、定期的にアプリを

    プッシュ通知の基礎知識&秒間1万を超えるプッシュ通知基盤のアーキテクチャと仕組みとは
    kkeisuke
    kkeisuke 2014/12/19
  • Redmine連携でチケットをチャットに通知&開発を楽しくするHubotスクリプト6選

    「サンプルアプリケーションに対して修正を行う」シーンを例に、Hubotと各ツールがどう連携するかを解説しながら進めていきます。 サンプルアプリケーションは「Spark」という、Rubyの軽量Webフレームワークである「Sinatra」を参考にして作られたJavaベースのフレームワークを使い、「Hello World!」と表示するだけの簡単なWebアプリケーションを作成しました。サンプルアプリケーションの中身については、次回解説します。 タスク管理は「Redmine」で行います。サンプルアプリケーションに機能を追加する前に、Redmineにチケットを作成します。チケットの作成や更新情報もチャットに流したいので、先に設定しておきましょう。 バージョン管理はGitHubそっくりなUIと機能を提供している「GitBucket」(Scala製)で管理し、ビルドやデプロイは「Jenkins」で行います

    Redmine連携でチケットをチャットに通知&開発を楽しくするHubotスクリプト6選
    kkeisuke
    kkeisuke 2014/12/03
  • LAMPに代わる構成として注目のMEANスタックの基礎知識とインストール、ひな型作成

    LAMPに代わる構成として注目のMEANスタックの基礎知識とインストール、ひな型作成:MEANスタックで始めるWebアプリ開発入門(1)(1/3 ページ) MEANスタックを用いたWebアプリの開発方法について紹介していく連載。初回はMEANスタックの特徴と構成要素MongoDB、Express、AngularJS、Node.jsの概要、インストールの仕方とひな型の作成方法を解説。 連載目次 今でもよく使用されていますが、以前からWebアプリ開発ではLAMP環境がよく使用されていました。LAMPとは、一般的なWebアプリを開発するのに人気の高いオープンソースソフトウェアを組み合わせたもので、以下を用いたシステムのことです。それぞれの頭文字を取って「LAMP」と呼ばれています(参考)。 OS:Linux Webサーバー:Apache HTTP Server データベース:MySQL プログラ

    LAMPに代わる構成として注目のMEANスタックの基礎知識とインストール、ひな型作成
    kkeisuke
    kkeisuke 2014/12/02
  • Socket.IOでセンサー&MongoDB~AngularJSアプリ間の通信を行う

    Socket.IOでセンサー&MongoDBAngularJSアプリ間の通信を行う:Arduinoで始めるWeb技術者のためのIoT入門(6)(1/3 ページ) 家電~Webアプリ間の双方向通信をSocket.IOで行うアプリについて、サーバー側のArduino連携やMongoDBへのデータ保存などと、クライアント側のAngularJSに分けて動作を解説します。

    Socket.IOでセンサー&MongoDB~AngularJSアプリ間の通信を行う
    kkeisuke
    kkeisuke 2014/11/21
  • 使い方をマスターすれば、怖いものなし~最強のネットワークツール「Wireshark」

    今回紹介するツール [ツール名]Wireshark [対象]WindowsMac OS X、Linux、FreeBSD、NetBSD、Solaris [提供元]Wireshark Foundation、オープンソース(GPLv2) [ダウンロード先][URL]https://www.wireshark.org/ 管理者御用達の定番ネットワークツール スタンドアロンでコンピューターを利用しているのでない限り、コンピューターにとってネットワークは欠かせないインフラストラクチャです。企業であれば、インターネットと接続された有線LAN(ローカルエリアネットワーク)や無線LANが導入されているのは当然ですし、WAN(ワイドエリアネットワーク)やVPN(仮想プライベート回線)で遠隔地の拠点とも相互接続しているでしょう。 個人であっても、通信回線で直接的に、あるいはブロードバンドルーターを介してインタ

    使い方をマスターすれば、怖いものなし~最強のネットワークツール「Wireshark」
    kkeisuke
    kkeisuke 2014/09/14
  • 初心者がWebフロントエンドを高速化するための基礎知識

    連載目次 ブラウザーの持つ開発ツールとその使い方を紹介する連載「無料で使えるブラウザー開発ツール入門」の第2回です。初回の「初心者がブラウザーでデバッグするための基礎知識」では、フロントエンド開発を始めた方が、ブラウザーに組み込まれている開発ツールを使ってアプリの不具合を見つけ、修正するためのツールとその基的な利用方法を紹介しました。 前回紹介した「DOMインスペクター」「スタイルエディター」「JavaScriptデバッガー」を駆使して、不具合の原因特定と修正を行えるようになり、意図通りに動作するアプリを作成できるようになった方も多いのではないでしょうか。 ところが、フロントエンド開発者には不具合の修正と同様、一定のパフォーマンスの確保もアプリ作成で必要とされます。誰もが体験されたことがあると思いますが、「自分の思い通りに動作してはいるのだが、どうにもこうにも遅くてストレスがたまる」とい

    初心者がWebフロントエンドを高速化するための基礎知識
    kkeisuke
    kkeisuke 2014/09/03
  • スクショをExcelに張り付けるのに役立つ4つのテクニック

    スクショをExcelに張り付けるのに役立つ4つのテクニック:テストエビデンス取得自動化の秘技(後編)(1/3 ページ) システム開発におけるソフトウェアテスト(結合テスト~システムテスト)において重要視されるエビデンス(作業記録)。前後編の2回にわたって、エビデンスとしてスクリーンショットをキャプチャし、テスト仕様書や納品書に張り付けていく作業を自動化するためのVBA/マクロのテクニックを紹介する。後編は、画像ファイルをシートに張り付け、Excel 2013のメニューからスクショを直に張り付け、画像を縮小し、指定した時間にマクロを実行する方法を解説。 前編「Selenium VBAを使って自動でブラウザーを操作してスクショをExcelに張り付けてみた」では、エビデンスとしてスクリーンショット(以下、スクショ)を撮る意義や、Selenium VBAのインストール方法と使い方、スクリーンショッ

    スクショをExcelに張り付けるのに役立つ4つのテクニック
    kkeisuke
    kkeisuke 2014/08/26
  • Selenium VBAを使って自動でブラウザーを操作してスクショをExcelに張り付けてみた

    クライアントからシステム開発案件を受注し、開発成果物を納品する際に、エビデンスとして、Excel上に貼り付けたスクリーンショット(以下、スクショ)を、成果物の仕様書や納品書と共に納品する場合がある。この作業は、クライアントに「こういったテストを実行しました」という証拠を提示するものとなる。クライアントに成果物の機能や制限事項などを説明する場合に大変に有効なものとなっているのが現状だ。 実際、Excel上に記述したテスト仕様書や納品書にスクショを張り付けて、成果物の一部として納品しておくと、後々何らかのトラブルが発生した場合も問題解決に大きく寄与することになる。 しかし現実問題として、成果物の機能のスクショを、Excel上に手作業で延々と張り付けていく作業は単純作業であることもあり、開発者にとっては苦痛この上ない作業だ。 そこで、そのような作業を自動化し手助けをしてくれるツールとして「Sel

    Selenium VBAを使って自動でブラウザーを操作してスクショをExcelに張り付けてみた
    kkeisuke
    kkeisuke 2014/08/21
  • GitHub製フレームワークHubotの概要とインストール、チャットアプリと連携する基本的な使い方

    近年、ソフトウェア開発を取り巻く環境が急激に変化してきています。ネットワークの整備や、コミュニケーションツールの進化に伴い、リモートワークやインターネット上での協業も盛んに行われるようになってきました。チームメンバー全員の住んでいる国が違う、といったこともあるかもしれません。 しかし物理的に離れた環境で働くと、今まで対面で行っていたコミュニケーションを別の手段で代替しなければなりません。SkypeやGoogleハングアウトなどのビデオ通話、HipChatやSlackなどのチャットアプリを利用することで仕事上必要なコミュニケーションは取れるようになりますが、ソフトウェア開発に関わる状況確認は別のツールを使う必要があります。 特にオペレーションは、いつ、誰が、どのような対応をしたか把握していたいですよね。 このような課題を解決する一つのスタイルとして、「ChatOps」があります。ChatOp

    GitHub製フレームワークHubotの概要とインストール、チャットアプリと連携する基本的な使い方
    kkeisuke
    kkeisuke 2014/08/20
  • 便利なGruntの弱点を補うgulp.jsのインストールと使い方

    詳しくは上記連載を見てもらえば分かりますが、GruntとはJavaScriptを使用してWeb開発に伴うさまざまな作業を自動化して効率良く行うためのビルドツールです。 このツールでは「タスク」と呼ばれる一連の処理を設定ファイルに記述していきます。Gruntの設定ファイル(Gruntfile.js)は、タスクに対してJSON形式でパラメーターを指定していくのですが、ここで少々問題があります。 シンプルなタスクであれば分かりやすいのですが、多くの拡張機能(プラグイン)を使用したり、タスクの制御を細かく行う必要が生じたたりした場合、Gruntfileの記述量が増えて冗長になり、タスク同士の関連やタスク実行結果も分かりにくくなってしまいます。 そんなGruntの問題点を解消することを目的として開発されたのが、今回紹介する「gulp.js」(以下、gulp)です。 gulpはGruntを継承しつつ、

    便利なGruntの弱点を補うgulp.jsのインストールと使い方
    kkeisuke
    kkeisuke 2014/08/20
  • 第3回 リテラルと列挙型

    プログラミング初心者向けのTypeScript入門連載の第3回はTypeScriptのリテラルについて解説。変数との違いについて押さえよう。また、列挙型と呼ばれる複数の変数を格納できる型についても説明する。 連載目次 前回は変数について説明した。今回はその続きとして、リテラルと列挙型について解説する。 決まった値を表すリテラル 前回は変数にデータ型があることや、データ型をどのように指定するかという方法について見たが、変数に代入される1200や"Hello"といった値についても少し整理しておこう。これまでは、あえて「データ」とか「値」という曖昧な言葉を使っていたが、こういった、決まった値は「リテラル」と呼ばれる。真偽値を表すtrueやfalseもリテラルである。 では、整数リテラルから見ていこう。整数リテラルには10進数、16進数、8進数がある。書き方のルールは以下の通りだ。ただし、8進数は

    第3回 リテラルと列挙型
    kkeisuke
    kkeisuke 2014/07/30
  • あなたのWeb開発人生を変えるYeoman、Bower、Yoのインストールと使い方

    連載目次 前回記事「Gruntで独自タスクを定義し、独自プラグインをnpmモジュールとして作成・公開するには」では、Gruntを使っていろいろな手法でタスクを定義する手法や、独自プラグインを作成してnpmで公開する方法について解説しました。 今回は少し角度を変えて、Gruntを自身の機能として利用しており、快適な開発ワークフローを提供してくれるツール、「Yeoman」について解説します。 3つのツールを統合したワークフローを提供する「Yeoman」 Yeomanとは、公式サイトいわく、「The web's scaffolding tool for modern webapps」とのことです。 訳すと、「今風のWebアプリのための土台/基盤を作ってくれるツール」といったところでしょうか。「scaffolding」はRuby on Railsの主要機能として有名になった言葉で、コマンドを打つだ

    あなたのWeb開発人生を変えるYeoman、Bower、Yoのインストールと使い方
    kkeisuke
    kkeisuke 2014/07/04