[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/29 23:06 / Filesize : 162 KB / Number-of Response : 740
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【node.js】サーバサイドjavascript 2【Rhino】



1 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 19:30:29.58 ]
pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。
サーバサイドjavascriptについて語りましょう。

node.js - googleが開発したV8エンジン上で実行できる処理系
nodejs.org/
Rhino - JVM上で実行できる処理系
https://developer.mozilla.org/ja/Rhino

javascriptはrubyと比較してもかなり速い
shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv
基礎から学ぶNode.js
gihyo.jp/dev/serial/01/nodejs
node.jsの概要とアプリケーション開発の準備
gihyo.jp/dev/serial/01/realtimeweb/0002

前スレ
【node.js】サーバサイドjavascript【Rhino】
toro.2ch.net/test/read.cgi/tech/1310087535/

231 名前:デフォルトの名無しさん mailto:sage [2013/08/02(金) NY:AN:NY.AN ]
MeteorのTable/Gridはロードマップに入ってました。 17Voteでは、まだ先のようです。
Meteoriteでパッケージ化するしかないのかな? 大変なんだよな 動かすの・・・

232 名前:デフォルトの名無しさん mailto:sage [2013/08/03(土) NY:AN:NY.AN ]
package.json読み込んでパッケージの更新があるかどうかを
まとめてチェックするツールってない?
(更新があるものだけリスト表示される)

233 名前:デフォルトの名無しさん mailto:sage [2013/08/03(土) NY:AN:NY.AN ]
npm outdated

234 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
Partial.jsのスクリーショットすげぇな。 HTML理解してれば、ナルホドナルホドの連発じゃね?
WebAppの敷居が低くなった。

235 名前:デフォルトの名無しさん mailto:sage [2013/08/05(月) NY:AN:NY.AN ]
tutorial videoのこと?

236 名前:デフォルトの名無しさん mailto:sage [2013/08/18(日) NY:AN:NY.AN ]
もっとWebかぶれっぽくウェビナーと言えよ

237 名前:デフォルトの名無しさん mailto:sage [2013/08/31(土) NY:AN:NY.AN ]
expressのビューで採用されてるJadeって
あらかじめプレコンパイルってされる?
それとも毎回コンパイルが走るのかな?

238 名前:デフォルトの名無しさん mailto:sage [2013/09/01(日) 23:58:47.37 ]
オプションで

239 名前:デフォルトの名無しさん [2013/09/06(金) 03:36:43.07 ]
皆Stream3の話はもう知ってる?



240 名前:デフォルトの名無しさん [2013/09/06(金) 17:24:32.22 ]
chrome.blogspot.jp/2013/09/a-new-breed-of-chrome-apps.html
itpro.nikkeibp.co.jp/article/NEWS/20130906/502868/
news.mynavi.jp/news/2013/09/06/057/
internet.watch.impress.co.jp/docs/news/20130906_614308.html

241 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 18:18:12.60 ]
ソケット系APIが扱いづらいからNodeとは競合しない

242 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 18:24:22.74 ]
nodeはdomを扱えないからクソだな

243 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 18:28:28.42 ]
つnpm install jsdom

244 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 18:41:41.97 ]
>>241
JSのエコシステム拡大につながるならむしろ援軍だしな

245 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 19:00:51.62 ]
V8チームはもうエンジンにDOMを組み込みたいんでしょ
現状だとパフォーマンスの面でもいろいろ問題あるし

基礎的なAPIも更新され続けてるからJSONみたいに簡単な話じゃないだろうけど
根本的なインターフェイスだけ実装してくれるのでもずいぶんパフォーマンスと実装がやりやすくなるに違いない

246 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 19:11:48.22 ]
それがBlinkの目標の1つだっけ
JSエンジンが1つだけなら分離させておく必要ないね

