ブックマーク / qiita.com (240)

  • ユニットテストを書こう! - Qiita

    ソフトウェアエンジニアにとって、ユニットテストは重要です。僕はなるべくユニットテストを書くようにしており、ソフトウェアエンジニアはもっとユニットテストを書くべきだ、と考えています。ここで言及している「ユニットテスト」は、単なる「テストコードによる自動化」全体を指すのではなく、「テストから見えてくるグーグルのソフトウェア開発」で登場した用語である「Sテスト」を指します。 「テストから見えてくるグーグルのソフトウェア開発」では、テストコードが対象とするプロダクションコード(製品コード)の規模、S、M、Lとサイズごとに分類しています。 「Sテスト」とは、テスト対象のクラスのみを対象にしたテストを行うことを目的としています。テスト対象以外のクラスの処理は、積極的にモックを多用することで、テスト対象のクラスの振る舞いを確認します。 Sテストは主に品質向上に寄与すると「テストから見えてくるグーグルのソ

    ユニットテストを書こう! - Qiita
    poppun1940
    poppun1940 2014/05/11
    (このドキュメントは作成中です。とある事情により、2014/04/25のうちに公開したかったため、作成中ですが公開しました。まだまだ更新していきます。もし良かったらストックしていただけると、更新を受け取る事ができま
  • 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 この記事について この記事は、新人向けの研修内容を再編集してお送りします。 この記事の内

    新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 - Qiita
    poppun1940
    poppun1940 2014/05/10
    この記事について この記事は、新人向けの研修内容を再編集してお送りします。 この記事の内容は絶対のものではありません。重要なことは読みやすいコードを書くためにプロジェクトやチーム、言語のサポート状況で異
  • Xcode5時代の「かんたん」iOSアプリ開発セットアップ - Qiita

    Androidに比べると、iOSのアプリ開発は証明書やらprovisioning profileやらを用意しないといけなかったりデバイスを登録しないといけなかったりで、とかく面倒な印象です。 確かに以前はそうでしたが、Xcode5からはこのあたりの面倒さが大幅に改善されています。 ネットで情報を検索しても古い情報が大量にヒットしてしまい、なかなかそのことが分からなかったので、これからiOSアプリを開発する人のために情報をまとめておくことにしました。 前提 Xcode5を使ってiOSアプリを開発する場合に必要な準備についてまとめました。 MacBook Air(Mountain Lion)+Xcode 5.1.1+Firefoxで実際に試しました。 ちなみにこちらの環境ではChromeでDeveloperサイトで操作をすると「Loading...」という画面が表示されたまま先に進まないことが

    Xcode5時代の「かんたん」iOSアプリ開発セットアップ - Qiita
    poppun1940
    poppun1940 2014/05/09
    Androidに比べると、iOSのアプリ開発は証明書やらprovisioning profileやらを用意しないといけなかったりデバイスを登録しないといけなかったりで、とかく面倒な印象です。 確かに以前はそうでしたが、Xcode5からはこのあたりの
  • Mac OSX で開発環境を構築するための環境構築 (Homebrew, Git, SVN, Ruby, Perl, Python) - Qiita

    UPDATED: 2017/11/27 記事は2014年当初の情報であり、現在は古くなっている可能性があります。 記事中で紹介している各種プロダクトの最新ドキュメントをご参照下さい。 はじめに OS X で最近流行のツールは RubyPython ベースのものが多いのですが もともとインストールされている各処理系はバージョンが古いです。 その更新自体にこれから紹介する Homebrew 等を使っている記事が多く、 どこから手を付けていいか迷ったりしたので、まとめておきます。 目標 パッケージマネージャ Homebrew のインストール システムデフォルトとは別に Git, JDK, Ruby, Perl, Python の最新版をインストール 大まかな流れ システムにプリインストールされている Ruby で Homebrew をインストール Homebrew から各種追加パッケージ

    Mac OSX で開発環境を構築するための環境構築 (Homebrew, Git, SVN, Ruby, Perl, Python) - Qiita
    poppun1940
    poppun1940 2014/05/09
    はじめに OS X で最近流行のツールは Ruby や Python ベースのものが多いのですが もともとインストールされている各処理系はバージョンが古いです。 その更新自体にこれから紹介する Homebrew 等を使っている記事が多く、 ど
  • facebook/pop を使ってみた - Qiita

    最近 FacebookがOSSとして公開した pop は Paperで使われているアニメーションライブラリです 少し触ってみたので基的な使い方などをまとめてみます この記事はブログでも公開しています pop とは 公式ブログに記事があるのでそちらがとても参考になります Introducing Pop, the animation engine behind Paper iOS や OS X でアニメーションを実装しようとするとCoreAnimationを使うと思うのですが実はCoreAnimationはなかなか使いにくいライブラリだったりします。確かにCABasicAnimationは簡単ですが、Timing Functionをlinear, ease-in, ease-out, ease-in ease-outの四種類と3次ベジェ曲線のいずれかからしか指定することができません。これだと

    facebook/pop を使ってみた - Qiita
    poppun1940
    poppun1940 2014/05/07
    最近 FacebookがOSSとして公開した pop は Paperで使われているアニメーションライブラリです http://ift.tt/1j8WTA2 少し触ってみたので基本的な使い方などをまとめてみます この記事はブログでも公開しています pop とは 公式ブログ
  • 忙しい現代社会人のために習うより慣れる AngularJS のリンク集 - Qiita

    忙しくない人は、公式のチュートリアルを頭から全部やると良いです。めんどくさくてそっちはやってないので分かりません。 とりあえずここを開いてジャッヴァスクリプトを眺める モジュールについて 基中の基。特に推奨セットアップのところを見ておけば良い。 DI(依存性注入)について こっちを読んだ方が幸せになれるかも。 どんなサンプルを読むにあたっても、DI の仕組みを知ってないと辛くなる。仕組み自体はよくできているが取っつきづらい。 特に 引数名で渡される実体が変わる 部分は慣れるまで気持ち悪い気がするし、ぼくは気持ち悪い。もっと言うと、minify した場合などで変数名が変わると動作しなくなるため基的には変数名を指定して、実体を捕捉する必要がある。 var sampleApp = angular.module('sampleApp', []); /** たとえば、Controller で

    忙しい現代社会人のために習うより慣れる AngularJS のリンク集 - Qiita
    poppun1940
    poppun1940 2014/05/07
    忙しくない人は、公式のチュートリアルを頭から全部やると良いです。めんどくさくてそっちはやってないので分かりません。 とりあえずここを開いてジャッヴァスクリプトを眺める モジュールについて 基本中の基本。
  • Git サブコマンドめも - Qiita

    目的 git サブコマンドの個人的メモ 随時追加更新する 「ワンライナーで add して commit したい!」 既存ファイルに対して全て add します.

    Git サブコマンドめも - Qiita
    poppun1940
    poppun1940 2014/05/07
    目的 git サブコマンドの個人的メモ 随時追加更新する 「あ!間違えて commit しちゃった」 直前の commit を無効にする via はてなブックマーク - 人気エントリー - テクノロジー http://ift.tt/JGfH6b
  • AngularJS使い方メモ - Qiita

    AngularJSアプリケーション開発ガイド を読みながら勉強したときのメモ。 HelloWorld AngularJS を入手する 公式サイトから angular.min.js をダウンロードする。 HTML を書く <html ng-app> <head> <script src="angular.min.js"></script> <script src="helloWorld.js"></script> </head> <body> <h1 ng-controller="HelloWorldController">{{message}}</h1> </body> </html> angular.min.js を読み込む。 ng-app ディレクティブを付けたタグの中が、 AngularJS のテンプレートとして処理される。 ng-controller ディレクティブを付けたタグの中

    AngularJS使い方メモ - Qiita
    poppun1940
    poppun1940 2014/05/07
    AngularJSアプリケーション開発ガイド を読みながら勉強したときのメモ。 HelloWorld AngularJS を入手する 公式サイトから angular.min.js をダウンロードする。 HTML を書く via はてなブックマーク - 人気エントリー - テクノロジー http
  • Androidアプリでよく使われているライブラリを調べる方法 - Qiita

    AppBrainがGooglePlayに登録されているアプリのライブラリ使用状況を集計しています。 AppBrain stats 各ライブラリやフレームワークの 全アプリに占める割合(青) 全インストール数に占める割合(オレンジ) (アイコンのリンク先で)詳細や利用アプリのトップテン を確認できます。 スクリーンショット ※ 2014/5/1現在 広告SDK タブの切替で広告SDKやソーシャルSDKのシェアもわかります。 広告SDKは「admob」が強い。 国内企業だと「nend」や「Adlantis」が下位の方に…。 ソーシャルSDK ソーシャル系はfacebookのSDKがダントツですね。 4位に「Twitter4j」があります。 他に上位を占めているのはゲームランキングやマッチングを搭載する系のSDKですね。 このへんは国内ゲームで使われているSDKとは結構様相違うかな。 活用法な

    Androidアプリでよく使われているライブラリを調べる方法 - Qiita
    poppun1940
    poppun1940 2014/05/06
    AppBrainがGooglePlayに登録されているアプリのライブラリ使用状況を集計しています。 AppBrain stats 各ライブラリやフレームワークの 全アプリに占める割合(青) 全インストール数に占める割合(オレンジ) (アイコンのリンク先で
  • Objective-Cの依存関係を視覚化 - Qiita

    参考リンクのメモ。 書いたコードの構造を眺めてみて反省してみたり書きなおしてみたりする。 Doxygenで見る手もあるが、事前の設定とかがそれなりの手間だったりするので、サックリと見たいときにはこれで。 objc_dep + Graphviz nst/objc_dep Objective-C - Xcodeプロジェクト内のクラスの依存関係を図示する - Qiita Objective-Cのクラスの依存関係を画像ファイルに出力 | 三度の飯とエレクトロン objc_dep $ python [objc_dep.py] [対象プロジェクトのディレクトリ] > [出力先・ファイル名].dot graphviz brewでgraphvizをインストール後、Applicationフォルダからのリンクを生成しておく。 $ brew install graphviz --with-app graphvi

    Objective-Cの依存関係を視覚化 - Qiita
    poppun1940
    poppun1940 2014/05/05
    書いたコードの構造を眺めてみて反省してみたり書きなおしてみたりする。 参考リンクのメモ。 objc_dep + Graphviz nst/objc_dep Objective-C - Xcodeプロジェクト内のクラスの依存関係を図示する - Qiita Objective-Cのクラスの依存関係を画
  • TDDという名の幻想... - Qiita

    TDDは死んだ。テスティングよ栄えよ。 by DHH http://d.hatena.ne.jp/yach/20140424#p1 【翻訳】TDD is Fun http://diskogs.hatenablog.com/entry/2014/04/25/085112 を読んで思ったことをつらつらと書いてみます。 TDDはできれば、やったほうが良いのは確か?です。 しかし、実際の開発現場で全面的に採用するのは ミドルウェア等の画面の存在しないソフトの開発以外では ほとんどの場合、無益です。 なぜなら、TDDを採用すると開発時間が膨らむ、すなわち、開発コストが 膨らむからです。そして、ソフト開発では細かな仕様は変化していきます、 するとTDDではそれに合わせ、テストを修正していかなくてはなりません。 また、TDDで書かれたテストが全てのケースを抜けなく網羅できていること は稀です、抜けは必ず

    TDDという名の幻想... - Qiita
    poppun1940
    poppun1940 2014/05/05
    TDDは死んだ。テスティングよ栄えよ。 by DHH http://ift.tt/1hmwSfV 【翻訳】TDD is Fun http://ift.tt/1jYoLVe を読んで思ったことをつらつらと書いてみます。 TDDはできれば、やったほうが良いのは確かです。 しかし、実際の開発現場で全
  • PHPでスクレイピング【Goutte vs. Simple HTML DOM Parser】 - Qiita

    PHPスクレイピングをしようと思って検索すると、Simple HTML DOM Parserというライブラリと、Goutteというライブラリが紹介されてあるようです。 昔から存在してPHPスクレイピングの定番になっているのが、Simple HTML DOM Parserらしく、紹介記事も多い。 Goutteは、パフォーマンスが良いらしいが、比較すると記事が少ない。 そこで、記事は、パフォーマンスバトルと実装方法についてまとめておきます。 「SayMove!のランキングページから、動画のタイトルを取得する」でベンチマーク対決していただきます 1, Simple HTML DOM Parserのベンチマーク 1-1, 導入 Simple HTML DOM Parserの公式サイトにアクセスして、ダウンロードして、作業ディレクトリにsimple_html_dom.phpを配置する。 1-2,

    PHPでスクレイピング【Goutte vs. Simple HTML DOM Parser】 - Qiita
    poppun1940
    poppun1940 2014/05/05
    PHPでスクレイピングをしようと思って検索すると、Simple HTML DOM Parserというライブラリと、Goutteというライブラリが紹介されてあるようです。 昔から存在してPHPスクレイピングの定番になっているのが、Simple HTML DOM Parserら
  • Rubyの手続き型と関数型の側面 - Qiita

    Rubyは手続き型の言語であるが、LispやSmalltalkの影響も受けているため関数型言語の側面も持つ。 Wikipediaのアクセス解析プログラムを例に、両者の違いを比べてみる。元の手続き型のコードは、いがいがさん作のRuby講義資料から。 Ruby 講義 第6回 Wikipediaアクセス解析 Ruby 講義 第7回 Wikipediaアクセス解析 アクセス解析のプログラムは以下の処理を実施している。 CSV形式のログ(ページ名とアクセス数が記録されている)を読み込む jaで始まる行のみを対象にする ログの1行からページ名とアクセス数を抽出 アクセス数が多い順に並び替え トップ20行を表示 require "cgi" filename = "20120301-000000-ja.txt" file = File.open(filename, "r:UTF-8") list = []

    Rubyの手続き型と関数型の側面 - Qiita
    poppun1940
    poppun1940 2014/05/05
    Rubyは手続き型の言語であるが、LispやSmalltalkの影響も受けているため関数型言語の側面も持つ。 Wikipediaのアクセス解析プログラムを例に、両者の違いを比べてみる。元の手続き型のコードは、いがいがさん作のRuby講義資料
  • シークヮーサーとファイアーエムブレムの表記ゆれを正規表現で表す - Qiita

    正規表現を構文図にしてくれるRegexperに通してみます。 Regexper シークヮーサー これで(22+1)422=80通りあります。小さい「ヮ」ってシークヮーサーでしか使わないよねぇ。 追記:ファイアーエムブレムの表記 同様に、任天堂のロールプレイングシミュレーションであるファイアーエムブレムも、正式な表記はこの公式Webサイトの通りですが、発音の関係で表記が揺れるようです。

    シークヮーサーとファイアーエムブレムの表記ゆれを正規表現で表す - Qiita
    poppun1940
    poppun1940 2014/05/04
    Qiita - A technical knowledge sharing platform for programmers. via はてなブックマーク - 人気エントリー - テクノロジー http://ift.tt/JGfH6b
  • 【独断と偏見】C#erでも許せるかも知れないフルスタックPHP - Qiita

    なにかと dis られる言語 PHP ですが、dis られる要因としては 利用者が多い(少なければそもそも話題にならない) 言語自体に開発者を導くコンパスがない 結果的に負の遺産が多く築かれる ということがあると考えています。 PHP をうまく使ってご飯をべている身としていくら dis られようと何ら弊害はないのですが、PHP は OSS で安定性・拡張性・言語自体の開発の活発さを保っておりコミュニティもとても活発な言語なので、今回は「PHP を使うとしたらこうやるといいよ」という方向性で書いてみようと思います。 あくまで個人の主観に基づいた記事です。ご了承下さい。 あくまでウェブアプリケーションを開発することを想定しています。 (それ以外の用途があるとは思いませんが) その前に、なぜ PHP を使うのか PHP は書けば動くから簡単だよ という罠 この言葉を耳にしたのは専門学校時代です

    【独断と偏見】C#erでも許せるかも知れないフルスタックPHP - Qiita
    poppun1940
    poppun1940 2014/05/04
    なにかと dis られる言語 PHP ですが、dis られる要因としては 利用者が多い(少なければそもそも話題にならない) 言語自体に開発者を導くコンパスがない 結果的に負の遺産が多く築かれる ということがあると考えていま
  • ブロックをdo…endで書くか{…}で書くかにより挙動が変わる例 - Qiita

    Ruby - Nokogiriによるスクレイピング(YahooFinance) - Qiita のコメント欄を書いているときに、挙動の違いに改めて気付いたので挙げときます。 Enumerable#injectに限られる話ではないのですが、気付いたときに使っていたのがこのメソッドだったので。 先に結論を do…endで書くときには、返値確認用のpを直接使うな。 Enumerable#inject まず中括弧の場合。injectの例としてこちらから引用します。 ruby の inject をわかりやすく説明してみる - Λάδι Βιώσας

    ブロックをdo…endで書くか{…}で書くかにより挙動が変わる例 - Qiita
    poppun1940
    poppun1940 2014/05/04
    Ruby - Nokogiriによるスクレイピング(YahooFinance) - Qiita のコメント欄を書いているときに、挙動の違いに改めて気付いたので挙げときます。 Enumerable#injectに限られる話ではないのですが、気付いたときに使っていたのがこのメソ
  • CoffeeScriptを使う理由 - Qiita

    function Person() { this.name = "takashi"; this.age = 20; }; Person.prototype.echo = function () { return "Hello " + this.name + " !!"; }; コンストラクタ、メソッドを書いただけで、コード量が増えてきましたね。 毎回クラス名とprototypeと書く必要があります。 めげてきましたか? 私はめげてます。 次は継承してみましょう。 function inherits(ctor, superCtor) { ctor.super = superCtor; ctor.prototype = Object.create(superCtor.prototype, { constructor: { value: ctor, enumerable: false, writ

    CoffeeScriptを使う理由 - Qiita
    poppun1940
    poppun1940 2014/05/04
    function Person() { this.name = &quot;takashi&quot;; this.age = 20; }; Person.prototype.echo = function () { return &quot;Hello &quot; + this.name + &quot; !!&quot;; }; コンストラクタ、メソッドを書いただけで、コード量が増えてきましたね。 毎回クラス名とprotot
  • JavaScriptのクラス定義を簡単にする - Qiita

    TypeScript (と TypeScript コンパイラ)を用いて JavaScript で利用可能なクラスの定義を作成(生成)することができます。 各サンプルはシンプルな HTML ファイル(index.html)と JavaScript ファイル(app.js)の2ファイルの構成です。ただし、app.js は app.ts (TypeScript 言語で書かれたソースファイル) をコンパイルすることによって自動生成されるものとなっています。 ちなみに私はエディター(開発環境)として Visual Studio Professional 2012 Update 4 を用いています。(TypeScript for Visual Studio 2012とWeb Essentials 2012をインストールしています) index.html で jquery.min.js を script

    JavaScriptのクラス定義を簡単にする - Qiita
    poppun1940
    poppun1940 2014/05/02
    TypeScript (と TypeScript コンパイラ)を用いて JavaScript で利用するクラスの定義を作成(生成)することができます。 シンプルな HTML ファイル(index.html)と JavaScript ファイル(app.js)の2ファイルの構成です。ただし、app.js は app.ts (Type
  • iOS開発のデバッグツールchiselの紹介 - Qiita

    (.lldbinit だと、Xcodeから起動したLLDBでは呼ばれないので注意。) Xcodeのlldbプロンプトで、helpとたたくと、chiselで使えるコマンド群が表示されます。さらにhelp <command> で、コマンドの詳細説明が出力されます。 (lldb) help The following is a list of built-in, permanent debugger commands: 〜略〜 pca -- Run Python function __FBPrintCommands_pca pcells -- Run Python function __FBPrintCommands_pcells pclass -- Run Python function __FBPrintCommands_pclass pinternals -- Run Python fun

    iOS開発のデバッグツールchiselの紹介 - Qiita
    poppun1940
    poppun1940 2014/05/01
    (.lldbinit だと、Xcodeから起動したLLDBでは呼ばれないので注意。) Xcodeのlldbプロンプトで、helpとたたくと、chiselで使えるコマンド群が表示されます。さらにhelp で、コマンドの詳細説明が出力されます。 (lldb) help The following is a
  • 最新のプログラミング知識へのアップデート - Qiita

    自分が現役でプログラミングをやっていた時期はPHP4全盛期で、クラスも使わず、データベースもmysql_関数を直接使うような時代でした。もちろんテンプレートエンジンやフレームワークも使わず、HTMLPHPのロジックを直書きです。JavaScriptもほとんど使っていなかったと思います。 それから数年プログラミングの世界から離れていて、つい最近舞い戻ってきたのですが、あまりにも技術が進歩していて、加齢プログラマにはついてゆくのが大変です。 新しい技術は、前提として知っていなければならない知識が多いのですね。 そんなわけで、カムバックしてから学んだことをまとめました。 PHP系 他の言語、具体的にはRuby on Railsも何度か挑戦したのですが、PHPで出来ることばかりなので、なんとなくモチベーションが上がらなくて最近はやってません。でもRuby界隈は楽しそうで羨ましい。 PDO データ

    最新のプログラミング知識へのアップデート - Qiita
    poppun1940
    poppun1940 2014/04/30
    自分が現役でプログラミングをやっていた時期はPHP4全盛期で、クラスも使わず、データベースもmysql_関数を直接使うような時代でした。もちろんテンプレートエンジンやフレームワークも使わず、HTMLにPHPのロジックを直書