1 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 21:35:23.66 ID:u/RqRVR/.net] 実際にJavaScriptを書いている人の情報交換所です。 プログラミング既習者専用です。初心者の方はご遠慮下さい。 玄人の方、歓迎致します。 (1) プログラミング既習者専用です。初心者の方はご遠慮下さい。(大事なことなのでry ここで言う初心者とは、3,000行のプログラムを動かすのにも苦労する人達のことです。 なお、JavaScriptの習熟度は問いません。 言語を問わず、3,000行程度なら楽勝であれば問題ありません。 (2) 初心者だと思える投稿は無視してください。初心者用スレは他に沢山あります。 (3) 質問スレではありません。特に初心者からの質問はガン無視でお願いします。 (4) 長文が読めない低脳はお引き取り下さい。 【リンク集】 https://developer.mozilla.org/ja/docs/Web https://msdn.microsoft.com/ja-jp/library/yek4tbz0.aspx (JavaScript) hakuhin.jp/js.html (逆引き) stackoverflow.com/ 他仕様書等のリンクは質問スレのテンプレを参照してください。かなり整備されています。 プログラミング既習者であれば、MDNとMSDNでほとんど事足ります。 ブログ等は間違いが多すぎるので、MDNのサンプルコードから出発することを薦めます。 逆引きなら上記hakuhin.jp、困った場合はstackoverflowが秀逸です。 【初心者用スレ】 JavaScript の質問用スレッド vol.118 (ム板質問スレ) peace.2ch.net/test/read.cgi/tech/1429634108/ ECMAScript デス 4 (ム板仕様スレ) peace.2ch.net/test/read.cgi/tech/1325448978/ 【超初心者用スレ】 JavaScript の質問用スレッド vol.127 (Web制作板質問スレ/頻繁に分裂中) peace.2ch.net/test/read.cgi/hp/1448293871/
2 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 21:37:27.08 ID:u/RqRVR/.net] [状況] Web制作板はIDが出ないのでアフィカス/teratailerが暴れている感がある。 「1〜10まで足す」みたいな質問にも回答が付くという奇妙さだ。 また、ライブラリ厨の意味無い布教活動も嫌がられている。 個人的には低脳アフィカスが一番の癌だと思うが、 奴らは印象操作が目的なので反論されても喚きちらすだけ。 もう超初心者スレとして分離するしかない。 回答する奴も初心者なのでデタラメだらけだが、あいつらにはそれでも問題ない。 明らかに間違っている事を正しいと言い張る馬鹿共を矯正する方法は2chにはない。 ム板の質問スレはIDが出るので、逆に言えばIDが出て困る奴はいない。 ほとんど流れていないが、質問すればWeb制作板と同レベル以上の回答は付く。 まともな回答を期待するのならこちらに投稿した方がいい。ただし回答が付くまで時間がかかる。 Web制作板の方はIDが出たら困る奴が「流れているスレ」として見せるために無理矢理流している感がある。 このため、上記のように、ただ単に無視すべき投稿にもレスが付く、どうしようもないスレになっている。 また、どうでもいい一般論を投げかけ、無理矢理流そうとしているものも散見される。 やりたい放題やられているわけだが、しかしその先には何もないように思えてならない。 何がやりたいのかはかなり疑問だ。ただ、止める方法もないので、分離するしかない。 仕様について厳密に詳細を確認したければECMAScriptスレがいい。 正直、他も含めてJavaScriptスレ住民の仕様に対するこだわりは異様だと思うが、 逆に言えば、厳密に議論したければ相手はそこにいる。 ただしそいつらは仕様にはすごく詳しいが、コードは記述していないらしく、 何が本当に問題なのかを実感できていない。 だから地に足のついていない議論になってしまう。 とはいえ、詳しいことは事実だ。だから仕様について正確を期すのならそこがいい。
3 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 21:38:21.73 ID:u/RqRVR/.net] 以上、どうしようもないスレばかりなので新しく「プログラミング既習者専用」スレを立てることにした。 現時点でまともな奴がほぼいないので、新しく訪れてくれる人を待つことになる。 気長な話になるが、やらないことには始まらないので、とにかく始めることにする。 3,000行についてだが、OAOOはもちろん徹底しているとして、 1,000行なら勢いで書いてしまえる規模だ。 ところが3,000行となると、内部構成をある程度マトモに設計していないと破綻し始める。 逆に言えば、内部設計を正しく行い、かつ実装できる人の目安として3,000行を楽々、とした。
4 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 21:41:36.09 ID:u/RqRVR/.net] とりあえず俺が話したい項目を挙げておく。 気になる物があれば勝手にレスを付けてくれ。 もちろん他の誰かが勝手に始めてくれても構わない。 俺も気になれば勝手に参加するし、どうでもよければ無視する。 使い方は基本的に他のスレと同じ、ただし初心者お断り、だ。
5 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 21:42:06.92 ID:u/RqRVR/.net] ・コーディングストラテジー peace.2ch.net/test/read.cgi/hp/1444186237/550 peace.2ch.net/test/read.cgi/hp/1444186237/562 JavaScriptに於けるコーディングストラテジーだが、単純には以下2つのどちらかだと思われる。 α. 安全重視、全箇所で型/値チェック。 β. 簡素化重視、最初に型チェック、以降は「型」までは確定、値については保証無し。 αは関数単位で抜き差しが可能。その点機能の追加/削除は楽だ。 各関数は型判定等を持つため複雑になるが、安全領域を管理する必要がない。 βは期待される型以外では何も考える必要がないため、その分関数の仕様が小さくなり、 デバッグが楽でバグも出にくく動作も速くなる。ただし、型チェックを既に通っているかを管理する必要がある。 ネットワークに於けるファイヤウォール内/外の管理のようなものだ。 基本的に関数毎の抜き差しはできない。型チェック部分+動作部分のセットでやらないと駄目だ。 だから関数単位での粗結合化はできない。 俺はβでやっている。 そして現実的にはβしかないように思えるのだが、どうか? 可能であれば直接本職の方々の意見が聞きたいが、 JavaScriptはソース見放題だから、企業のサイトのソース(=本職製)からの類推でもいい。 ダックタイピングを生かすのなら多分αじゃないと駄目なのだが、 俺は型システムに慣れているというのもあって、今のところダックタイピングの利点を感じられない。 αだと各関数で様々な型を処理しなければならず、これがバグの元になるので、 最初からStringならStringと決めうちで各関数を用意、Stringしか入力されないように上位階層で対応している。
6 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 21:42:37.17 ID:u/RqRVR/.net] ・プロトタイプの活用 静的クラスでは出来なくて動的プロトタイプでは出来ることを使って、何かできないか。 今思いつく中では、以下がある。 A. 動的プロトタイピング(__proto__の頻繁な変更) B. インスタンスツリー C. 親への透過的アクセス(親に動的に追加されたプロパティに対する透過的アクセス) Aは変更自体はやっているが、頻繁に変更する需要がないのでそれ以上試していない。 Bは現在試しており、見にくくなる以外の弊害はない。見にくさについてはデバッグ用環境を整えて対応した。 メリットはフィールド共有によるフットプリント削減だが、 しかしこれはあらかじめ共有すると分かっていれば静的クラスでも出来る。 デタラメに共有したりしなかったりする場合も、 共有する派生クラスと共有しない派生クラスを用意すれば、静的な場合は対応可能になる。 従ってどうしてもというのならやはり動的なものに限られてしまうのだが、これは需要がない。 Cは試したいところだが需要がない。 従って、仕様としては出来るが、実際の需要がなく、活用できていない。 他の活用案もあれば是非。
7 名前:デフォルトの名無しさん mailto:sage [2015/11/28(土) 21:43:22.54 ID:u/RqRVR/.net] ・ダックタイピングの活用 共通基底クラスを持つ場合、当然ポリモーフィズムできるとして、 ダックタイピングの場合は、共通基底クラスを持たなくても、共通の名前のメソッドがあればポリモーフィズムできる。 だからといっても、活用案がないので、事例があれば是非。