SlideShare una empresa de Scribd logo
1 de 42
1 
 目的 
ノーツコンソーシアムの概要 
 ノーツコンソーシアムは、お客様、取り扱いユーザー、IBM ICSチームか 
ら成る非営利団体です。情報交換や研究、セミナーを通じて、会員相互の 
共通利益を追求します。 
 活動内容 
 各研究会(2014年度例) 
• ソーシャル研究会 
• Xpages研究会 
• DPP研究会 
• 大阪地区研究会 
• 九州地区研究会etc… 
 イベント開催 
• 情報交換会 
• テクニカルセミナー 
ノーツコンソーシアムFacebookペー 
ジ 
https://www.facebook.com/notesc 
ons
2 
Notes Consortium Home Page 
http://www.notescons.gr.jp/
3 
Notesconsortium Facebook 
https://www.facebook.com/notescons
4 
ノーツコンソーシアム活動スケジュール(11月– 12月) 
オープンセミナー 
クラウド時代のノーツドミノを考える 
12月12日(金) 15:00-17:00 
@渋谷IIC, リモート 
+-------------------------+ 
| ノーツコンソーシアム| 
+-------------------------+ 
[検索]
【A5】ノーツコソーシアムXPages研究会 
中間成果発表 
2014/11/18
今年のXPages研究会は。。。 
いろいろな開発事例の紹介 
参加者からの開発事例紹介 
XPages 開発におけるベストプラクティスの発掘 
(できれば)開発ルールの策定までやりたい。。。
ベストプラクティス策定までの道のり 
いきなりベストプラクティスはさすがに無理なので。。。。 
•【Step1】まずは、失敗例、困ったこと事例を集めて 
•【Step2】「こうするべきだよね」、「これはやるべきでないよね」の意見交換 
•【Step3】最後に、開発ルール案の提示 
今は、【Step2】の途中です。。。
今回の発表では・・・ 
• 【Step1】まずは、失敗例、困ったこと事例を集めて 
• 【Step2】「こうするべきだよね」、「これはやるべきでないよね」の意見交換 
の2つの議論の中で特に関心が高かったものを 
ピックアップしてご紹介します。
【A5】ノーツコソーシアムXPages研究会 
中間成果発表(その1) 
-初めてのXPagesではまった落とし穴とその解決方法- 
2014/11/18 
アクロス株式会社 
矢森隆嗣 
9
• このパートではXPages研究会の中で、 
【Step1】まずは、失敗例、困ったこと事例を集めて・・・ 
10 
で議論した中で特に関心が高かったもの、初心者が陥りやすいものを取りまとめて 
みました。
本パートのスピーカー 
矢森隆嗣 
11 
アクロス株式会社
本パートの目次 
1.XPagesってこんなもの 
2.初めてのXPages(困惑編) 
12
1.XPagesってこんなもの 
XPagesDayをご参加の皆様! 
こんなことは知ってらぁ!という声が聞こえてくる 
のを承知で、おさらいします。 
13
1.XPagesってこんなもの 
14 
・Notes Domino8.5から提供されている、Domino上で動作する 
Webアプリケーションを開発するための技術 
・Webアプリケーションを構築のためさまざまなコントロールが提供され、 
従来のフォーム・ビューなどによるノーツクライアントアプリケーションの構築に 
近い感覚で開発が可能 
・JavaScript、Cssのほか、JavaScriptを使用してノーツオブジェクトを操作を可 
能とするServerSideJavaScript(SSJS)や@関数が使用できるので、 
Lotus Scriptや式言語の知識がある方になじみやすい 
・今までに蓄積されたノーツDBのデータをWeb上で利用するための1stチョイス
2.初めてのXPages(困惑編) 
最近でこそXPagesの開発も実績を積ませていただいておりますが、 
初めてXPagesの開発に手を染めたころは・・・ 
これ、どうすればいいの??? (@_@;) 
うまくいかない~!!(>_<) 
の連続で試行錯誤や調査などずいぶん遠回りをしました。 
15
2.初めてのXPages(困惑編) 
16 
アクロス株式会社での経験をノーツコンソーシアムXPages研究会で 
発表しましたところ・・・ 
「やっぱりみんなハマるんだねぇ・・・」 
とうなずきが多かったものをピックアップ、XPages研究会メンバーの 
ナレッジを追加してご紹介します。 
XPagesを始める、始めたばかりの方へのちょっとしたHowToとして、 
皆様の一助になれば幸いです。
2.初めてのXPages(困惑編) 
メニュー 
1. 当然必要ですよね、JavaScript。 
クライアントサイド(CSJS)とサーバーサイド(SSJS)ってどう違うの?使い分けは? 
2. なんかエラーでた。デバッグってどうやろう。 
3. 既存のフォームに仕込まれた@式が使いたいんだけど。 
4. 競合ってどう処理するの? 
5. URLでファイルダウンロードリンクを貼りたい。 
でもファイル形式によってダウンロードしたり、開いたり。ダウンロードしたいんだけど・・・ 
6. ロードバランサーなどで代表アドレスがあると・・・ 
17
2.初めてのXPages(困惑編) 
1.当然必要ですよね、JavaScript。 
サーバーサイド(SSJS)とクライアントサイド(CSJS)ってどう違うの?使い分けは? 
■SSJS: 
サーバーにて処理される。 
LS的にノーツオブジェクトが使えるので、文書とか他のDBとか参照するなどはこっち。 
エラーチェックで使うときはユーザインターフェイスに注意。アラートぐらいはできるが、YES/NOなど返り 
値が取れない。 
■CSJS: 
クライアントで処理される。レスポンスよく、サーバー負荷が低い。 
でもSSJSでないとできないこともあり。 
SSJSと混在してエラーチェックで使用するとCSJS→SSJSの順で処理される関係上、 
画面上の並び順とエラーチェックの順序が異なりユーザの混乱を招く可能性も・・・ 
18
2.初めてのXPages(困惑編) 
2. なんかエラーでた。デバッグってどうやろう。 
19 
■CSJS: 
・IEなりFirefox、Chromeなりの開発者ツールとか使えばデバッガーもある。
2.初めてのXPages(困惑編) 
2. なんかエラーでた。デバッグってどうやろう。(つづき) 
■SSJS: 
・ひとまずXspプロパティの「XPage実行時のエラーページを表示」をOnに。 
詳細なエラーメッセージが表示されます。これは最低限! 
20
2.初めてのXPages(困惑編) 
2. なんかエラーでた。デバッグってどうやろう。(つづき) 
■SSJS: 
21 
・処理中の変数の確認などはview.postscript(“alert(…)”)で表示することにより可能。 
サーバーコンソールが使えるならば、サーバーのnotes.iniに 
“Debug_Console=1”を追加して_dumpでコンソールに出力して確認する方法も・・・ 
(サーバの負荷に注意!)
2.初めてのXPages(困惑編) 
2. なんかエラーでた。デバッグってどうやろう。(つづき) 
■SSJS:(つづき) 
・Domino9から搭載されたSSJSデバッガーを使用することも出来ます。 
SSJSデバッガーは変数のほか、セッション変数などの参照も出来ます。 
サーバNotes.iniに設定する必要があります。 
注意事項: 
(1)同一サーバー上で一人しかデバッガーは使用できない。 
(2)サーバへの負荷が高い、かつデバッグしている際は他の 
ユーザが利用できない。 
>運用サーバーで開発している場合、 
または1サーバーを共有で開発している場合は 
Designerのプレビューでも利用できる(はず)。 
22
2.初めてのXPages(困惑編) 
3. 既存のフォームに仕込まれた@関数が使いたいんだけど。 
→データソースの「フォーム検証の実行」を設定すれば、 
オープン時/保存時/両方のタイミングで@関数が計算されます! 
23
2.初めてのXPages(困惑編) 
4. 競合ってどう処理するの? 
24 
→ 「すべてのプロパティ」– 「データ」のconCurrencyMode のオプション設定に 
より対応可能。 
try - catch でトラップして、exceptionにて「もう一度修正してください」などの 
メッセージで回避のほか、「先勝ち」、「後勝ち」、 
および「競合文書を作成する」を設定可能。
2.初めてのXPages(困惑編) 
5. URLでファイルダウンロードリンクを貼りたい。 
でもファイル形式によってダウンロードしたり、開いたり。 
ダウンロードしたいんだけど・・・ 
→ XPages以前では以下の形式のURLでアクセスができました。 
でも動作がファイルによって違う! 
http://ホスト名/DBファイルパス/0/ドキュメントID/$FILE/ファイル名 
XPagesなら以下のURLならファイルがダウンロードになります。 
25 
http://ホスト名/DBファイルパス/xsp/.ibmmodres/domino/OpenAttachment 
/DBファイルパス/DocumentID/ファイルが添付されているフィールド名 
/ファイル名
2.初めてのXPages(困惑編) 
6. ロードバランサーなどで代表アドレスがあると・・・ 
facesContextで今表示されているURLが取れない。 
→CSJSで取得して、連携するとかちょっと工夫がいる。 
26 
context.redirectToPageにて相対パス指定でページ移動するとき、 
そのイベントのサーバーオプションが「部分更新」だと代表アドレスでなくて 
サーバー名に・・・「全体更新」にすると代表アドレスになる。
3.続いて・・・ 
27
【A5】ノーツコソーシアムXPages研究会 
中間成果発表(その2) 
2014/11/18 
コムチュア株式会社 
和智一臣
引き続き、失敗例・困ったことの発表 
• コードの散在、巨大なライブラリ 
• スコープ変数。。。 
• SSJS,CSJSの使い分け 
• クライアントサイドJavaScriptのお作法
JSコードの散在、JS巨大なライブラリ 
• 目的の実装箇所がなかなか見つからない。 
• スクリプトライブラリが巨大化して、デザイナの動作が重い。。。 
• イベント処理コードが異様に長い。
ライブラリ化のルールが必要 
• ルール化にあたって 
• 何でも“common.js” は要注意!! 
• 共通ライブラリは放っておくと巨大化。 
• 画面表示制御系、イベント処理系、マスタ参照系など、目的毎のライブラリ化 
• ページ毎に専用ライブラリ(というのもあり?) 
• 目的、影響範囲が一目瞭然。 
• ライブラリの数は増えるけど。。 
• メンテナンス頻度、使い回しの容易さを考慮 
• 共通部品はライブラリに逃がさないで、 
• ページ内にガシガシコードを書く方が、使い回しが楽。
スコープ変数。。。 
• スコープ変数の中身が良くわからない 
• 同じ目的の変数を前任者が定義していた。 
• にもかかわらず置き換えたせいでバグ発生。 
• application,session,view,requestScopeどう使い分ける?
スコープ変数のルール化 
• 設定箇所の局所化 
• XPage、カスタムコントロールの先頭にまとめる、 
専用のライブラリのみ定義するとか 
• ページ間で共有するものは専用のコントロール内、またはライブラリに局所化 
• 何でもSessionScopeはNG! 
• 基本は、RequestScope。 
• それぞれのライフサイクルの理解が必須! 
• なるべく使わない方法・・・ 
• カスタムコントロール内の参照なら、requestScopeの代わりにcompositeDataが使用可能。
《compositeDataの使用》 
• カスタムコントロール内でのみ共有可能な記憶領域 
通常は、デザイナ画面でカスタムプロパティとして宣言するが、 
カスタムコントロール内部での動的な宣言も可能。 
◆値の設定 
compositeData.put(“key”,”value”) 
◆値の使用 
compositeData.get(“key”) 
→同じMap実装なので、スコープ変数と使い方は同じ。 
→カスタムコントロールのローカル変数なので、外側からは参照できない。
CSJSとSSJSとの使い分け 
• インプットチェックはどっちで実装する? 
• CSJS & SSJS派 
レスポンス重視。 
クライアントサイドでできるものはクライアントサイドで済ませる。 
• SSJSオンリー派 
メンテナンス性重視 
エラーメッセージ制御が一元化。実装結果はシンプル。 
・・・・研究会でも意見が分かれたところ。。。 
どちらが良いとは言えないけど、どちらかに統一はしましょう。
JavaScriptのお作法に則る 
• グローバル変数は危険・・・ 
• グローバル領域=widowオブジェクト 
• 他フレームワークとの競合・・・ 
• グローバル領域には直接変数を設定しない。 
• 他フレームワークと共存する場合など 
• 変数格納用オブジェクトをグローバル定義して、 
プロパティとして変数を設定する 
var myGlobal = myGlobal || {}; //グローバル変数格納用変数 
myGlobal.hoge = “hogehoge”; //グローバル変数の設定 
alert(myGlobal.hoge); //グローバル変数の使用
JavaScriptのお作法に則る 
• varを忘れないこと。 
• varを使わなくてもコンパイルエラーにはならないが、 
グローバル領域に宣言される。 
//varを忘れると。。。 
function fnc1(){ 
v = “global”; //関数内として定義したつもりが。。。 
} 
alert(window.v); //”global”と表示される。 
// ->windowオブジェクトのプロパティに設定されている。
CSSファイルは定期的に整理!! 
• 開発終盤になると、CSSファイルの中身がカオス! 
• 似たような名前のクラス。。。 
• 実際使っているのはどれ?? 
• コントールを削除するときは、CSSファイルもチェック! 
といっても、実際には難しいので、 
定期的に(忘れないうちに)整理する。 
• CSSセレクタを活用して、コード量を減らす。
《CSSセレクタの活用例》 
.formDataTable{ 
border:solid 1px #000000; 
border-collapse:collapse; 
width:640px; 
} 
.formDataTable TD{ 
border:solid 1px #000000;padding:2px; 
} 
.formDataTable TD:first-child{ 
background-color:#EEEEEE;width:20%; 
} 
.formDataTable TD:nth-child(2){ 
background-color:#FFFFFF;width:30%; 
} 
.formDataTable TD:last-child{ 
background-color:#BBBBBB;width:50%; 
} 
TABLEタグの 
CSSクラス定義 
TDタグ共通の 
スタイル定義 
CSSクラスは 
「formTable」のみ定義。 
各セルのスタイルはセレ 
クタによる指定。 
列毎にTDタグの 
スタイルを定義(1列目、2列目、3列目の順) 
<xp:table styleClass="formDataTable"> 
→TABLEタグへのクラス指定のみ。 
TDタグへのクラス指定が不要!!
その他 
• recycle忘れには注意!! 
function doForAllDocuments(nView:NotesView){ 
var nDoc:NotesDocument, 
tempDoc:NotesDocument; 
try{ 
nDoc = nView.getFirstDocument(); 
while(null !== nDoc){ 
doForEachDocument(nDoc); 
tempDoc = nView.getNextDocument(nDoc); 
nDoc.recycle(); 
nDoc = tempDoc; 
} 
}finally{ 
} 
} 
ビューの各文書を 
参照する処理では 
必須!!
その他 
• XSPJavaScriptオブジェクトの利用によるコード削減 
• http://www- 
10.lotus.com/ldd/ddwiki.nsf/dx/Japanese_XSP_Client_Side_JavaScript_Object_Function をご参 
照。 
たとえば、動的なイベント割り当ての場合 
if(window.addEventListner){ 
document.getElementById("#{id:button2}") 
.addEventListner("click",myObj.fnc1,false); 
}else if(window.attachEvent){ 
document.getElementById("#{id:button2}") 
.attachEvent("onclick",myObj.fnc1); 
}else{ 
document.getElementById("#{id:button2}")["onclick"] 
= myObj.fnc1; 
} 
これまで、いちいちこんな面倒臭 
いことしてたのが。。 
既に、関数が用意されています。 
XSP.attachClientFunction("#{id:button1}","click",myObj.fnc1);
今後の予定 
2月のフェスタに向けて 
• 「XPages開発。これはルール化しておこう(仮)」の発表を予定しています。 
• 今回発表した内容以外にも、毎回、開発者同士で課題の持ち合い、解決策の熱い 
ディスカッションを行ってます。 
その一部も紹介します。

