2011/08/29

カスタムアプリケーションインストール後にエラーが発生


開発環境ではテストの実行も問題がないのにパッケージングして
リリース環境へインストールした場合にエラーが発生する場合があります。

理由は、バッチ処理や動的SOQLなどでSOQLを文字列で記述している場合にカスタムオブジェクト
への名前空間プレフィクスを記述漏れしている場合があります。

Apexコードでカスタムオブジェクト使用している場合は名前空間プレフィクスがなくても
問題ないのですが文字列で記述してあるSOQLの場合は名前空間プレフィクスを入れ
ないと問題が発生します。
(そんな名前のフィールドはない旨のエラーが表示される)

リリース環境へリリースするまでは発見されにくい内容となるので気をつけよう。

2011/08/24

DVDまたはCD共有 de MacBook Air

  • 共有される側のPCのスペック
  1. Mac OS X v10.4.11以降またはWindows7/XP/Vista
  2. Mac OS X v10.5.3以降は「DVDまたはCD共有」はインストール済み
※一度に組み合わせることができるのは1台のみ

「DVDまたはCD共有設定」ソフトウェアのダウンロード

  • Windowsの場合

support.apple.com/kb/DL112?viewlocale=ja_JP

  • Mac OS X v10.4.11-10.5.2の場合

support.apple.com/kb/DL113?viewlocale=ja_JP


  • 設定方法

support.apple.com/kb/HT1777?viewlocale=ja_JP


  • 使い方

  1. 共有するPCにメデイアをセット
  2. MacBook AirのFinder のサイドバーの「デバイス」の下の「リモートディスク」が表示されたらそれを選択、「使用を依頼」ボタンが表示される場合はそれをクリックする。
  3. 共有するPCで求められた場合は「了解」をクリックする。
  4. MacBook Airで利用可能になる。

以上、MacBook Airの小冊子からの抜粋

2011/08/19

住所class 設計

とある日に住所をオブジェクト指向設計したらどうなるという議論がありました。

  • ある人は、以下があるといいました。
  1. 都道府県クラス
  2. 市区町村クラス
  3. 番地クラス
  • ある人は、以下があるといいました。
  1. 住所クラス
  • ある人は、クラスではなくフィールドもしくはプロパティだといいました。
  1. 文字列

    その時の議論では答えは出なかったと思います。

    今、思い返すと自分の回答は「場合による」になります。
    何が場合によるかというと以下になると考えるからです。
    • 住所をどのように使用するかによって違ってくる。
    表示目的で特に機能を有しない場合
    フィールドもしくはプロパティにする
    class Contact
        string address;
    }
    

    それぞれに於いて機能が付加されるような場合
    都道府県、市区町村、番地クラスを使用する
    class Todoufuken
    {
        Todoufuken(string name);
        number getArea(); //面積取得
    }
    

    住所に機能が付加されるような場合
    住所クラスにする
    class Address
    {
        Address(string address);
        string getTodoufuken( string address );
        Todoufuken getTodoufuken( string address );
        string getPostNumber(string adress);
    }
    
    or
    class AddressHelper
    {
        static string getTodoufuken( string address );
        static Todoufuken getTodoufuken( string address );
        static string getPostNumber(string address);
    }
    

    というように、場合によって目的のクラスを後々付加していくのがいいと思う今日この頃。