+ JavaScript の質問用スレッド vol.125 +

■ このスレッドは過去ログ倉庫に格納されています
2018/02/18(日) 16:48:01.14ID:F2O3xW/S
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。


前スレ
+ JavaScript の質問用スレッド vol.124 + [転載禁止](c)2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1427008785/

(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです)
2018/03/16(金) 01:48:39.43ID:3NuYtiCt
で? 1ns遅くなるから、それがどうしたっていうの?
2018/03/16(金) 01:50:36.00ID:3NuYtiCt
速度も計測しないでパフォーマンスを語るな
2018/03/16(金) 01:54:10.20ID:WI9t6HcR
ライブラリの話はライブラリのスレでやれよ。jQueryはライブラリ。ほんと頭おかしい。
2018/03/16(金) 01:56:43.28ID:YNDSRT9f
>>184
まあ君の問題はそこだよね。自分が問題ないと信じることは問題ないと言い張るだけ。

ただjQuery厨の問題はそこではなく、既に書いたとおり、
問題になっていたとしても絶対に宣言型で糞遅いコードを書くことだね。
そしてjQueryを使ったらjQueryロックされてしまうから生で書きまくるわけにも行かんし。
結果、逃げ場がなくなるという。(対策が出来なくなる)

まあ、jQueryが嫌われているのも理由があるって事だよ。君は認めないのだろうけど。
2018/03/16(金) 02:11:12.60ID:3NuYtiCt
だからjQueryの速度で問題になってないって言ってるだろ
なんでその議論を無視して問題が有ることにしてるだか

こうやってお前の卑怯な手を俺がバラしてるから
続けても意味ないぞw
2018/03/16(金) 02:14:16.16ID:3NuYtiCt
jQueryは只のライブラリなので、一行ぐらいの単位で
DOM APIを使ったコードと混ぜることができる。

jQueryを使って取得したものに対して、DOM APIで処理したり
逆にDOM APIで取得したものをjQueryで処理したりできる。
2018/03/16(金) 02:20:00.48ID:3NuYtiCt
jQueryとDOM APIが混ぜて使えることの例を出そうか?

DOM APIで取得したDOM要素に対して、jQueryのcssメソッドで色をつける例

$(document.querySelectorAll('li')).css('color', 'red');

jQueryで取得したものに対して、DOM APIのstyleで色をつける例

$('li').each(function() {
 this.style.color = 'red';
});

同様にJavaScriptのmapメソッドを使って色をつける例

$('li').get().map(function(el) {
 el.style.color = 'red';
});
2018/03/16(金) 02:24:42.26ID:3NuYtiCt
DOM API と jQuery で同じイベントハンドラを共通で使える例

var btn = document.getElementById('button')
btn.addEventListener('click', handler, false);

$('#button').on('click', handler);

function handler(e) {
 alert(e.target.textContent);
}
2018/03/16(金) 02:27:53.77ID:YNDSRT9f
>>188
だからそれは問題になるときもあるんだよ。
君がやっているコードの規模ではそうならないだけで。


ああそれと、俺は君を飼い慣らしてやろうと思っている奴だから、
他の連中よりは比較的風当たりはマシなはずだぜ。
(追い出すのではなく、有効活用しようとしている)
君がコードを書いて回答すること自体は俺は評価している。
ただなあ、ちょっとピントがずれてるんだよ。
だから君をちょっと教育して、もうちょっとマシな回答が出るようにしたい。
前から思っているけど、君には明らかに「大規模コード」の経験が足りてないんだよ。
だからそれをやれと本当に何度も言っている。

君は数行のコードにフォーカスしていて、それは十分出来ている。
だけどそれがプログラミング上問題になることはないんだよ。その辺を理解できていない。
数行のコードを綺麗に書く技術と、数千行のコードを纏める技術は別物なんだよ。
君には後者の視点が全くない。だから回答がちぐはぐになっている。

だから、騙されたと思って、マジでちょっとでかいの書いてみ?多分世界が広がるから。
そしたら今の君がずいぶんトンチンカンだったことも分かるだろうし。
2018/03/16(金) 02:30:26.59ID:3NuYtiCt
>>192
> だからそれは問題になるときもあるんだよ。
> 君がやっているコードの規模ではそうならないだけで。

俺だけじゃない。世界の大部分が問題にならないっていったろ
大部分っていうのは全部じゃない。
俺と同じことを言うな。

お前が言ったことじゃない。俺が言ったことだ
大部分は問題にならないと
2018/03/16(金) 02:31:33.13ID:3NuYtiCt
>>192
> 前から思っているけど、君には明らかに「大規模コード」の経験が足りてないんだよ。
> だからそれをやれと本当に何度も言っている。

説得力がない。まず行動を起こせ
俺に経験が足りないと口先だけでごまかすことは行動じゃない
まずお前がコードを書け
大規模経験者ならではだとわかるコードをな
2018/03/16(金) 02:33:06.37ID:3NuYtiCt
>>192
> 数行のコードを綺麗に書く技術と、数千行のコードを纏める技術は別物なんだよ。
> 君には後者の視点が全くない。だから回答がちぐはぐになっている。

なんだ、大規模なコードを書いたことがないのはお前じゃないかw
関数一つやファイル一つで、数千行書くのは大規模なコードとは言わない
大変なだけなコードだ

大規模コードの開発者は、数行のコードの集まりで
数千行のコードを作るんだよ。

