【node.js】サーバサイドjavascript 5【Nashorn】 (796レス)
【node.js】サーバサイドjavascript 5【Nashorn】 http://mevius.5ch.net/test/read.cgi/tech/1518528093/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
619: 613 [sage] 2021/07/31(土) 11:22:07.03 ID:A0amfNLA 皆さんありがとうございました。 最新のLTS版Node.jsを入れたらBigIntなリテラル(N)が使える様になりました。 どのようにUbuntu18.04に最新版をインストールしたかと申しますと。 1. npmでnコマンドをインストール 2. nコマンドで最新LTS版Node.jsをインストール 3. aptでインストールしていたnodejsとnpmをアンインストール(依存も解消) です。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/619
620: 615 [sage] 2021/07/31(土) 11:37:20.92 ID:tQlroryC NVM, n も、知ってるけど、 各言語ごとに、ツールの使用方法を覚えるのが大変 全言語で使用方法が統一されている、anyenv, asdf が良い。 最近はどの言語も、Docker が多い http://mevius.5ch.net/test/read.cgi/tech/1518528093/620
621: 613 [sage] 2021/07/31(土) 12:37:39.44 ID:A0amfNLA >>620 Node.jsでパッケージングされているプログラムだけで完結できるのに、 新しいNode.jsにする上で、 他のプログラムや仮想化に依存しなくてはいけない理由は何ですか? 仮想環境が便利だ等であれば別の話だと思うのですが。 私はC/C++、Java、Perl、JavaScript(フロント少々)使いで、 最近Node.jsに手を出し始めたのですが、 anyenvやasdfについては全く存じ上げませんでした。 それらを覚える事によって、 それらのラーニングコストを上回る恩恵を授かれるとは思いませんでした。 >>614さんのアドバイスから>>619まで行き着いた次第で、 シンプルに管理コストを抑えられるるのが一番だとも思っています。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/621
622: デフォルトの名無しさん [sage] 2021/07/31(土) 16:07:39.01 ID:nZmJDmGx 好きなもん使えばいい 俺もubuntuではaptでクソ古いNode入れてからnpmでn入れてnからlatest突っ込んでるよ http://mevius.5ch.net/test/read.cgi/tech/1518528093/622
623: デフォルトの名無しさん [sage] 2021/07/31(土) 17:22:45.59 ID:23Q0KlZH ruby 君の言うことを真に受けてはいけない http://mevius.5ch.net/test/read.cgi/tech/1518528093/623
624: デフォルトの名無しさん [sage] 2021/07/31(土) 19:12:03.00 ID:8Bi9zOKj Ubuntu-ltsのデフォnodejsが10.xだもんなあ オレの環境では動かない、とか言われても知らねえよ。NodeJS公式もサポートしないバージョンまでカバーできる訳ないだろうが http://mevius.5ch.net/test/read.cgi/tech/1518528093/624
625: デフォルトの名無しさん [sage] 2021/08/04(水) 17:08:54.13 ID:O4k/EVJC 「Electron」と「WebView2」はどう違う? 〜「Electron」の開発チームが解説 https://forest.watch.impress.co.jp/docs/serial/yajiuma/1342249.html http://mevius.5ch.net/test/read.cgi/tech/1518528093/625
626: デフォルトの名無しさん [sage] 2021/08/04(水) 19:09:25.30 ID:qrQ4Lnon >>625 ただの翻訳(かつ雑な簡素化)記事なのにその旨の記述がない 画像も元ブログからの転載(盗用)だけどクレジット無し 大手メディアでこれって大丈夫か? http://mevius.5ch.net/test/read.cgi/tech/1518528093/626
627: デフォルトの名無しさん [sage] 2021/08/04(水) 19:20:49.91 ID:L5LJfz6s 丸コピしたのとは違うと思うぞ 画像の方はアウト臭いな http://mevius.5ch.net/test/read.cgi/tech/1518528093/627
628: デフォルトの名無しさん [] 2021/08/24(火) 08:49:56.10 ID:YRe/N1mJ node.jsのconsole.logのpretty printをデフォルトでやめさせる方法ないのかな? このおせっかい機能すごくいらいらするのは俺だけかな? http://mevius.5ch.net/test/read.cgi/tech/1518528093/628
629: デフォルトの名無しさん [sage] 2021/08/24(火) 10:42:50.46 ID:5pgrc+RU process.stdout.write使え console.logはブラウザに寄せようと頑張ってるんやろ http://mevius.5ch.net/test/read.cgi/tech/1518528093/629
630: デフォルトの名無しさん [] 2021/08/24(火) 15:31:19.22 ID:qPWgCxGJ puppeteerを使ってるプログラムをwebpackでバンドルすると、distにはChromiumが無いからエラーが出ちゃうわ よく分からん http://mevius.5ch.net/test/read.cgi/tech/1518528093/630
631: デフォルトの名無しさん [sage] 2021/08/24(火) 18:06:53.00 ID:Ya+eWSVV Webサイトのコンテキストで動かしてるならDevToolsとセッション張れないから意味ないぞ https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#working-with-chrome-extensions http://mevius.5ch.net/test/read.cgi/tech/1518528093/631
632: デフォルトの名無しさん [] 2021/08/28(土) 10:29:55.37 ID:rJz23Izt nodeで作ってるapiがメモリ使用量1GBくらいでかなりベビーなんですけど ここら辺のパフォーマンスチューニングについての知見がまとまってるサイトか書籍ないですかね? http://mevius.5ch.net/test/read.cgi/tech/1518528093/632
633: デフォルトの名無しさん [sage] 2021/08/28(土) 14:06:05.96 ID:TLYe8gOd >>632 https://www.youtube.com/watch?v=hliOMEQRqf8 http://mevius.5ch.net/test/read.cgi/tech/1518528093/633
634: デフォルトの名無しさん [] 2021/09/01(水) 09:26:26.45 ID:J/+xOU5Y >>633 あざます! http://mevius.5ch.net/test/read.cgi/tech/1518528093/634
635: デフォルトの名無しさん [] 2021/09/06(月) 01:52:20.93 ID:B6t4Zwws Fastifyいいな http://mevius.5ch.net/test/read.cgi/tech/1518528093/635
636: デフォルトの名無しさん [sage] 2021/09/15(水) 19:03:06.18 ID:fHmj5hYp スクレイピングすると地獄へ落ちるって本当ですか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/636
637: デフォルトの名無しさん [sage] 2021/09/15(水) 20:01:32.00 ID:DvcCOYYc puppeteerのplaygroundでforループすれば任意の回数地獄に落ちられるぞ http://mevius.5ch.net/test/read.cgi/tech/1518528093/637
638: デフォルトの名無しさん [sage] 2021/09/18(土) 03:38:26.28 ID:YPBxfQEw スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか? 今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工 近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです 前者は膨大なデータを取得する必要があります 後者は10分から20分おきにアクセスすることになります http://mevius.5ch.net/test/read.cgi/tech/1518528093/638
639: デフォルトの名無しさん [sage] 2021/09/18(土) 04:59:36.02 ID:ZvozewrD マルチポストすんな http://mevius.5ch.net/test/read.cgi/tech/1518528093/639
640: デフォルトの名無しさん [sage] 2021/09/18(土) 18:16:18.88 ID:J85RgKD5 頭のおかしい人に以下のようなことを言われました >>基本、スクレイピングは営業妨害との戦い。 >>どの本にも、そう書いてある。 >>スクレイピングを推奨する本はない 具体的な書籍名を教えてください >>5ch は、マルチポスト禁止! >>同じ質問を、複数のスレや外部のサイトに書いてはいけない どこでそんなルールが決まっているのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/640
641: デフォルトの名無しさん [sage] 2021/09/19(日) 01:37:30.15 ID:k7BgVJB0 node初心者だけどnpmが脆弱性情報吐きまくってこわい http://mevius.5ch.net/test/read.cgi/tech/1518528093/641
642: デフォルトの名無しさん [sage] 2021/09/19(日) 13:46:28.11 ID:k7BgVJB0 ググったらauditはクソ設計みたいな記事が出てきた 無視して良かったんだね いままで膨大な時間を無駄にしてた…(´Д`)ハァ… http://mevius.5ch.net/test/read.cgi/tech/1518528093/642
643: デフォルトの名無しさん [sage] 2021/10/10(日) 13:43:36.36 ID:rC7NAnza なんか変な場所でエラー投げられてプロセスが止まると思ったら 依存Modの一つがPromiseコンストラクタのcallback内で非同期エラー投げて止まっていた そりゃrejectしないしcatchブロックにも引っ掛からんわどうすりゃいいねん http://mevius.5ch.net/test/read.cgi/tech/1518528093/643
644: デフォルトの名無しさん [sage] 2021/10/10(日) 17:42:53.02 ID:6Ldb4KuL そんな事は4,000年に一度しかないからヨシ! http://mevius.5ch.net/test/read.cgi/tech/1518528093/644
645: デフォルトの名無しさん [sage] 2021/10/10(日) 18:08:01.88 ID:aEbL1282 >>643 その依存モジュールを捨てる http://mevius.5ch.net/test/read.cgi/tech/1518528093/645
646: デフォルトの名無しさん [sage] 2021/10/10(日) 20:04:03.47 ID:rC7NAnza 最悪プルリク投げるかと思ってリポジトリ見たら消えてた 捨てて自分で書くわ http://mevius.5ch.net/test/read.cgi/tech/1518528093/646
647: デフォルトの名無しさん [] 2021/10/10(日) 20:07:36.51 ID:zb1mAGkH >>646 お疲れさん。ちな何て言うモジュール? http://mevius.5ch.net/test/read.cgi/tech/1518528093/647
648: デフォルトの名無しさん [sage] 2021/10/10(日) 20:11:13.74 ID:rC7NAnza 具体名は避けるけどProxy関連 自前のDNSBL作るのに使ってる http://mevius.5ch.net/test/read.cgi/tech/1518528093/648
649: デフォルトの名無しさん [sage] 2021/10/20(水) 02:52:30.75 ID:7Ch1Hu5l スクレイピングに興味があるのですが1時間に1回の頻度のGETだけで訴えられる危険があるって本当ですか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/649
650: デフォルトの名無しさん [sage] 2021/10/20(水) 07:42:40.20 ID:442/7USe マルチ http://mevius.5ch.net/test/read.cgi/tech/1518528093/650
651: デフォルトの名無しさん [sage] 2021/10/21(木) 01:45:51.47 ID:Z5+NocI4 17でStrcturedCloneの実装来るのか もうv8にある似たようなAPI使わなくてよくなるのな http://mevius.5ch.net/test/read.cgi/tech/1518528093/651
652: デフォルトの名無しさん [] 2021/10/25(月) 18:50:04.02 ID:xfFAFxQ2 パッケージ管理ツールのnpmで公開されている「UAParser.js」は、ユーザーエージェントの判定処理を 実行するJavaScriptライブラリであり、Facebook・Microsoft・Amazon・Googleなどの超大手企業を 含む1000以上のプロジェクトで採用されています。 そんなUAParser.jsがハッカーによってハイジャックされ、LinuxおよびWindowsデバイスを対象に暗号 資産採掘やパスワードの盗難を行うトロイの木馬が仕込まれていたことが判明しました。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/652
653: デフォルトの名無しさん [sage] 2021/10/25(月) 18:55:04.53 ID:WgjrPOfi GIGAZINEからのコピペだろうけどちゃんと引用元URL貼っとけよ http://mevius.5ch.net/test/read.cgi/tech/1518528093/653
654: デフォルトの名無しさん [sage] 2021/11/17(水) 15:53:34.41 ID:OJq8ALeu 上にもちょっとありましたが、レンタルサーバでnode.jsを動かすのって現実的じゃないもんなんですか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/654
655: デフォルトの名無しさん [sage] 2021/11/17(水) 16:00:07.09 ID:lSu1Xmea いや全然 上にある「レン鯖はPHP」ってレスは恐らく既に環境を構築済みで あとは実行する.phpを配置するだけのWebスペースを想定したレス http://mevius.5ch.net/test/read.cgi/tech/1518528093/655
656: デフォルトの名無しさん [sage] 2021/11/17(水) 16:22:49.28 ID:sYjDCVja node.js使えるレンサバってあるの? http://mevius.5ch.net/test/read.cgi/tech/1518528093/656
657: デフォルトの名無しさん [sage] 2021/11/17(水) 16:34:28.88 ID:lSu1Xmea >>655に書いたような実質Webスペースの共有レン鯖でも端末触れる一部では使えるよ 占有型ではもちろん使えるけど今なら間違いなくVPSのほうがいい http://mevius.5ch.net/test/read.cgi/tech/1518528093/657
658: デフォルトの名無しさん [sage] 2021/11/17(水) 17:46:17.02 ID:+3kxan1m 古き良きLAMP環境に拘る理由がないなら好きにしたら良い http://mevius.5ch.net/test/read.cgi/tech/1518528093/658
659: デフォルトの名無しさん [sage] 2021/11/17(水) 23:30:54.62 ID:YG2/9hEL >>656 昔ながらのFTPとかでファイル置くしかできないようなサービスならまずそんなもの導入されてないだろうな http://mevius.5ch.net/test/read.cgi/tech/1518528093/659
660: デフォルトの名無しさん [] 2021/11/25(木) 05:21:15.21 ID:HW7nta/v gulp4でejsをを使用したい + 別のタスクと記述方法を統一したいのですが どうしてもエラーが解消できないのでどなたかご教授頂けませんか?(exportsにオブジェクトを突っ込む方法) 古い記述方法では動作しますが、新しい記述方法ではどうしても動作しません。 色々ググったのですが、どのサイト(英語サイトも含め)も古い記述方法で書かれており困っています。 公式も古い書き方に記述されています。(ejsだけ新しい書き方に対応していない?) https://www.npmjs.com/package/gulp-ejs //old gulp.task('ejs', function() { // } 新しい記述方法では、どうしても下記のエラーが解消できません。 - The following tasks did not complete - Did you forget to signal async completion? また`ps aux`で別のプロセスも走っていないことを確認しており、別のgulpタスクも全てオフにした状態で デバッグしております。 関数の引数にdoneを入れてdone()で締めたり、return除いてみたり試行錯誤していますが、数時間ハマっています。 どなたら分かる方いらっしゃたらご教授お願い致します。 //new function ejs() { return gulp .src(srcPath.ejs) .pipe(ejs()); } exports.ejs = ejs; http://mevius.5ch.net/test/read.cgi/tech/1518528093/660
661: デフォルトの名無しさん [sage] 2021/11/25(木) 06:59:11.02 ID:nh0ZEMSE このエラーメッセージで検索すれば? それか、意味を考えてみれば? The following tasks did not complete Did you forget to signal async completion? もっと単純な例で、動くかどうか試してみれば? http://mevius.5ch.net/test/read.cgi/tech/1518528093/661
662: デフォルトの名無しさん [sage] 2021/11/25(木) 07:24:22.11 ID:QOEXsJ22 >>660 状況全く分からんが、JSのパーサーはややおかしい?所があって、returnの後はぶった切られる。 よって、 return gulp.src(srcPath.ejs).pipe(ejs()); と改行を無くして試す事を勧める。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/662
663: デフォルトの名無しさん [sage] 2021/11/25(木) 07:46:08.16 ID:88pS2ZzI >>660 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Lexical_grammar#automatic_semicolon_insertion http://mevius.5ch.net/test/read.cgi/tech/1518528093/663
664: デフォルトの名無しさん [sage] 2021/11/25(木) 08:25:42.47 ID:QOEXsJ22 >>663 これ return と yield (と後置演算子もか?)はパーサの仕様バグだよな? 直感的じゃ無いという意味で。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/664
665: デフォルトの名無しさん [sage] 2021/11/25(木) 08:37:10.78 ID:acYGqwrp 仕様だよ お前の直感がおかしい http://mevius.5ch.net/test/read.cgi/tech/1518528093/665
666: デフォルトの名無しさん [sage] 2021/11/25(木) 08:57:16.71 ID:QOEXsJ22 >>660 いや実際660はそうしてるだろ。俺も以前嵌った事があったし、 実際セミコロン必須の言語だとどこで切ってもいいから、660の書き方はよく見るよ。 俺はお前がおかしいと思うが。 結局これもMDNで説明するのに例外扱い("no LineTerminator here" 規則)になってるし。 統一された文法ではないよね。(=もっとましな仕様にする事も出来たし、実際他言語はそう) http://mevius.5ch.net/test/read.cgi/tech/1518528093/666
667: デフォルトの名無しさん [sage] 2021/11/25(木) 08:57:57.52 ID:QOEXsJ22 すまん分かると思うが 666 は >>665 宛 http://mevius.5ch.net/test/read.cgi/tech/1518528093/667
668: デフォルトの名無しさん [sage] 2021/11/25(木) 09:45:34.63 ID:6PNOZvLH >>666 その書き方よくみるというけど 1行で書けば見やすいのにわざわざ複数行で見にくくしている意図がわからない http://mevius.5ch.net/test/read.cgi/tech/1518528093/668
669: デフォルトの名無しさん [sage] 2021/11/25(木) 10:02:02.58 ID:QOEXsJ22 >>668 そりゃ、そうした方が見やすいと思う人がそうするだけだよ。 お前がそう思わなければしなければいいだけ。 ただ実際、660にある公式のコードもそうなってるだろ。 俺も個人的には横に長いコードを書くけど、一般的には縦に長いコードの方が多いと思うよ。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/669
670: デフォルトの名無しさん [sage] 2021/11/25(木) 10:13:11.42 ID:rnpiht7q returnの直後に改行してないからASI関係なくないか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/670
671: デフォルトの名無しさん [sage] 2021/11/25(木) 10:19:20.71 ID:QOEXsJ22 >>670 660の「新しい記述方法だと動かない」とされてるコードは return gulp で改行してる。 660内の公式はこれが出来ない事を知ってるから、 gulp.src(...) で改行してる。(ただしreturnはないが) http://mevius.5ch.net/test/read.cgi/tech/1518528093/671
672: デフォルトの名無しさん [sage] 2021/11/25(木) 10:26:17.55 ID:6PNOZvLH >>669 それは長い行を分けて改行しているだけ 一方で>>660の人は長い行にならないのに無意味に改行しまくり http://mevius.5ch.net/test/read.cgi/tech/1518528093/672
673: デフォルトの名無しさん [sage] 2021/11/25(木) 10:28:27.93 ID:rnpiht7q >>671 return gulp.src() ならreturnの後にセミコロンが自動挿入されるけど return gulp .src() ならgulpの後にセミコロンは自動挿入されないでしょ それよりfunction ejs(){}って名前がダメなんじゃないの? .pipe(ejs())で再帰になってる http://mevius.5ch.net/test/read.cgi/tech/1518528093/673
674: デフォルトの名無しさん [sage] 2021/11/25(木) 10:36:21.11 ID:QOEXsJ22 >>672 長さではなく、意味で切るんだよ。 >>673 > return gulp > .src() > ならgulpの後にセミコロンは自動挿入されないでしょ されて gulp が返されるはずだぞ。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/674
675: デフォルトの名無しさん [sage] 2021/11/25(木) 10:42:13.14 ID:6PNOZvLH >>674 意味で切るならgulpと.src()の間で改行を入れてるのは明らかにおかしい 無意味な改行だ http://mevius.5ch.net/test/read.cgi/tech/1518528093/675
676: デフォルトの名無しさん [sage] 2021/11/25(木) 10:42:35.39 ID:QOEXsJ22 >>673 すまん、674は間違い。 試してみたところ、確かに挿入されないようだ。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/676
677: デフォルトの名無しさん [sage] 2021/11/25(木) 11:42:21.71 ID:QOEXsJ22 >>675 相手するだけ無駄っぽいが、そういうのは物によるんだよ。 そうした方が見やすいと思う奴がそうするだけ。 return ウンコ製造器675号 .src(ケーキ) .pipe(胃) .pipe(小腸); .pipe(大腸); なら、675によってケーキがウンコに変わるのが見やすくなると思う奴もいるだろ。 (詳しくないが)gulpの場合は基本はフィルタで型が変わらないし、出発点はソースファイルに決まってるから、 return gulp.src(ソース) .pipe(フィルタ1) .pipe(フィルタ2) のケースが多いとは思うけど。 ついでに言っておくと、お前JSによくいる、やたら文法に拘る奴なら、止めた方がいい。 それだと全く進歩しないので。 上記の通り、まあどちらもいるわな、程度で進めていかないと、上達しない。 どちらが正しいとか、そういう問題ではない。 どうにもJS初心者は「改行を極める」「セミコロンを極める」とかになりがちのようで、よろしくない。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/677
678: デフォルトの名無しさん [sage] 2021/11/25(木) 12:57:12.37 ID:K4FLN1Dn んじゃ俺は括弧の後に半角スペースを入れるのを極めるわ。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/678
679: デフォルトの名無しさん [sage] 2021/11/25(木) 13:45:45.44 ID:R4fLO2Lj 必死過ぎて笑えるw http://mevius.5ch.net/test/read.cgi/tech/1518528093/679
680: デフォルトの名無しさん [sage] 2021/11/25(木) 14:09:48.85 ID:reZpBJt7 珍しく伸びてんなと思ったらこれだよ http://mevius.5ch.net/test/read.cgi/tech/1518528093/680
681: デフォルトの名無しさん [sage] 2021/11/25(木) 19:42:13.27 ID:b7JhAcnH .NET Standard が世界の中心と考えてる人でしょ 別スレで見た http://mevius.5ch.net/test/read.cgi/tech/1518528093/681
682: デフォルトの名無しさん [sage] 2021/11/25(木) 21:14:35.40 ID:QOEXsJ22 >>678 ゆとりにはそれがお似合いだね http://mevius.5ch.net/test/read.cgi/tech/1518528093/682
683: デフォルトの名無しさん [] 2021/11/25(木) 22:13:54.29 ID:HW7nta/v 610です。 仕事でレス遅くなりました。 >>673 ありがとうございます! このコメントからピンときて修正したら無事に動作しました。 超初歩的なミスでした、、 こちらの書き方は関数の中にejs(gulp-ejsオブジェクト)を書いても動作しましたが gulp.task('ejs', function() { } こちらでは関数に同じ関数入れたらまだタスク終わってないよと、動作しませんよね。(気づけば当たり前なのですが、、) function ejs() { } お騒がせしました。コメント頂いた方もありがとうございました! http://mevius.5ch.net/test/read.cgi/tech/1518528093/683
684: デフォルトの名無しさん [] 2021/11/25(木) 22:25:35.12 ID:HW7nta/v 誤 610です。 = > 正 660です。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/684
685: デフォルトの名無しさん [sage] 2021/11/25(木) 23:27:35.30 ID:nh0ZEMSE 漏れは、Ruby でも、パーサーの誤解釈を避けるため、 . を行末に置く a. b( ). c( ) http://mevius.5ch.net/test/read.cgi/tech/1518528093/685
686: デフォルトの名無しさん [sage] 2021/11/26(金) 01:34:21.64 ID:KdVwfKAT なんで Ruby が出てきた http://mevius.5ch.net/test/read.cgi/tech/1518528093/686
687: デフォルトの名無しさん [] 2021/11/26(金) 22:15:56.74 ID:FIwAqG/H スクリプト系は改行も終端になって駄目ね http://mevius.5ch.net/test/read.cgi/tech/1518528093/687
688: デフォルトの名無しさん [sage] 2021/11/26(金) 23:57:17.12 ID:MbvsChzk >>687 JavaScriptで駄目なのはreturnのみの行の時だけだよ return a .b() は駄目だけどこう書く人はいないから問題は起きることはない return a .b() なら大丈夫 http://mevius.5ch.net/test/read.cgi/tech/1518528093/688
689: デフォルトの名無しさん [sage] 2021/11/27(土) 09:09:57.67 ID:kX7QbhiL そういうのはコーディング時にいちいち気にするよりlinterでチェックだな。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/689
690: デフォルトの名無しさん [sage] 2021/11/27(土) 09:24:44.31 ID:LVgG7qhW >>688 それを知ってないと嵌るだけの無駄仕様だよ。 セミコロンなしの筆頭だったAirbnbも諦めたようだし。 > ASI contains a few eccentric behaviors, though, and your code will break if JavaScript misinterprets your line break. These rules will become more complicated as new features become a part of JavaScript. Explicitly terminating your statements and configuring your linter to catch missing semicolons will help prevent you from encountering issues. > https://github.com/airbnb/javascript#semicolons 他にセミコロンなしの有名ルール勢ってあったっけ? return 'qwerty' +'asdfgh'; とは書きたくなるだろ。書きたいように書けないのはよろしくないよ。今風ではないね。 セミコロン書くルールならASIなんて無い方がマシだし。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/690
691: デフォルトの名無しさん [sage] 2021/11/27(土) 09:32:19.66 ID:MtgsfYs/ 書き方にこだわりがあるならそうではない書き方と比べて◯◯の利点があると言わないと他人の理解は得られにくい。 好みだけの問題ならスクリプトの仕様に従うしかない。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/691
692: デフォルトの名無しさん [sage] 2021/11/27(土) 09:36:27.04 ID:TUbuKQsw 自分はなりませんねとしか http://mevius.5ch.net/test/read.cgi/tech/1518528093/692
693: デフォルトの名無しさん [sage] 2021/11/27(土) 09:41:13.68 ID:LVgG7qhW >>681 俺向けではないと思うが、 return 'qwerty' +'asdfgh'; の利点は見れば分かるとおり、インデントを揃えられる事だよ。 タグの方が分かりやすいかもしれんが一々引っかかると面倒なので止めただけ。 return '<div>' +'<span>'+ +'</span>'+ +'</div>'; だと最初のdivのインデントがずれるだろ。 まあ言うほどではないし、実際俺はこの書き方をしているが、出来れば return の後に改行したいね。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/693
694: デフォルトの名無しさん [sage] 2021/11/27(土) 09:42:13.87 ID:LVgG7qhW すまん693内681は>>691 http://mevius.5ch.net/test/read.cgi/tech/1518528093/694
695: デフォルトの名無しさん [sage] 2021/11/27(土) 10:25:26.66 ID:wIEauZJC お前ら何も考えずにPrettier使え それが今のデファクトだ http://mevius.5ch.net/test/read.cgi/tech/1518528093/695
696: デフォルトの名無しさん [sage] 2021/11/27(土) 11:22:05.56 ID:xgA8vuBV >>690 Airbnbがセミコロンなしの筆頭って頭腐りすぎたろ git時代に歴史改ざんしてもすぐにバレる 2012年にセミコロンの章が初めて書かれたときからAirbnbはセミコロン派だ https://github.com/airbnb/javascript/blob/cab510342f93791a7487d16258d06ff73edb4507/README.md#semicolons http://mevius.5ch.net/test/read.cgi/tech/1518528093/696
697: デフォルトの名無しさん [sage] 2021/11/27(土) 11:35:18.29 ID:LVgG7qhW >>696 ならAirbnbというのは俺の勘違いだな。 俺がJSを始めた2013-14頃、有名なコーディングルールが4つほどあって、Airbnbが一番トンデモだった(が、人気は一番という話だった) その中にはセミコロンを打つな、というルールもあった。誰か思えてないかね? なお俺はgoogleのルールが一番マシっぽいのでそれを参考にした。(こちらはセミコロンあり) http://mevius.5ch.net/test/read.cgi/tech/1518528093/697
698: デフォルトの名無しさん [] 2021/11/27(土) 11:43:32.92 ID:WAiK9igD >>697 どこだか覚えてないけど、確かにどっかでセミコロン打たないで、短文を1行に書くときだけセミコロン使うてなの見たか聞いたりした記憶ある。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/698
699: デフォルトの名無しさん [sage] 2021/11/27(土) 12:14:33.21 ID:LVgG7qhW 一応自分でも再確認しているところだが、 > Always use semicolons. (google) > Use them. Never rely on ASI. (jQuery) > あなたからセミコロンを奪おうとする反抗的な軍隊があるようです。でも確かに私達の伝統的な文化はまだ元気に生き残っています。だからコミュニティに従って、セミコロンを使いなさい!(Node) > https://qiita.com/takeharu/items/dee0972e5f39bfd4d7c8 npmのもかなりトンデモだった記憶があり、改めて確認すると、打つな派だ。 > ;(x || y).performAction() > ;[a, b, c].forEach(performAction) > for (var i = 0; i < 10; i ++) { > switch (state) { > case 'begin': start(); continue > case 'end': finish(); break > default: throw new Error('unknown state') > } > end() > } > https://www.w3resource.com/npm/npm-coding-style.php となると俺の勘違いはnpmという事になるが、npm==Nodeじゃねえのか?という疑問は発生する。Nodeはnpmからのフォークか? 多分俺が当時見たのは Airbnb, npm, jQuery, googleだと思う。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/699
700: デフォルトの名無しさん [sage] 2021/11/27(土) 12:30:57.21 ID:i1Pzoh/C NodeはRyan Dahlが始めてセミコロンあり npmはIsaac Z. Schlueterが始めてセミコロンなし IsaacはNodeの2代目リーダーだけどNodeではセミコロンを書いてた http://mevius.5ch.net/test/read.cgi/tech/1518528093/700
701: デフォルトの名無しさん [sage] 2021/11/27(土) 12:54:15.05 ID:XFyMXPdv セミコロンレスの強硬派として有名なのはStandard カスタマイズも許さない https://github.com/standard/standard http://mevius.5ch.net/test/read.cgi/tech/1518528093/701
702: デフォルトの名無しさん [sage] 2021/11/27(土) 13:40:28.79 ID:LVgG7qhW >>701 初コミット2015年なのにstandardと主張して他と違うルールとか、頭おかしいな。 とはいえ議論する時間が一番無駄というのは同意だが。 多分セミコロン無し言語出身者用のルールが一つは必要で、 それに向けてのstandard命名なのだろうけど、なんだかね。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/702
703: デフォルトの名無しさん [sage] 2021/11/27(土) 13:49:34.28 ID:MtgsfYs/ 文字列を「+」で繋げるのもうやめようよ。見にくいよ。 「´」(バッククォート)で括ればいいじゃん http://mevius.5ch.net/test/read.cgi/tech/1518528093/703
704: デフォルトの名無しさん [sage] 2021/11/27(土) 13:51:01.70 ID:NSUO7OXD >>703 このルール入れろ https://eslint.org/docs/rules/prefer-template http://mevius.5ch.net/test/read.cgi/tech/1518528093/704
705: デフォルトの名無しさん [sage] 2021/11/28(日) 09:28:43.85 ID:yQx61O6E javascriptならセミコロン無い方がいいかなぁ http://mevius.5ch.net/test/read.cgi/tech/1518528093/705
706: デフォルトの名無しさん [sage] 2021/12/14(火) 18:36:52.92 ID:R85W1UAs async/awaitってawaitしかしないから無駄じゃね? http://mevius.5ch.net/test/read.cgi/tech/1518528093/706
707: デフォルトの名無しさん [sage] 2021/12/26(日) 08:00:15.12 ID:iIGCgNg3 Promise, async/await で無駄なのは、デタラメ解説の数々、ほぼ全滅だろ、酷い惨状だねー。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/707
708: デフォルトの名無しさん [sage] 2021/12/26(日) 09:04:50.48 ID:S+a9i6vw それを言ったらWeb系言語は全部デタラメ解説で駄目だろ 初心者が情報公開の練習として解説を書くからそうなる http://mevius.5ch.net/test/read.cgi/tech/1518528093/708
709: デフォルトの名無しさん [sage] 2021/12/26(日) 10:12:00.53 ID:6ScHvZpk それはしゃーない、正確さにこだわりすぎて萎縮する方がデメリットが大きい 読む方が気を付けて取捨選択するしかない http://mevius.5ch.net/test/read.cgi/tech/1518528093/709
710: デフォルトの名無しさん [sage] 2021/12/26(日) 10:19:35.71 ID:jog3O69G c++とかjavaとか含めて進化してる技術の古い解説はことごとくゴミ化してるし一緒だわな http://mevius.5ch.net/test/read.cgi/tech/1518528093/710
711: デフォルトの名無しさん [sage] 2021/12/26(日) 11:04:07.34 ID:4h95DB/2 classは非推奨にして欲しい。 中途半端で使いにくい。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/711
712: デフォルトの名無しさん [sage] 2021/12/26(日) 13:04:22.56 ID:PmcDL+gd >>711 どういう所? http://mevius.5ch.net/test/read.cgi/tech/1518528093/712
713: デフォルトの名無しさん [sage] 2021/12/26(日) 13:40:10.35 ID:S+a9i6vw >>709 同意だが、C#はかなりマシ 一般的に上級者は初心者向けの説明なんて書きたくないものだが、 プログラミング自体について語りたい連中も多少はおり、そいつらを上手く取り込んでる http://mevius.5ch.net/test/read.cgi/tech/1518528093/713
714: デフォルトの名無しさん [sage] 2021/12/26(日) 17:59:34.28 ID:4h95DB/2 >>712 上っ面だけのクラスベース。 内容はプロトタイプのまま。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/714
715: デフォルトの名無しさん [sage] 2021/12/26(日) 18:08:44.18 ID:PnBrsUGe 上っ面といってもそこで整合とれていて内部の問題が表に現れないなら別に問題ないと思うが。 まぁ、中途半端というなら何かそういう部分が見えているということなんだろうが。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/715
716: デフォルトの名無しさん [sage] 2021/12/26(日) 18:30:25.89 ID:oeLmweY9 定期的に呟いてる人だから気にせんでいいよ http://mevius.5ch.net/test/read.cgi/tech/1518528093/716
717: デフォルトの名無しさん [sage] 2021/12/26(日) 18:50:24.76 ID:PmcDL+gd >>714 オブジェクト指向的センスが無いと言う事だね 今の時代、両方出来ないとプロだと厳しいと思うがね http://mevius.5ch.net/test/read.cgi/tech/1518528093/717
718: デフォルトの名無しさん [sage] 2021/12/26(日) 18:55:49.66 ID:S+a9i6vw プロトタイプの方が表現出来る空間が広くて、実際にただの糖衣構文でクラスを実装出来てるだけだろ クラスで閉じて使ってる限りプロトタイプの側面は見えないはずだが 混ぜて使うのってありだっけ?(class宣言した物にgetPrototypeOfとか) class構文の時にどうプロトタイプが配置されるか仕様で確定してないと駄目だと思うが、これってしてるのか? http://mevius.5ch.net/test/read.cgi/tech/1518528093/718
719: デフォルトの名無しさん [sage] 2021/12/26(日) 19:35:46.48 ID:kUhTwtcg GoやRustなんかの新しい言語がクラスベースのオブジェクト指向を採用しないご時世 時代遅れとなったC++やJava風のクラス構文を導入する必要はなかったわな TC39的にはES4で入れ損なったから悲願だったんだろうけど http://mevius.5ch.net/test/read.cgi/tech/1518528093/719
720: デフォルトの名無しさん [sage] 2021/12/26(日) 20:25:20.58 ID:M+F+5/6j プロトタイプベースのオブジェクト指向ってIDEや静的型付けと相性悪いのでは http://mevius.5ch.net/test/read.cgi/tech/1518528093/720
721: デフォルトの名無しさん [sage] 2021/12/26(日) 20:48:01.50 ID:S+a9i6vw >>720 仮にそうだとしても、IDEの都合を優先してプログラミング言語を簡素化するのは完全に本末転倒だろ 初心者専用のオモチャが欲しければScratchで満足しとけ http://mevius.5ch.net/test/read.cgi/tech/1518528093/721
722: デフォルトの名無しさん [sage] 2021/12/26(日) 20:54:53.04 ID:M+F+5/6j >>721 既存との互換を保ったまま機能追加されてるわけだから言語自体は簡素化されたのてはなく複雑化されたのでは それはさておき従来の機能が使えなくなるわけでもなく何が不満なのかわからない http://mevius.5ch.net/test/read.cgi/tech/1518528093/722
723: デフォルトの名無しさん [sage] 2021/12/26(日) 21:02:39.16 ID:4h95DB/2 >>718 してない。 だから細かい設定が解りづらい。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/723
724: デフォルトの名無しさん [sage] 2021/12/26(日) 21:18:20.64 ID:S+a9i6vw >>722 糖衣構文を導入した分言語は複雑化してるし、IDEも余計に対応する必要がある。 IDEを優先するなら何もしないのが最善。 (もちろん仕様を削れるのが最善だが、JSの場合はこれはかなり無理なので) >>723 仕様で確定してないのなら、混ぜて使う事は禁止だし、 クラスで閉じて使う分にはプロトタイプベースは見えないから問題ないだろ。 何を問題視してる? http://mevius.5ch.net/test/read.cgi/tech/1518528093/724
725: デフォルトの名無しさん [sage] 2021/12/26(日) 21:26:19.15 ID:PIvfFszt >>723 ECMAScriptの仕様書も読んだことない低脳が堂々と嘘を書くなよ ES2020の14.6.12 http://mevius.5ch.net/test/read.cgi/tech/1518528093/725
726: デフォルトの名無しさん [sage] 2021/12/26(日) 21:33:51.63 ID:PIvfFszt >>725 自己レス「ES2020の14.6.13」の書き間違い http://mevius.5ch.net/test/read.cgi/tech/1518528093/726
727: デフォルトの名無しさん [sage] 2021/12/26(日) 22:43:28.35 ID:M+F+5/6j >>724 そもそもプロトタイプベースの方が静的解析難しいからちゃんと補完できるIDE作るの難しいと思うよ 例えばプロトタイプベースでtypescript作れるかというと結局クラス宣言的な物を導入せざるを得ないと思う 構文解析なんかは大して難しい話ではない http://mevius.5ch.net/test/read.cgi/tech/1518528093/727
728: デフォルトの名無しさん [sage] 2021/12/26(日) 22:59:58.91 ID:vgGpFQt6 実際にTypeScriptはinterface導入してるし何も問題ないだろ http://mevius.5ch.net/test/read.cgi/tech/1518528093/728
729: デフォルトの名無しさん [sage] 2021/12/26(日) 23:27:54.98 ID:S+a9i6vw >>727 最終的に何が言いたいのかさっぱり分からんが、既に言ったとおり、 IDEの都合でプログラミング言語の仕様を決めるものではない。それは逆だ。 プロトタイプベースではIDEを構成出来ないからクラスベースを導入した、と考えてるのなら、上記の通り。 IDEの為にプロトタイプベースを廃止してクラスベースに一本化すべき、でも上記の通りだし、JSでは無理。 IDEの為にクラス構文なんてそもそも導入すべきではなかった、と考えてるのなら、それもありだし個人的には賛成だが、 一般論としては現在の、メジャー言語でほぼクラス導入済みの状況で、JSだけ不採用も、メジャー言語としては難しい。 GoやRustは今も今後ともマイナー言語でしかないし、勝手にやってろでしかない。 静的解析自体はクラスの方が簡単だろうけど、だからどうしたでしかない。 実行エンジンはあるのだから、実装難易度の上限は実行エンジンを実装する程度でしかなく、出来る範囲だ。 最悪、実行エンジンをそのままコールして結果を得る事も出来る。Flycheckとかそういう構造のように見えるけど。 ちなみにTSが型を導入したのも、IDEを作るためではなく、 プログラマが型を明示的に示す事によって、間抜けなエラーを静的に検出するためだぞ。 そこにIDEが勝手に乗っかっただけであって、IDEが無くとも型の導入自体は意味も効果もある。 型無し言語出身者は型をIDEでの補完をするための物だと勘違いしてるが、そうじゃない。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/729
730: デフォルトの名無しさん [sage] 2021/12/27(月) 00:11:53.01 ID:Btn3kp2t >>729 言いたかったこととしてはプロトタイプベースがクラスベースの機能包含しているとしても 静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ 実行エンジンを実装してもあらゆるパスが評価できるわけでないので宣言的記法の方に軍配が上がると思うが 実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの? flycheckってemacsのパッケージのことだと思うけどあれも静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ? IDEのためだけではないというのはその通りで、途中から略して書いてしまっているが >>720 ではIDEや静的解析といっている http://mevius.5ch.net/test/read.cgi/tech/1518528093/730
731: デフォルトの名無しさん [sage] 2021/12/27(月) 05:27:18.08 ID:5b2Vj92V >>730 > 静的解析のこと考えるとプロトタイプベースが必ずしもクラスベースのスーパーセットではないよねということ IDEの「実装」をプログラミング言語の「仕様」比較(スーパーセットかどうか)に含めるのがおかしい。 それは「○○は△△のスーパーセットではない。なぜなら『僕が』それを『実装』出来ないから」と言ってるのと同じだろ。 IDEは開発をサポートする道具であり、サポート対象はプログラミング言語だ。 よって、仕様上どんなに構文解釈が難しかろうが、必要ならやるしかないし、それだけだよ。 上下関係で言えばプログラミング言語の『仕様』が完全に上であって、 IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。 > 静的解析走らせてるだけで実際にJS評価してるわけじゃないでしょ? 俺が使ったのはGoだけど、見た目は実際にコンパイルを走らせてそれをアノテートしてただけ。 でも確かにこれが一番生産性が高いんだよ。 当たり前だが、コンパイラはエラー時には何行目の何文字目でこけた、という情報を持ってる。 だから静的解析が目的ではなく、ソースコード作成時にエラーを表示する事が目的なら、これでいいんだよ。 最大のメリットは構文解釈を自前で実装する必要がない事。 構文解釈機の再開発をやめ、本体コンパイラのエラー情報をより詳細に出す事にリソースを突っ込み、 IDE側はその詳しいエラー情報を解釈してアノテートするだけに徹する。 これで言語側の仕様変更に自動的に追従するようになる。 IDEの数だけ構文解釈機を再開発するのは手段が目的化してる。 > 実行エンジン内包する方式で宣言的記法と同等の静的解析できてる例ってあるの? Flycheckは外部から呼んでるだけ。でもそれでコンパイラが吐くエラー(=静的エラー)は全て検出出来る。 しかも自前の実装もなしだから、最も生産性が高い。 自前の構文解釈機でコンパイラ/ビルドシステム以上のエラーを検出する気なら、 それはIDEではなくリンターと呼ぶべきだが、 それが出来るのなら、コンパイラ/ビルドシステムにそのリンターを内包して、 IDEはそのエラーを表示する事に徹するのが最も生産性が高い。 IDEで構文解釈するのではなく、エラーを出来るだけ早い段階で検出して修正するのが目的だから。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/731
732: デフォルトの名無しさん [sage] 2021/12/27(月) 08:32:17.24 ID:Btn3kp2t >>731 > IDEの『実装』の都合をプログラミング言語側に押しつける事は出来ない。 なぜそうあるべきなのですか? 近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね? なぜか構文解析の話になっていますが意図してたのはintellisenseのような意味解析が必要な機能です プロトタイプベースの記法では解析のためにコードの実行パスを追いかけプロトタイプの設定箇所を検出しなければならないのに対して 宣言的記法であればスコープ内のクラス宣言を見ればだいたい事足りるので実装難易度は大幅に異なるかと http://mevius.5ch.net/test/read.cgi/tech/1518528093/732
733: デフォルトの名無しさん [] 2021/12/27(月) 09:13:46.85 ID:mFj7RPUl 今時プロトタイプベースがぁ、って言ってるのが時代遅れじゃねーの。 クラスベースじゃないからってRustやGoを出してるがそれらはプロトタイプベースですらないわけで。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/733
734: デフォルトの名無しさん [sage] 2021/12/27(月) 09:41:04.48 ID:VqPkBZyA >>733 >>719はクラスベースを時代遅れと書いたんだが ぶっちゃけオブジェクト指向が過去のものになってきてるのみんな分かってるだろ http://mevius.5ch.net/test/read.cgi/tech/1518528093/734
735: デフォルトの名無しさん [sage] 2021/12/27(月) 10:22:30.58 ID:5b2Vj92V >>732 > 近年の言語はサードパーティーのツール含めたエコシステム全体で生産性をいかに高めるかという観点で設計されることも多いと思うのですが 「多い」というのならまず具体的に名前を複数挙げてみろ。 出来なければそれは君の妄想だね。 > また、あなたの言う実行エンジンとは静的解析器の意味で実際にJSをevalするものではないということですね? 違うぞ。それは今の話に関係ない。(どっちでもいい) > 意図してたのはintellisenseのような意味解析が必要な機能です だから何?これも君の考えが間違ってる。 flycheckのやり方でも原理的にインテリセンスは出来るんだよ。 インテリセンスで出なかったキーワードだとコンパイルエラーになるのなら、 仮にコンパイラが無限に速ければ、ソース内の全キーワードで試せば、コンパイルが通るキーワードのリストは得られる。 実際こんな事をしてる物はないと思うが、構文解釈で100%絞る必要なんて無くて、 候補が数個程度なら全部試してエラーが出なかった物を出す程度でも十分実用的なんだよ。 今時emacsでもインテリセンスするようだから、そんなにIDEが気になるのなら、彼等のアプローチを確認してみるといいよ。 全言語向けに自前でやってる事なんてないと思うよ。 プロトタイプを自分で追うのが技術的に無理なら、evalさせてgetPrototypeOfやinstanceofを使って追えばいいだけ。 自前の構文解釈器でソースからデータツリー構築をする気だからおかしくなる。 それはevalすれば実行エンジン内に構築されるものでしかないのだから、完全に再開発だろ。 eval出来る環境があり、それが一番近道なら、やればいいだけ。 君は多分「生産性」を勘違いしてる。 むしろ再開発しすぎてるし。 現状どうなってるのか知らないのだけど、メジャーなIDE、 例えばVSCodeとかだとクラスベースならインテリセンス出来るが、プロトタイプベースだと無理とかなのか? 誰か使ってたら教えてくれ。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/735
736: デフォルトの名無しさん [sage] 2021/12/27(月) 10:51:32.02 ID:gEDfakwV ×クラスベース ○クラス構文 クラス構文で書いてもプロトタイプベースなのは変わらん http://mevius.5ch.net/test/read.cgi/tech/1518528093/736
737: デフォルトの名無しさん [] 2021/12/27(月) 11:21:14.15 ID:mFj7RPUl >>734 確かにクラスベースがってよりオブジェクト指向が時代遅れって感じだね。 JS自体は関数プログラミングもいける。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/737
738: デフォルトの名無しさん [sage] 2021/12/27(月) 11:22:05.04 ID:lxgQYw9b 言語仕様も分かってないIDEも使ってない部外者の素人同士が長文レスバって地獄だな http://mevius.5ch.net/test/read.cgi/tech/1518528093/738
739: デフォルトの名無しさん [sage] 2021/12/27(月) 11:54:45.10 ID:Btn3kp2t >>735 > 「多い」というのならまず具体的に名前を複数挙げてみろ。 例えばgolangやrustはコアチームがツール開発に積極的ですね ツールのチームがコア言語に対してフィードバックしていたりする > eval出来る環境があり、それが一番近道なら、やればいいだけ。 "構文解釈機" という言葉を使っているから静的解析を意図してるのかと思ったけど動的解析も含んで言っていたのね それで実用に耐えうる速度と精度が実現できるならそういうアプローチもありかもね それから別にIDEが自前で静的解析器を開発すべきなんて主張はしてないから藁人形論法はやめてくれ >>737 オブジェクト指向というか継承が忌避されてる気はする http://mevius.5ch.net/test/read.cgi/tech/1518528093/739
740: デフォルトの名無しさん [sage] 2021/12/27(月) 12:21:31.31 ID:VwNgBMvN オブジェクト指向ならではの筆頭が継承だから継承が忌避されてる=オブジェクト指向が忌避されてるってことよ OOPLが提供していた継承以外の特性の多く(カプセル化など)は抽象データ型から来ていてそれは時代遅れになってないし忌避されてもいない http://mevius.5ch.net/test/read.cgi/tech/1518528093/740
741: デフォルトの名無しさん [sage] 2021/12/27(月) 13:11:44.45 ID:+2NyFcdP クラスの定義だけど、 classとfunctionを混在した書き方でも問題ないの? http://mevius.5ch.net/test/read.cgi/tech/1518528093/741
742: デフォルトの名無しさん [sage] 2021/12/27(月) 13:40:18.86 ID:Uq9DqbRx >>741 混在した書き方っての次第だが class A {} A.prototype.x = () => {} a = new A() a.x() こんなのは当たり前に動くぞ つかまずは自分で試せよw JSなんかブラウザあれば動かせるんだからさー http://mevius.5ch.net/test/read.cgi/tech/1518528093/742
743: デフォルトの名無しさん [sage] 2021/12/27(月) 15:00:45.57 ID:5b2Vj92V >>739 > 例えばgolangやrustはコアチームがツール開発に積極的ですね それで、それらの言語のどの仕様がIDEの都合で採用されたものなの? > 藁人形論法はやめてくれ なら最初から分かるように主張しろ。 何が言いたいか分からないからエスパーして複数挙げてみただけ。 馬鹿は無視してきっちり自分の意見を書ききれ。 3行しか読めない馬鹿はプログラミングなんてどうやっても出来ない。 MDNその他のリファレンス見りゃ分かるが、そんな世界じゃない。 5ch程度の文にすら手こずるようではどだい無理だよ。 解釈が動的か静的かは意味無い。 出来るだけ早い段階でエラーを検出して修正したいだけであって、それが出来れば何だっていいんだよ。 その手段の一つが静的解析でソース作成時にエラーを表示する事であって。 でも、エラー表示だけなら、コンパイラやevalにぶち込めば出来るし、それをやってるっぽいのがflycheck。 構文解釈器を自前で作るとしても、クラス構文でもプロトタイプ構文でも、大して難易度は変わらない気もするが。 実際に問題になるのは、構文解釈そのもの、具体的にはJS的な様々な書き方でも問題なく動くパーサの構成だろ。 構文解釈後の親class/プロトタイプ追跡なんて辿ればいいだけだからアホでも出来る。 それで今時のIDEで実際どうなのか聞いたんだよ。 もしプロトタイプ構文ではインテリセンスが動かないのなら、何か理由はあるのだろうけど。 継承が忌避されてるのは、JAVAでは関数ポインタが使えず、同様の事をするためには継承をこねくり回すしかなくて、 それの残骸がデザインパターンなのだが、 結果、継承すべきでない局面での継承で酷い事になってるからだよ。 でも、継承すべき場所では継承した方がよくて、全部捨ててるGoはいちいち全部書かないといけないのが糞。 あれは1周目はまだしも、2周目以降でそのコピペされたソースにメンテコストがかかるから、先すぼみになると予想してる。 Rustはやってないから知らん。 http://mevius.5ch.net/test/read.cgi/tech/1518528093/743
744: デフォルトの名無しさん [sage] 2021/12/27(月) 15:36:34.22 ID:KDGmbGA4 何言ってるか分からない相手にエスパーして反論って藁人形そのもので完全に異常者 http://mevius.5ch.net/test/read.cgi/tech/1518528093/744
745: デフォルトの名無しさん [sage] 2021/12/27(月) 15:55:56.69 ID:h2/Ma5NI いい加減スレチだから他所でやってもらえんかね このスレ伸ばすにしてもnodeにScheduling APIが入ったとか普通にネタあるだろ http://mevius.5ch.net/test/read.cgi/tech/1518528093/745
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 51 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s