RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
RECOMMEND
SELECTED ENTRIES
RECENT COMMENTS
RECENT TRACKBACK
CATEGORIES
ARCHIVES
MOBILE
qrcode
LINKS
PROFILE
OTHERS

12
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--

bose999's memo

BLIの進化実装
0
    http://revolver.wiki.sourceforge.net/
    http://bulletlib.wiki.sourceforge.net/

    去年S2ベースでBLIを焼きなおした。
    一応使えるレベル。今後も考えないといけないんだが。。。
    | BLI Framework | 16:19 | comments(0) | trackbacks(0) | - | - |
    Wicket イイ (^o^)/
    0
      Wicketいいですねー。 java-ja の勉強会行ってきました。
      
      次期バージョンでだいぶ変わるらしいので
      少し待ちでその後、使いたいです。
      
      S2Wicketをお使いの方にも飲み会でお話を
      お聞きできたのですが、連携もかなり使えるとのことです。
      
      Javaのコードに専念できる、HTMLデザイナーと分業が明確と
      とても私の考えている事にヒットしてるんですよね。
      
      あとはJavaで冗長になってしまうSwingちっくなコーディングを
      いかに楽に出来るかとMの部分をどうするか。
      
      Groovyでのコードはかなり短くなってましたが、
      そこは個人的にはJRubyでやりたいなぁとか。。。
      
      Mの部分、もちろんBLI+S2Daoっしょ。。。(w
      とか言ってみる。(w
      
      とりあえず妄想としては、
      
      Wicket + Seasar2 (S2Container + S2Wicket + S2BLI +S2Dao)
      
      かな。
      
      ということで、S2BLIを本気でやりたいなと思い始めました。
      ぶりと名前がかぶってるので変えた方がいいかな。。。
      
      Springでなければいけないという縛りが転職で取れたし。。。
      
      あとは、S2系のテスト周りとSSBLI(Struts/Spring/BLI)で作った
      テストフレームワークをどう融合させていくか課題。
      
      あ、あとさぼってたMaven対応も、下記で勉強しなきゃ。
      
      
      
      ということでぽちっとな。
      
      SSBLIは下記参照。 Subversionのtrunkは実際の開発でも実績あり。 0.2としてリリースしてない。(汗; https://sourceforge.jp/projects/bli-pj/ http://bose.techie.jp/?cid=27983
      いや、マジで単純だけどBLIは品質向上とかにも役に立つ。。。 ファサードとテンプレートで組み立てて、 更に規約によるコードを減らす仕組みをDIで組み立てて、 更にその固まりをBusinessロジックの粒度でDIするという シンプルな物なんですが。。。 ・クラス設計の均一化による開発メンバーの習熟度の短期アップ ・ドキュメント作成効率化 ・クラス粒度の均一化 ・Unitテスト活用による品質アップ 上記がSeasar2と融合する事で更にアップすると妄想中。。。 妄想をまとめないとな。そして小一時間、関係各位に問い詰めたい。。。 そして、その後更に磨かないと。。。 私の火消しの経験が役に立つと思うんだよなぁ。これが。
      | BLI Framework | 11:53 | comments(1) | trackbacks(0) | - | - |
      djUnit0.8.2&JUnit4対応
      0
        BLI FrameworkのdjUnit0.8.2&JUnit4対応を行いました。
        TestSuiteクラスの作りがJUnit4で変わってるので注意です。
        
        #開発メンバーには開発環境のバージョンアップ手順を後でメールします。
        
        | BLI Framework | 20:56 | comments(0) | trackbacks(0) | - | - |
        PJメンバーとしての更新権限ありのソースのチェックアウト方法
        0
          SourceForge.JPから更新権限のあるメンバーとしての
          Subversionのチェックアウトをまとめます。
          
          1.メンバーで使用している共通Eclipse環境を立ち上げて
            下図のように新規にプロジェクトを追加します。
          
          
          
          2.Projects from SVNを選択して、「次へ」を押します。
          
          
          
          3.GeneralタブのRoot URLに
            svn+ssh://svn.sourceforge.jp/svnroot/bli-pj/BLIFramework
            と入力し、UserにSourceForge.JPのアカウントを入力します。
          
            ※パスワードは入力しません。
          
            
          
          4.SSH Settingタブのラジオボタンを「Private Key」を選択して、
            FileにSourceForgeに登録したSSH2キーのidentityファイルを指定します。
            その後、PassphraseにSourceForge.JPのアカウントのパスワードを
            入力します。
          
            ※Eclipseにこのパスワードを保存する場合はSave passphraseに
             チェックを入れます。
          
          
          
          5.Trunkを展開します。
          
          
          
          6.チェックアウトしたいPJを現状は下図の赤枠の3つの中から選んで
            「終了」を押します。
          
          
          
          7.何も変更せずに「次へ」を押します。
          
          
          
          8.何も変更せずに「終了」を押します。
          
          
          
          9.チェックアウトが進みます。
          
          
          
          10.チェックアウトが完了します。
             CodeFormatCustom.xmlをJavaのコードスタイルのフォーマッタに登録して
             BLI Frameworkのプロジェクトで適応するようにします。
          
          
          
          以上でチェックアウト完了です。
          
          | BLI Framework | 22:04 | comments(0) | trackbacks(0) | - | - |
          SourceForge.JPへのSSH2キーの登録方法(Linux使います)
          0
            BLI Frameworkへ参戦するメンバーが増えてきたので
            SourceForge.JPを使用するマニュアルを作っときます。
            
            まず、SSH2キーの作り方と登録の仕方
            
            1.SourceForge.JPにアカウントを登録します。
            
            2.SourceForge.JPのPJに参加します。
            
            3.Linuxマシンにログインして、下記のようなコマンドを
              実際には1行で入力して実行します。
            
            ssh-keygen -t rsa -f /home/XXX/temp/identity
            -C アカウント名@users.sourceforge.jp
            
            4.パスフレーズを聞いてきますので、
              パスフレーズ(SourceForgeのパスワード)を入力します。
            
            Generating public/private rsa key pair.
            Enter passphrase (empty for no passphrase): ********
            Enter same passphrase again: ********
            
            5./home/XXX/temp上のファイルidentity,identity.pubを
              WindowsマシンからWinSCP等でローカルに保存して
              Linuxマシンからは消します。
            
            6.SourceForge.JPにログインして、アカウント管理を開きます。
            
            7.CVS/SVN/SSHで共有する公開鍵: 1 [鍵の編集]という下の方にある行の
              [鍵の編集]をクリックします。
            
            8.identity.pubファイルの内容をそのままTEXTAREAにコピーペーストします。
            
            9.更新ボタンを押します。
            
            以上でしばらくするとSourceForge.JPの自分のアカウントにSSH2の
            公開鍵が登録されます。
            
            そして、しばらくすると、identityファイルを使って
            UTF-8 TeraTerm Pro等でshell.sourceforge.jpに
            ログインできるようになります。
            
            | BLI Framework | 21:36 | comments(0) | trackbacks(0) | - | - |
            BLI Validate Framework 仕様変更
            0
              製造チームからフィードバックを頂いてBLI Validate Frameworkを
              本日、私の方で仕様変更。
              
              #コメントをきちんと入れたり等まではちょっとしてません。。。
              #まだリファクタの余地もあります。。。
              
              Validateがわかり易くなったのと利便性があがった。
              commonsのvalidatorとかよりも簡単にあまり考えずに
              実装ができる事を目指しているので。いい改善かなと。
              まだまだ改善が必要ですが。
              
              ・エラーメッセージフォーマットに変数を入れて
               エラーコードとエラーメッセージの置換を可能にした。
              
              
              confingのプロパティファイルに値を記述するだけでOK。
              ・エラーメッセージに変数を可変で設定可能にし、  エラーメッセージをプログラムで動的に変更可能とした。
              メッセージプロパティファイルのメッセージに{数字}という 書式で変数を埋め込み、Validateをコールする際に 新規に追加されたList errorMesSetListという引数の Listに値をセットすればListの順番でエラーメッセージの 変数がListのStringに置換される。
              ・チェックする変数のオブジェクトが無い場合、  フレームワーク側が用意しなくてもAbstractValidateObjectを  継承してチェッククラスを作成すれば独自拡張を可能とした。
              Mapに型名と作成したクラスをセットしたものをDIで ValidateCtrlのvalidateObjMapにInjectionすれば Validateを行える。
              ・エラーコードとエラーメッセージを1対1に変更。  エラーメッセージからフィールドドリブンを排除。
              メッセージプロパティファイルはエラーコードがKeyで 本文が値。confingのプロパティファイルにエラー時の エラーコードを記載。 DBから取得する際はGetMessageDBを実装したクラスの String getErrorMes( String errorCode );という メソッドを実装し、メッセージプロパティファイルを nullで実行する。エラーコード取得のメソッドは廃止。
              ・AbstractValidateObject継承クラスのValidateメソッドを  オブジェクトの継承関係で有効になるように変更。
              AbstractValidateObjectでObjectとしてnullチェック ValidateNumberで数字として汎用的なチェック ValidateIntegerでIntegerとして汎用的なチェック のように実装し、Integerのクラスでvalidateがコールされても 上位のオブジェクトに実装されたチェック処理が行われるように実装。 継承先は継承先のValidateを実行可能。
              ・Validate処理をNULLチェック以降を設定で有効になっているものを  すべてチェックするか、エラーが発生したら、そのオブジェクトの  チェックをやめるか設定を可能とした。
              confingのプロパティファイルにdoTypeという設定項目を 追加してtrueならすべてチェック、falseなら禁則処理をパス。
              #今日は早めに寝よ。。。
              | BLI Framework | 20:12 | comments(0) | trackbacks(0) | - | - |
              製造からのフィードバックに感謝!
              0
                うちの製造担当の方から問題点の指摘が。。。さすが!鋭い。
                
                その製造担当の方の能力は高いので、とっても信頼しております。
                実は、その方は、日本にはいないのですが。。。(笑
                
                (^o^)/いつもありがとうございます!!
                
                BLIをどんどん良くするぞ。
                SourceForge.jpには今さっきコミット済み。
                
                私自身の業務は、昼間はなぜかJavaScriptばかり月曜から書いてますが、
                来週も続く予定。
                
                という事で業務上、昼間はBLI Frameworkは書く事はできないのです。。。
                
                
                某パッケージをパッケージのソースを変えずにカスタマイズ可能な HTMLテンプレート上でXMLHTTPRequestを利用してパッケージの HTTP APIを呼び出してガリゴリとカスタマイズしちょるので。。。 お客さんからのどうしてもやってみてという要望。 ヘビーですが勉強になってます。
                そして、0時過ぎに帰宅してるので、必然的に夜行性。。。orz さて、プライベートメール何通かさばいて寝ます。 今週は3時間以下の睡眠が続いて眠い。。。明日は昼まで寝よ。
                | BLI Framework | 02:51 | comments(0) | trackbacks(0) | - | - |
                なぜ、BLI Frameworkを使うとActionクラスを流用できるの?
                0
                  タイトルの内容をBLI Frameworkを使用して、
                  コーディングをする人に説明をしたので、メモしときます。
                  
                  BLI Frameworkでは、StrutsActionに関しては
                  SpringのDelegatingActionProxyクラスから
                  StrutsActionを呼び出す方法を取ります。
                  
                  実装としては、BliStrutsActionを継承して
                  jp.sf.bli.ss.sample.SampleActionのようなクラスを
                  アプリケーションの要件に応じて最小の個数だけ作成します。
                  
                  ここでいうアプリケーションの要件とは
                  doProcessBefore、doProcess、doProcessAfterという
                  BliStrutsActionのメソッドの記述に差異が必要になる要件を
                  指します。
                  
                  つまり、その要件のパターン数だけ作成するだけになります。
                  
                  jp.sf.bli.ss.sample.SampleActionでは、 遷移先はsuccessにて正常終了とfailureでアプリケーションで 判定できるエラー終了とし、fatalでExceptionを 伴うような異常処理としています。 このくらいの遷移パターンで完結させて設計すると わかりやすくなりミスを防げたり保守しやすくなります。 私は大抵、このくらいで実装する事が多いです。 遷移の選択肢が多い場合は設計を見直すことが多いです。
                  そして、実際のビジネスロジックはBliStrutsActionに SpringがInjectionするblCtrlによって決まるのです。 SpringのXMLファイルの設定でblCtrlをInjectionする事により、 BliStrutsActionの継承クラスは何パターンものxxx.doとして 動作可能になります。 #この考え方がBusiness Logic InjectionというBLIの持つ意味の一つを指しています。 結果、Actionクラスをコーディングする個数が激減されます。 【struts-configの設定例】 <action-mappings> : <action path="/search" type="org.springframework.web.struts.DelegatingActionProxy" name="searchForm"> <forward name="success" path="/jsp/search.jsp"/> <forward name="failure" path="/jsp/menu.jsp"/> </action> <action path="/createNew" type="org.springframework.web.struts.DelegatingActionProxy" name="createNewForm"> <forward name="success" path="/jsp/createNew.jsp"/> <forward name="failure" path="/jsp/menu.jsp"/> </action> : </action-mappings> ※fatalに関してはGlobal Forwardにて「システム管理者に問い合わせて下さい」  のような画面を表示します。 【Springの設定例】 <bean name="/search" class="xxx.common.LoginAction"> <property name="blCtrl"> <ref bean="searchBLCtrl" /> </property> <property name="mesInitFlag"> <value>1</value> </property> <property name="loginChkFlag"> <value>1</value> </property> </bean> <bean id="searchBLCtrl" class="xxx.search.SearchBLCtrl"> <property name="blValidate"> <ref bean="searchBLValidate"/> </property> <property name="blList"> <list> <ref bean="selectBlDo" /> </list> </property> </bean> <bean name="searchBLValidate" class="xxx.search.SearchBLValidate"> <property name="validateConfigFile"> <value>xxx.resources.Validate</value> </property> </bean> <bean name="selectBlDo" class=xxx.search.SelectBlDo"> <property name="selectDao"> <ref bean="selectDao" /> </property> </bean> <bean name="selectDao" class="xxxx.dao.impl.SelectDaoImpl"> <property name="dataSource"> <ref local="dataSource" /> </property> </bean> <bean name="/createNew" class="xxx.common.LoginAction"> <property name="blCtrl"> <ref bean="createNewBLCtrl" /> </property> <property name="mesInitFlag"> <value>1</value> </property> <property name="loginChkFlag"> <value>1</value> </property> </bean> <bean id="createNewBLCtrl" class="xxx.createNew.CreateNewBLCtrl"> <property name="blValidate"> <ref bean="createNewBLValidate"/> </property> <property name="blList"> <list> <ref bean="createNewBlDo" /> </list> </property> </bean> <bean name="createNewBLValidate" class="xxx.createNew.CreateNewBLValidate"> <property name="validateConfigFile"> <value>xxx.resources.Validate</value> </property> </bean> <bean name="createNewBlDo" class=xxx.createNew.CreateNewBlDo"> <property name="insertDao"> <ref bean="insertDao" /> </property> </bean> <bean name="insertDao" class="xxxx.dao.impl.InsertDaoImpl"> <property name="dataSource"> <ref local="dataSource" /> </property> </bean>
                  | BLI Framework | 21:55 | comments(0) | trackbacks(0) | - | - |
                  BLIを中心において、まわりを考えてみる
                  0
                    BLIに関わっている我々は業務ソフトウェア開発を
                    生活の糧にしてます。そして、そこにはお客様と
                    開発をする我々が存在しています。
                    
                    そして、対価を頂いて開発する我々が
                    到達しなければいけないのは、お支払い頂いた対価に見合う、
                    もしくはそれ以上のソフトウェアを納品して、
                    運用にのせて実際にお客様の会社の経営を向上させる事です。
                    
                    これが我々の命題です。
                    
                    BLIを頑張っているのは、上記の命題を満たす作業を
                    スピーディに品質を保って出来る仕組みを少しでも確立したいという、
                    我々のお客様へのサービスレベルの向上への思いからになります。
                    
                    では、勝手に自分たちの会社で、上記の我々さん達が作り上げて、
                    OSSなんかにしなくてもいいのでは?という意見もあると思います。
                    おっしゃるとおりかもしれません。
                    
                    ただ、我々はOSSとして公開することによって色々な方の意見や
                    ノウハウをBLIに取り込んで、我々が思いつく以上の仕組みにして、
                    それをBLIの利用者・開発者、関わる皆で共有するという
                    良い循環ができればと考えてます。
                    
                    それは、我々のお客様の為にもなるし、我々の為にもなる。
                    そして、BLIに関与する方々の為にもなるし、
                    関与する方のお客さんの為にもなる。ALL Winな訳です。 
                    
                    そんなきれい事が・・・。と思われるかもしれません。
                    でも、青臭いかもしれませんが、それを目指してるんですね。
                    
                    風が吹けば桶屋が儲かる。ではないですが、自分たちを良くすれば
                    お客様にも良くできて、他も良くできてなんて実現すればHappyですね!
                    
                    しかし、まだまだ不出来で小僧な我々は、
                    恥ずかしい事この上ない事を一杯していくと思います。
                    ゴールにたどり着くまでは。
                    
                    #ゴールあるのか?はさておき。。。
                    
                    まぁ、そんな感じで、恥かきながら(笑
                    頑張ります!!
                    
                    さて、月報まとめて23時には家路につくぞ。。。
                    
                    | BLI Framework | 22:23 | comments(0) | trackbacks(0) | - | - |
                    tabasco-z君 参戦!
                    0
                      一緒に業務上の苦楽をここ何年か共にしている
                      tabasco-z君がBLIのコミッタとして参戦してくれました。
                      
                      彼はBLIがBLBという名称だった2年前からアイディアを
                      出したり、BLBの現場投入に尽力してくれました。
                      
                      これからもよろしく!
                      
                      | BLI Framework | 00:40 | comments(0) | trackbacks(0) | - | - |