今日はイントラマートネタです。(intra-martとどっちがいいのか迷っています。イントラマートはwebアプリなのですが、バックエンド側をJavaで書くのかJavaScriptで書くのかの2つあり、今回はJavaScript側での実装を想定しています。imuiAjaxSendがあります。これらの関数はjQuery準拠の挙動を示すのですが、サクッと実装するのであればグローバル関数を使用すると良いと思います。基本的にはjQueryの実装をしておいた方がバージョンアップ時に苦しまないかなぁという印象でした。intra-mart準拠のものについてintra-mart自体のweb上の資料が差分が見れないこともあり使用するか迷いましたが、実装が楽できるから下記の2つの理由の場合は利用していました。1.ファンクションコンテナ側のaction処理を指定してpostしたい場合2.post後の挙動が複雑ではない場合になります。actionで指定してpostしたい場合intra-martはページロード時に、ファンクションコンテナ側のinit()が必ず実行されます。そのため、Ajaxでpostを行う時にはinit()内に処理を用意しておくか、init()実行前に割り込んで処理を実行するaction処理を利用して実装を行っていきます。jQueryの$.ajax()でもファンクションコンテナ側の処理は変わらないのですが、ルーティングテーブルにURLとaction属性を別途指定する必要があり、ケースバイケースになりそうです。initに実装しても良いですが(実装例ではそうしてある)、できるだけロジックを分離しておきたいので。アクション処理実行後にinit()はロードされますが、httpResponsのsendMessageBodyStringの後の関数は実行されないので、処理がプレゼンテーションページに返ります。post後の挙動が複雑ではない場合intra-martのバージョン8.0.8未満では送信成功、失敗のコールバック関数が呼べないので、上記のような条件をつけました。(ver8.0.8から対応)送信完了のコールバック関数はあるので、受け取ったオブジェクトから条件を判定して処理を書く感じになりました。//送信完了時の処理を書く。});サーバーサイドの実装は公式ページが参考になります。);}感想:工数によっては自前で実装した方がいいかなぁまとまってしまいましたが、フレームームワークなのでバージョンアップの問題が関わってきます。intra-martはビジネス基盤で長い期間の利用を想定するとバージョンアップで推奨ではなくなる可能性がある要素はできるだけ排除しておきたいというのがあります。(ドキュメント類を見ると結構非推奨が増えてる)フレームームワークに乗っかると通知や管理は楽で誰が実装しても近い仕上がりになるので、品質を揃えたい場合はグローバル関数を利用するのも視野に入ってきます。...というフレームームワークを利用しているとあるあるな感じのまとまり方です。抽象的な話になってしまうのは、本書が良すぎて概念を捉えることができたからだろうと感じた。結局監視とは、営業活動という...記事を読むペアプログラミングをやってきた同期とリモートでペアプログラミングをやってきました。ペアプログラミングは2人で同じ画面やコードを共有して行うプログラミング手法です。ペ...記事を読むフローチャートをPlantIUMLで書くExcelで作成するのもいいけれど、バイナリファイルになってしまうから、できればテキスト的なデータからアウトプットできるツールを求めて。reCAPTCHA付きフォームを設置するフォームは脆弱性が発生しやすい場所で、併せてスパム投稿の対策も行う必要がある。今回は楽をするため、プラグインを使って実装する。児童を取り巻く問題は可視化されているように思えます。ことはじめテスト駆動開発で実装したい。テスト駆動開発で実装する際に、気をつけている点をまとめつつ。今回はJSONに変換して渡しました。JavaScript側はJSON.stringifyで文字列に。Java側はjac...記事を読むリファクタリングに便利なユニットテストと便利プラグインたちこの記事はアドベントカレンダー、ソフトウェアテストの小ネタの12日目の記事です。ドキュメントもテストも存在しない。メリット在宅勤務をしているので、タスクを共有しにくい部分がある。定性的に図ることができるならプロジェクト管理は容易ではあるが、エンジニア界隈で生...記事を読むJavaScript/TypeScriptのFieldsの取り扱いってどうなんだっけ最近TypeScriptで書いているから、従来の動きを追う時に疑問に思ったのでまとめ。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。