タグ

関連タグで絞り込む (329)

タグの絞り込みを解除

Programmingとprogrammingに関するteracy_junkのブックマーク (1,709)

  • JUnit4のassertThat()って便利なの?

    JUnit4ではhamcrestライブラリーが統合されており、伝統的なassertEquals()を使った比較以外に汎用的なassertThat()が使えます。これを使うとより英語的に自然に読めるアサーションを記述できるとされています。しかし、Classクラス同士の比較ができないといった問題もありますし、そもそも日人にとって便利なのかという疑問もわきます。

    JUnit4のassertThat()って便利なの?
  • 実はJUnit4のassertThat()ってしっくりこないんです!(特に、メタプログラミングするレイヤでは) - 達人プログラマーを目指して

    私のように昔からJUnitのコードを書くことが習慣となっていると、値の検証はassertEquals(期待値, 実際値)メソッドで行うというというのがずっと常識となっていました。しかし、4年ほど前にリリースされたJUnit4.4以降では、長年親しんできたassertEquals()に加えて、新しくassertThat()と呼ばれる別の検証メソッドが追加されています。この新しい検証メソッドについては、既にいくつかのサイトで説明されています。 http://journal.mycom.co.jp/articles/2007/07/20/junit1/index.html 林檎生活100: JUnit 4.4 の機能,assertThat と Assumptions,Theories について. hamcrestのMatcherメモ - 都元ダイスケ IT-PRESS hamcrest の Co

    実はJUnit4のassertThat()ってしっくりこないんです!(特に、メタプログラミングするレイヤでは) - 達人プログラマーを目指して
  • 日々是造形 制作レポート index.htm

    PCI DSS 4.0.1 Client-side intelligence to eliminate the browser blindspot The battlefield is shifting to the browser. Get AI-powered visibility into every attack, fraud attempt, privacy violation and AI agent on the client-side.

    日々是造形 制作レポート index.htm
  • コードレビューいろいろ - steps to phantasien

    コードレビューの話をいくつか見かけた. (1, 2, 3) 私もはやりにのってなにか書いてみたい. といってもリンク先についてどうこう言う気はない. ふだんからぼんやり感じていることをテキストにしてみたい. コードレビューの様式 コードレビューのやりかたは色々ある. 話の背景をあきらかにすべく, まずは私が参加したり見聞きしたりしてきた方法を紹介したい. ただとりとめなく列挙しても見通しが悪いから, 方法を評価する軸を見立てておこう. コードの粒度: 一回のレビューでレビュアが目を通すコードの量はどのくらいだろう. プロジェクト全体? モジュール単位, 機能単位, それともクラス単位? 古典的なレビュー様式はこれら <論理的な単位> でレビューをすることが多い. 最近はブランチやコミットのような <ひとまとまりの変更> を単位とする方法に人気がある. Github の Pull Reque

  • メソッドのポインタ Objective-C入門 WisdomSoft

    メソッドを関数として呼び出す 実は、Objective-C のメソッドの実態は C 言語の関数と同じです。 普段は隠蔽されていますが、メソッドとは最初の引数に自分のクラスを参照するオブジェクトを受け取る関数なのです。 メソッドの実体が関数であるという事実は、C 言語との親和性が極めて高いことを意味してます。 ピュアな C 言語で記述されたライブラリから Objective-C のメソッドを呼び出したり、オブジェクトを利用することも無理な話ではないのです。 Objective-C のメソッドは、常に IMP 型であると定義されます。 IMP 型は、ヘッダファイルで次のように定義されています。 typedef id (*IMP)(id, SEL, ...); この定義からも分かるように、Objective-C で宣言されたすべてのメソッドは、暗黙的に id 型と SEL 型の引数を持ちます。

  • Exception Handling of Cocoa

    Cocoaの例外処理 多くの方の助けをいただいて、最初にかなり重い話題を扱うことができ、ほっとしています。さて、今回選んだテーマはまたもや、Objective-Cのみの話題で、Cocoaの例外処理です。 そもそも例外とは何か 例外とは、プログラムの実行において例外的に発生した事象であり、例外処理とは、その例外的な事象が起こった時にそれを捕まえて、適切な処理を施すことです。適切な処理というのは、エラーパネルの表示であったり、事象の無視であったり、プログラムの終了であったりと一概に言えませんが、そういう事象を捉えるという点に意味があります。ところで、例外的な事象にはプログラムで回避不可能なものと、回避可能なもの(JavaにおけるRuntimeExceptionがこれに相当)が存在します。もののによれば、前者は例外として捉えるべき意味があり、後者はむしろプログラムのバグであるということです。C

  • 【勉強】Objective-Cプログラミング言語(その4/最終回)+おすすめの本

    てぃーによるiPhone/Mac/Android/Windowsアプリ開発、ウェブサービス開発、 ツイッター分析、音楽DTMイラストなど創作活動の記録です。 ブログ名は「創造性:creativity」(クリエイティビティ)と「てぃー」から。 勉強内容、デジタル製品(デジモノ)、エンタメについても書いていきます。 前回に引き続き、アップル純正の「Objective-Cプログラミング言語」を使った勉強です。 http://developer.apple.com/jp/devcenter/ios/library/documentation/ObjC.pdf 目次は以下です(再掲)。 序 章 はじめに 第 1章 オブジェクト、クラス、メッセージ 第 2章 クラスの定義 第 3章 オブジェクトの割り当てと初期化 第 4章 プロトコル 第 5章 宣言済みプロパティ 第 6章 カテゴリと拡張 第 7

  • My Codex Leicester » Blog Archive » class_replaceMethod (Objective-C 2.0) - OS X / iPhoneのAudio Visual Programmingの話題

    Objective-C 2.0で(instance)methodを書き換えたい. そんな時は,Objective-CのRuntime関数をいろいろ使えばできます. Objective-C 2.0なので,当然iPhoneでも動きます. method書き換えには,class_replaceMethodを使います. @interface HogeA : NSObject{ } @end @implementation HogeA -(void)print{ NSLog(@"Hoge A!"); } @end @interface HogeB : NSObject{ } @end @implementation HogeB -(void)print{ NSLog(@"Hoge B!"); } @end というクラス2個があるとして //#import <objc/runtime.h>が必要 H

  • [iOS開発 TIPS] NSDate を使って現在の日付を年・月・日・分・秒単位で取得してみる

    みなさまおはこんばんちわ。@EijiShibutaniだよ。 最近赤毛にしたんだけど、この前テレビに出てたチェ・ホンマンの髪色とまったく同じで愕然としたよ。どんな罰ゲームだよ。チェ・ホンマンのバカ!! (もし、チェ・ホンマン大好きな人がこのブログ読んでたら謝 r ………るかボケェェ!) めっきり更新滞っておりましたが、自分忘備録も含めた久しぶりのiOS TIPSです。 NSDateを使って現在の日時を取得する方法は一般的なのですが、今回はそこからさらにつっこんで、年・月・日・分・秒と細かく取得する方法をご紹介しますよ。 とりあえず NSDate で現在の日時を取得してみる。 えっと説明めんどくさいんでこんな感じ。 - (void)viewDidLoad { [super viewDidLoad]; NSDate *date = [NSDate date]; NSLog(@"現在の日時 >

    [iOS開発 TIPS] NSDate を使って現在の日付を年・月・日・分・秒単位で取得してみる
  • 便利なマクロ・カテゴリ・ライブラリまとめ - Qiita

    お断り 情報が古いです。更新の予定はありません 未だにストックされる方がいらっしゃいますが、古い情報です。ご自身で最新情報を確認してください。 一部はPopperToolsとしてライブラリを公開しています 以下古い内容 iOSアプリの開発にはjavascript/HTML5/CSSRubyなど様々な言語が利用可能ですが、漢ならやっぱりObjective-Cネイティブでしょ! Objective-CはCの完全上位互換なので、Cで使える技の数々はもちろん利用可能です。 加えて動的にメソッドを追加できるカテゴリや、プロトコルorデリゲートなど便利な機能がたくさんあるので、ガンガン使って行きましょう! 以下私が普段使っているマクロ・カテゴリ・ライブラリをまとめます。 一部過去の投稿を焼き直したものですがどうかご容赦を>< /* デバッグログ用マクロ。 NSLog()の使いすぎは明らかなパフォーマ

    便利なマクロ・カテゴリ・ライブラリまとめ - Qiita
  • 変更前をコメントアウトして残す習慣は未だ根強い (2012年現在) - 日々常々

    2020-03-11追記: タイトルの「未だ」がいつなのかわかりづらいので「2012年現在」を追加しました。 バカバカしい話ですが、ソースコードをSubversionなどでバージョン管理しているにもかかわらず、未だ修正前をコメントアウトして残す習慣は残っているところも多々あります。こういうのです。 // 2012/08/15 irof 修正開始 // hoge = fuga(1); hoge = fuga(2); // 2012/08/15 irof 修正終了 見た事無い方は、そのまま見ないままで生きていかれることを切に願います。 コメントの修正がある場合 2012/07/21にあった、SCMBCでこんなツイートがありまして。 この時点でお見せしたのはこんな感じ。 // 2012/07/21 削除開始 // // 間違ったコメント // 2012/07/21 削除終了 someMethod

    変更前をコメントアウトして残す習慣は未だ根強い (2012年現在) - 日々常々
  • コードレビューについて - camlspotter’s blog

    このところ立て続けにコードレビューについて話をする機会があったので 私が経験した最高のレビュー体制を簡単にまとめておこうと思います。 利点 何故必要か 何が嬉しいのか コスト うまく回すためには何が必要か 細かい運営方法 はっきり言って当たり前の事しか書きません。 私も当時は当たり前のことだと思っていましたから、特に気にもしていなかったのです。 ただ見聞するところによると、これをちゃんとやっているところはとても少ないようです。 ウォールストリート系のファンドでもろくにレビューしてないとかどういうことなんでしょう。 だから時々会社が吹っ飛ぶんですね… 結局は、ああだ、こうだ各論を言っても、ちゃんとやれるのか、それ一点に尽きてしまう話なのですが… 利点 レビューを何のためにするか、それはまず第一に自分達の書いているコードに潜在するバグによる損失をできるだけ少なくすることでしょう。 型システムや

    コードレビューについて - camlspotter’s blog
  • プログラミング言語処理系を自作してわかったこと

    ソフトウェア工学の古典「人月の神話」の「セカンドシステム症候群」によると、 二度目にデザインするシステムは、初回で実装を見送った要求を詰め込み過ぎて失敗作になりやすく なるため、適切な取捨選択が重要であると言われています。 これはプログラミング言語のデザインや実装にも適用される話なのでしょうか? …

    プログラミング言語処理系を自作してわかったこと
  • メモ: CoreDataで更新処理をするときは、lockをわすれずに

    単なるメモ書きです>< http://twitter.com/#!/akisutesama/status/83521489382555650 http://twitter.com/#!/akisutesama/status/83521729380626433ある一つのCore Dataのモデルを非同期的に複数箇所から更新するときは、たとえどんなに軽微な、プロパティ一つだけの、他からは触られない様な変更ですら、きちんとlockを取らないと危険ということがわかった。API実行クラスだけでは不十分であった。非同期であればロック必須。変更を行うコードブロックを渡して、内部で安全にロックして実行、必要に応じてロールバックや失敗通知も行える様にする仕組みを作ろうと思った。CoreDataのモデルオブジェクトの更新はただのsetterプロパティの使用だけで発生してしまうのでついつい忘れがちになるのですが

  • NSNullとnilを判定する | @blog.justoneplanet.info

    ■失敗例1 UITableViewのcellを設定する部分で以下のようなコードを書きクラッシュした。 NSString *tag = (NSString *)[row objectForKey:@"tag"]; [cell.tag setText:tag]; return cell; ■失敗例2 nilの場合があるなと考えて以下のようにする。 NSString *tag = (NSString *)[row objectForKey:@"tag"]; if (tag == nil) { [cell.tag setText:@""]; } else { [cell.tag setText:tag]; } return cell; 残念ながらクラッシュは依然として起こる。 ■最終版 tagはNSNullであり以下の判定に修正。 NSString *tag = (NSString *)[row

  • Second Flush:NSDictionaryクラス

    October 24, 2010 NSDictionaryクラス ●概要 NSDictionaryクラスは、キーと値の不変な関連付けを管理するオブジェクトのプログラムインターフェイスを宣言します。 このクラスまたはサブクラスのNSMutableDictionaryは、任意のキーに関連付けられたデータを便利に且つ効率的に取得する場合に使用します。 (便宜上、厳密な特定のクラスメンバを除いて、これらのクラスのインスタンスを辞書(dictionary)と呼びます) 辞書のキーと値のペアをエントリと呼びます。 各エントリの構成は、キーとキーの値となるオブジェクトで一つのオブジェクトとして表されます。 辞書内でキーは固有のものになります。 一つの辞書の中で、(isEqual:で確認できる)同じキーが2つ存在してはいけません。 キーは(NSCopyingプロトコルに準拠している)任意のオブジェクトを指

  • [iPhone] JSON Framework の使い方(解析編) | Sun Limited Mt.

    JSON Framework を使って JSON をパースする方法です。まだ、JSON Framework をインストールしていない場合は、前回の JSON Framework の使い方(準備編)からやってみてください。 NSString *jsonData = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:url] encoding:NSUTF8StringEncoding error:nil]; if (jsonData == nil) { // error } else { NSDictionary* jsonItem = [jsonData JSONValue]; } 解析した結果は、NSDictionary と NSArray が混合しているので注意が必要です。JSON によっては最初に NSArray

  • Objective-Cの整数と32bit64bit

    NSIneger等のスカラ型とNSNumber型の変換についてまとめようとしたんだけど 調べてるうちにObjective-Cのint型とNSInteger型、32bitと64bitの関係について 気づいたら調べていたのでまずはそこからまとめておく。 以下、特に注意書きしていない限りは、Mac-OS-X 64bit向けにビルドした結果。 まずは、NSInteger型をint型にキャストせずに代入すると以下の警告が出る。 Implicit conversion loses integer precision: 'NSInteger'(aka 'long') to 'int' 警告の理由は、NSIntegerの持ちうる値が32bitか64bitかは処理系依存だから。 int型変数に値を代入する時はプログラマが明示的にint(32bit)と宣言する必要がある。 そして、NSIntegerはlong

    Objective-Cの整数と32bit64bit
  • JavaScript 言語概要 - JavaScript | MDN

    このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。 � ?쪪View in English �쪪Always switch to English JavaScript はマルチパラダイムの動的言語であり、型や演算子、標準組み込みオブジェクト、メソッドがあります。その構文は Java や C 言語に由来するので、それらの言語の多くの構造が JavaScript にも同様に適用できます。 JavaScript は、オブジェクトプロトタイプやクラスによるオブジェクト指向プログラミングに対応しています。また、JavaScript は関数型プログラミングもサポートします。関数が第一級オブジェクトであり、式から容易に作成し、他のオブジェクトと同じように受け渡しすることができます。 このページは、 JavaS

    JavaScript 言語概要 - JavaScript | MDN
  • NSDate - 日付の計算、過去の日や末日を求める方法 - 強火で進め

    日付計算のうちよく使う可能性の高いものを紹介。 オフセット付きのNSDate生成 NSDate生成時に現在の時刻に指定秒のオフセットを加え、過去や未来の時刻を指定する。 NSDate* date; date = [NSDate dateWithTimeIntervalSinceNow:0.0f]; // 現在の時刻 NSLog(@"現在の時刻 -> %@", date); date = [NSDate dateWithTimeIntervalSinceNow:3*60]; // 3分後 NSLog(@"3分後 -> %@", date); date = [NSDate dateWithTimeIntervalSinceNow:3*60*60]; // 3時間後 NSLog(@"3時間後 -> %@", date); date = [NSDate dateWithTimeIntervalSi

    NSDate - 日付の計算、過去の日や末日を求める方法 - 強火で進め