【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>629
ts2.1でtarget es5でも使えるようになったしな nodeって起動するだけでメモリ相当食うから、バージョンアップでさらに増えてないかが気になる
安いプランのVPSだとメモリ1Gとかだから >>631
node起動するだけなら7MBしか食ってなかったぞ? >>632
v8が起動するんだからそんな少ないわけないだろw >>633
こんな感じのようだが?
http://qiita.com/shouta-dev/items/09d7055329710684d9c7
> process.memoryUsage()
{ rss: 9019392,
heapTotal: 5115392,
heapUsed: 2658096 } そりゃnode.js内のメモリ消費量でねーの
ランタイム内のプロセスと実行環境自体のプロセスを混同させるような>>634もアレだがな
だからWeb屋は ちょっとしたサービス作って待ち受けするだけで普通に数百MBは食うぞ ちょっとしたサービスなら200MB台で済んでる気が >>637
うん、実際そんなもんだよ
サービスによりけりだけど単位は百MBにはなるね >>639
nodeやるなら512は実用的じゃないと思う
ssdならスワップ早いからなんとかいけるかもしれんが最低でも1GBは欲しい >>640
node起動するだけなら7MBしか食ってなかったぞ? nodeは依存関係の関係でアホみたいにモジュールロードあるからね >>641
条件は「nodeを起動するだけ」なんだからその程度だろうね。
>>642
そりゃexpressとか動かせばその分のメモリ食うさ
でもそれはrailsとかでも同じなわけで、なんのモジュールをロードするかとか
言ってない上、nodeを起動するだけのメモリ使用量しかわかるわけがない >>644
何も言い返せないなら黙っていたほうが良い 7MB君ってほんとうにおめでたい脳味噌してるんだな >>643
socket.ioのみの簡単なサービスですら200M越えるんだが?
君はどうやって使用メモリを調べてるのかな?ん?
linuxコマンドでも書いてごらん >>631の文脈からして何らかのサーバー立てるんだからnode単体の話をするのは空気読めてないよね >>648
おまえはVPS借りてnode動かすのに何のサーバーもたてないつもりかな?んー?
で?
検証用のコードと7MBの確認コマンド公開まだかな? 649はレス相手間違えた
この期に及んでnode単体という屁理屈で逃げてるやつは回答まだかな? >>647
たった5行でWebサーバーが書ける
http://engineer.recruit-lifestyle.co.jp/techblog/2015-06-22-node1/
httpモジュールを使っている分、nodeだけのメモリ使用量ではないが、
ps uのRSSの値は26000KB、つまり26MBだが? >>649
> おまえはVPS借りてnode動かすのに何のサーバーもたてないつもりかな?んー?
サーバーたてなくてもコマンド実行するという使い方もあるだろ? > nodeって起動するだけでメモリ相当食うから、バージョンアップでさらに増えてないかが気になる
> 安いプランのVPSだとメモリ1Gとかだから
>>631の文脈から言って、メモリを相当食う何かを動かしているのだろう。
だがそれはnodeの使用量ではなく、モジュールの使用量がほとんど。
nodeのバージョンアップでメモリ使用量が増えたとしても
大部分のモジュールの使用量は変わらないので、気にするレベルにはならない。 メモリの使用量を抑えようと思ったら何を使うのが一番いいんだろうな。
やっぱgoとか? v8ってandroidでも動くようにしてるんだよね。新しいバージョンのほうが省メモリの可能性ないかな。
android goとか出してるわけだし v8のignitionは省メモリ、スモールフットプリントのためだから可能性は十分よ 久々に延びてるから良い話題期待したもれが間違ってたし selenium使ってるんだけどnodeだとすんごい使いづらいな
他はpythonしか知らないけど 中学生でもランサム作ってるんだから
それくらいがんがれ Windows10のユーザーフォルダでnpmにてnode-notifierと言うライブラリをインストールしたのですが
ユーザーフォルダ以外でnode-notifierを呼び出しても見つからずにエラーが出ます。
これを解決するにはWinの環境変数でPATHを通さないとダメなのでしょうか?
それとも呼び出し時に何か指定すれば良いのでしょうか? >>666
グローバルインストールっのがあるんじゃ? 366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744
367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/
372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:???
Railsでシステム作って納品する
↓
Railsはマイナー、メジャーのアップデートが半年以内に必ずある
↓
客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく
↓
気づいてから1年以内に通知すれば、5年間無料保証ゲット
↓
つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな
376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS
>>378>>379>>375
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。 瑕疵担保責任(かしたんぽせきにん)
瑕疵担保責任のポイント
民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない
http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt
改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている
全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html
ポイント1:修補や損害賠償、契約解除の期限がなくなる
従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。
もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。 そのぶん金取るだけだよな
そんな主張もできない弱小は存在価値ないから他に吸収された方がいい >>670
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、有償で改修するだろう。
の間違いでは?
普通は不具合の修正に有償で対応する方を選ぶでしょ? app.jsみたいなフレームワーク固有のファイルって
どんな役割なのかもよくわからんし
何を書けばいいのかもわからないしすげえ苦手だ。
最低限何を書けば動くの? フレームワークのドキュメントに書いてあるんじゃないですかね…
書いてないなら使う価値がない(品質が水準に達していない) 触ろうと思ってサンプルプロジェクト作って中途半端に弄ってから半年経ったわ jQueryとかnode.jsとかデファクトスタンダードでみんなやってる感のやつはどうも食指が動かない
変わり者ですみません nodeは一部の変態しかつかってないだろ?
スタンダードとかないわ >>678
それでは変わったことをやっている人が
みんなやってるものをやれば良いのでは? んなこと言ってるくせに変わったものなんか使ってないんだろどうせ 自分から○○がやりたい!っていうのなら
それは前向きな意見であるが、
みんながやってるからやらない。
誰もやってないからそれをやるっていうのは
それをやりたいという意志がないので
後ろ向きな考え方だよ。やる気が無いといえる みんながやってるからやりたくない、はひねくれ者
気がついたらみんながやってることと違うことをやってた、てのが変わり者 javascriptとかいうデファクトスタンダードの権化を使うのをまずやめるべきだね >>676
async await使ってるならむしろどんどん触るべきじゃないのか。
俺はgoでサーバサイド書いてるからあえて使ってないけど、
全部jsでやるならkoaかも express使ってても自分でミドルウェア書きまくるわけじゃないからな
標準のやらpassportやら使うだけだからasync/await使えて嬉しいことはほぼない
結局エコシステム揃ってる方を使う >>691
koaってexpressのミドルウェア使えたはず。
だからエコシステム的には問題ない。
とは言えasync-awaitもところどころ詰まるところはあるのは分かる
(例えばarrayのmapに渡す関数としては使えないとか。)
でも今から使うならkoaの方かな。 expressのミドルウェア使うならexpressでええやん >>693
非同期処理を同期的にかける魅力には勝てない。 >>692
array.mapに非同期関数渡したいならrxjsで処理してtoPromiseすればおk >>697
いや。そもそもPromise.Allがmapと同義じゃんってわかったから
あえてrxjsは使わなくてもok まっ CORE ASP使っている身としては、koa2で十分なんだが、JadeからPugへの変更って必要だったのかえぇ〜? いまいちのような感じかする。
軽いCMSにkoa2は便利。 重いのもいけそうではあるが・・・ >>699
jadeもpugも一緒だぞ
商標の問題で名前変えただけで あんましexpressもkoaも使ってるぜーって情報発信してる人いない気がする。
知らないうちにブロだクションで動いてるんかな expressってwebアプリケーションフレームワークって感じじゃないからな
rubyでいえばrack相当でrails相当じゃないから表に出ない expressはnode.js標準に付いていてもおかしくない程度の軽いフレームワークだしな ぶっちゃけ、express使うような案件だとphpでよくない?っておもっちゃう >>708
おれもゲームサーバーでnode+socket.io使ってるけど、expressで配信するコンテンツってphpでよくね?ってパターン多い気がする
どうしても非同期じゃないと無理ってパターン以外は非同期のデメリットがでかすぎる
とくにDBがらみの単純な登録画面とかね
phpの数倍の開発コストかかるよ expressでdbアクセスなんてしてないな
bffとして使ってるから
node/expressの後ろのapi鯖はphpだったりrailsだったりjavaだったり でもphpって1requestが1プロセスで高コストだから同時接続数を稼ごうと思ったらnode.jsの方が良いんじゃないの?dbがボトルネックだから気にする必要はない? それにasync awaitつかえば非同期処理はかなり自然に書けないかな?
学習コストは高くなるかもだけど async/await使いたいけど、LTSになるまで待ってって言われてる(´・ω・`)
TypeScriptはコンパイルしたくないって言われた、、、 最終的にはアクセス増えたときのパフォーマンスの話になるんだろうけどそんなこと気にするレベルじゃない案件でわざわざ苦労してまでexpressでがんばる必要はないなと思う
必要な場面で局所的に使うのがnodeっていうイメージ >>716
むっちゃしんどかった。
goを学習してgorutineで書き直したわ。 express-resourceを使ってAPIサーバーを作りたいって考えているのですが
データベースへのアクセス手順を共通化したくなり、下記のようにしました。
class dbaccess {
constructor(db) {
this.db = db
}
index(req, res, next) {
console.log(this) // undefined
this.db.find({}, (e,r)=>res.json(r))
}
// 以下略
}
app.use('users', new dbaccess(db))
1 APIクライアントからの GET /
-> this が undefined になっていてエラーになる
2 下記のコードからのindex()呼び出し
var dba = new dbaccess(db)
dba.index(null, null)
-> thisの内容が表示される
何か上手い解決策はないでしょうか。 constructor内で
this.index.bind(this)でthisの束縛をすれば解決しませんか? >>720
お答えいただきありがとうございます。
それを全部のメソッドにやるのも何かしっくりこないので、
下のようにクロージャにしてしまったら何とか期待する動作になりました。
function dbaccess(db) {
let _db = db;
return {
index(req, res) {
}
// 以下略
}
}
クラスだと上手くいかないのがイマイチ納得できてませんけど。 >>722
それが問題ならアロー関数をつかえば解決します。自動でthisを固定するんで。 >>719
おいおい、変なことしないほうが良いぞ
もうちょっと調べるべきだろ?
他のプロジェクトでそんな書き方してるか?
昔やったきりで忘れたし今のやり方は変わってるかもしれないから
適切なアドバイスはできないがよ、他はもっと簡単な書き方してるだろ? >>724
http://qiita.com/kazusa-qooq/items/23926befcb87c0c7b26f
によると
req,res,nextの3引数を取る関数を作ればいいみたいね。
偶然にもクロージャーを使うというのは正解だけど
nextを省略してるってことは他のミドルウエアを後から追加したら
動かなくなる
こういうの見てるとtypescript使うべきって思う。
型でapp.useに渡すクロージャーを制約できるからこういう失敗がない。 722です
一応、最小限っぽいコードを書いてみました。
http://www.dotup.org/uploda/www.dotup.org1319642.zip.html
users.jsからdbaccessを利用していますが、ここをtags.js, articles.jsと増やしていきたいって考えています。
>>724
本家のサンプルも利用者のblog記事なども一通り見たのですが、
見つかるは全部関数なので、そもそもクラスでの利用を想定していないのだろうと当たりを付けて
影響なさそうなクロージャにしてしまいました
>>725
ミドルウェアの追加は想定していない、クライアントコードなので特に支障はないと判断してます
本音を言うと、ただ書き忘れただけなのですけど。 ちなみに、なんでクラスで書こうと思ったのかと言えば
クロージャとクラスのインスタンスが内部的には等価だと思っていたからです codepenとか使うかgithubに上げるかして欲しいわ。
正直zipでってなんかイャ ■ このスレッドは過去ログ倉庫に格納されています