そんな事も知らないのか?
2018/03/16(金) 02:36:27.96ID:3NuYtiCt
例えばjQueryのコードだって、1万行を超えている
https://code.jquery.com/jquery-3.3.1.js

お前の定義では大規模なコードになるだろうが、
ソースコードを見てみろ
https://github.com/jquery/jquery/tree/master/src
それぞれが数十〜数百程度の短いコードのファイルがたくさんある
関数一つで見れば殆どが数行から数十行だ
それらをビルドでくっつけることで1万行を超えるコードにしてるんだよ。

数行のコードと数千行のコードで書き方が違うって
それはお前が大規模なコードの経験がないだけだ
2018/03/16(金) 02:44:10.09ID:3NuYtiCt
つーか、自分が思う大規模なコードのプロジェクトの一つでもあげたら?
どれも数行のコードの集まりでできてるだろうさ

俺から大規模なコードのプロジェクトを一つだしてあげよう
JavaScriptではなくRubyだが
https://github.com/gitlabhq/gitlabhq

gitlabは大規模なコード中でもコードの品質が高いものだ
数行のコードの集まりでできてるぞ。ほとんどの関数はかなり短い
2018/03/16(金) 02:59:42.90ID:YNDSRT9f
>>196
だからそれは既に言ったが、それは初心者でも読めるコードでしかないんだよ。
それをいくら読んでも今の君以上には上達しない。

てゆうか君がどうしたいのか俺にはさっぱり分からない。
上達する気があるのなら、俺がオススメするのは「大規模コードを書くこと」であって、
それは君自身がやらなければならないことだからいくら俺を煽っても意味がない。
俺を信じないのも君の自由だ。

コードの組み方にも色々あるのだけど、ライブラリみたいに平べったいコードばかり読んでても駄目なんだ。
いや、読むこと自体は悪くはないが、同じタイプのコードを何度読んでも駄目なんだ。引き出しが増えない。
だから今の君は平べったくないコードを読まないといけないのだけど、君にはここら辺の話も通じないだろ?
まあ君が上達すれば俺が今何を言っているか分かるだろうさ。どうするかは君の自由で。


ちなみに俺はjQuery厨を追い出そうとしているのではなく、改心させようとしている。
つまり、教育することで「jQuery使えばいいってわけではないんだな」と悟らせ、
結果的にjQuery厨を除去しようとしている。どうも食いついてこないのだが。
2018/03/16(金) 06:26:31.44ID:BwOzlEBR
極論質問される度にライブラリ作って、『それは「run()」で済むよ』という回答があったとして
それは単純に考えて一番スマートな解決策とも言えるわけだけど、
こういう場で人に教えるにあたっては不味い点もあるということは分かるだろう?
2018/03/16(金) 06:45:55.51ID:wiFqjHxe
今は人の作った便利なものを使いこなす能力のほうが求められている
2018/03/16(金) 08:54:53.91ID:P/rQTlLY
今日はjQuery厨がpythonスレをrubyコードで荒らしてるクズと同一人物であることが分かったな。性根が腐ってるわこいつ
2018/03/16(金) 09:38:50.80ID:3NuYtiCt
>>198
だから理由かけって、
お前はこうなんだ!って言うばかりで、
なぜなのかその理由がまったく書かれてない
説得力ゼロなんだよ
2018/03/16(金) 09:59:11.44ID:3NuYtiCt
それから勝手に俺が大規模コード書いてないような
こと言ってるが書いてるからなw
これもいつもの思い込み、決めつけ

一つのファイルで1万行超えるクソコードを再設計して最終的に
半分以下まで減らしたし(半分までで終わりな転職したから)
一人でやってるプロジェクトでも今数えたら4000行以上のものがある
(俺は数千行程度で大規模コードとは思わんが、お前がそう思うんならそうなんだろう)
2018/03/16(金) 12:14:01.27ID:onINssaa
荒らしに構うのも荒らし
2018/03/16(金) 15:50:58.94ID:TUkBbR8G
初歩的なことですみませんが教えてください

Javascriptのアプリ作成でnpmとかbowerとかいうのを使うみたいなんですが、
コマンドを実行するとnpm_moduleというディレクトリとbower_componentsというディレクトリに数百ディレクトリ+数千ファイルが出来上がって怖いです
アプリ使ってくれる人がサイト見るたびに数千ファイルダウンロードとかやってられないと思うんですが、これ全部アップロードしないとダメなんでしょうか?
2018/03/16(金) 15:59:32.49ID:v2UHyxUE
>>205
webpackとかparcelを使って一つのファイルに纏めて使うよ。
2018/03/16(金) 17:12:36.12ID:TUkBbR8G
>>206
お早いご返信ありがとうございます
容量100MB超えていてどうなるかと思ったんですがwebpack試してみたらbundle.jsは1kb程度になったので一安心です
2018/03/16(金) 18:51:16.30ID:LwLXDjpx
せっかくモジュールで分かれていて各ファイル毎にキャッシュが効くし
HTTP2とかにしたって選択して必要なものからプッシュで送っていくことができるようになってるのに
そういうメリット全部殺して1つに纏めるとか愚の骨頂だな
2018/03/16(金) 19:01:47.25ID:CkZdro5L
parcelは知らんがwebpackは好きにカスタマイズできるぞ
2018/03/16(金) 20:48:33.09ID:YNDSRT9f
>>203
お前がそういう設定なのはお前の自由だが、誰も信じないよ。
お前が言っているような、
jQueryを使えば全てハッピー、コードも綺麗になるし問題は全て解決!なんて事には全くならない。
だからこそフレームワークが乱立しているわけでね。(それが上手くいっているかはさておき)

