トップページ > プログラム > 2015年05月18日 > ezOKhhiH

書き込み順位&時間帯一覧

2 位/187 ID中時間01234567891011121314151617181920212223Total
書き込み数0000011221000000000000007



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
今までみた絶望的なソースコード [転載禁止]©2ch.net
【JavaScript】スクリプト バトルロワイヤル49【php,py,pl,rb】 [転載禁止]©2ch.net
Git 12©2ch.net

書き込みレス一覧

+ JavaScript の質問用スレッド vol.118 + [転載禁止]©2ch.net
88 :デフォルトの名無しさん[sage]:2015/05/18(月) 05:47:17.18 ID:ezOKhhiH
はい、>>86には目を合わせません
今までみた絶望的なソースコード [転載禁止]©2ch.net
116 :デフォルトの名無しさん[sage]:2015/05/18(月) 06:12:37.96 ID:ezOKhhiH
>>114
> 飛ぶ鳥跡を濁さず

濁してるのは、飛ぶ鳥の方じゃないですからw
【JavaScript】スクリプト バトルロワイヤル49【php,py,pl,rb】 [転載禁止]©2ch.net
518 :デフォルトの名無しさん[sage]:2015/05/18(月) 07:42:20.28 ID:ezOKhhiH
>>505
> js抜きのhtml5って何を指すの?

JavaScript以外の部分という意味なら、

HTMLの要素の定義
* 従来の要素の追加・削除・再定義等
* 新たな要素の追加 (audio要素、video要素、SVG等)
* マイクロデータ・マイクロフォーマット等
* コンテンツモデルへの変更(従来のインライン要素、ブロック要素に代わるもの)
* HTML解釈の厳格化(不正なHTMLの解釈の仕方の定義など)

CSS3
* 新たなプロパティ・セレクタ等
* ウェブフォント
* レスポンシブ(メディアクエリー)

こんな所かな?
【JavaScript】スクリプト バトルロワイヤル49【php,py,pl,rb】 [転載禁止]©2ch.net
520 :デフォルトの名無しさん[sage]:2015/05/18(月) 07:56:48.47 ID:ezOKhhiH
>>517
> 仮想DOMって本当に速いの?
速いというか、遅くないっていうのが正確な意味だと思う。

仮想DOMを使う場合の前提としてDOMに変更があるたびに
すべてのDOMを書き換えるっていうのがアイデアがある。
通常のDOM APIやjQueryだと必要な場所だけ
書き換えるのに対して、全てを書き換える。

全てを書き換えると遅くなると思うだろう?
そこで出てくるのが仮想DOMという技術で、内部的には全てを
書き換えるが差分のみをDOMに反映させる。

遅いDOMへの操作は結局どちらも同じだけ必要なので
最終的な速度はそんなに変わらない。

DOMの全書き換えは遅いように見えるが、メモリ内で処理する
「速い仮想DOM」を使用することで、差分だけのDOM操作に
絞り込むことができるから遅くはならない。
という言葉の括弧だけがひとり歩きしてる。
Git 12©2ch.net
464 :デフォルトの名無しさん[sage]:2015/05/18(月) 08:12:32.67 ID:ezOKhhiH
>>462
「あまりやらないほうがいいと思う」のは前提として
「コンフリクトを起こす可能性がある」からだよね?

まず一つ。コンフリクトは起きても問題ない。直せばいいだけ
もう一つ。コミットが小さく分かれていれば、コンフリクトが起きる可能性は少なくなる。
この2点がある。

どうもコンフリクトを怖いもの。起きたら世界の破滅みたいに思っている人がいるみたいだけど
ぜんぜん違う。起きるのは当たり前のことだし、他人が作ったものならまだしも
自分が作っているものなら、どうすればいいかなんてすぐにわかる。

そしてコンフリクトが起きるのはなぜかという話。それはコードが単一責任原則を
満たしていないから簡単にいえば、修正すべきコードがあちこちに分散しており
ようするにコードが汚いから。

コンフリクトは起きたら直せばいいだけだが、
面倒くさいから、起きないほうが楽というのは確か

各コミット(そこでいう1, 2, 3, 4)がそれぞれ小さい修正になっており、
それぞれがちゃんと意味がある単位で分かれていれば、そうそうコンフリクトは起きない。
Git 12©2ch.net
465 :デフォルトの名無しさん[sage]:2015/05/18(月) 08:28:44.00 ID:ezOKhhiH
>>462の1のコミットを3のコミットに含めるか?
という質問の答は、含めるべきことであれば含める。
そうしないと逆にコンフリクトが多くなるから。

何故かと言うと、1と3をまとめたい=意味がある単位で考えてまとめるべきこと。
単一責任の原則を満たしており、意味がある単位で小さいコミットというものは、
多くの場合同じ箇所の修正になる。「1と3は同じ箇所の修正」っていうことを覚えておいてね。


そして例えば新しくコードを書いている途中で、既存のバグが見つかったとする。
新しいコードはバグを直さなければ正しく動かない。
だから先にバグを修正するために、5というコミットが必要になったとする。
(どうでもいいが1〜4数値は新しい方を大きくしてくれw)

そうすると5のコミットの続きからに、1〜4をrebaseしなければならない。
その時に3でコンフリクトが発生すると3を直したあと1でもコンフリクトが起きるだろう。
なぜなら、同じ箇所を修正しているから。

さらにむずかしいのは、最終的には1が終わった形にしないといけないわけだけど
3のコンフリクトをどう解決するか?って問題がある。
3の時点で1が終わった形にするわけには行かないんだよ。
3で発生したコンフリクトを直したあとに、1の修正を行うわけだから。

どう直せばいいかわからないものが多数発生する。
これがコンフリクト怖い病になる原因だねw

だからコンフリクトが起きる頻度を少なくするためにも、

1. 各コミットは小さい修正にしておく
2. 意味的にまとめるべきコミットはまとめておく

これを徹底することで、最終的にコンフリクトが起きにくくなる。
Git 12©2ch.net
466 :デフォルトの名無しさん[sage]:2015/05/18(月) 09:10:31.18 ID:ezOKhhiH
時間がかかる暗号化キーの生成待ちで暇だから書き込みw

コンフリクトっていうのは同じ場所の修正がかぶると
発生するっていうのを意識しておいた方がいい。
あたりまえだと思うけど、じゃあどうすればいいかまで考えているだろうか?

他人とのコンフリクトは、単純に同じ箇所を修正したときだが、
自分自身とのコンフリクト、rebaseでよく起きるね。(下手だと)

こっちもコンフリクトが起きる原因は同じ箇所の修正だからなんだ。
もし同じ箇所の修正がなければ、rebaseしてコミットの順番を
入れ替えたりしてもコンフリクトは発生しない。

じゃあ同じ箇所の修正はいつ発生するか? それはこういうの
* Aという修正をコミットした
* Bという修正をした
* Aという修正にバグが見つかったので修正した
* Aに機能が足りなかったから追加した
* Aの変数名でタイポしていた

こういうのを放置したまま、作業し続けていざmasterにマージする段階で
コンフリクトが起きてrebaseしなきゃならないってなった場合に
多くのコンフリクトが発生して、大変なことになる。

こういうのは随時rebaseしておくことが重要。
バグとかタイポとかさっさとまとめておく。

* Aとい修正をコミットした
* Bという修正をコミットした

こういうふうコミットを意味がある単位で小さくまとめておけば、
コンフリクトの回数は減るし、直すのも単純になる。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。