Más contenido relacionado

Destacado

المركز الدولي للطب الطبيعي والتأهيل / الدكتور يوسف سرحان
المركز الدولي للطب الطبيعي والتأهيل / الدكتور يوسف سرحانالمركز الدولي للطب الطبيعي والتأهيل / الدكتور يوسف سرحان
المركز الدولي للطب الطبيعي والتأهيل / الدكتور يوسف سرحان
الطب الطبيعي والعلاج الطبيعي
 
بناء الثقافة الوظيفية - محمد كمال
  بناء الثقافة الوظيفية - محمد كمال   بناء الثقافة الوظيفية - محمد كمال
بناء الثقافة الوظيفية - محمد كمال
promediakw
 

Destacado (14)

Dr. Omar Ali Alibrahim - Ssl talk
Dr. Omar Ali Alibrahim - Ssl talkDr. Omar Ali Alibrahim - Ssl talk
Dr. Omar Ali Alibrahim - Ssl talk
 
المركز الدولي للطب الطبيعي والتأهيل / الدكتور يوسف سرحان
المركز الدولي للطب الطبيعي والتأهيل / الدكتور يوسف سرحانالمركز الدولي للطب الطبيعي والتأهيل / الدكتور يوسف سرحان
المركز الدولي للطب الطبيعي والتأهيل / الدكتور يوسف سرحان
 