jQueryを廃止したがっている連中もかなりの数いて、ググればいくらでも出てくるだろ。
そしてそれもある程度妥当な意見なんだよ。これはちゃんと認めないと駄目だ。

君は「俺が正しい、お前が間違い」という言い方しかしないが、そういうことにはならない。
Web的民主主義では、各自が各自なりの解決策を考えて実行している。
そういう流れがあるってのは、一定数の支持を得ているから。
勿論jQueryを使い続けている奴もいるし、君がそうしたければそうすればいい。
2018/03/16(金) 20:49:22.17ID:YNDSRT9f
ちなみに教育方針について言うと、
たった数行のコードも書けないような>>77に対して、ライブラリを勧めるのは確かに間違っている。
それだと、いちいち引っかかる度に聞きに来るのか?となるだろ。きりがない。
少なくとも数行のコードは自分で書けるようにならないと話にならない。
美しくなくてもいいが、ちゃんと動くコードを自分で書けないと駄目なんだよ。まずはそこからだ。
逆に、その程度は書けるというのなら、質問者自身がそれを証明する必要がある。
大前提としてここは匿名掲示板なのだから、自分が何者かは全て投稿で決まるんだよ。
だから数行で書けることについて「一番いい方法」を単に聞くのは、
数行のコードも書けない馬鹿なクレクレ君だと言っているようなものだし、実際そんな扱いだろ。
書けるのなら、「俺はこう書いてみたが、どうもしっくりこない。もっと別の書き方がないか?」と言って
コードを出せば済む話であってね。

だから質問の仕方なりの回答をするのは極めて妥当で、
逆に、未熟者扱いされたくなければ、ちゃんとそうだと相手にも分かるような投稿をしないと駄目なんだ。
お前にはそういう、コミュニケーションする上での大前提ってのが欠けてる。だから話が空回りする。
再度言うが、あの質問に対してライブラリでの回答は不適切だ。


あと技術的観点で言うと、厳密に言えば、filterも_.differenceもシャローコピーを返すから
> ある配列から別の配列に存在する要素を削除する
事にはならない。
ただ実際はシャローコピーでも問題ない事が多いし、お前らも区別してないようだけど、
本当はこういうところをキッチリ詰めていかないと駄目なんだけどね。
とはいえそもそも質問者も区別できてないし、いちいち言う価値もないから放置だけどね。
2018/03/16(金) 22:44:40.31ID:3NuYtiCt
>>210
> jQueryを使えば全てハッピー、コードも綺麗になるし問題は全て解決!なんて事には全くならない。

誰がそんなこと言ったの?
少なくとも俺は言っていない。

じゃあ誰が言ったのか?それはお前だよ。
お前が「jQueryを使えば全てハッピー、コードも綺麗になるし問題は全て解決!」
って言ってるんだよ
2018/03/17(土) 00:31:20.97ID:aeZymY+8
バカらしい。小学生か
2018/03/17(土) 00:37:27.50ID:6ii9LbbD
馬鹿なんだろう。結局思い込みだけで話しをしてることが
明らかになったし説得力がまったくない
2018/03/17(土) 06:28:16.90ID:4z7ucg85
>>212
人からどう思われるかが大事なことだぞ
君が世界の中心じゃないんだから
2018/03/17(土) 08:28:24.74ID:6ii9LbbD
>>215
ちゃんとコミュニケーション取れるようになれよw
そんな話してないだろ
2018/03/17(土) 12:36:52.16ID:WrjdvOAL
>>216
残念な奴
2018/03/17(土) 20:18:12.54ID:p3K11CC1
このスレおもしれえな
2018/03/18(日) 00:12:29.89ID:S4y5HTPK
>>212
jQuery厨は池沼です!って自己紹介乙。
お前はそういうところが駄目なんだよ。

いいかい?今このスレにjQuery厨は君しかいない。
そしてその君が小学生レベルの論理でドヤ顔をしている。しかも>>117に続き2回目だ。
どうやら君にはこれが切り札らしい。
それを見て、他の人がどう思うかだよ。

君が何をしたいのかさっぱり分からないのだけども、もしjQueryを布教したいのなら、
そんな幼稚な考えでいることを示したら、完全に逆効果だよ。
jQueryを必死で肯定している奴はこんな馬鹿しかいない、と取られてしまう。

>>104はよく書けているし、全くその通りだよ。
そしてここは、最後に言った奴が勝つ場所ではなく、
双方が持論を勝手に述べあい、読者がどっちが正しいか勝手に判断する場所だ。
賢く振る舞うってのも重要なんだよ。


大体お前、自己矛盾にも気づけてない馬鹿だろ。
>>196の論理に依れば、どんな大規模コードでも数行の関数の固まりだから読める、とお前は言う。
ならば、どんな長文でも単文の固まりでしかないわけだから、長文を読めないお前は矛盾するだろ。(>>134)
単文が読めれば、後は繰り返すだけなんだろ?
長文内部で論理を構成する技術なんて、存在しないんだろ?

