JavaScriptは消滅すべきだったよな

1デフォルトの名無しさん2011/11/08(火) 23:14:49.42
あの盛り下がってた時期に。

Ajaxとかいう技術のせいで再評価されちゃって、
結局使いにくいままjQueryとかcoffee scriptなるものを生み出してしまう。

680デフォルトの名無しさん2015/03/04(水) 16:18:06.85ID:mArZsUPF
ええ……巻き上げとか知らなかったわ
先頭宣言して状況次第で初期化時にダミーデータ放り込まないといけないとか
そこら辺の記事で褒め称えてるけどそれこそ大昔からのバグの温床じゃないですかね…

681デフォルトの名無しさん2015/03/04(水) 18:20:35.89ID:3cqSAZZu
巻き上げ自体はいろんな言語にあるし、普通だろ。
巻き上げっていうのは、スコープ内で宣言された変数はそのスコープのどこでも有効ということだから。
問題は巻き上げられてる変数が予めundefinedで初期化されていて、使用してもエラーにならないってこと。
まあでもその問題はJS入門者が数度引っかかる程度でそんなに大きなものでもないけどね。

varがゆるゆるなのは関数スコープだからってのもあって、理には適ってる。
例えば多重宣言ができる点も、普通に考えればバグの可能性を生むだけだが、
関数スコープだと例えば2つのfor文でiを使う際に、両方で宣言する書き方を許すのは必要。
まあそれらを全て否定して、わざわざループ変数まで関数の最初で宣言するのも自由だけどね。

682デフォルトの名無しさん2015/03/04(水) 23:14:34.28ID:/uWWye7B
ES6は進化した部分もあるけど、正直枝葉末節
むしろ、大きく退化したと俺は見る
今更古臭いクラス思想を持ち込んでどうするんだ?
es6は害悪だ

683デフォルトの名無しさん2015/03/05(木) 02:10:35.88ID:ZxoYMS6l
>>671
>読みやすいんだけど
パクられ易いのが問題だな。
重要なプログラムはソース丸見えで組みたくない。
HTML5版のグラディウスとかソース参考にしようと思って
コード探したけど消されてたし

684デフォルトの名無しさん2015/03/05(木) 02:37:16.29ID:PYCfZI4i
ES6にクラス思想なんて入っていないが

685デフォルトの名無しさん2015/03/05(木) 05:10:36.14ID:gzqC2V5Z
クラス指向をより書きやすくするための機能が入っただけだな(笑)

686デフォルトの名無しさん2015/03/05(木) 05:30:29.72ID:Gz4f4nXr
クラス思想を持ち込んだことによって、それらの機能が入ったんだろ
Javaの真似をしたようなスパゲッティなコードが量産されるんだろうな
シンプルにIf文やfor文で書けばいいのにわざわざ継承使いましたみたいな

687デフォルトの名無しさん2015/03/05(木) 05:36:06.10ID:n3NecQLR
perl5とperl6みたいな

688デフォルトの名無しさん2015/03/05(木) 05:51:23.95ID:uVNQvAMd
そもそもプロトタイプベースってのは最初から用意されたクラスシステムに縛られないってだけで、
自分もしくは環境が用意してくれるクラスシステムを自由に選んで使える柔軟性が売りなんだが。
クラス指向ってのが縛られたものか、構造化プログラミングの自然な考えからくるものかの違いしか無い。

689デフォルトの名無しさん2015/03/09(月) 14:57:43.90ID:MIZIuI1f
>>686
スパゲッティ・コードの使い方間違ってる。

690デフォルトの名無しさん2015/03/09(月) 21:58:09.70ID:lh4ZCMGK
>>689
何も間違ってない
クラスで継承使うと、あちこちに飛ばないと読めなくなる

691デフォルトの名無しさん2015/03/09(月) 22:04:42.23ID:O6a0ByiC
goto 使わなくてもスパゲティプログラム組めるのかお前w 凄いな

692デフォルトの名無しさん2015/03/09(月) 22:25:29.20ID:OkkpNooK
よかった、Javaのスパゲティプログラムは存在しないんだ

693デフォルトの名無しさん2015/03/10(火) 00:28:56.41ID:S70Q3a3F
>>690
手続き呼び出しするプログラムもスパゲッティ・コードかよw
ダイクストラさんもあの世でびっくりだぜ。

694デフォルトの名無しさん2015/03/10(火) 00:31:44.58ID:cMNbMZ7x
>>690
× クラスで継承使うと、あちこちに飛ばないと読めなくなる
○ 何を使おうと未熟者が作れば、あちこちに飛ぶコードか
長ったらしいコピペコードになって読めなくなる。