Light thea
Light theaLight thea
Light thea
 
Perché l'Etruria non parla a un milione di persone - Social Media
Perché l'Etruria non parla a un milione di persone - Social MediaPerché l'Etruria non parla a un milione di persone - Social Media
Perché l'Etruria non parla a un milione di persone - Social Media
 
Tunnel Liners, Relines and Rehabilitation
Tunnel Liners, Relines and Rehabilitation Tunnel Liners, Relines and Rehabilitation
Tunnel Liners, Relines and Rehabilitation
 
بناء الثقافة الوظيفية - محمد كمال
  بناء الثقافة الوظيفية - محمد كمال   بناء الثقافة الوظيفية - محمد كمال
بناء الثقافة الوظيفية - محمد كمال
 
Passive voice
Passive voicePassive voice
Passive voice
 
Storm Water manual
Storm Water manualStorm Water manual
Storm Water manual
 
sell gold coins online
sell gold coins online sell gold coins online
sell gold coins online
 
Production of 1-Tetradecene at 100 tons per year
Production of 1-Tetradecene at 100 tons per yearProduction of 1-Tetradecene at 100 tons per year
Production of 1-Tetradecene at 100 tons per year
 
Social etiquette file
Social etiquette fileSocial etiquette file
Social etiquette file
 
