【java】jdk8も出るし、何か作ってみるか【lambda】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2014/03/17(月) 02:13:19.85ID:EZQcdYaK リリース目前!
2014/04/12(土) 14:03:01.71ID:KEuyoGFu
>>37
どこが難しいのかさっぱり。。。
むしろ7より前でコーディングする気が失せた
今の職場は当然のように7だけどね
あとAndroidとかGAE対応はどうなんだろうね
ここあたりすっげー遅いイメージしかないんだが、Google先生
どこが難しいのかさっぱり。。。
むしろ7より前でコーディングする気が失せた
今の職場は当然のように7だけどね
あとAndroidとかGAE対応はどうなんだろうね
ここあたりすっげー遅いイメージしかないんだが、Google先生
2014/04/12(土) 23:58:58.17ID:oJ1LFVkB
Month while, the dog everyone.
58>>53
2014/04/13(日) 01:52:36.69ID:cpdOQcgc59>>53
2014/04/14(月) 03:48:52.30ID:3UflCQPn2014/04/14(月) 03:51:49.14ID:3UflCQPn
HTML idだとまずいことに気づいた
独自属性java:keyにして、出力時には消えるようにしよう
独自属性java:keyにして、出力時には消えるようにしよう
2014/04/15(火) 01:17:54.07ID:QjDXpoj9
感想0とはつらいものだ
2014/04/15(火) 13:56:25.77ID:3Sv4k8i4
2014/04/15(火) 14:20:27.79ID:QGh49XkA
>>61
感想なんて書かれないのが普通なんだからアクセスログでほくそ笑んでれば良いじゃんよ。
感想なんて書かれないのが普通なんだからアクセスログでほくそ笑んでれば良いじゃんよ。
64>>53
2014/04/16(水) 00:28:38.94ID:F5idbQac 一部修正した。html idで全部やってたことを独自属性java:xxxに変更。
これによってhtmlからjavaのスケルトンソースを生成するツールも作れる
これによってhtmlからjavaのスケルトンソースを生成するツールも作れる
65>>53
2014/04/16(水) 01:08:38.67ID:F5idbQac Qiitaで書き散らそうかと覗いてみたけどそういう雰囲気じゃなかった
2014/04/16(水) 15:47:25.91ID:ZPDSwdSk
感想:
ラムダ使う必要なくね?
ラムダ使う必要なくね?
2014/04/16(水) 18:35:30.68ID:F5idbQac
サーブレットのdoGET, doPost... に値するところは
メソッドのオーバーライドでも大して変わらんね
少し前のフレームワークではアノテーションでやっていた
httpパラメータからのコンバータやバリデータをラムダでやると効果的かもしれん
wicketのそれが近いと思う
メソッドのオーバーライドでも大して変わらんね
少し前のフレームワークではアノテーションでやっていた
httpパラメータからのコンバータやバリデータをラムダでやると効果的かもしれん
wicketのそれが近いと思う
2014/04/16(水) 18:48:21.55ID:EhohGL0g
Lambdaでやらせるなら表示の絞り込みとかの方がよくね?(SQLで得た一覧をmemcachedに蓄えたりした奴のフィルターとかソートね)
2014/04/16(水) 19:58:23.28ID:F5idbQac
Model側で別の層になるなそれ。
少し前にEntity Rulerという名前で
RDBライブラリ(O/Rマッパー)作ろうとしていたのだが
アイデアがフラフラしたあげくに頓挫しちゃったんだよね
少し前にEntity Rulerという名前で
RDBライブラリ(O/Rマッパー)作ろうとしていたのだが
アイデアがフラフラしたあげくに頓挫しちゃったんだよね
2014/04/16(水) 20:12:03.87ID:F5idbQac
>>68
で言われているようなことをする場合、普通はSQL内でやるもんだよね。
whereとかjoin書かないで全部拾ってきて、java側でフィルターすると
ネットワークIOがボトルネックになるからさ。
HSQLかH2に限定すれば、ストアド(具体的にはユーザー定義関数)を
javaで書けるから何でもストアド化するって手もあるんだけど、
(そうするとネットワークIOの問題は解決する)
RDBに関する全般的な知識がないから、おれにはちょっと荷が重い
で言われているようなことをする場合、普通はSQL内でやるもんだよね。
whereとかjoin書かないで全部拾ってきて、java側でフィルターすると
ネットワークIOがボトルネックになるからさ。
HSQLかH2に限定すれば、ストアド(具体的にはユーザー定義関数)を
javaで書けるから何でもストアド化するって手もあるんだけど、
(そうするとネットワークIOの問題は解決する)
RDBに関する全般的な知識がないから、おれにはちょっと荷が重い
71デフォルトの名無しさん
2014/04/18(金) 00:52:11.94ID:qfiz40wI さて、Webライブラリの話に戻るんだけど、
cakePHPとかだとバリデータがModelの処理とされているように、
web(http/html)と直接関係ないものは全てModelとして扱う。
(コンバータ、バリデータ etc...)
そして本ライブラリはMVCのVとCのみを扱うため、
HTTPクエリ/パラメータからのコンバータなどは作らない。
従ってあとはクッキーとセッションあたりをどうするべきか考えれば
とりあえず完成、version1.0をリリースできるな。
cakePHPとかだとバリデータがModelの処理とされているように、
web(http/html)と直接関係ないものは全てModelとして扱う。
(コンバータ、バリデータ etc...)
そして本ライブラリはMVCのVとCのみを扱うため、
HTTPクエリ/パラメータからのコンバータなどは作らない。
従ってあとはクッキーとセッションあたりをどうするべきか考えれば
とりあえず完成、version1.0をリリースできるな。
おいJava8めっちゃ高速になってないか
GCの性能もめっちゃ良くなってるようなきがするんだが
みんなどう?
GCの性能もめっちゃ良くなってるようなきがするんだが
みんなどう?
2014/04/22(火) 20:25:51.82ID:LK8qL++Z
みんなまだ様子見くらいしかしてないんじゃないの?
JRE7とJRE8でパフォーマンス計測したなら教えてよ
JRE7とJRE8でパフォーマンス計測したなら教えてよ
2014/04/23(水) 10:28:23.85ID:IIePiM6b
ベンチの結果が20%向上した
うちの場合
うちの場合
2014/04/23(水) 10:30:45.74ID:IIePiM6b
あと、Nashornクソ遅い
巷ではRhinoより速いと言われてるらしいが
巷ではRhinoより速いと言われてるらしいが
2014/04/23(水) 13:35:11.28ID:kB34xYG+
>>75
何と比べて遅いん?
何と比べて遅いん?
2014/04/23(水) 13:53:28.44ID:qlKuU/ND
2014/04/24(木) 01:25:00.86ID:uw+Asd59
おとなしくnode.js使えよ
V8パワーを実感できるぞ
V8パワーを実感できるぞ
2014/04/24(木) 03:52:08.38ID:ic8Kyj+r
自作言語をjavascriptに変換して実行とか面白いかもな
javassist使ったほうがいいかもしれんが
javassist使ったほうがいいかもしれんが
2014/04/25(金) 16:51:13.24ID:tzejnHu3
2014/04/28(月) 03:07:46.77ID:4J9xjlOi
ランバダ?
2014/04/29(火) 00:15:08.02ID:9kKuqxmA
UncheckedIOException 見て
Javaはそろそろ限界だと感じた
Javaはそろそろ限界だと感じた
83>>53
2014/05/09(金) 11:50:47.96ID:SYgUl/A2 ソースのプロトタイプ生成ツールの試作品ができた
具体的には.htmlから.javaを生成するツール
入力(html)
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns:java="http://hoeppe.the-ninja.jp/" java:page="Tutorial4">
<body>
<div>Item List</div>
<div java:canvas="list">
<div java:group="fragment">
<div>Item</div>
<div java:key="index"></div>
<div java:key="name"></div>
</div>
</div>
</body>
</html>
具体的には.htmlから.javaを生成するツール
入力(html)
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns:java="http://hoeppe.the-ninja.jp/" java:page="Tutorial4">
<body>
<div>Item List</div>
<div java:canvas="list">
<div java:group="fragment">
<div>Item</div>
<div java:key="index"></div>
<div java:key="name"></div>
</div>
</div>
</body>
</html>
84>>53
2014/05/09(金) 11:51:44.16ID:SYgUl/A2 出力(java)
package org.ruler.markup.tool.export;
import org.ruler.markup.api.Page;
import org.ruler.markup.api.Canvas;
import org.ruler.markup.api.Group;
@Mount(path="/default.html")
@Source(file="tutorial4.java")
public class tutorial4 extends Page {
@Source
Group fragment = new Group();
@Source
Canvas list = (node) -> {
};
@Override
public void action(Http http) {
http.GET = (event) -> {
event.setCode(Code.OK_200);
event.setType(Type.html);
event.draw(this);
};
};
}
package org.ruler.markup.tool.export;
import org.ruler.markup.api.Page;
import org.ruler.markup.api.Canvas;
import org.ruler.markup.api.Group;
@Mount(path="/default.html")
@Source(file="tutorial4.java")
public class tutorial4 extends Page {
@Source
Group fragment = new Group();
@Source
Canvas list = (node) -> {
};
@Override
public void action(Http http) {
http.GET = (event) -> {
event.setCode(Code.OK_200);
event.setType(Type.html);
event.draw(this);
};
};
}
2014/05/09(金) 13:20:04.59ID:uFy0rdVu
ラムダ??
BGM聴きたい
BGM聴きたい
86>>53
2014/05/11(日) 17:47:09.64ID:4QdDd3nu とりあえずjavadocとjar本体をアップしたぜ
チュートリアルだけ試せます
チュートリアルだけ試せます
87>>53
2014/05/11(日) 19:56:13.04ID:4QdDd3nu tomcatプラグイン紛らわしいね。使わないほうが良さそう
2014/05/13(火) 20:45:35.20ID:0208S0UM
javaさようなら。
見捨てられたXPユーザより。
見捨てられたXPユーザより。
2014/05/13(火) 22:05:00.93ID:M8thHBuI
XPはjava以前だろうにwww
2014/05/13(火) 23:10:44.12ID:yjKm7ka1
2014/05/14(水) 09:43:53.65ID:Yp3DnhFD
>>88
頼むからネットに繋ぐのはやめてもらえないか?
頼むからネットに繋ぐのはやめてもらえないか?
93>>53
2014/05/16(金) 15:09:03.38ID:t+BktqNJ 協力者募集中〜
94>>53
2014/05/17(土) 01:56:05.90ID:C6+8ucAK わびしい。キータに投稿してみっか
95デフォルトの名無しさん
2014/05/17(土) 01:59:54.60ID:cEn7MAy/ UIラップだけに切り出した方がいいんじゃないかねぇ
96>>53
2014/05/17(土) 02:59:52.74ID:C6+8ucAK それは可能だし、Viewのみにすると規模が縮小して俺も楽なんだけど、
どちらにせよSpringMVCとかJersey、JSF2といった
今主流のControllerと連携はできないんだよね
どちらにせよSpringMVCとかJersey、JSF2といった
今主流のControllerと連携はできないんだよね
97デフォルトの名無しさん
2014/05/17(土) 03:51:13.79ID:cEn7MAy/ Controller周辺は拡張ライブラリで自由に選べるようにして置けば汎用性高いのが出来ると思う
コンテナまで実装は無駄が多すぎる
IDや特殊IDでマッピング出来てピュアなhtmlで作れるのはそれなりに需要高いと思う
コンテナまで実装は無駄が多すぎる
IDや特殊IDでマッピング出来てピュアなhtmlで作れるのはそれなりに需要高いと思う
98>>53
2014/05/17(土) 13:17:10.19ID:C6+8ucAK 参照実装つくるならstruts1だろうね
単なるライブラリとして完全に分離された状態で連携できる
(サーブレットAPIのRequestとResponseを直接使えるから)
SpringMVC、Jersey、Playだとフレームワーク毎に対応したもの作るの大変
単なるライブラリとして完全に分離された状態で連携できる
(サーブレットAPIのRequestとResponseを直接使えるから)
SpringMVC、Jersey、Playだとフレームワーク毎に対応したもの作るの大変
99>>53
2014/05/17(土) 21:23:21.32ID:C6+8ucAK 前言撤回w よく調査したら、独自Viewを持つJSF2以外は簡単に連携できそう
とりあえず自作コンテナ or Jersey(EE標準)で利用可能な方向に修正しようと思う
SpringMVCやPlayでもそのまま動かせると思うが、触れないで置く
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.ruler.markup.api.Page;
import org.ruler.markup.api.Source;
import org.ruler.markup.api.Canvas;
@Source(file="/xml/template.xml")
@Path("/hello")
public class HelloWorld extends Page {
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHello(){
String html = super.draw();
return html;
}
@Source
Canvas canvas = (node) -> {
node.setAttr("style", "color:FFFFFF;");
node.addText("Hello World");
};
}
とりあえず自作コンテナ or Jersey(EE標準)で利用可能な方向に修正しようと思う
SpringMVCやPlayでもそのまま動かせると思うが、触れないで置く
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.ruler.markup.api.Page;
import org.ruler.markup.api.Source;
import org.ruler.markup.api.Canvas;
@Source(file="/xml/template.xml")
@Path("/hello")
public class HelloWorld extends Page {
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHello(){
String html = super.draw();
return html;
}
@Source
Canvas canvas = (node) -> {
node.setAttr("style", "color:FFFFFF;");
node.addText("Hello World");
};
}
100>>53
2014/05/18(日) 00:29:13.30ID:LWas9+0T そのさい、多少APIを変更するのは避けられない
Responseを乗っ取れないようなので
いったん丸ごと一つの文字列にしなければならなくなる
無駄に大きい文字列結合は結構コストになる
それでもDI、コンバータ、バリデータが全部流用できるのが大きいが
Responseを乗っ取れないようなので
いったん丸ごと一つの文字列にしなければならなくなる
無駄に大きい文字列結合は結構コストになる
それでもDI、コンバータ、バリデータが全部流用できるのが大きいが
101>>53
2014/05/18(日) 17:37:20.86ID:LWas9+0T JAX-RS v2.0 を試そうとApache CXFを試したが、hello worldも実行できず断念
Glassfish(Jersey)やJBoss(JBoss Rest Easy)はtomcatで使いたいので断念
JAX-RS v1.1 しか使えないが、jarも少なくてコンパクトなApache Winkで調査中〜
Glassfish(Jersey)やJBoss(JBoss Rest Easy)はtomcatで使いたいので断念
JAX-RS v1.1 しか使えないが、jarも少なくてコンパクトなApache Winkで調査中〜
102デフォルトの名無しさん
2014/05/18(日) 19:26:31.34ID:TTQj//9Y >>53
よくわかんねーや、仕様を日本語で書いてくれ。
よくわかんねーや、仕様を日本語で書いてくれ。
103>>53
2014/05/18(日) 21:25:44.60ID:LWas9+0T javadocとかhtml書くのも大変なのよ
javadocは日本語と英語を併記しようとして失敗した
チュートリアルも日本語がおかしいかもしれない
もしくは、もっと全体的な概要のことだろうか?
javadocは日本語と英語を併記しようとして失敗した
チュートリアルも日本語がおかしいかもしれない
もしくは、もっと全体的な概要のことだろうか?
104デフォルトの名無しさん
2014/05/18(日) 21:29:41.51ID:N+11ThYv >>103
そうだよ、ぱっとみてなにやってんの?てなかんじ
そうだよ、ぱっとみてなにやってんの?てなかんじ
105デフォルトの名無しさん
2014/05/18(日) 21:30:57.47ID:N+11ThYv それとDOMが遅いのは知ってるよね?
106>>53
2014/05/18(日) 22:53:36.54ID:LWas9+0T どれを指していってる?
107>>53
2014/05/18(日) 23:02:35.40ID:LWas9+0T その指摘はたぶん半分正しい。
XML(REST, AJAX)だとDOMは遅くない
HTMLだとDOMは遅い。
なぜならHTMLはほとんどが静的なデータの塊であって、
動的でない部分をDOMで保有していると、直列な文字列へと変換する無駄が生じる。
チュートリアル1では、全てをDOMで操作しているので、たしかに処理に無駄がある。
従ってチュートリアル1は最も自由度の高いAPIであるが、HTMLではなくXML(REST, AJAX)向きだ。
XML(REST, AJAX)だとDOMは遅くない
HTMLだとDOMは遅い。
なぜならHTMLはほとんどが静的なデータの塊であって、
動的でない部分をDOMで保有していると、直列な文字列へと変換する無駄が生じる。
チュートリアル1では、全てをDOMで操作しているので、たしかに処理に無駄がある。
従ってチュートリアル1は最も自由度の高いAPIであるが、HTMLではなくXML(REST, AJAX)向きだ。
108>>53
2014/05/18(日) 23:08:29.27ID:LWas9+0T これを踏まえたうえで、チュートリアル02, 03を見てほしい。
Canvasというクラスがでてくる。Canvasに指定されたノードは、動的な領域である。
逆説的に言えば、それ以外の領域は静的であるということ。
実は、内部で静的な領域を最適化している。
Node.classにはjavadocに載っていないが、onReady()というメソッドがあって、
あらかじめ直列化された(変わりに変更不能になった)文字列へと最適化している
Canvasというクラスがでてくる。Canvasに指定されたノードは、動的な領域である。
逆説的に言えば、それ以外の領域は静的であるということ。
実は、内部で静的な領域を最適化している。
Node.classにはjavadocに載っていないが、onReady()というメソッドがあって、
あらかじめ直列化された(変わりに変更不能になった)文字列へと最適化している
109>>53
2014/05/18(日) 23:18:39.38ID:LWas9+0T 具体的に書くと、Nodeは通常以下のデータを持っている
String タグ
HashMap<String, String> 属性
List<Node> 子ノード
コレを連結して < + タグ + 属性="属性値" + > </ + タグ + >を生成する。
静的な領域として登録されたNodeは、次のように固定される
String 開始タグ <div class="xxx" onclick="xxx">
String 終了タグ </div>
List<Node> 子ノード
従ってDOMは自動的に、最適な形式で最適化されるのだ
String タグ
HashMap<String, String> 属性
List<Node> 子ノード
コレを連結して < + タグ + 属性="属性値" + > </ + タグ + >を生成する。
静的な領域として登録されたNodeは、次のように固定される
String 開始タグ <div class="xxx" onclick="xxx">
String 終了タグ </div>
List<Node> 子ノード
従ってDOMは自動的に、最適な形式で最適化されるのだ
110>>53
2014/05/18(日) 23:21:28.16ID:LWas9+0T ちなみに、このonReady()というメソッドはサーバー起動時に行われる
初期化の中で実行され、アプリ開発者には触れないようにパッケージアクセスになっている
初期化の中で実行され、アプリ開発者には触れないようにパッケージアクセスになっている
111>>53
2014/05/18(日) 23:29:41.69ID:LWas9+0T そんなわけで、計測していないが、JSPでタグライブラリ使うよりは
むしろ早いんじゃないかと思う。
JSPだとBeanUtilsとかでリフレクション使うが、
こちらはまったくリフレクションと無縁だし。
むしろ早いんじゃないかと思う。
JSPだとBeanUtilsとかでリフレクション使うが、
こちらはまったくリフレクションと無縁だし。
112>>53
2014/05/19(月) 01:30:36.99ID:sKL+/ft2 そーいえば、バグを修正してからソースアップしてなかったや
113>>53
2014/05/19(月) 23:11:24.30ID:sKL+/ft2 質問してた人は分かってくれたのだろーか?
ま、いっかー♪
ま、いっかー♪
114デフォルトの名無しさん
2014/05/19(月) 23:14:52.36ID:tS67yV1L わかんねーよ、まあいいよ
115>>53
2014/05/20(火) 12:43:37.30ID:6S2+5F+I このフレームワークは、JSPを代替するものである。他はあってもオマケなのさ
SpringMVCといったモダンなフレームワークやJSP/Servletをそもそもほとんど知らないと
さすがに厳しいだろうね
SpringMVCといったモダンなフレームワークやJSP/Servletをそもそもほとんど知らないと
さすがに厳しいだろうね
116デフォルトの名無しさん
2014/05/20(火) 13:29:36.59ID:01pyNPJw .どうでもいいけど^2、大きくでたね、恥ずかしい。
118デフォルトの名無しさん
2014/05/20(火) 20:41:00.48ID:PNoH4CCh 笑
119デフォルトの名無しさん
2014/05/21(水) 08:29:43.45ID:5ztNVRYW スルースキルなさすぎ
120>>53
2014/05/23(金) 18:50:26.17ID:a5qO5SrY 2chの調子がおかしい。またscの件だろうか
121デフォルトの名無しさん
2014/05/28(水) 00:33:35.50ID:9OS265q7 JAX-RS(Jerseyとか)に対応したかったが、
あれJAXB専用だという結論に達した
EE標準で他になんか無かったっけ
あれJAXB専用だという結論に達した
EE標準で他になんか無かったっけ
122デフォルトの名無しさん
2014/05/30(金) 02:26:09.40ID:tZAWFEUT テンプレート指定でpojoぶち込んで変換する程度なのになぜそんな難しい事だと思うんだろう・・・
ちゃんと考えたらオプショナルなライブラリとして切り出せるよ
ちゃんと考えたらオプショナルなライブラリとして切り出せるよ
123デフォルトの名無しさん
2014/05/30(金) 06:22:55.92ID:6rGA/Qk9 JAX-RSはInputStreamでリクエストを処理できるから何使ったっていいやろ
124デフォルトの名無しさん
2014/05/30(金) 16:50:49.26ID:qoYBEuMa いたいんだろう
125>>53
2014/05/31(土) 22:40:21.59ID:5baBS0eH @Templateはglassfish独自だったような。
もう一度JAX-RSの勉強してみる。
もう一度JAX-RSの勉強してみる。
126>>53
2014/05/31(土) 23:19:28.12ID:5baBS0eH できれば、glassfishに依存しない、jbossでも可能な純粋なJAX-RSが望ましい
それでプレーンテキストではなく、xml/htmlやjsonを
次のような形式で返すのはダメだった気がするけど、俺の気のせいか?
まあ試してみるか!
public class POJO {
@GET
@Path("/aaa")
@Produces("text/html") // @Produces("text/plain")
public String hello(){
return "<? XML宣言 ?><html><body>fuck you</body></html>";
}
}
それでプレーンテキストではなく、xml/htmlやjsonを
次のような形式で返すのはダメだった気がするけど、俺の気のせいか?
まあ試してみるか!
public class POJO {
@GET
@Path("/aaa")
@Produces("text/html") // @Produces("text/plain")
public String hello(){
return "<? XML宣言 ?><html><body>fuck you</body></html>";
}
}
127>>53
2014/05/31(土) 23:24:09.73ID:5baBS0eH あと良く見たら、HttpServletResponseのOutputStreamで出力みたいな方法があるね
どうやって使うのか分からないけど、上記の方法(>>126)がダメだったらこっちを調べる
どうやって使うのか分からないけど、上記の方法(>>126)がダメだったらこっちを調べる
128>>53
2014/05/31(土) 23:55:24.75ID:5baBS0eH 今やってみたら普通にできた。俺は一体なにを勘違いしてたのだろう・・・。
今後の方針。
>>99の形式のAPIで作りなおす。
Apache Winkライブラリ実装によるJAX-RX1.1環境でテスト。
JBoss(JBoss Rest Easy)・GlassFish(Jersy)・Apache CXFでそのまま動くと思う。
今後の方針。
>>99の形式のAPIで作りなおす。
Apache Winkライブラリ実装によるJAX-RX1.1環境でテスト。
JBoss(JBoss Rest Easy)・GlassFish(Jersy)・Apache CXFでそのまま動くと思う。
129デフォルトの名無しさん
2014/06/01(日) 20:41:47.80ID:NBeHYS0k アホは見得をはるな
130>>53
2014/06/01(日) 23:39:25.02ID:wxYsWL3a まあそういうなって。とりあえず動く段階までできたよ
最適化の余地があるのと、ファイルパスのミスなどに対して
親切にエラーメッセージを吐かなかったり、内部実装は雑だが、
とりあえず前回のチュートリアル4(繰り返し出力)までできるようになった
http://hoeppe.the-ninja.jp/java_markup_ruler/html/tutorial/tutorial4.html
最適化の余地があるのと、ファイルパスのミスなどに対して
親切にエラーメッセージを吐かなかったり、内部実装は雑だが、
とりあえず前回のチュートリアル4(繰り返し出力)までできるようになった
http://hoeppe.the-ninja.jp/java_markup_ruler/html/tutorial/tutorial4.html
131>>53
2014/06/01(日) 23:42:32.85ID:wxYsWL3a 出力結果とリソースとなるhtmlは>>130のチュートリアルと同一のもので、
今回のバージョンでは次のようなコードになる
package test;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/rest")
public class HelloApplication extends Application {
public HelloApplication(){
}
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> set = new HashSet<Class<?>>();
set.add(HelloWorld.class);
return set;
}
}
今回のバージョンでは次のようなコードになる
package test;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/rest")
public class HelloApplication extends Application {
public HelloApplication(){
}
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> set = new HashSet<Class<?>>();
set.add(HelloWorld.class);
return set;
}
}
132>>53
2014/06/01(日) 23:45:36.71ID:wxYsWL3a package test;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.ruler.markup.api.*;
@Source(file="/WEB-INF/html/tutorial4.html")
@Path("/hello")
public class HelloWorld extends Page {
@GET @Produces(MediaType.TEXT_HTML)
public String hello(){
String markup = super.draw();
return markup;
}
@Source
Group fragment = new Group();
@Source
Canvas list = (node) -> {
String[] names = {"A", "B", "C", "D", "E"};
for(int i=0; i<5; i++){
Node copy = new Node(fragment);
copy.in(node);
Node name = copy.key("name");
name.text(names[i]);
Node index = copy.key("index");
index.text("index("+i+")");
}
};
}
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.ruler.markup.api.*;
@Source(file="/WEB-INF/html/tutorial4.html")
@Path("/hello")
public class HelloWorld extends Page {
@GET @Produces(MediaType.TEXT_HTML)
public String hello(){
String markup = super.draw();
return markup;
}
@Source
Group fragment = new Group();
@Source
Canvas list = (node) -> {
String[] names = {"A", "B", "C", "D", "E"};
for(int i=0; i<5; i++){
Node copy = new Node(fragment);
copy.in(node);
Node name = copy.key("name");
name.text(names[i]);
Node index = copy.key("index");
index.text("index("+i+")");
}
};
}
133>>53
2014/06/02(月) 00:28:07.03ID:avVQoG9D HTMLでドキュメント書くのめんどくさい
今月末にEclipse4.4がリリースされる前には、こっちも仕上げたい
今月末にEclipse4.4がリリースされる前には、こっちも仕上げたい
134>>53
2014/06/02(月) 15:17:04.58ID:avVQoG9D ホームページに2.0のjar, javadoc、環境設定をアップしたぞ
135デフォルトの名無しさん
2014/06/02(月) 22:31:14.92ID:oBwkaK0R 何するフレームワークなの?
サイト見てみたけど、そもそもプロジェクトの大目的も書いて無ければ
設計思想も不明。誰に対して何を発信してるのかさっぱりわからん。
伝えるべき思想を失ったプロダクトは、やがて自身が失われていくだけ。
サイト見てみたけど、そもそもプロジェクトの大目的も書いて無ければ
設計思想も不明。誰に対して何を発信してるのかさっぱりわからん。
伝えるべき思想を失ったプロダクトは、やがて自身が失われていくだけ。
136>>53
2014/06/03(火) 00:41:34.09ID:W3xt/cSk だからそういうのをhtmlで用意するのも手間がかかるんだって
見て分かる人は分かるし、分からない人は待つか、何か考えてちょうだい
見て分かる人は分かるし、分からない人は待つか、何か考えてちょうだい
137デフォルトの名無しさん
2014/06/03(火) 01:14:51.76ID:M8ABeZfO >待つか、何か考えて
いや、もうすでにメジャーな解決手段が山ほどあるわけで。
先入観も予備知識もなく、いちJava開発者としてあなたのプロジェクトの
サイトを見た時に、なにがしたいのか、なんのために情報発信しているのかが
さっぱり理解できなかっただけ。
このスレ見たって、だれもダウンロードもしてなけりゃ使ってもいなさそうだし。
個人的な趣味や研究としてやるぶんには全然いいと思うけど、だったら
2chじゃなくてそれこそQiitaなりForkwellなりGitHubあたりで発信したほうがいいと思う。
いや、もうすでにメジャーな解決手段が山ほどあるわけで。
先入観も予備知識もなく、いちJava開発者としてあなたのプロジェクトの
サイトを見た時に、なにがしたいのか、なんのために情報発信しているのかが
さっぱり理解できなかっただけ。
このスレ見たって、だれもダウンロードもしてなけりゃ使ってもいなさそうだし。
個人的な趣味や研究としてやるぶんには全然いいと思うけど、だったら
2chじゃなくてそれこそQiitaなりForkwellなりGitHubあたりで発信したほうがいいと思う。
138>>53
2014/06/03(火) 01:35:20.27ID:W3xt/cSk >個人的な趣味や研究としてやるぶんには全然いいと思うけど、
>QiitaなりForkwellなりGitHubあたりで発信したほうがいいと思う。
その辺くわしくないの。ツールの使い方覚えるのも面倒くさいしさ
スレ違いという話だったら、ここ俺が建てたところだし、他に話題もないようだからいいでしょ
>QiitaなりForkwellなりGitHubあたりで発信したほうがいいと思う。
その辺くわしくないの。ツールの使い方覚えるのも面倒くさいしさ
スレ違いという話だったら、ここ俺が建てたところだし、他に話題もないようだからいいでしょ
139>>53
2014/06/03(火) 01:37:36.98ID:W3xt/cSk マ板が、2ch自体もすごく過疎ってるのは分かっている
それでも有用な案を出してくれる人が全くいないわけでもないんだよね
それでも有用な案を出してくれる人が全くいないわけでもないんだよね
140>>53
2014/06/03(火) 19:48:44.30ID:W3xt/cSk >なにがしたいのか?
考えてみたら特にないんだよね。なんとなく作ってきたものを改めて自己定義してみる
自分はもともとwicketの信者で、プレーンなHTMLでデザインするというのが構想の根幹にあったのだけど、
新バージョン(2.0)では、方向性を変えてテンプレートエンジンに収まった感じかな
velocityとかsmartyと競合するわけなんだけど、違いは.vmファイルとか、独自スクリプトがないところ
2.0シリーズはテンプレートエンジンのみで他のフレームワークと組み合わせて使い、
1.0シリーズはオレオレコンテナー付きでたぶんパフォーマンスも少し良い
考えてみたら特にないんだよね。なんとなく作ってきたものを改めて自己定義してみる
自分はもともとwicketの信者で、プレーンなHTMLでデザインするというのが構想の根幹にあったのだけど、
新バージョン(2.0)では、方向性を変えてテンプレートエンジンに収まった感じかな
velocityとかsmartyと競合するわけなんだけど、違いは.vmファイルとか、独自スクリプトがないところ
2.0シリーズはテンプレートエンジンのみで他のフレームワークと組み合わせて使い、
1.0シリーズはオレオレコンテナー付きでたぶんパフォーマンスも少し良い
141>>53
2014/06/04(水) 14:47:53.40ID:Q5ELIKYC チュートリアルを足した
あと2つ足したら、ショッピングカートとか
解説本によくあるサンプルアプリを作りたいところだ
他のtodoリストとしては、ver2.1において
wicket:removeやjsp:includeにあたるものがほしいかな
それと、htmlに埋め込む属性がjava:canvas="xxx"のように、
属性の名前空間が"java:"なんだけど、なんとなく"view:"に変えようと思う
あと2つ足したら、ショッピングカートとか
解説本によくあるサンプルアプリを作りたいところだ
他のtodoリストとしては、ver2.1において
wicket:removeやjsp:includeにあたるものがほしいかな
それと、htmlに埋め込む属性がjava:canvas="xxx"のように、
属性の名前空間が"java:"なんだけど、なんとなく"view:"に変えようと思う
142デフォルトの名無しさん
2014/06/07(土) 13:43:51.09ID:A9n/DlGy どうせ誰もダウンロードしてないしな
こっそり互換性のない変更しとくか
こっそり互換性のない変更しとくか
143デフォルトの名無しさん
2014/06/08(日) 02:34:45.24ID:XG86MQWF プレーンなHTMLで書けるテンプレートエンジンは、Thymeleafってのが既にアルヨ
http://www.thymeleaf.org/
http://www.thymeleaf.org/
144>>53
2014/06/08(日) 08:48:30.26ID:muM/tUAt それは全く参考にならない
ホームページのデザインがカッコイイのは認めよう
ホームページのデザインがカッコイイのは認めよう
145デフォルトの名無しさん
2014/06/10(火) 07:59:12.82ID:ktfRooiL チュートリアル追加
「02.動的なページ」
「02.動的なページ」
146デフォルトの名無しさん
2014/06/10(火) 22:46:27.33ID:JLLjF1QC 変なのが居着いちゃったな
147>>53
2014/06/12(木) 11:36:50.08ID:Ti9BpqIm OGNL系のテンプレートエンジン、テンプレートにスクリプト埋め込むエンジンは根本的に失敗してるんだな
148>>53
2014/06/20(金) 13:51:47.16ID:jx2J3NNK 最近進める暇が無い。PHPはもう嫌だー
149デフォルトの名無しさん
2014/07/03(木) 22:45:18.73ID:yCk6IM6o Javaもc#のマネしてlinq機能採用すればいいのに
λも中途半端で使いづらい
λも中途半端で使いづらい
150デフォルトの名無しさん
2014/07/04(金) 15:51:21.82ID:G5qrkZAQ xml,json,csvあたりは必要としていないし、RDBには力不足、
KVSではよく分からんけどlinqは汎用ではなく何か専用にならないと使えない
KVSではよく分からんけどlinqは汎用ではなく何か専用にならないと使えない
151デフォルトの名無しさん
2014/07/04(金) 16:24:59.01ID:Qs7fnNPT >>149
λとかQuery関係はjvmで動くLispのClojureとか使うと楽なんだけどそういうのは無しな方向なんだろうなぁと思うとちょっとかなしい
λとかQuery関係はjvmで動くLispのClojureとか使うと楽なんだけどそういうのは無しな方向なんだろうなぁと思うとちょっとかなしい
152デフォルトの名無しさん
2014/07/05(土) 14:24:57.02ID:+lHURxz4 俺が一番ほしいのは右辺型推論の進化かな
jdk7で次のように書けるようになったけど
ArrayList<String> array = new ArrayList<>();
左辺と同一の型の場合、このくらい略せてもいいよね。
ArrayList<String> array = new();
ラムダができても以前のイベントリスナーみたいなのは今後もあるわけだし、
無名クラスが楽になるんだわ。
Listener listener = new(){
@Override void onA(Event e){}
@Override void onB(Event e){}
};
jdk7で次のように書けるようになったけど
ArrayList<String> array = new ArrayList<>();
左辺と同一の型の場合、このくらい略せてもいいよね。
ArrayList<String> array = new();
ラムダができても以前のイベントリスナーみたいなのは今後もあるわけだし、
無名クラスが楽になるんだわ。
Listener listener = new(){
@Override void onA(Event e){}
@Override void onB(Event e){}
};
153デフォルトの名無しさん
2014/07/05(土) 22:56:30.92ID:CDO6L6dP 符号なしバイト変数さえあれば他はどうでもいい
154デフォルトの名無しさん
2014/07/06(日) 02:46:09.09ID:dYSoFRpx とりあえずJigsawの実用化に全力を出せばそれでいい
155デフォルトの名無しさん
2014/07/10(木) 14:30:00.56ID:GIbup2ZZ 忘れてたけど先月にEclipseの新しいやつでてたね
156デフォルトの名無しさん
2014/07/16(水) 13:40:07.49ID:espMUnFN >>155
LunaからJDK8に対応したね
Streamはstream()オブジェクトを作ってからフィルタを通す感じで、最初に
オブジェクトを作る必要がある以外は正直LINQと同じだと思った
ただクエリ形式がなくメソッド形式のみという違いはあるが
ラムダ式で使う事を前提にしてるんだからそれでいいと思うけど
ジェネリック型(総称型)もC#が入れてからJDK5で入れたもんな
LunaからJDK8に対応したね
Streamはstream()オブジェクトを作ってからフィルタを通す感じで、最初に
オブジェクトを作る必要がある以外は正直LINQと同じだと思った
ただクエリ形式がなくメソッド形式のみという違いはあるが
ラムダ式で使う事を前提にしてるんだからそれでいいと思うけど
ジェネリック型(総称型)もC#が入れてからJDK5で入れたもんな
■ このスレッドは過去ログ倉庫に格納されています