695デフォルトの名無しさん2015/03/10(火) 14:35:07.97ID:EoaEKENX
クラスや継承が云々と言うより、構造化が下手ってことだと思う。
それをスパゲッティと呼ぶかどうかなんてどうでもいいじゃない。
文系か!

696デフォルトの名無しさん2015/03/10(火) 16:44:12.26ID:GWDqHHzE
ミルフィーユプログラムというなら判る

697デフォルトの名無しさん2015/03/10(火) 17:05:37.11ID:Q0UX9V+j
javascriptのコード読む気まんまんだな。

昔、ちょっと使い勝手のいいストップウォッチとタイマーを作って出したら、
こんな程度のものさえ、たちまち韓国人がパクって行ってiPhonに出してた
という経験があるからな

698デフォルトの名無しさん2015/03/11(水) 11:58:46.95ID:HLm25YvU
まあWebは皆で作っていくって通念があって
Webベースで出す以上貢献しろよという圧力は感じる

699デフォルトの名無しさん2015/03/11(水) 12:09:29.80ID:3vrpdWk+
現行スレ

+ JavaScript の質問用スレッド vol.123 + [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1423915644/

700デフォルトの名無しさん2015/03/11(水) 12:45:31.76ID:Wt/f1P/G
いまだに消滅を待っている。

701デフォルトの名無しさん2015/03/12(木) 11:17:02.59ID:S2kvzV7/
wikipedia日本語版見たら、
スパゲッティ・コードにクラス継承がグダグダも入ってるw
英語版は入ってない。

702デフォルトの名無しさん2015/03/13(金) 00:52:15.28ID:Nejl4UKQ
ゲッティも進化しますからね

703デフォルトの名無しさん2015/04/13(月) 10:19:19.52ID:zw+Ot82j
昔はともかく今のスパゲティコードって可読性がほぼ死んでるコードのことなんじゃないの
ややこしい事してる部分には一行コメント書くだけでも大分違うというのに・・・

特に深い理由も見当たらないデザインパターンの乱用はやめれ
そこのお前配列に入れた関数彼方で呼び出してるけど入れる順番とか意識させるなや

704デフォルトの名無しさん2015/04/13(月) 10:29:21.00ID:zw+Ot82j
今はアンチパターンっていうのか
スパゲティもその一つに含まれるんだな

705デフォルトの名無しさん2015/04/22(水) 00:27:31.44ID:SIPVN6SR
聞きかじったIteratorパターンを組み込むな糞野郎って記事なら昔からあった

706デフォルトの名無しさん2015/04/22(水) 08:24:42.87ID:iwbaaLY9
>>705
普通に配列ならlength取れるが、iteratorはlengthが取れないので、
Googleの最近のサービスのようにイテレータにしてるものとは付き合いたく
ないなって思った。

707デフォルトの名無しさん2015/05/04(月) 14:55:57.83ID:SIApV9ej
牢獄民弾圧スクリプト

1. 牢獄回線を用意する(串、Tor、auなど)
2. 穴実のスレをブラウザで開く(投稿が反映されない924スレがおすすめ)
3. 本文を適当に入力する

4.以下のコードをURL欄に貼りつける
javascript:(function(){var interval=1000;var reloadWait=100;setInterval(function(){document.querySelectorAll('input[value="書き込む"]')[0].click();setTimeout(function(){window.stop()},reloadWait)},interval-reloadWait)})();

TorBrowserの場合はJavascriptを有効にした上で以下のコードをスクラッチパッドを開き (Shift+F4) 実行する
var interval=1000;var reloadWait=100;function start(){setInterval('main()',interval-reloadWait)}function main(){document.querySelectorAll('input[value="書き込む"]')[0].click();setTimeout(function(){window.stop()},reloadWait)}start();

708デフォルトの名無しさん2015/05/23(土) 11:09:59.61ID:37fDwYpl
>>706
×iteratorはlengthが取れない
○iteratorはlengthを取る必要が無い

709デフォルトの名無しさん2015/05/25(月) 02:54:49.53ID:Vc/SC45p
はぁ? length取れないで、
どうやってループすりゃいいんだよ!

ループというのはi=0から初めてlengthまで+1していくもんだろ。
俺にループさせろや。何がイテレータだ。
ループの文化をちゃんと守れ

710デフォルトの名無しさん2015/05/25(月) 17:34:45.99ID:2/V0nnt+
イテレータでコールバック間数呼んで
っていうのはもう慣れたけど
ループの中断をしたいときにいつも?ってなる

711デフォルトの名無しさん2015/05/25(月) 18:02:07.74ID:QDiyjGxR
ループの中断をしたい時点で
使う関数を間違ってるんじゃないかって思うが。

最近使いこなせるようになったからかな?
ループを中断したいと思ったことが
ここ最近全くないんだよね。

712デフォルトの名無しさん2015/05/26(火) 08:52:00.15ID:pOYKgSOy
callbackでfalseを返すとループ中断出来るだろ

713デフォルトの名無しさん2015/05/27(水) 08:07:54.18ID:lvaBWQ33
>>708
必要がないじゃなく、数量が知りたいのにナニイッテンノって言われてるの
わかってる?

714デフォルトの名無しさん2015/05/27(水) 12:10:22.04ID:TaajtfQl
javascript知らない(爆)けどコンテナの要素数返すメソッド無いの?

715デフォルトの名無しさん2015/07/17(金) 23:17:20.63ID:GZ2lmC/i
作者がホモデブなんだよなあ・・・

716デフォルトの名無しさん2015/11/22(日) 18:06:05.03ID:K/ZfNkUS
要素を列挙するのにプロトタイプたどるかどうかとかメソッドを含めるかどうかとかがまずめんどい

717デフォルトの名無しさん2015/11/23(月) 05:59:12.66ID:55nmBY/v
イテレート中thisがバインドされる対象が変わるのがね
内容物だったり呼び出し側のオブジェクトだったり
コールバックの書式によっても変わるしJSってほんとバカ

718デフォルトの名無しさん2015/11/23(月) 14:20:37.25ID:qqa6ydJw
((){})().bind(this);とか便利だけどな

719デフォルトの名無しさん2015/12/10(木) 20:11:01.21ID:Ti4G586p
>>717
変わらなくなる方法ができましたー。

いつまでも5年以上前の知識でいるなよ。

720デフォルトの名無しさん2016/02/17(水) 15:10:34.25ID:xSnGBxLA
つい最近marionette.js他複数のFW使ってるプロジェクトを触る機会があったけど相変わらずソース追い掛けづらい
どこで何を設定してるのかとか各項目がどのFWに関連付いててどういう風にいじればいいのかがサッパリ
RESTとかいってjavascriptで全部の処理をやらせる!なんて息巻いてる急進派見てると本気かよと思うね

やるんならORマッパー張りにクライアント側はもらったデータそのまま表示すれば全部解決みたいな形式にしてくれ
データもらってからクライアント側で加工するとか効率悪いってレベルじゃない

721デフォルトの名無しさん2016/02/18(木) 09:46:04.24ID:IWN3hz7k
>>720
本気どころか、REST API叩くに留まらず、node.jsでサーバサイドやOAuth認証、
更にはハードウェア制御までとその触手はどんどん伸びてるからね。

1言語で出来るのは強みだけれど。Google Apps Scriptも特別なメソッドを少し
覚えればすぐ使えるようにもなるし。

722デフォルトの名無しさん2016/02/18(木) 22:35:59.78ID:tR0iPhMZ
マジで戦慄するわ……
クライアントサイドで計算処理その他まで全部やるとかMVCモデルとかで今まで積み重ねた読みやすさのノウハウ全部投げ捨てるようなもんじゃん
一つの機能に必要な処理をあちこちに分散して書かないなんてのは基本中の基本だろうに

723デフォルトの名無しさん2016/02/19(金) 10:08:18.79ID:Eo4oUHSv
>>722
なにもわかってないじゃん。その飲み込みの悪さに戦慄だわ。

724デフォルトの名無しさん2016/02/20(土) 07:00:20.86ID:So/aG5Cz
>>720>>722>>721>>723で話の焦点違ってて草

725デフォルトの名無しさん2016/02/24(水) 06:45:08.46ID:QpGHGjXi
安価つけてたくせに前振りなく話題変えるとかよく分からんな
この業界だとそういうことする奴珍しくないけど

726デフォルトの名無しさん2016/05/01(日) 16:31:41.04ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
10

727デフォルトの名無しさん2016/05/18(水) 18:31:11.64ID:P0OfSdrr
>>1
まったくだ。厄介者としか見られていなかったjavascriptが
復権するなんて、
武蔵野市で好きにやっていた韓直人が
総理大臣になったようなものだ。

728デフォルトの名無しさん2016/05/18(水) 19:08:22.36ID:u7J2zmgl
それは遺憾

729デフォルトの名無しさん2016/12/22(木) 10:00:09.22ID:i/pZa1E8

730デフォルトの名無しさん2018/01/29(月) 10:51:18.13ID:dqsF0NY+
今までWPF Desktopで
・XAMLで画面作る
・データバインディングとEntify FrameworkでRDBと繋ぐ
・足りない部分をコーディング
という感じで業務アプリ作ってたんだけど

来月から仕事でjsやることになりますた。頑張ります!(このスレ読んで震えながら)

新着レスの表示
レスを投稿する