Biografia rosmary
Biografia rosmaryBiografia rosmary
Biografia rosmary
 
bahasa cinta
bahasa cintabahasa cinta
bahasa cinta
 
Lr2n
Lr2nLr2n
Lr2n
 

Similar a X pages day発表_20141118

Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェスト
Masao Takaku
 
OSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack OverviewOSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack Overview
irix_jp
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
Yusuke Wada
 
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
Code4Lib JAPAN
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
Masakazu Muraoka
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
Hiro Yoshioka
 
Closure Toolsの紹介
Closure Toolsの紹介Closure Toolsの紹介
Closure Toolsの紹介
Yusuke Amano
 
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料
Takahiro Iwase
 

Similar a X pages day発表_20141118 (20)

X pages day発表_20141118 final
X pages day発表_20141118 finalX pages day発表_20141118 final
X pages day発表_20141118 final
 
Spotfire_8
Spotfire_8Spotfire_8
Spotfire_8
 
Code4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェストCode4Lib 2010報告会・発表ダイジェスト
Code4Lib 2010報告会・発表ダイジェスト
 
DSLによる要求獲得でスーパーアジャイル
DSLによる要求獲得でスーパーアジャイルDSLによる要求獲得でスーパーアジャイル
DSLによる要求獲得でスーパーアジャイル
 
USENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory DisaggregationUSENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory Disaggregation
 
JavaOne2017参加報告 Microservices topic & approach #jjug
JavaOne2017参加報告 Microservices topic & approach #jjugJavaOne2017参加報告 Microservices topic & approach #jjug
JavaOne2017参加報告 Microservices topic & approach #jjug
 
OSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSCOSC2018 hiroshima session slide by OSSC
OSC2018 hiroshima session slide by OSSC
 
OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化OSSとクラウドによるコンピューティングモデルの変化
OSSとクラウドによるコンピューティングモデルの変化
 
OSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack OverviewOSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack Overview
 
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
 
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告20110305_Code4Lib2011参加報告会:田辺浩介参加報告
20110305_Code4Lib2011参加報告会:田辺浩介参加報告
 
Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会Rdbms起点で考えると見えない世界 okuyama勉強会
Rdbms起点で考えると見えない世界 okuyama勉強会
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 
無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発無償版Visual StudioでいろいろWeb開発
無償版Visual StudioでいろいろWeb開発
 
Devsumi2013 community
Devsumi2013 communityDevsumi2013 community
Devsumi2013 community
 
Ocs2012 tokyo/spring plone
Ocs2012 tokyo/spring plone Ocs2012 tokyo/spring plone
Ocs2012 tokyo/spring plone
 
