<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/fiisisu/">
    <title>furudateメモ</title>
    <link>http://w.atwiki.jp/fiisisu/</link>
    <atom:link href="https://w.atwiki.jp/fiisisu/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>furudateメモ</description>

    <dc:language>ja</dc:language>
    <dc:date>2015-10-25T19:49:23+09:00</dc:date>
    <utime>1445770163</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/fiisisu/pages/18.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/fiisisu/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/fiisisu/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/fiisisu/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/fiisisu/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/fiisisu/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/fiisisu/pages/4.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/fiisisu/pages/5.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/fiisisu/pages/6.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/fiisisu/pages/7.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/fiisisu/pages/18.html">
    <title>エンタープライズ開発を支える各種技術の詳細</title>
    <link>https://w.atwiki.jp/fiisisu/pages/18.html</link>
    <description>
      &#039;15/10/24

前フリ： [[いまどきのエンタープライズ開発]]

*バックエンドはWEB API化されるのか？
**バックエンド各種技術
(参考情報)
-JAVA
--JAVA EE6 (2009年) 参考
--JAVA EE7 (2013年)
-ASP.NET
--ASP.NET4 (2010年)
--ASP.NET4.5 (2012年)
--ASP.NET5, ASP.NET4.6 (.NET Framework 4.6) (2015年)
追加機能
-JAVA
--Java API for JSON Processing (JAVA EE7 で追加)
---JSON ←→ JAVA オブジェクトの変換をJAVA標準機能で実現。簡単にJSONをクライアントへ返却可能
---以前は別途ライブラリ(GSON、Jackson とか...))を利用していた。
-ASP.NET
--ASP.NET Web API(.NET Framework 4 で追加)
---名前の通り、Web API 開発のためのフレームワーク

&amp;bold(){→フレームワークとしては準備ができている}

----

*画面構築はフロントエンドの責務となりうるのか
**フロントエンド各種技術
-JavaScript フレームワーク
--Backbone.js
--AngularJS(1.x), AngularJS(2.0) (Google)
--React.js (Facebook)
--他、たくさん
-HTML5
--Web Strage
--Web Components

&amp;bold(){→いずれもアーキテクチャとしては十分}

----

*現実は・・・
-Java EE7 の導入はまだ先
--EE7対応のアプリケーションサーバーはようやく出始めたところ
---ただし、Java API for JSON は JAVA SE8 なら使える
---部分的に（他システムとの連携とか？）は、WEB API化されるかもしれない
-.NET 系であればすぐにでも導入可能
--とはいえ、いまだに「ASP.NETといえばWEBフォーム」という悲しい現実。（MVCですらない！)
-フロントはどうか…
--JavaScriptは「簡単な機能を実装するもの」という認識がいまだに多い
--現場ではAjaxでの実装すらほとんどお目にかかれない
--クラインと側での画面構築を行うような開発はずいぶん先になりそう
--一方、IE11の社内標準化（IE8サポート終了)＆モバイル対応は確実に進むため、少しずつ変化はおきそう
-WEB APIを提供するシステムはそう遠くないうちにでてきそう
--ただし、WEB APIを呼び出すのはクライアントでなくサーバーが呼び出し、クライアントに返すような使い方になるのでは
-結果的に今はやりの、MSA(マイクロサービス・アーキテクチャー)というものになっていくのかも    </description>
    <dc:date>2015-10-25T19:49:23+09:00</dc:date>
    <utime>1445770163</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/fiisisu/pages/16.html">
    <title>いまどきのエンタープライズ開発</title>
    <link>https://w.atwiki.jp/fiisisu/pages/16.html</link>
    <description>
      &#039;15/07/21
**従来のエンタープライズ開発
-バックエンド
--データ更新/取得 + 画面生成してフロントに返却
-フロントエンド
--画面表示
--簡単な機能(入力チェックなど)
---一部、部分的な更新にも対応
&amp;bold(){バックエンドでHTMLを生成、フロントでは画面表示を行うだけ}
----

**従来のエンタープライズ開発(技術)
-バックエンド
--JAVA
---J2EE + Struts/独自フレームワーク
--ASP.NET
---Web Forms
-フロントエンド
--JAVA
---JSP (JSF 1.x)
--ASP.NET
---ASPX
-共通
--JavaScrit (＋jQueryライブラリ)
----