プログラミングも同じなんだよ。
末端の関数を小綺麗に書くのと、それらを組み合わせて巨大論理を構成する技術は別物だ。
お前はここら辺を全く理解できてない。
そして、こんな事はいちいち俺が指摘しなくても他の連中も分かってる。
それで、俺と君の言い分を見比べて、どっちがマトモっぽく見えるかだよ。
2018/03/18(日) 00:28:09.12ID:Sr1iY1Ai
>>219
コテハン付けてくれ
2018/03/18(日) 00:45:19.99ID:QAeUSVF3
どうでもいい書き込みをしたいだけのやつ
VS
俺は(jQueryで)回答したいだけ
2018/03/18(日) 00:49:32.07ID:QAeUSVF3
> 末端の関数を小綺麗に書くのと、それらを組み合わせて巨大論理を構成する技術は別物だ。

別物だというのなら、なおのこと、
巨大論理(何そのオレオレ用語?)は今する話題じゃないな

末端の関数を小綺麗に書く話(質問者の質問自体が小さな関数の話なんだからしょうがない)を
している段階で、巨大論理しってるかー、巨大論理しってるかーって言われても
今その話関係ないですよね?で終わり

巨大論理の話したいならネタふれや。俺はそれにも対応できる。
まあオレオレ用語使ってる自体で、経験ないってわかるけどな
2018/03/18(日) 01:06:09.89ID:QAeUSVF3
> >>196の論理に依れば、どんな大規模コードでも数行の関数の固まりだから読める、とお前は言う。
> ならば、どんな長文でも単文の固まりでしかないわけだから、

↑上記は間違い。

× どんな大規模コードでも数行の関数の固まりだから
○ どんな大規模コードでも数行の関数の固まりにするんだから

お前の超巨大なクソコード関数が、勝手に小さな塊になるわけじゃない
俺を含めたプロは小さな塊に"する" のだから当然読める
2018/03/18(日) 03:54:52.94ID:QAeUSVF3
巨大論理くんは、明日俺が見るまでに巨大論理のネタフリしておくように
2018/03/18(日) 20:04:10.88ID:S4y5HTPK
>>222
日本語でおk

というかやっぱりお前は馬鹿なんだよ。どうしてそういう話になっているのか、
またそれが明らかに技術用語ではなくてただの日本語だとも理解できないんだろ。
それが君が「長文を読めない理由」だ。君は論理を追えてない。日本語能力にも問題がある。

君がjQueryにこだわるのは君の自由だが、
他の人が怒っているのは、君の回答は質問者の為にならないから。
ピントがずれてるから、長期的には本人の為にならないんだよ。
だから君は邪魔者だとされ、他の人は君を追い出そうとしている。
俺は君の回答する姿勢だけは認めるから、君を有効活用しようとしている。
君がピントがずれている理由は俺には明確に分かるから、修正を試みている。
それで君が有効な回答が出来るようになれば、追い出そうとしていた奴らにとっても利益だろ。

というのは既に俺は言ったし、それ以前に読み返せば分かるだろ。
君は以前から話が複雑になったら定期的にサマリを求めるが、それは君が論理を追えないのを隠す為。
それは君が馬鹿だから。俺の話は終始一貫しているのだが、君はそうだとも気づけない。

プログラミング言語と自然言語は別物だが、この点に関しては同じだ。
君が77から始まる一連の流れ(約150レス)を追えないのは、君の頭の中の論理スコープが150レス分以下だから。
だから話の発端等がスコープ外になってしまって、君にとっては何がなんだか分からなくなってる。
そしてそのたびに君は定期的にサマリを求める。それは例えば以下もそうだろ。
> 長文で読みにくいなw (>>134)
日本語を読めないのを隠す為に、読みにくいということにして短く書き直すことを求めている。
実際こう言われたら3行サマリを出す奴が多いから、君はこのやり方を覚えたんだろう。
だけどそれは君が気づいていないだけで、普通に話に付いていける人にとってはウザイだけ。
俺も何度も「それは既に言ったが」と言ってるだろ。
君の頭が悪いのは君の責任だ。話について来れなければ、分かるまで何度でも読み返せ。
それに対して他人の努力を求めるのはお前の傲慢だよ。お前が気づいていないだけでね。
2018/03/18(日) 20:04:34.68ID:S4y5HTPK
見たところ、お前の頭の中は4レス分くらいしかワーキングメモリがない。
だからそれ以上の論理を組まれると読めなくなっている。
これは普通の人よりはかなり馬鹿で、話が通じないキチガイだと取られて当然だ。
君の戦闘力が4だとすると、俺や他の人の戦闘力は150よりは上って事になる。それくらい差がある。

頭の中で論理を追えなくなったら読めなくなるのはプログラミング言語でも同じだ。
だから「必要論理スコープ」が小さくなるようにコードを書け、というのが最近の作法で、
具体的には「狭いスコープ」「短い関数」であり、上位レベルでやると「粗結合」「OOP」になる。
これ自体は悪いことではないんだが、問題は、この結果、
頭が悪いままのやつが淘汰されないことと、全く鍛えられないことだ。

