タグ

ブックマーク / codezine.jp (17)

  • Railsアプリケーションにおけるフロントエンド環境のモダン化

    freeeの価値基準の一つである、ユーザーにとって「質的(マジ)で価値ある」ものを届けるということ。連載ではそれに向かって、日々挑戦を続ける開発現場の事例をお伝えします。記事では、freeeでのフロントエンド環境の改善への取り組みである、Ruby on Railsアプリケーションにおけるフロントエンド環境のモダン化について紹介します。Rails5.0以前の標準的なフロントエンドのビルド基盤であるSprocketsアセットパイプラインがもたらした問題について解説するとともに、その仕組みに依存して成長してきたプロダクトがいかにしてSprocketsへの依存を断ち切ったかについて説明します。 対象読者 Ruby on Rails 5.0以前のアプリケーションのフロントエンド開発で、npmによるモジュール管理やwebpackなどによるビルドを行いたいのにそれがなかなか実現できずに困っている方

    Railsアプリケーションにおけるフロントエンド環境のモダン化
  • クロスサイトスクリプティング対策 ホンキのキホン

    OWASP Top 10 はじめに OWASPでは、開発者に向けたセキュリティ対策のためのドキュメントやチートシートを多数用意しており、XSSへの対策としても「XSS (Cross Site Scripting) Prevention Cheat Sheet」というドキュメントが用意されています。 ただし、このXSS Prevention Cheat Sheetはシンプルなルールを定めたチートシートであるとうたいつつも、開発者が直面するあらゆる場面で包括的に適用できる抜けのないものを目指しているために、多岐にわたる条件のもとでの詳細なルールが定められており、残念ながら決して誰しもが簡単にすぐ適用できるものではないというのが現状です。 そこで、稿では、より一般的で頻繁に遭遇する共通的な状況下に限定することで、XSSへの対策方法を簡潔に説明したいと思います。 稿では物足りない方、稿だけで

    クロスサイトスクリプティング対策 ホンキのキホン
  • フロントエンド開発が捗るHTTP通信モニタリングツール「Charles」を使いこなす

    はじめに 「Charles」はHTTPのプロキシ・モニタを行えるGUIのツールです。似たようなツールとしてはFidllerが代表的ですが、CharlesはUIや操作性がシンプルです(その分機能は限定的です)。「HTTPをモニタする」というとなんだか取っ付きにくそうに感じるかもしれませんが、Charlesを使うことでその認識は大きく変わります。今回はこのツールのさまざまな使い方をWebフロントエンドの開発視点から紹介していきたいと思います。その便利さから弊社のWebフロントエンド開発チームにはなくてはならないツールとなっています。 Charlesとは Charlesは公式サイトの説明にもある通り、HTTPプロキシ/HTTPモニタを行うツールです。機能を大きく分類するとできることはその2点だけですが、かゆいところに手が届く細かな機能を多く持っています。公式サイトから引用すると、機能としては以下

    フロントエンド開発が捗るHTTP通信モニタリングツール「Charles」を使いこなす
  • シングルボードコンピュータRaspberry Piで格安ミュージックサーバを作ろう

    はじめに 夜おそくまで開発で忙しい日々を送っているので、休みの日は家でゆっくり音楽鑑賞してリラックスしたいなと思いませんか? どうせだったら、AirPlayにも対応したオーディオが欲しいとか、高音質な音源を良い音で楽しみたい、とか、音楽のコレクションが増えすぎたのですっきりまとめて整理したい……など思い、いざ家電量販店のオーディオコーナーに立ち寄るも、最新で自分好みのオーディオシステムを揃えようとすると、ついつい出費がかさんでしまいます。 そこで、記事では、約4000円で購入できるシングルボードコンピュータである「Raspberry Pi」と、家に余っているmicroSDカードメモリや無線LANアダプタ/ケーブルなどのパーツを使って、格安で自分だけのミュージックサーバを手作りする手順を紹介します。 対象読者 記事は、次の方を対象にしています。 おもしろいものが作りたい好奇心旺盛なエンジ

    シングルボードコンピュータRaspberry Piで格安ミュージックサーバを作ろう
  • JavaScriptでカバレッジを取得する

    連載は、テストコードをこれから書こうと考えているJavaScript技術者を対象に、テストコードの意義からテスト駆動開発、JavaScriptでのテストコードの書き方、継続的インテグレーションなど、テスト全般にわたって解説します。また、原理原則だけでなくWhyから説明し、チームメンバーを巻き込みながら開発現場に活かせる考え方を総合的に解説します。第6回目の稿は、JavaScriptでテストを動かし、JSCoverでカバレッジを取得する方法を説明します。 対象読者 JavaScriptの基をある程度理解している方 テストコードをこれから書こうと考えている方 カバレッジとは ソフトウェアをテストする際の重要な基準の一つに、カバレッジというものがあります。カバレッジとは、テスト対象のコードの中で、テストが行われた割合のことをいい、パーセントで表現します。カバレッジ率は、いくつかの基準で取得

    JavaScriptでカバレッジを取得する
  • Yahoo! JAPANのスマホアプリ開発で取り入れられているUI/UXデザイン技法

    UXデザイナーの瀧さんは、社内で「デザイン思考」を推進する活動を行っているそうです。今回の発表では、スマートフォン向けのサービスに適したUXを考える際のアプローチ方法について、実際の体験談を交えながら解説しました。 デザイン評価手法の一つ「アクティングアウト」 「アクティングアウト」はデザイン評価の方法の一つであり、アイデアを実際に利用する環境で体験してみることで、アイデアを検証できたり新たな発見を得られたりします。スマートフォン向けのサービスは利用者の環境がさまざまであるので、特に有効だそうです。 「アクティングアウト」の活用事例 瀧さんのチームでは、おでかけサポートアプリ「way」(現在は提供終了)を作るときにアクティングアウトを活用したそうで、その時のプロセスが説明されました。まず、最近印象に残っている「おでかけ体験」を文章にして、その中から心に残る体験につながっている要素を抽出しま

    Yahoo! JAPANのスマホアプリ開発で取り入れられているUI/UXデザイン技法
    sh19e
    sh19e 2014/09/08
  • まずは「gulp」を動かしてみよう! ~セットアップとはじめてのタスク実行

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    まずは「gulp」を動かしてみよう! ~セットアップとはじめてのタスク実行
  • Webアプリをあっという間にカッコよく! BootstrapによるレスポンシブWebレイアウト

    筆者は、このような画面を頻繁に目にします。なぜなら、デザインに疎い筆者自身がWebアプリを開発すると、このようなシンプルな画面がたくさん出来上がるからです。 そもそも業務アプリケーションでは、業務で取り扱う数多くの情報を、データベースや他システムなどから取得し、アプリケーション内でそれらの情報を、安全かつ正確に処理するためのコーディングを行う必要があります。開発規模が大きくなれば、再利用性の高い設計になるようさまざまな知恵を使う必要がありますし、取り扱う情報には機密性の高いものも含まれるため、セキュリティなどにも細心の注意を払う必要があります。そのため、どうしてもビジネスロジックの開発に注力しがちで、画面デザインやレイアウトなどのフロントエンド開発は、ついつい後回しになってしまいます。 しかしながら、Webアプリの操作性は、システムの顧客満足度を左右する重要なポイントになります。また、パソ

    Webアプリをあっという間にカッコよく! BootstrapによるレスポンシブWebレイアウト
  • Amazon Web Servicesの仮想サーバEC2でLinuxサーバを構築してみよう

    対象読者 記事は、次の方を対象にしています。 クラウドシステムがはじめての人 簡単なWebシステムのプログラミングを行ったことがある人 システム基盤について勉強したいと思っている人 Amazon Web Servicesとは? Amazon Web Services社が提供するクラウドサービスである「Amazon Web Services」(以降AWS)の主な特徴と、提供サービスについて説明します。 AWSの主要なサービス AWSの最大の特徴は、提供されるクラウドサービスの豊富さとスピードにあります。特に、IaaSサービスに関しては他のクラウドベンダーを圧倒しているといっても過言ではありません。また、2011年に日国内にデータセンター(東京リージョン)が稼働しました。企業システムでの実績も多く、コミュニティ活動も活発で、日語によるノウハウが蓄積されています。 ただし、提供サービスが豊

    Amazon Web Servicesの仮想サーバEC2でLinuxサーバを構築してみよう
  • JavaScriptでスパイ、スタブ、モックなどのテストダブルを行う

    連載は、テストコードをこれから書こうと考えているJavaScript技術者を対象に、テストコードの意義から、テスト駆動開発、JavaScriptでのテストコードの書き方、継続的インテグレーションなどテスト全般にわたって解説します。また、原理原則だけでなくWhyから説明し、チームメンバーを巻き込みながら開発現場に活かせる考え方を総合的に解説します。第4回目の稿は、JavaScriptでのテストダブルの方法を、Sinon.jsというJavaScriptテストダブルモジュールを使って説明します。 対象読者 JavaScriptの基をある程度理解している方 テストコードをこれから書こうと考えている方 テストダブルとは テストコードを実行する際に、次のような課題に直面したことはないでしょうか。 Ajaxへのサーバへの問い合わせのような外部リソースも含めた処理のテストを行う必要があるが、テストデ

    JavaScriptでスパイ、スタブ、モックなどのテストダブルを行う
  • JavaScriptのテストコードをNode.js+Jasmineで実行してみよう

    対象読者 JavaScriptの基をある程度理解している方 テストコードをこれから書こうと考えている方 Jasmineとは Jasmineとは、JavaScriptのテスティングフレームワークです。Mochaなどのテスティングフレームワークとは違い、値を評価するためのアサーションモジュールも内包されています。また、CoffeeScriptでの記述も可能です。 Jasmineは振る舞い駆動(BDD)の形式でテストを記述します。BDDは、作成する機能に期待する「振る舞い」を文章で記述していきます。言い換えると、顧客が望んでいるであろう「要求仕様」に近い形でテストを表現しながら、テストと実装を記述していく手法です。 リスト01は、Jasmineで記述した基的なテストコードです。このコードを文章として日語に直訳すると「【処理結果】が【期待する値】と同じでないと予測(expect)する」です。

  • Mochaを使ってJavaScriptのテストをブラウザで実行してみよう

    対象読者 JavaScriptの基をある程度理解している方 テストコードをこれから書こうと考えている方 JavaScriptのテスティングライブラリの分類 JavaScriptには、テストを記述するためのライブラリが多く用意されています。ライブラリには、大きく分けて「テスティングフレームワーク」と「アサーションライブラリ」があります。まずはこの2種類の違いについて説明します。 テスティングフレームワーク テストを記述する関数群を提供し、それらの関数を使って書かれたテストの結果を判定、集計した上で結果を表示する機能を持ちます。ブラウザでのテストの場合、ブラウザ上でグラフィカルにテスト結果を表示することもありますし、サーバサイドのJavaScriptであるNode.js向けにはコマンドラインで実行し、結果を表示する機能も持ちます。 アサーションライブラリ テスティングフレームワークは、テスト

    Mochaを使ってJavaScriptのテストをブラウザで実行してみよう
  • なぜJavaScriptでテストコードを書くのか?

    はじめに 第1回目の稿は、実際にテストコードを書く前に、基的な考え方である「なぜテストコードを書くのか?」を解説します。 対象読者 JavaScriptの基をある程度理解している方 テストコードをこれから書こうと考えている方 頻繁な変化への対応 まずは、開発現場で多く行われている基的な考え方を振り返り、テストコードがなぜ必要なのかを考えて行きたいと思います。 これまでのテストの考え方 まずは、一般的なウォータフォールモデルを例に考えてみましょう。通常ウォータフォールモデルでは、設計→実装→テストという順番で、作ったものを最後にテストします。最後にテストを行うというのは、言い換えると「品質を最後に担保する」と言えます。 また、最後にテストする場合は、通常テスト仕様書などを作成した上で必要なテストパターンを洗い出し、手動でテストを実施します。 変化への対応が求められている スタートアッ

    なぜJavaScriptでテストコードを書くのか?
  • デザインサンプルで学ぶCSSによるスタイリング~「リスト」編

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

  • デザインサンプルで学ぶCSSによるスタイリング~「見出し」編

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    デザインサンプルで学ぶCSSによるスタイリング~「見出し」編
  • デブサミ2014、講演関連資料まとめ

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    デブサミ2014、講演関連資料まとめ
    sh19e
    sh19e 2014/02/14
  • Photoshop Generatorプラグインの作り方

    改めてGeneratorとは 前回の冒頭では概念的にGeneratorの概要を書きましたが、端的に言うとGeneratorはiPhone/AndroidやPhotoshop以外のアプリケーションからTCP/IPを利用してPhotoshopへリモートアクセスを可能にするnode.jsサーバーです。 従って、Generatorプラグインはnode.jsアプリケーションということになります。Photoshopと接続して状態の変化をイベントとして探知できるので、夢が広がります。稿では、プラグイン作成の基的な作法を紹介していきたいと思います。 なお、稿で使用するPhotoshop CCは、Adobe Creative Cloudの無償メンバーシップへの登録で30日間の体験版が利用可能です。 コアライブラリの準備 まず第一にnode.jsをインストールしている必要があります。まだインストールをさ

  • 1