*現在(これから?)のエンタープライズ開発
-バックエンド
--データ更新/取得
-フロントエンド
--画面生成
--画面表示/更新
---よりリッチな機能の提供(ドラッグ&amp;ドロップ、コンテキストメニューの実装 etc.)
---画面遷移もフロントで(SPA:シングルページアプリケーション)
&amp;bold(){バックエンドはデータを提供するだけ(JSON/XML etc. で送信)、フロントでは取得データを用いて画面構築を行う}
----

*現在(これから?)のエンタープライズ開発(技術)
-バックエンド
--JAVA
---Java EE (Java標準のフレームワーク)
--ASP.NET
---MVC
-フロントエンド
--JAVA
---Facelets (JSF2.x) (or HTML?)
--ASP.NET
---Razor (or HTML?)
-共通
--JavaScript フレームワーク(Angular/Backbone/React etc.)
----

*ポイント
-バックエンドはWEB API化され、バックエンドとフロントは疎結合になる
-フロント側からすると、バックエンドがどんな言語やフレームワークかは重要でない
-フロント側の実装が増加する
----

*所感
-バックエンドのWEB API化は確かに下記の要因により進むかもしれない
--IE8サポート終了(&#039;16/1/13まで)によるHTML5化(ブラウザ依存しない実装ができる、はず)
--モバイル化のニーズが確かにある。モバイル対応を考えるとバックとフロントが切り離されていることは望ましい
--最新のJavaEEやASP.NETはAPI的な動作をサポートしている
-本当に変化は起こるのか？ 個人的な経験上からは、下記のようにネガティブな要素が思いつく多い
--社内標準がHTML5化しても(IE8からIE11になっても)古いシステムには影響がない
---エンタープライズモードによりほぼIE8と同等の動作が可能
---既存のシステムについては期待できない
--フロントエンドで画面構築を行うとなるとJavaScriptの技術が必須となる
---エンタープライズの現場ではJavaScriptの知識が圧倒的に乏しい
---JavaScriptは簡単なものと勘違いされていることが多い
--新しいことは好まれない or そもそも知らない
--そもそもこの調査内容は、各種勉強会の発表資料やHTML5の情報サイトから情報を得ている。ということは「こうなるべき/していきたい」と思っている人たちが発信している内容ということ。単なる理想論/あるべき論な気も。

[[エンタープライズ開発を支える各種技術の詳細]]
&amp;br()&amp;br()    </description>
    <dc:date>2015-10-24T17:59:34+09:00</dc:date>
    <utime>1445677174</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/fiisisu/pages/2.html">
    <title>メニュー</title>
    <link>https://w.atwiki.jp/fiisisu/pages/2.html</link>
    <description>
      **メニュー
-[[HTML5 memo]]
-[[テスト駆動開発]]
-[[GAE]]
-[[いまどきのエンタープライズ開発]]
--[[エンタープライズ開発を支える各種技術の詳細]]    </description>
    <dc:date>2015-07-20T10:25:33+09:00</dc:date>
    <utime>1437355533</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/fiisisu/pages/15.html">
    <title>GAE</title>
    <link>https://w.atwiki.jp/fiisisu/pages/15.html</link>
    <description>
      *Google App Engine メモ

**Eclipse (4.3) 用のプラグインの場所
-https://dl.google.com/eclipse/plugin/4.3

**Slim3のポイント
***Jsonを返却するRESTサービスを作る方法
-コントローラーはnullを返却
-返却する文字列自体は、OutputStreamからPrintWriterで作成
-org.slim3.datastore.ModelMeta&lt;M&gt;#modelToJson でModelからJson文字列が生成可能
***ハマりどころ
-modelToJson はモデルにStringのメンバがあるとエラーとなるバグあり
-SVNから最新のモジュール取得すれば解消される
-Eclipseで自動更新されるモジュールは古いため手動更新が必要    </description>
    <dc:date>2014-02-03T22:57:00+09:00</dc:date>
    <utime>1391435820</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/fiisisu/pages/14.html">
    <title>テスト駆動開発</title>
    <link>https://w.atwiki.jp/fiisisu/pages/14.html</link>
    <description>
      *テスト駆動開発memo

**ポイント
-テストコードははじめから自明ではない
-テストコードとコード本体を一緒に成熟させていく
-コストコードとコード本体を分離し管理すべきではない
-テストコード自体で価値を持つものではない。コード本体と合わせることで初めて意味を持つべき
-基本的に仮実装→リファクタリングの繰り返しなので、クリーンなコードとなりやすい
-デグレードが起こりづらい
-具象的なコードから開始するため、抽象度が適切になりやすい
-テストコード生成のためのコストがかかる
-途中からの適用は困難。全ケースのテストを書こうなどと思ってはいけない
-要件によって向き不向きはある。
-ビヘイビア駆動開発はTDDの発展形。期待される振る舞いからテストコードを起こすため、テストを使って仕様設計できる
--BDDは部分的に組み込みずらいと考えられる。個人的に取り入れるのは難しそう

**実装
-テスティングフレームワーク自体はたくさんある。xUnitが無難か…
***Scala http://seratch.hatenablog.jp/entry/20110807/1312726957
-ScalaTest
-ScUnit
-specs

***Java
-JUnit / JUnitEE
-JBehave (BDD)
-Instinct (BDD)

***C#
-Specter (BDD)
-xUnit.net
-NUnit

***PHP
-PHPUnit
-Atoum

***Python
-PyUnit
-Doctest    </description>
    <dc:date>2013-08-11T15:55:45+09:00</dc:date>
    <utime>1376204145</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/fiisisu/pages/13.html">
    <title>HTML5 memo</title>
    <link>https://w.atwiki.jp/fiisisu/pages/13.html</link>
    <description>
      *HTML5のメモ
----

HTML5についてさまざまな観点からまとめる。

**&amp;u(){HTML5の概要}

従来のHTML4.01でのマークアップ拡張(及び廃止)だけでなく、各種JavaScriptAPI、CSS3などの周辺要素も広義HTML5では含ん
でいる。

@ITに書いてあった下記の内容が妥当だと思う。

&gt;「オープンな標準をベースとした、Webのプラットフォーム化」という動きのすべてが、最近「HTML5」と呼ばれている

***ロードマップ

W3Cがドラフト公開(2008年1月)。正式版は[[2014年目標&gt;http://www.w3.org/html/wiki/FAQs#When_will_HTML5_be_done.3F]]
。

***対応状況

IE以外は対応が徐々に進んでいる。
ソースが少々古いがリンク([[PC&gt;http://www.findmebyip.com/litmus/]]、[[mobile&gt;http://jp.droidget.com/mobile-5/html5]])。~
ブラウザの[[テスト&gt;http://html5test.com/]]とかできる。

**&amp;u(){HTML5の機能}

新要素はこんな感じ。
#image(01.jpg,left)
~

***&amp;u(){フォームの強化}

-新要素によるアクセシビリティの向上
--カレンダータイプの日付入力
--入力ヒントのポップアップ など
-バリデーションが使える!
-型の指定

***&amp;u(){グラフィック(Canvas)}

-自由な描画。ゲーム、あるいはFlashの代わり？
-業務向けでは使い道すくなそうではあるが頑張れば何でもできそう

***&amp;u(){マルチメディア(Audio、Video)}

-非常に簡単にマルチメディアが扱えるようになった。
-その分他で差別化をはかる必要有り
-個人で遊ぶ分には楽しい

***&amp;u(){ドラッグ＆ドロップ}

-すでにGmailで使えるようになっている。
-クライアントアプリはもう不要？

***&amp;u(){位置情報(Geolocation)}

-位置情報の取得はGPSからだけではない。つまりmobileだけではない
-IPアドレス、Wifiからなども取得される
-でもやっぱりmobileで使うのが楽しそう。みんな狙っているはず

***&amp;u(){双方向通信(Web Sockets)}

-サーバーとクライアントの双方向通信
-既存のAjaxに対して
--サーバ側からも通信を実施可能(Ajaxはクライアントからのリクエストのみ)
--クロスドメイン可
--効率の高い通信(専用プロトコルを使用)
-ただしプロトコルに脆弱性が見つかるなど、まだ安定していない？
-でも是非試してみたい。よさげなサンプル捜索中

***&amp;u(){ローカルファイルアクセス(File API)}

-なんとローカルにあるファイルの操作が可能
-ただサーバーにアップロードされないファイルをどうするのか…
-本当にGoogle OSで必要十分になるのか

***&amp;u(){永続化(Web Storage)}

-key/value型で永続化
-オリジン(プロトコル+ドメイン+ポート番号)ごとにデータを保存
-cookieの代用か

***&amp;u(){データベース(Indexed Database、Web SQL Database)}

-Indexed Database はNoSQLベースのデータベース
-Web SQL Database は所謂リレーショナル・データベース
-いずれも仕様策定作業は停滞しているらしい
-ベンダー依存の実装となる恐れも。現状のAPIはベンダーのプレフィックスをつけて使用するらしい
-今は静観

***&amp;u(){JavaScript並列処理(Web Workers)}

-JSが並列で処理可能に
-とにかくクライアントでどんどん重い処理ができるようになっている
-複数コアを使うこともできるのか？→調査

***&amp;u(){CSS3}

-広義ではCSS3もHTML5といってよい
-調査はこれから

**&amp;u(){所感}

-PC、mobile共にネイティブアプリはなくなりはしないだろうが軽めのものはすべてHTML5になりそう
-クライントで相当なことまでできる仕様になっているが現状ではまだ開発環境が貧弱すぎ
-業務のWEBアプリはHTML5になるのか？とりあえずIE6はもう限界    </description>
    <dc:date>2013-08-11T15:47:18+09:00</dc:date>
    <utime>1376203638</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/fiisisu/pages/4.html">
    <title>プラグイン/ニュース</title>
    <link>https://w.atwiki.jp/fiisisu/pages/4.html</link>
    <description>
      * ニュース
@wikiのwikiモードでは
 #news(興味のある単語)
と入力することで、あるキーワードに関連するニュース一覧を表示することができます
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_174_ja.html


-----


たとえば、#news(wiki)と入力すると以下のように表示されます。


#news(wiki)
    </description>
    <dc:date>2011-08-03T21:07:57+09:00</dc:date>
    <utime>1312373277</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/fiisisu/pages/5.html">
    <title>まとめサイト作成支援ツール</title>
    <link>https://w.atwiki.jp/fiisisu/pages/5.html</link>
    <description>
      * まとめサイト作成支援ツールについて
@wikiには[[まとめサイト作成を支援するツール&gt;&gt;http://atwiki.jp/matome/]]があります。
また、
 #matome_list
と入力することで、注目の掲示板が一覧表示されます。

利用例）#matome_listと入力すると下記のように表示されます
#matome_list
    </description>
    <dc:date>2011-08-03T21:07:57+09:00</dc:date>
    <utime>1312373277</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/fiisisu/pages/6.html">
    <title>プラグイン/編集履歴</title>
    <link>https://w.atwiki.jp/fiisisu/pages/6.html</link>
    <description>
      * 更新履歴
@wikiのwikiモードでは
 #recent(数字)
と入力することで、wikiのページ更新履歴を表示することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_117_ja.html


-----


たとえば、#recent(20)と入力すると以下のように表示されます。


#recent(20)
    </description>
    <dc:date>2011-08-03T21:07:57+09:00</dc:date>
    <utime>1312373277</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/fiisisu/pages/7.html">
    <title>プラグイン/アーカイブ</title>
    <link>https://w.atwiki.jp/fiisisu/pages/7.html</link>
    <description>
      * アーカイブ
@wikiのwikiモードでは
 #archive_log()
と入力することで、特定のウェブページを保存しておくことができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/25_171_ja.html


-----


たとえば、#archive_log()と入力すると以下のように表示されます。
保存したいURLとサイト名を入力して&quot;アーカイブログ&quot;をクリックしてみよう


#archive_log()
    </description>
    <dc:date>2011-08-03T21:07:57+09:00</dc:date>
    <utime>1312373277</utime>
  </item>
  </rdf:RDF>