マラソンを走れる奴がジョギングするから余裕があるのであって、
ジョギングしかできない奴がジョギングしてもそれはいっぱいいっぱいでしかない。
良いコードは能力値に余裕がある状態でないと書けない。
だから上達する為には能力値を上げることも一つの鍵であり、
これには限界近くまで負荷を高めないといけない。
電卓ばかり使っていたら計算能力なんて高くならないのは当たり前の話だ。
自分に計算能力がなかったら、自分で鍛えるしかない。
だから基礎の基礎の部分では敢えて苦労しろというのも当たってはいる。
2018/03/18(日) 20:05:25.33ID:S4y5HTPK
馬鹿な君が書いたコードは、確かに短くて、君みたいな馬鹿でも読めるコードなのだろう。
これ自体は悪いことではない。
ただ問題は、実は粗結合はオーバーヘッドもかなり伴う、ということ。
俺が思うに、実行効率で10-100%、コード量で20-50%悪化する。
だからどこまで密結合で組み、どこから粗結合にするかはちゃんと設計しないといけない。
全面粗結合で書いたコードは簡単でいいが、逆に言うとそれだけが取り柄なんだよ。

クラスベースのHTMLについて、反対している奴はいないだろ。
これは当たり前の話で、HTML/CSS/JavaScriptの全てが見通し良くなるからだ。
ところがこれは難しいとも言われてるだろ。この理由も簡単で、
クラスを通してHTML/CSS/JavaScriptが密結合してしまうからだよ。

ただ、この程度の密結合なら、常人でも扱える範囲だ。だから「良い」とされているわけであって、
逆に、超人しか扱えないレベルなら、「そんなん使えるかボケ!」となる。
だからHTML/CSS/JavaScriptの世界は緩やかにクラスベースに移行していく。(てか今既にそうだが)
そして君はそれに付いていけない。
理由は君の頭の中のワーキングメモリが一般人比で著しく足りないから。つまり馬鹿だから。
だから俺はまずそれをさっさと増設しろ、それがお前の為にもなる、と言っている。

少なくとも、常人程度のワーキングメモリは持っておかないと駄目なんだ。
いろいろなところで付いていけないから。君が長文を読めないのもこれが理由だよ。
お前は今、淘汰されるべき側にいる。それを自覚しろ。
2018/03/18(日) 20:05:58.50ID:S4y5HTPK
例えて言えば、お前の脳には400MBのRAMしか積んでないんだよ。
だからお前はその中でやりくりしているし、その世界しか知らないから、不自由を感じれない。
ところが俺たちは15GB積んでいて、400MBじゃ話にならない事も知っている。
それだけの違いがある。これがいろいろ話が通じない根本の理由だよ。

鍛える為には、日本語でなら、長文を何度も読んで読めるように努力することだね。
読んでいるうちから頭の部分を忘れているようでは話にならない。
JavaScriptでなら、「それなりに密結合した」大規模論理を書くことだね。
それは今君がやっている、ただ単にくっつけただけの平べったい論理構成ではだめだ。
とはいえ、JavaScriptのコードは確かにその類が多いのも事実ではあるが。
特にjQuery厨はそうなりやすい。これがjQueryの不味いところでもある。
(ただし既に言ったようにこれは使い方の問題であり、jQuery自体が不味いわけではない)

反jQueryの連中は、jQueryを使ってきていて、その中で様々な問題に遭遇していて、
環境が変わりつつある今、最早メリットよりもデメリットの方が上回る、という判断を自分でしている。
君は自分で判断する能力が無く、単に「みんなが使っているから」と繰り返すだけ。
まだメリットの方が上回るという見方ならさておき、君は何がデメリットなのかも理解できてない。
そこら辺がやっぱりズレてるんだよ。
マウント取りたがったところで、ちぐはぐさが痛いだけ。
もちろんその痛さを垂れ流すのも君の自由ではあるが。
2018/03/18(日) 20:11:12.49ID:QAeUSVF3
巨大論理くんキタ━━━━(゚∀゚)━━━━!!
2018/03/18(日) 21:22:28.27ID:4pVTUJ7V
SPAといい、話が読めてなさすぎるだろ。
話が読めてないのに長文書くから余計に主張の意味がわからん。
せめて話を読んでから長文書こうか。
2018/03/18(日) 21:35:20.52ID:QAeUSVF3
この長文、例のSPA君だったのかw
2018/03/18(日) 22:09:02.91ID:DLrLT5Ek
話が読めていないと言うのは簡単だわな
俺の気に入る話しかするな、受け付けんぞっていってるだけだが
彼はあれだけの分量で誠意をもって話をしてるんだから
今は間違いなく彼が話の中心
話を読めていないのは君>>230
誠意をもって適切な文量で返答しろ
2018/03/18(日) 22:15:46.55ID:vUL4g3CK
分量を書くのが誠意なの?
小学生の作文の宿題みたいで微笑ましいw
234デフォルトの名無しさん
垢版 |
2018/03/18(日) 22:36:53.46ID:iyRWagmN
凄まじい長文を書いても結局1ミリも世界を変えられてない事に気付いてるかな?
簡潔な言葉でブレイクスルーを生み出そう
2018/03/18(日) 23:48:36.93ID:S4y5HTPK
確実に言えることは、俺の4レスの意味を取れる奴と取れない奴がいること。
そして、読めない奴に限って「お前の文が悪い」としたがること。
これはプログラミング言語でも同じだ。

大規模プログラムがあったとして、それが読めないとき、
初心者は常に「コードが汚いから」と言うが、実際は「お前の頭が悪いだけ」だ。
今回もしかり。

お前らはそうやってずっと逃げてきているのだろうよ。
ただ、今後ともドキュメントは増える一方だし、読みこなす力も求められる一方だ。
2chの長文なんてリアルの論文なら序文程度にしかならないし、
お前ら普段からどんだけドキュメントを読んでないんだ?
これについてはマジで鍛えた方がいい。
今後のプログラマはドキュメントを読めないと話にならない。
BitCoinとかお前ら向きだと思うぞ。
http://www.kk-kernel.co.jp/qgis/HALTAK/FEBupload/nakamotosatoshi-paper.pdf
2018/03/19(月) 01:30:33.59ID:IXJ02QHJ
この人のコードめちゃくちゃっぽい
2018/03/19(月) 03:44:35.95ID:ODRLrMUT
>>235
いや、確実にお前の文が悪いだろw
2018/03/19(月) 03:48:23.82ID:oS5ZVaWO
誰が見ても文章力も技術力もjQuery厨のほうが上だぞ
2018/03/19(月) 09:22:07.05ID:I7PCjnkp
自演乙。
2018/03/19(月) 09:35:59.85ID:4ai5Y1Y0
>>232
違うよ。
伝わらなきゃ気に入るも気に入らないも無いよって言ってる。
こんな短い指摘も読めないのに長文書かないで。
頭の方で間違ったら軌道修正もめんどくさい。
2018/03/19(月) 13:08:19.65ID:NaLxsnO6
俺には伝わったけどな
242デフォルトの名無しさん
垢版 |
2018/03/19(月) 15:41:28.47ID:TkOvniX2
ajaxでロードした部分自体にその部分リロードするボタンを作りたいのですが、
ロードされた自身のアドレスを取得する方法ってありますか?
2018/03/19(月) 16:17:57.23ID:oS5ZVaWO
>>242
アドレスって?
2018/03/19(月) 18:06:01.48ID:4ai5Y1Y0
>>242
無いから、ロードするときに変数に取っとくかDOMの属性に追加するか、iframe使うぐらいしか無いと思う。
24580
垢版 |
2018/03/20(火) 00:29:38.27ID:324l/TnW
>>243
パスのことです不正確ですいません
>>244
ありがとうございます
なんとかしてみます
246デフォルトの名無しさん
垢版 |
2018/03/21(水) 08:18:24.90ID:Jgk+QaEd
>>234
JSとつきあってます
2018/03/22(木) 00:42:57.16ID:Nt7xdOfd
あんな長文書く人ってコードも汚そう
2018/03/22(木) 01:17:37.41ID:dvRHZkVu
巨大論理くんよりもjQueryアニキの方が
何倍も技術力上だと思うわ
2018/03/22(木) 01:49:14.93ID:q/Ja7+Ba
出来合いのライブラリ使うしか能がないのに?
2018/03/22(木) 01:52:14.51ID:dSkUklem
出来合いのライブラリを使う = ライブラリを使うしか能がないってことにならないよ
jQueryのプラグインも作れるし、オリジナルのライブラリも作れる。
てかそういう事言ってると、OSのAPI使うしか能がないとか言えてしまうじゃん
2018/03/22(木) 01:54:21.43ID:ZLe9Zabb
javascriptのライブラリって、chromeの特定のバージョンのバグ対策とか、そういう細かい処理が入ってるから
自分で作ってもゴミが出来上がるだけなんだよね
2018/03/22(木) 02:06:39.53ID:ZwEljJ1n
おいおいライブラリなんだから当たり前だろ。
そういうコードが書かれてるんだよjavascriptで。
そのjavascriptレベルの話をするスレで1ライブラリのAPIの話するって頭わいてんのか
2018/03/22(木) 02:24:37.77ID:dSkUklem
1ライブラリだって思ってるからダメなんだよ
お前の基準だとどのライブラリだって同じ1ライブラリ扱いにされてしまう

世の中には世界中で多く使われている品質が高いライブラリもあれば
個人が作ったそいつやその会社でしか使えないような覚える価値のないライブラリも有る

そういうのを取捨選択することも含めて
JavaScriptを使ったプログラミングなんだよ
2018/03/22(木) 03:18:04.61ID:q/Ja7+Ba
ライブラリの取捨選択の話はライブラリスレでやれ
2018/03/23(金) 22:47:59.71ID:AWuViNXC
動的に追加した要素がその下にある要素
に重なってしまうんだけどこれを解決するには
どうするのが一般的ですか?
2018/03/23(金) 23:55:42.74ID:5ABYeFvW
zindex
25780
垢版 |
2018/03/24(土) 09:48:45.54ID:25K2vopP
リンクをポップアップで開く系のjQueryプラグイン使ってるのですが
Biggerlinkでリンクをdiv要素に拡大させた部分をクリックすると通常ウインドウで
開いてしまいます

これをうまく回避する方法はありますか?
2018/03/24(土) 10:09:36.25ID:dypSsj7z
jQuery の質問は、web制作管理板のjQuery のスレへ、書き込んで
25980
垢版 |
2018/03/24(土) 10:18:17.73ID:25K2vopP
わかりました
誘導ありがとうございます
2018/03/24(土) 21:26:58.14ID:kGLcXuje
Node.jsについてですが、
変数がとっちらかるのが気になるので、
各種フレームワークみたいにアプリケーション全体を包括するクラスを作って、
(new Application()).start()
みたいな形で全てを起動したいと思います
各種モジュールも、クラスのプロパティに読み込みたいと思います
でも、こういうやり方をJavaScript界ではあまり見ない気がします
何故でしょうか?
2018/03/24(土) 21:30:51.46ID:kGLcXuje
const path = require('path');
const url = require('url');
const fs = require('fs');
const os = require('os');

みたいな形に、
いきなりグローバル空間にモジュールを入れた変数をごろごろ転がすのって
何か気持ち悪いです
クラスがしっかり管理して、
pathでなくて、this.pathやthis.modules.pathでアクセスした方がずっといいと思います
でも、何故JavaScript界ではそうしないのでしょう?
あほなのでしょうか?
2018/03/24(土) 21:39:57.05ID:lcHhOSrB
export覚えてからまた来てね。お疲れー
2018/03/24(土) 21:41:28.85ID:gBcMRATK
グローバル空間に転がしたところで同じ物を指すならそれで良いと思うけど。
クラスベースじゃなくてプロトタイプベースだから、それで良いというか良かったというか。
やりたいなら、クロージャ内に持たせればいいんでないの?
nodeの場合はファイル単位のスコープになってるから、別にconstで適当に放り出していいと思うけどね。

ただ、thisが指すものもコンテキスト次第だから、this.modulesはナンセンスな気がするよ。
modules.path = require('path')
とでもすればいいんだろうけど、それも実質
const path=require('path')だよ。
2018/03/24(土) 21:58:22.09ID:kGLcXuje
JavaScriptの一般的なやり方は、
コードの中に変数が出てきた時に
その変数がどこで定義したものなのか、
変数を参照しているコードだけでは分からないというところがイケてないのです
アプリケーション側で用意した変数なのか、
モジュールを読み込んだ変数なのか、
それともローカル変数なのか、
変数を参照しているコードだけを見ても分かりません
しかしクラスがアプリケーション全体を管理するやり方だと、
ローカル変数なら単体でそのまま書かれているし
それ以外の特殊な変数ならクラスのプロパティとしてアクセスするので、
変数記述部分からすぐに分かります
イケてますね?
2018/03/24(土) 22:01:57.95ID:4aJ86AfP
>>261
> みたいな形に、
> いきなりグローバル空間にモジュールを入れた変数をごろごろ転がすのって
> 何か気持ち悪いです

そのコードを書いたのはお前だろ?
つまり気持ち悪いのはお前だよ
2018/03/24(土) 22:02:30.84ID:4aJ86AfP
>>264
> JavaScriptの一般的なやり方は、

それはお前のやり方だろ?
イケてないのはお前だよ
2018/03/24(土) 22:03:52.55ID:4aJ86AfP
自分でクソなコード書いておいて
このコードはクソだー!って叫んでる
なんて愚かなのだろうか
ばれないと思ったか?
2018/03/24(土) 22:16:15.36ID:gBcMRATK
>>264
何を言ってるかいまいちわからんが、メンバ変数が持てないから悪いって言ってるのかな?
それは、Javaで言うimport xxxx.yyyy.zzzzした、zzzzも同じようなもんだと思うが。
向いてないから辞めたら?
2018/03/24(土) 22:18:35.05ID:4aJ86AfP
JavaScriptでグローバル変数が使えなくなって
もう何年たつっけ?10年?
2018/03/24(土) 22:27:38.17ID:vYyJGm6o
>>264
import/export
2018/03/24(土) 22:33:41.82ID:4aJ86AfP
JavaScriptって今いちばんイケてる言語だよな
272デフォルトの名無しさん
垢版 |
2018/03/25(日) 05:49:43.12ID:f5QmO5hi
>>264の件ですが
モジュールを全てクラスの属性にしてしまうと
jQueryとのバランスが美しくなかったりといまいちなことが分かりました
それに全てを一つのクラスにするのは、
コードをモジュールにするのと大差ないといえばありません
一番不満なのは、変数宣言や初期化の場所がとっちらかってることと
エントリーポイントが分かりにくいことなので
・変数宣言と初期化は、コードの先頭(require処理の後ろ)にまとめて置く
・エントリーポイントはmain関数にまとめる
・main関数はコードの末尾で呼び出す
としたら、
まぁクラス化しなくてもいいかと思える感じになりました
ありがとうございました
2018/03/25(日) 06:04:58.03ID:PARYDGAE
「Node.js超入門、掌田津耶乃、2017」を読めば?

実は、Node.js だけでは面倒くさいから、それだけでは作らない。
Express + Express Generator フレームワークを使う

Node.jsは、Ruby で、Sinatra を、full scratch で書くのと同じ。
Express + Express Generatorが、Rails と同じ

だから先に、Rubyをやれば、フレームワークが理解しやすい
2018/03/25(日) 13:04:49.34ID:i/c6IfGH
>>272
意味不明
jQueryって只のライブラリだよ?

ライブラリをクラスでどう使うよ?
クラスの中で使うでしょ。
単にDOM操作をjQueryで行うだけだよ

あんたが思うバランスの良いコードを
単にjQueryつかえばいいだけだよ
2018/03/25(日) 15:20:48.68ID:PARYDGAE
Node.js & Express From Scratch
https://www.youtube.com/watch?v=k_0ZzvHbNBQ&;list=PLillGF-RfqbYRpji8t4SxUkMxfowG4Kqp

YouTube に動画ある
2018/03/26(月) 14:08:14.54ID:BLJCbSgW
>>264
変数名で特定できるようにすればいいじゃん
2018/03/27(火) 02:13:06.47ID:xwwIbvCL
今のカーソル形状って取れるんだっけ?

やりたいことは「ポップアップ内の文字選択も出来るようにしたい」なのだけど、
かなり大きめのポップアップも出ることがあるので、今はポップアップ自体の移動を出来るようにしていて、
この結果、ポップアップ内の文字選択が出来なくなっている。(動いてしまうから)
今のカーソル形状が取れれば、テキスト用カーソルの時だけ移動しなければいいだけなのだが。

document.body.style.cursorには反映されてないところまでは確認した。
2018/03/27(火) 19:46:53.41ID:xwwIbvCL
テキストノードのテキストへの当たり判定って出来ない?

カーソル形状は単純には取れないようなので、(第一のガン)
mousedown でどこで押されたかを確認するようにしたのだが、
そもそもテキストノードは e.target に入らないので、(第二のガン)
親エレメントで受けるしかなく、そこから走査するしかない。
この場合、Element.getBoundingClientRect() を使って e.clientX 等と比較することになるが、
Nodeにはこのメソッドが無い。(第三のガン)
結果、テキストノード上のテキストへの当たり判定が出来ない。
(なおいちいち当たり判定しても、
文字列が行の途中で終わっているときに対応できない。---(A)
この場合、ブラウザは正しく文字の真上だけ文字選択カーソルにするが、
自前で走査すると文字列が終わった画面右の方でも当たりの判定になってしまう。)

これってマジ?
そうならAPIの不備だよね。経緯は色々あるのだとは思うが。
selection API (onselectstart) も試したが駄目だ。これも上記(A)の時に対応できてない。
こちらに見落としや違う方法での実装方法があるならご指摘よろしく。
希望としては、「文字の真上=文字選択カーソルの時は選択、それ以外は移動」としたい。
ブラウザが当たり判定をした結果の「今のカーソル形状」が取れれば一番いいのだが。
2018/03/27(火) 21:18:01.53ID:2xWg3hE6
そもそもポップアップのどこでもDnD可能にしていることが大間違い
もしブラウザの画面がそうだったら困るだろ?
ウィンドウには頭の部分にDnD可能なバーを付けるという「常識」があるのだから大人しくそれに従えばいいだけ
全面DnD可能にするのは動画窓くらいのもの
2018/03/27(火) 23:01:45.31ID:xwwIbvCL
>>279
> ウィンドウには頭の部分にDnD可能なバーを付けるという「常識」があるのだから
ウインドウはそうだが、俺が言っているのはポップアップだ。
ポップアップにタイトルバーを付けたがる馬鹿はいないだろ。

俺はいちいちタイトルバーを触るUIはダサいと思ってるんだよ。
カーソルの形が変化するのだから、今どっちのモードかは誰でも分かる。
「文字」の上でDnDすれば文字選択、「余白」でDnDすれば移動、というだけだ。
PDFで言う「選択」と「手のひらツール」の自動切り替えでしかない。

動画窓なんて全面移動でいいのだからタイトルバーなんて付けてる馬鹿はいないだろ。
というか、昔は付いていたが、だんだんと外れて来て、最近は本当に動画部分だけになった。
余分な物は表示するべきではない、というのは当たってる。
確かに今から考えると昔の画面は無駄だったろ。スマホ(画面が狭い)の影響かもしれんが。
まあ、上記俺のUIに慣れたら、タイトルバーなんてダサいと思うようになると思うよ。
そして、俺はWindows等も同じ方向に行くと思っている。

とはいえ、結局やっぱり取れないのか?
せっかく当たり判定を全部ブラウザがやってくれてるのだから、結果だけ欲しいんだが。
stackoverflowとかも見たけど、やっぱり出来ないみたいなんだよね。
2018/03/28(水) 06:35:30.31ID:wzVhfKIC
ダサさでは無く直感的なわかりやすさを重視すべき
それに今回はどちらにせよ動画の話みたいにはできないだろ
動画の件とは逆にどこでもDnDできちゃ不味いという話なんだから
どちらにせよポップアップにDnDできる領域を作らないといけない
まさか文字の隙間でDnDしたいわけではないのだろう?

テキストの部分触ってもDnDできなくて、その周りの空白部分でDnDできるとか分かりにくいし
それなら空白の代わりにDnD可能そうなバーを付けたほうが明らかに良いだろう?
まあ別にそのバーをデザイン上の問題でどうしても透明にしようが何れにせよ
テキストとは別にDnD可能領域をつけることでできるよ
2018/03/28(水) 08:56:15.21ID:wWS6mS4+
その直感の元ってwinやmacのウィンドウシステムやん。
新入社員がパソコン使えないとニュースになる時代、バーを見てドラッグアンドドロップできそう!って思ってもらえるかね。
スマホアプリにはd&dできるバーなんて無いぞ。
2018/03/28(水) 12:25:42.54ID:BY/B1K5J
>>280
TextNodeはDOMの仕組み的にElementじゃないからその手のメソッドは持ってないし、持つべきではない
普通に<span>とかのインライン要素で囲めば判定できる

ただ、1行選択する場合とかは余白からドラッグするのが一般的なので、使いにくい人もいるだろうね
スマホでもそんなUIを採用してる例はないし、長押しで移動モードとかの方がわかりやすいかもね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況