Closure Toolsの紹介
Closure Toolsの紹介Closure Toolsの紹介
Closure Toolsの紹介
 
20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料20121205 nosql(okuyama fs)セミナー資料
20121205 nosql(okuyama fs)セミナー資料
 
Kspin20121201 kobayashi
Kspin20121201 kobayashiKspin20121201 kobayashi
Kspin20121201 kobayashi
 
流体解析入門者向け超初級講習会
流体解析入門者向け超初級講習会流体解析入門者向け超初級講習会
流体解析入門者向け超初級講習会
 

Último

Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
Yasuyoshi Minehisa
 
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
Michael Rada
 

Último (9)

セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
セルフケア研修で使えるカードゲーム『攻略!きみのストレスを発見せよ!: ゲームで身につくストレスマネジメント』
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
 
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
 
company profile.pdf
company profile.pdfcompany profile.pdf
company profile.pdf
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
 
事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)事例DBサービス紹介資料(Case Study DB service introduction)
事例DBサービス紹介資料(Case Study DB service introduction)
 
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
物流は成長の準備ができていますか? 警告 1 日あたり 1 章を超えて消費しないでください コンテンツが覚醒と変化への意志を引き起こす
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
 

X pages day発表_20141118

Notas del editor

  1. 本来は事例紹介ということで、開発事例など紹介すべきですが、今年のコンソーシアムの主旨の一つにベストプラクティスを見つける というのがありますので、成功事例よりは失敗事例の方がいいと思って、この内容でやらせてもらいます。 事例に対しての対応もありますが、これは違うぜがあったらご遠慮なく。
  2. メンテしづらいアプリ これまで、いくつかのプロジェクトのコードを見てきて感じたこと。こう知ればいいのに、こうすればよかった。等 よくやってしまうこと これは、自分の反省も含めてですが、自分がやった失敗など話したいと思います。 これは違うぜなどがありましたら
  3. SessionScopeはユーザーさんがログインしている間ずっと持っているので、サーバ不可大 RequestScopeはページ生成したら消えるので、一番負荷小。
  4. これは特殊なプロジェクトの話。 レスポンス面と安全面の両方(クライアント非互換)を重視しての結果だそうです。 実際はXPages開発ではなくDomino/WEBの開発だったのですが、印象に残ってたので。。。 メッセージ文言変更だけでも、テスト仕様書2部直して、2回テスト実施して。でも、サーバ側のエラーテストが実際できなかったりとか。