247 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 20:51:04.97 ]
Dart |ω・`) チラ 

248 名前:デフォルトの名無しさん mailto:sage [2013/09/06(金) 20:59:49.30 ]
DOMがJSネイティブでサポートされればWorker等も経由できるようになるし、
DOMPromiseみたいなのも採用しやすくなる。

249 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 09:19:44.18 ]
Math.floor((0.7+0.1)*10)
昔から分かってることだけど、やっぱ面倒くさいなあ。



250 名前:デフォルトの名無しさん [2013/09/09(月) 14:03:32.51 ]
誤爆???

251 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 15:28:43.40 ]
面倒くさいって何がだ

252 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 16:35:57.83 ]
普通は8を期待するところが、JSでは7が正解ということ。
まあ floor はいらないんだけど、整数の方が分かりやすいだろうとね。

253 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 16:41:03.61 ]
JSに限った話じゃ無くね?

254 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 16:59:39.87 ]
そうだよ。面倒くさいなあってだけの話。

255 名前:デフォルトの名無しさん mailto:sage [2013/09/09(月) 17:43:27.86 ]
ES7ではdecimal型が導入されるけど
同時にuse 〜で数値型を制御する案が出されてる
そうなれば解決できるかもね

256 名前:デフォルトの名無しさん mailto:sage [2013/09/12(木) 22:31:45.74 ]
ES4のこれが入るといいね
wiki.ecmascript.org/doku.php?id=proposals:decimal

257 名前:デフォルトの名無しさん mailto:sage [2013/09/12(木) 22:57:05.05 ]
opaって、どーよ?

258 名前:デフォルトの名無しさん mailto:sage [2013/09/13(金) 02:54:06.31 ]
なるほど、JSをWebサーバー用にかなりカスタマイズした感じか
本当に特化してるから確かにWebサーバーではいいこともあるかもね

だけど対サーバーサイドJS用の謳い文句の、HTMLとかを直書き出来る機能は
もうしばらくでJSにも導入されるし、どうなのかな
wiki.ecmascript.org/doku.php?id=harmony:quasis

259 名前:デフォルトの名無しさん mailto:sage [2013/09/13(金) 13:57:43.57 ]
htmlのテンプレートは関係ないでしょ



260 名前:デフォルトの名無しさん mailto:sage [2013/09/13(金) 14:59:10.26 ]
いや、例えばよくあるこんなのの話だよ
"<div>$mes</div>"
今のNodeはアプリケーションサーバー向きだけど
CGIとして利用するにはこういうの無いとちょっと不便でしょ?

261 名前:デフォルトの名無しさん mailto:sage [2013/09/13(金) 15:02:32.54 ]
>>260
テンプレートエンジンなら山ほどあるよ

262 名前:デフォルトの名無しさん mailto:sage [2013/09/13(金) 15:29:16.76 ]
Jadeは神だと思う
domはネストしまくるから相当綺麗になる

263 名前:デフォルトの名無しさん mailto:sage [2013/09/13(金) 15:48:32.06 ]
>>260
そんなのライブラリで解決してくれよ
そんなつまらない機能で言語仕様を汚さないでくれ。。。

264 名前:デフォルトの名無しさん mailto:sage [2013/09/13(金) 16:17:39.78 ]
OpaってPHPみたいにhtmlとサーバーのJSコードを混ぜて書けるのか
これまたカオスを生みそうではあるな

265 名前:デフォルトの名無しさん mailto:sage [2013/09/13(金) 18:29:56.30 ]
>>263
だよな。E4Xの死亡が全てを語ってるのに蒸し返すなよっていう

266 名前:デフォルトの名無しさん mailto:sage [2013/09/13(金) 21:48:34.66 ]
node.jsってなんなんですか?
Webサーバの一種なんですか?プログラム言語の一種なんですか?
そのへんがよくわかりません・・・

267 名前:デフォルトの名無しさん mailto:sage [2013/09/13(金) 22:01:06.54 ]
ぐぐれ

268 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 13:40:27.31 ]
exports.idcheck = function(req, res){
if(req.session.id){
res.send({"id" : req.session.id});
return;
}
res.send('hoge');
return;
}

例えばこういう処理があった場合if文はelseで分岐させるべきですか?
ifの中でもreturn文があればifブロック以下の処理は実行されないと思いますが

269 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 13:45:04.07 ]
exports.idcheck = function(req, res){
var s = req.session.id ? {"id" : req.session.id} : 'hoge';
res.send('hoge');
return;
}



270 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 13:45:57.85 ]
exports.idcheck = function(req, res){
var s = req.session.id ? {"id" : req.session.id} : 'hoge';
res.send(s);
return;
}

271 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 13:58:47.56 ]
>>270
>>268の処理をするならそちらの記述の方がスマートですね
結局elseを使えって事ですね

272 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 16:30:39.58 ]
ifで条件付けて即returnするような場合は
無駄に深くなるからelse書かないほうが良くない?

Javaの例で恐縮だが、これのequalsの例みたいに。
stackoverflow.com/questions/27581/overriding-equals-and-hashcode-in-java

273 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 17:04:37.90 ]
俺も大抵returnしてelse書かない派
さっさとreturnすればその状態のことは忘れられるから健忘の俺向き
JSにもNodeにも関係ないプログラミング初級ネタになってるなw

274 名前:デフォルトの名無しさん [2013/09/14(土) 17:37:02.90 ]
>266
解らないなら「馬鹿には無理」と書いてあると思っていい

275 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 17:50:17.96 ]
ド底辺のnode.jsが出来なかったら何も出来ないからな

276 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 18:01:34.35 ]
>>272
if () {
//非同期処理
return;
}
とかだと話は変わってきそう

277 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 18:15:38.82 ]
var hoga = function(x, callback){return callback(x);};

var hoge = function(a){
hoga(a, function(b){
return function(b){
return b*b;
};
});
return b;
};

console.log(hoge(2));

さて実行結果はいくつ?

278 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 18:24:17.16 ]
undefined

279 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 18:33:33.15 ]
コールバック関数内でreturnした値はどこへいくのでしょう



280 名前:デフォルトの名無しさん mailto:sage [2013/09/14(土) 18:37:39.41 ]
hoist絡みのネタかと思いきやstrictモードじゃ実行もできない糞コードじゃねーか氏ね
ここはJS質問スレじゃねーんだよ!

281 名前:デフォルトの名無しさん mailto:sage [2013/09/26(木) 16:35:41.40 ]
これってnode 0.10 だと使えない?
visionmedia/co
https://github.com/visionmedia/co

282 名前:デフォルトの名無しさん mailto:sage [2013/09/26(木) 17:11:17.77 ]
このすれってnodeとrhino限定?

283 名前:デフォルトの名無しさん mailto:sage [2013/09/26(木) 18:15:01.86 ]
サーバサイドのJSならなんでもいんじゃね?
これからAvatar出てくるし

284 名前:デフォルトの名無しさん mailto:sage [2013/09/29(日) 00:13:31.64 ]
node.jsのほとんどのモジュールでなぜか名前が出てくる
visionmediaって何者なの?

285 名前:デフォルトの名無しさん mailto:sage [2013/09/29(日) 01:08:11.90 ]
TJ Holowaychuk

286 名前:デフォルトの名無しさん mailto:sage [2013/10/07(月) 18:44:00.14 ]
結局大規模開発向きではないのかな

287 名前:デフォルトの名無しさん mailto:sage [2013/10/07(月) 19:08:26.76 ]
えっ

288 名前:デフォルトの名無しさん mailto:sage [2013/10/07(月) 21:38:52.77 ]
大規模開発やってる組織向きではないな

289 名前:デフォルトの名無しさん mailto:sage [2013/10/07(月) 21:39:53.35 ]
Node自体が大規模なJSモジュールの集合みたいなもんだ



290 名前:デフォルトの名無しさん mailto:sage [2013/10/07(月) 22:30:20.80 ]
>>289
は?

291 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 00:14:10.84 ]
なんでVERT.Xの話題がでないの?

292 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 00:14:49.02 ]
VERT.XのほうがNODE.JSよりパフォーマンスも生産性も上なのに

293 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 02:14:58.04 ]
node.jsのフレームワーク出過ぎだな
今が戦国時代でこれからどんどん統治が始まっていくんだろう

294 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 08:53:48.04 ]
>>291-292
そんなん使うなら生のJava使え

295 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 09:29:05.57 ]
JVMが必要な時点で検討対象にならない

296 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 10:19:25.82 ]
V8よりServerSide-JVMのほうが歴史も長く堅牢。
サーバーサイドJavaScriptが書けるなら検討する価値はある。

巷のnode.js開発案件って、炎上してないプロジェクトを
見たこと無いし。

297 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 13:55:33.98 ]
>>291-292
万能すぎワロタ
多言語対応がとっても素敵

298 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 14:18:22.60 ]
Java(笑)

299 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 18:44:55.93 ]
>>291-292
Vert.xでJS選ぶ理由がないからここじゃ話題にならない



300 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 21:35:29.32 ]
なんだかんだ言ってV8のパフォーマンスと将来性には敵わないから
これがもしJScoreだったら今の半分も流行ってたかどうか

301 名前:デフォルトの名無しさん mailto:sage [2013/10/08(火) 22:01:50.49 ]
Vert.x調べてみてね、もう「うわ〜っ」って引いたよ
なぜかって言うとね、NodeとAPIが「少々」違うから
もうね、覚える気がおきないわこれ
Vert.xだけじゃない
最近ChromeAppっていうのができたでしょ?
もうね、ソケットの触り方全然違うのよこれが
同じなのはね、コールバック地獄ってとこだけ
もうね、ふざけんなと
せめてデフォルトでPromiseくらい返すかしてよねと
早く誰かライブラリ作ってくんないかなあ

302 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 00:05:54.94 ]
コールバック地獄は>>281が入ったら終了だ
早く来い新時代

303 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 01:35:36.73 ]
いや、あえてジェネレータ+coは書かなかった
致命的な欠点があるからな
それは処理途中の関数、特に同じものが複数生きてる状態が容易に作り出されるから
副作用を使う場合関数単位でスレッドセーフじゃないような感じになってしまう

これはPromiseみたいなコールバックを「上手く扱う」仕組みではなくて
全く考え方を変えるもの
まあそれが十分わかってりゃいいんだが
もてはやされるのは気に食わない

304 名前:デフォルトの名無しさん [2013/10/09(水) 01:50:52.98 ]
JavascriptはLispだと思っとけよ

305 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 02:25:15.98 ]
マクロがないけどな

306 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 04:08:03.39 ]
マクロは言語仕様外でも定義できる
power-assertみたいにAST使って言語に深く食い込んだものも可能

307 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 04:12:30.92 ]
>>303
俺が無知なせいでよく分からないのだが
簡単に再現できるコードとかある?

308 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 04:21:59.41 ]
ブラウザの話で悪いが
例えば何らかのイベントを処理する関数があるとする
JavaScriptではその関数を実行中に他のイベントを処理する関数が
(自分で明示的に呼び出したりしない限り)実行されることは無い

このおかげで排他処理とかを難しく考える必要が無い

しかし、ジェネレーター関数を使うと、関数を終わらせる前に
他のイベントを処理する関数が実行される可能性がある

したがって排他処理をきちんと考えることが必要になる

309 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 05:05:37.85 ]
例えば大げさな例だがこういうのは厳禁ってこと

server.on('connect', function(socket) {

var messages = []
socket.on('data', sync(function*(data) {

var length = messages.length
yield await(fileAddAsync, ['log.dat', length + ':' + data])
var messages[length] = data

}))

})

つまりとあるリクエストの処理が完了し切る前に次のが走っている、
時には次のほうが先に終わる場合だってありえるから
つまり一時休止より前に取得した情報は
一時休止前に取得した情報を使って休止後に処理をするのは危険ということ



310 名前:デフォルトの名無しさん [2013/10/09(水) 07:59:21.72 ]
板違いやろ

311 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 08:44:16.86 ]
突然どうした?
node.jsに関して言えばWEBサーバ目的じゃないコードも書ける

312 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 09:05:04.27 ]
今してるのはもろWEBサーバのコードの話だけどね

313 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 09:13:54.93 ]
プログラム板はソケットをlistenするコードは一切禁止なの?

314 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 10:21:31.71 ]
node.jsに関して言えばム板にとってスレ違いじゃない話題*も*出来る

315 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 18:29:51.83 ]
>>309
ありがとう

316 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 18:44:17.42 ]
VERT.Xなら生産性が4割り増し

317 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 20:52:32.16 ]
nodeos.github.io/
面白そうではあるけどNPM管理以外は不自由そう

318 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 21:10:46.20 ]
>>317
Linux Kernelもnpmコマンドも使ってOSってどういうことなの

319 名前:デフォルトの名無しさん mailto:sage [2013/10/09(水) 23:40:00.86 ]
NPMをパッケージマネージャにした新しいLinuxディストリビューションを作ろうっていうのかね?
それともnode.js版Vagrantみたいなのをつくるのか?



320 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 15:44:00.80 ]
Rendrってどうよ? 使っているヤシ居る? ん? Rhino? Vert.xじゃねぇの?

321 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 15:53:19.67 ]
rendrは死ぬほど流行るべき。

ってツイッターで見た

322 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 15:54:31.19 ]
死ぬと流行るはどういう因果関係があって使ってるんだ?

323 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 16:04:10.68 ]
>>321
うひゃ〜 そうか 心強い。 ポチってみよ! Gruntから起動ってデバッグどうすんの?
ツイットでは、ちょっとしたパラダイムシフトのような事書いてあったが良くわからん・・・

324 名前:デフォルトの名無しさん [2013/10/12(土) 16:19:41.94 ]
>>323
クライアント側は普通にブラウザのデバッガが使える
サーバ側は最新版だとrendr/examples/*/Gruntfile.jsの110行目付近にある

args: ['./node_modules/nodemon/nodemon.js', 'index.js'],

args: ['./node_modules/nodemon/nodemon.js', '--debug', 'index.js'],

に修正してgrunt serverすればWebStromやEclipseでリモートデバッグ出来る
たぶんnode-inspector+ブラウザでもおk
rendr-app-templateには最初から--debug付いてたんだがなぜか外された

325 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 16:24:55.64 ]
sage忘れた
組込デバッガが使いたければこれでいける

grunt compile
node debug index.js

326 名前:774ワット発電中さん mailto:sage [2013/10/12(土) 16:30:48.23 ]
>>324>>325
ふむふむ、メモメモ。 WebStormでやってみよん。 ありがとん。
ちら見だが、Controllerの概念がBackbone.jsになかったけど、馴染めるかな? ModelとViewをコントロールって・・・
本来のMVCでね? なんで、Backbone.jsに無かったんだろ?

327 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 16:39:33.52 ]
RendrのコントローラはBackboneルータの先っちょでAPI叩く係

328 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 17:48:39.93 ]
>>324
無事00_simple動きましたん。 デバッグもOK ありがとん。
今までのように、ViewのeventじゃなくてControllerでやるのね、、、 Viewの肥大化を嫌ったのかな?
Meteorのカルチャーショックとは違うショックをこれから期待してマス。
アナログハード屋なもんで、なかなかWebAppは手ごわいん。
次のニュービジネスを何しようかワクワク!

329 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 18:16:51.04 ]
>>328
ちょっと違う
ViewじゃなくてRouterでやってたことをするのがController
router.navigate()でpushStateした時やURL直叩きされた時に
routes.jsに定義されてるController#actionが呼ばれてAPIを叩く
その結果で新しいModelやCollectionが作られてViewが作られて
レンダリングするのがRendrの基本動作
つまり画面(URL)遷移する時だけ最初に動くのがController
サーバ側MVCのControllerに近い



330 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 18:46:39.19 ]
>>329
ほよ thx その視点でトレースしてみます。 勉強になります。

331 名前:デフォルトの名無しさん mailto:sage [2013/10/12(土) 18:59:54.76 ]
URL変わらない時のイベント処理は今までのBackboneと同じでViewでする
フォームの処理とか始めると肥大化しがちなのも同じ
Backboneはシンプルでいいけど双方向バインディングのあるMV*版のRendrも欲しくなる






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<162KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef