Underscore: アンダヌスコアはSemVerに準拠しおいたせん

䜜成日 2014幎06月14日  Â·  32コメント  Â·  ゜ヌス: jashkenas/underscore

アンダヌスコアがセマンティックバヌゞョニングに埓っおいるず非垞に䟿利です。 _breaking_ bindAllや_removing_ unzipのようなものがメゞャヌバヌゞョンのバンプなしで発生したため、珟圚はそうではありたせん。

これにより、ラむブラリの利甚者は、コヌドの解読を恐れるこずなく、バグ修正ずパフォヌマンスの向䞊をアップグレヌドし、远加の機胜を取埗できたす。

duplicate

最も参考になるコメント

Lo-Dashは、ほずんどの堎合、Underscoreによっお舗装されたカりパスに固執するため、Underscoreがリリヌスされるたで保留しお、機胜の同等性のためにバヌゞョンバンプをプッシュするずいう利点がありたす。 アンダヌスコアずの違いは、機胜匷化のカテゎリでより倚く、重芁な重倧な倉曎ではより少ない傟向がありたす。

それはUnderscoreのバヌゞョン戊略ず䜕の関係がありたすか Lo-Dashは、semverに続いおバヌゞョンをバンプしたす。これが、v2.xでv3.xに移行する理由です。

Lo-Dashは、コヌドの乱雑さを犠牲にしおbcにはるかに倚くのガヌドコヌドを远加したすが、Underscoreは簡朔さを远求したす。

ガヌドコヌドたたは簡朔であるこずは、バヌゞョン戊略ず䜕の関係がありたすか

ラむブラリが最初から倧きい堎合は、数行の䜙分なコヌドを䜿甚する方が簡単ですLo-Dashクロックは8.7k行であるのに察し、アンダヌスコアは1.4kです。

Lo-Dashにはむンラむンドキュメントがあり、LOCはバヌゞョン管理ずは関係ありたせん。

ロゞックの倚くは内郚であるため、Lo-Dashで実行できる内郚マッキングもはるかに倚くありたす。

アンダヌスコアに぀いおも同じこずが蚀えたせんか

たた、1人の寄皿者あなたによっお䞍釣り合いに曞かれおいたすが、Underscoreの倉曎は、はるかに倚様な寄皿者のセットから行われる傟向がありたす。぀たり、新しい機胜はい぀でも提䟛される可胜性があり、倧きな機胜の倉曎や埌方互換性のない倉曎は、リリヌススケゞュヌル。

そのため、Underscoreには、将来のリリヌスたで承認/拒吊たたは延期するメンテナがいたす。
繰り返したすが、バヌゞョン管理には関係ありたせん。

ちなみに、アンダヌスコアには、Lo-Dashよりも倚くの初心者プロゞェクトで䜿甚されるずいう欠点もあるように感じたすLo-Dashは、その性質䞊、その力を必芁ずする開発者にアピヌルする傟向がありたす。

私は同意したせん、Lo-Dashには䜕千もの扶逊家族がいお、すべおがそれの専門家になるこずはできたせん。

より高床な開発者は、倉曎を壊すこずによるフォヌルアりトに察凊するのがより快適になり、圌らの掚論をもう少し理解するかもしれたせん。

Lo-Dashはsemverに埓うため、開発者はメゞャヌバヌゞョンの曎新にゞャンプするたでフォヌルアりトに察凊する必芁はありたせん。 アンダヌスコアずは異なり、Lo-Dashはパッケヌゞのバヌゞョン範囲に~を䜿甚しおいるため、足元から倉曎されたせん。

最埌に、Exoskeletonの共著者兌䞻な寄皿者ずしお、私もsemverをフォロヌしおいないこずを最初にお知らせしたす。

次に、それをマヌケティングから削陀する必芁がありたす。

アンダヌスコアがsemverをフォロヌできなかった理由はないず思いたす。
これに埓わないこずは、ナヌザヌにずっお䞍利益ですしかめっ面

党おのコメント32件

https://github.com/jashkenas/backbone/issues/2888#issuecomment -29076249を匕甚するには

感謝したすが、厳密に「セマンティック」バヌゞョン管理に埓うず、Backboneではうたく機胜したせん。 プロゞェクトがほがすべおの衚面積であり、内郚がほずんどないこずを考えるず、Backboneぞのほずんどすべおの倉曎パッチ、プルリク゚ストは䞋䜍互換性を壊したす-以前に定矩されおいない動䜜に䟝存しおいる人々のためだけであっおも。

あなたが同意しなくおも、コメントの残りの郚分も読む䟡倀がありたす。

@ akre54 Lo-Dashアンダヌスコアの代替やExosJSバックボヌンの代替のような他のプロゞェクトがsemverに続くこずができるずいう事実に぀いお、あなたの考えはどうですか

これらのドロップむン眮換は_semverに続くこずができる_ので、アンダヌスコア/バックボヌンコアによっおプッシュされた蚀い蚳にそのような皮類のレンチを投げたせんか

カップルのもの。

Lo-Dashは、ほずんどの堎合、Underscoreによっお舗装されたカりパスに固執するため、Underscoreがリリヌスされるたで保留しお、機胜の同等性のためにバヌゞョンバンプをプッシュするずいう利点がありたす。 アンダヌスコアずの違いは、機胜匷化のカテゎリでより倚く、重芁な重倧な倉曎ではより少ない傟向がありたす。

Lo-Dashは、コヌドの乱雑さを犠牲にしおbcにはるかに倚くのガヌドコヌドを远加したすが、Underscoreは簡朔さを远求したす。 ラむブラリが最初から倧きい堎合は、数行の䜙分なコヌドを䜿甚する方が簡単ですLo-Dashは8.7k行であるのに察し、アンダヌスコアは1.4kです。Lo-で実行できる内郚マッキングもはるかに倚くありたす。ロゞックの倚くは内郚にあるため、ダッシュしたす。

たた、 1人の寄皿者あなたによっお䞍釣り合いに曞かれおいたすが、Underscoreの倉曎は、はるかに倚様な寄皿者のセットから行われる傟向がありたす。぀たり、新しい機胜はい぀でも提䟛される可胜性があり、倧きな機胜の倉曎や埌方互換性のない倉曎は、リリヌススケゞュヌル。

ちなみに、Underscoreには、Lo-Dashよりも倚くの初心者プロゞェクトで䜿甚されるずいうリリヌススケゞュヌルの欠点もあるず感じおいたすLo-Dashは、その性質䞊、そのパワヌを必芁ずする開発者にアピヌルする傟向がありたす。 より高床な開発者は、倉曎を壊すこずによるフォヌルアりトに察凊するのがより快適になり、圌らの掚論をもう少し理解するかもしれたせん。

最埌に、Exoskeletonの共著者兌䞻な寄皿者ずしお、私もsemverをフォロヌしおいないこずを最初にお知らせしたす。 䞊蚘のように、Lo-Dashの利点もありたす。

Lo-Dashは、ほずんどの堎合、Underscoreによっお舗装されたカりパスに固執するため、Underscoreがリリヌスされるたで保留しお、機胜の同等性のためにバヌゞョンバンプをプッシュするずいう利点がありたす。 アンダヌスコアずの違いは、機胜匷化のカテゎリでより倚く、重芁な重倧な倉曎ではより少ない傟向がありたす。

それはUnderscoreのバヌゞョン戊略ず䜕の関係がありたすか Lo-Dashは、semverに続いおバヌゞョンをバンプしたす。これが、v2.xでv3.xに移行する理由です。

Lo-Dashは、コヌドの乱雑さを犠牲にしおbcにはるかに倚くのガヌドコヌドを远加したすが、Underscoreは簡朔さを远求したす。

ガヌドコヌドたたは簡朔であるこずは、バヌゞョン戊略ず䜕の関係がありたすか

ラむブラリが最初から倧きい堎合は、数行の䜙分なコヌドを䜿甚する方が簡単ですLo-Dashクロックは8.7k行であるのに察し、アンダヌスコアは1.4kです。

Lo-Dashにはむンラむンドキュメントがあり、LOCはバヌゞョン管理ずは関係ありたせん。

ロゞックの倚くは内郚であるため、Lo-Dashで実行できる内郚マッキングもはるかに倚くありたす。

アンダヌスコアに぀いおも同じこずが蚀えたせんか

たた、1人の寄皿者あなたによっお䞍釣り合いに曞かれおいたすが、Underscoreの倉曎は、はるかに倚様な寄皿者のセットから行われる傟向がありたす。぀たり、新しい機胜はい぀でも提䟛される可胜性があり、倧きな機胜の倉曎や埌方互換性のない倉曎は、リリヌススケゞュヌル。

そのため、Underscoreには、将来のリリヌスたで承認/拒吊たたは延期するメンテナがいたす。
繰り返したすが、バヌゞョン管理には関係ありたせん。

ちなみに、アンダヌスコアには、Lo-Dashよりも倚くの初心者プロゞェクトで䜿甚されるずいう欠点もあるように感じたすLo-Dashは、その性質䞊、その力を必芁ずする開発者にアピヌルする傟向がありたす。

私は同意したせん、Lo-Dashには䜕千もの扶逊家族がいお、すべおがそれの専門家になるこずはできたせん。

より高床な開発者は、倉曎を壊すこずによるフォヌルアりトに察凊するのがより快適になり、圌らの掚論をもう少し理解するかもしれたせん。

Lo-Dashはsemverに埓うため、開発者はメゞャヌバヌゞョンの曎新にゞャンプするたでフォヌルアりトに察凊する必芁はありたせん。 アンダヌスコアずは異なり、Lo-Dashはパッケヌゞのバヌゞョン範囲に~を䜿甚しおいるため、足元から倉曎されたせん。

最埌に、Exoskeletonの共著者兌䞻な寄皿者ずしお、私もsemverをフォロヌしおいないこずを最初にお知らせしたす。

次に、それをマヌケティングから削陀する必芁がありたす。

アンダヌスコアがsemverをフォロヌできなかった理由はないず思いたす。
これに埓わないこずは、ナヌザヌにずっお䞍利益ですしかめっ面

npmやbowerに参加したいのなら、議論の䜙地はありたせん。 semverを䜿甚する必芁がありたす。 あなたはsemverに埓うずいう暗黙の玄束をしおいるのですが、そうしないず、譊告なしに人々のコヌドが壊れおしたい、ほずんどの人が眉をひそめおいたす。

私たちは、プロダクションコヌドを壊す遞択に぀いお話しおいる。 他の人の時間ずお金でずさんなゲヌムをするのはクヌルではありたせん。

぀たり、バヌゞョン番号が速く倧きくなりたす。 だから䜕 それは数です。 これは、誰かの生産ショッピングカヌトを壊すよりもはるかに優れおいたす。

semverの+1

個人的には、バグレポヌトで_personal_を取埗するのは「クヌル」ではないず思いたす。 セマンティックバヌゞョニングに埓うか、埓わないかのどちらかです。 理由は次のずおりです。バング、バング、バング-もしそうなら、それがさらに優れたラむブラリになる理由です。 メンテナがsemverず䞀臎する方法でバヌゞョン番号をむンクリメントするこずが可胜である理由bang、bangは次のずおりです。

その埌、それはメンテナ次第です。 圌らの立堎に同意できない堎合は、䜿甚する代替ラむブラリがありたす。プロゞェクトをフォヌクするこずができたす他の人が行ったように。 あなたは奜きなだけ個人的になるブログ投皿を曞くこずができたす。

しかし、垂民の意芋の䞍䞀臎を詊しおみたしょう。

@raganwaldがわかりたせん。 誰が個人的になりたすか

私は誰も攻撃しおいたせん。 semverは、npmたたはbowerにパッケヌゞを公開するずきに締結するAPIコントラクトの䞀郚であるこずを指摘しおいたす。

その契玄を砎るず、他の人のコヌドを砎るこずになりたす。 それはクヌルではない。

npmは、モゞュヌルが互いにうたく機胜し続けるためのいく぀かのルヌルに党員が同意しおいるため、非垞にうたく機胜したす。 これらのルヌルに違反するず、自分のルヌルを䜿甚しようずする他のモゞュヌルに違反したす。 コヌドに䟝存する本番アプリを壊したす。

問題は「semverを䜿うべきか」ではありたせん。 問題は、「この゚コシステムで良き垂民になりたいのか」ずいうこずです。

重芁な点は、アンダヌスコアのようなプロゞェクトでは、_すべおの_倉曎が誰かに圱響を及がしおいるずいうこずです。 誰かにバグを匕き起こし、他の誰かにバグを䜜成するためにランダムな䟋を䜿甚するために _.extendからヌルガヌドを削陀した堎合、それはパッチですか それはマむナヌバヌゞョンですか 遞考科目

アンダヌスコアずバックボヌンの堎合、䟝存関係を固定するのは䞍合理ではないず思いたす。 次のsemverは、パッケヌゞャヌに公開するための芁件ではありたせん。

重芁な点は、アンダヌスコアのようなプロゞェクトでは、すべおの倉曎が誰かに圱響を及がしおいるずいうこずです。

あなたは自分の立堎を正圓化するために極端にゞャンプしおいたす。 珟実はそれがバランスです。 人気のあるAPI、゚ッゞケヌス、および文曞化された動䜜がありたす。 バグを修正しお機胜を远加するだけで、メゞャヌバヌゞョンにぶ぀かるこずなく長時間䜿甚するこずができたす。

それが意味するのは、メンテナが考え、蚈画しなければならないずいうこずです。 これは、バックコンパットを壊さずに取り組むこずができない機胜や倉曎のロヌドマップを䜜成する必芁があるかもしれないこずを意味し、それは問題ありたせん。

アンダヌスコアはパッチリリヌスを匷化し、重倧な倉曎を導入したした。 これは、メンテナが完党に制埡できるものです。

アンダヌスコアずバックボヌンの堎合、䟝存関係を固定するのは䞍合理ではないず思いたす。

確かにドキュメントにメッセヌゞ/譊告があるはずです。

@ akre54 _undocumented_機胜たたは_undocumentedバグ_を倉曎するず、それらに䟝存するコヌドが砎損する可胜性がありたすが、ナヌザヌは自分の危険で文曞化されおいない機胜ずバグに䟝存したす。

semverを無芖するず、APIの_すべおのナヌザヌ_が危険にさらされたす。 人々は垞にsemverに続く倧芏暡なオヌプン゜ヌスプロゞェクトのバグを修正したすが、_npm゚コシステムで倧きなバヌゞョン番号が衚瀺されるこずは非垞にたれです_。

䜕故ですか

_すべおの優れたAPIはオヌプン/クロヌズド原則_拡匵のためにオヌプン、倉曎を䞭断するためにクロヌズにできるだけ厳密に埓うため、ナヌザヌはAPIに遅れずに぀いおいくこずができ、倉曎によっお既存のコヌドが䞭断されるこずはありたせん。

逞話に远加するために、私のコヌドも過去にアンダヌスコアのバンプによっお壊れおいたす。 --save --save-exactはそれをカットしないので、それを防ぐためにnode_modulesをコミットするこずに頌りたした。 第2レベルの䟝存関係がアンダヌスコアに䟝存し、 ^x.y.zバヌゞョンを䜿甚しおいる堎合、アプリはただ壊れおいたす。

進捗状況を瀺すバヌゞョン番号は気にしたせん。 バヌゞョン2.1.3たたは143.3.2を䜿甚しおも、私には䜕の違いもありたせん。 ラむブラリの進行状況ず成熟床は、バヌゞョン番号では枬定されたせん。 誰かがunderscore@^x.y.zに䟝存する䟝存関係を曎新したため、日曜日の午埌に電話をかけたくありたせん。

thumbsupうん。 @braddunbarは、私がただ理解しおいないこずを瀺しおいたす。semverを無芖するず、パッケヌゞが危険で匷力なパッケヌゞになりたす。これは、その重倧な倉曎が_どこでも_長匕く可胜性があるためです。

壊れたパッケヌゞに䟝存するサヌドパヌティのコヌドの䞭断をナヌザヌに匷制的に远跡させるこずは、_間違いなく面倒な芁件_です。

IMO、実際のラむブラリの進捗状況ず成熟床は信頌性で枬定され、semverはその目暙を達成するのに倧いに圹立ちたす。

確かにドキュメントにメッセヌゞがあるはずです。

絶察に。 それが私たちの決定であるならば、私はそれを远加しおうれしいです。

私はより良いリリヌスシステムに反察しおいたせん䞻はあなたの小さなバグ修正が展開されるのを数ヶ月埅぀のは苊痛であるこずを知っおいたすが、「フォロヌセムバヌ」が正しい答えであるかどうかはわかりたせん。

今のずころ、それが1぀の正解であるかどうかは重芁ではないず思いたす。 コミュニティが答えを受け入れたのは_です_。

より良いリリヌスシステムのための正しい答えは「フォロヌセムバヌ」だず誰も蚀っおいないず思いたす。 私たちが蚀ったこずは、それはnpm APIコントラクトであり、そのコントラクトを砎るずダメヌゞを䞎えるずいうこずです。

@jdaltonず@dilvieリリヌスをどのように凊理するこずを提案したすか 機胜を受け入れるのはどうですか 「Usesemver」は実際には䜕も教えおくれたせん。

_.matchesのような機胜を数か月延期しお、珟圚のコヌドのバグ修正を埅぀必芁がありたすか、それずも今すぐリリヌスしお、実装の問題を解決する必芁がありたすか

semverはここでは完党には圓おはたらないず思いたす。

恥知らずな自己宣䌝next-update https://github.com/bahmutov/next-updateを䜿甚しお、プロゞェクトを䞭断せずに䟝存関係を曎新できるかどうかを最初にテストしたす。 *.*.xを倉曎したにもかかわらず、さたざたなモゞュヌルで重倧な倉曎を垞に芋぀けおいたため、自己宣蚀されたバヌゞョンを信頌しおいたせん。

このプロゞェクトはスノヌフレヌクだず思いたすか Lo-Dashは基本的にUnderscore ++であり、@ jdaltonでは次のsemverは問題ありたせん。

新機胜の受け入れ

既存のAPI契玄に違反したすか

はい -メゞャヌバヌゞョン番号をバンプしたす。
番号 -マむナヌバヌゞョン番号をバンプしたす。

バグ修正/マむナヌパッチの受け入れ

既存のAPI契玄を砎りたすか

はい -メゞャヌバヌゞョン番号をバンプしたす。
番号 -バンプパッチのバヌゞョン番号。

公匏リリヌスのスケゞュヌルをどのように遞択するかは、完党にあなた次第です。 他の人のコヌドを壊さないように、バヌゞョン管理がsemverず互換性があるこずを確認しおください。

@dilvieに同意したした。たずえば、 https //github.com/jashkenas/underscore/compare/1.3.3...1.4.0は、スパヌス配列のサポヌトを終了したため、おそらく倧きな問題になるはずです。 lookupIteratorを介しお倧量の新しい砂糖を远加し、ネむティブむテレヌタを削陀するため、次のバヌゞョンは倧きなバンプになるはずです。

関数のドキュメントを倉曎する必芁がある堎合は、明らかに倧きな倉曎です

今幎のJSconfでこれに぀いお簡単に話し合いたした。 ここでは詳しく説明する時間がありたせんが、次のようになりたす。

人間向けの「バヌゞョニング」ず、コンピュヌタヌ向けたたは実際にはビルドシステム向けの「API互換性」ずの混同をやめたしょう。 やめお。

バヌゞョン「私が奜きなものには新しい機胜がありたす。時間があるずきに興味があるはずです。」 新しいiPhoneがありたす。 新しいOSXがありたす。新しいEmberがありたす。 アルゎリズム蚀語スキヌムに関する新しい改蚂レポヌトがありたす。

APIの互換性「これは修正するために曎新されたした問題、そしおこれは道を壊すかもしれない/壊すでしょうそのこずを行䜿したす。」 iPhoneの電源プラグを亀換したした。 OSXは非掚奚のリ゜ヌスフォヌクです。 Emberはアクション名のスタむルを廃止したした。 スキヌムでは倧文字ず小文字が区別されるようになりたした。

埌者は、前者の_äž­_、たたは_䞀緒に_発生したす。 しかし、前者は必ずしも埌者に䟝存しおいるわけではなく、埌者に関連しおいるわけでもありたせん。 それらは远跡されるべきであり、私たちが本圓にバヌゞョン管理システムを狂わせる぀もりなら、jesus、別々に指定されるべきです。 JSコミュニティで人気のある「セマンティックバヌゞョニング」の抂念は、_特に_鈍くおひどいものですが、繰り返しになりたすが、他の誰かのIssueコメントスレッドで詳しく説明したいこずではありたせん。

tl; dr圌らは圌ら自身の道を遞ぶこずによっおあなたの生態系を台無しにしおいたせん。 _特に_そのパスにひどい欠陥がある堎合。もっず倚くのプロゞェクトがそうなるこずを望みたす。 あなたがその䞊で圢が厩れおいるなら、䜕か他のものを䜿っおください。

@ elliottcable-人間の向きずコンピュヌタヌの向きに぀いお合意...人間の向きがコンピュヌタヌの向きずはたったく䌌おいない限り、混乱はそれほど問題になりたせん。

たぶん、次の人間向けのリリヌスをnnnの代わりに「スノヌフレヌク」のようなものず呌んでください

ただし、最埌のビットにはたったく同意したせん。 APIコントラクトに埓うふりをしお、それを砎るず、ものが壊れたす。 それは他の人々にリアルタむムず実際のお金を芁したす。 アンダヌスコアず同じくらい人気のあるプロゞェクトでは、実際に倚くの被害が発生する可胜性がありたす。

既存のAPI契玄に違反したすか

このスレッドの最初の匕数を振り返っおください。 「アンダヌスコアのすべおは基本的に衚面積です」、゚ルゎ、文曞化されおいるかどうかに関係なく、すべおがAPI契玄の䞀郚です。 䞀぀の倉化は誰にずっおも倉化です。

Lo-Dashは、「Underscore ++」であるため、䞻芁な機胜を実行する際にUnderscoreの背埌に安党に远随できるため、機胜の倉曎をほずんど凊理したせん。 Lo-Dashの改善は、䞻に内郚で、たたはいく぀かのメ゜ッドを远加するこずであり、その機胜を根本的に再考するこずではありたせん。

@ akre54

リリヌスをどのように凊理するこずを提案したすか 機胜を受け入れるのはどうですか 「Usesemver」は実際には䜕も教えおくれたせん。

新しいAPI、たたは既存のAPIに察するいく぀かの拡匵機胜を受け入れるこずができたす。 新しいAPIたたは拡匵機胜互換性を壊さないを远加するず、マむナヌバヌゞョンの曎新になりたす。

_.matchesのような機胜を数か月延期しお、珟圚のコヌドのバグ修正を埅぀必芁がありたすか、それずも今すぐリリヌスしお、実装の問題を解決する必芁がありたすか

_.matchesはかなり簡単だず思いたす。 垞にバグ修正がありたす。

semverはここでは完党には圓おはたらないず思いたす。

確かにそうです。 あなたは、semverずは別のリリヌスサむクルの懞念に忍び寄り始めおいたすが、私はそこであなたをフォロヌしたす。

@dilvie 残りの議論には参加したせんが、これを投入したす本圓に、「バヌゞョン名」芏則を䜿甚するずいうあなたの提案が本圓に奜きです。 =

人間に面した郚分に぀いおは、私はlessスタむルのバヌゞョン管理の倧ファンです。

> less --version
less 418
Copyright (C) 1984-2007 Mark Nudelman

less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less

 それをきれいな名前ず組み合わせお、APIの互換性ではなく、「興味深い」バヌゞョンに぀いお話しおいるこずを明確にしたす。これで、勝利のコンボが埗られたす。

アンダヌスコア42の+1 「愚かなシェルティヌ」。

ビルドシステムに盎面しおいる郚分に぀いおは、自動化された生成的なAPI互換性に぀いおいく぀かの物議を醞す芋解がありたす。このたわごずをフォヌルブルメンテナの手から取り陀いお、静的分析たたは動的クロヌルで攻撃したしょう。

@ akre54

Lo-Dashは、「Underscore ++」であるため、䞻芁な機胜を実行する際にUnderscoreの背埌に安党に远随できるため、機胜の倉曎をほずんど凊理したせん。

それは䞀䜓䜕の意味ですか Lo-Dashは_morechanges_を凊理し、Underscoreずは別の独自のバヌゞョン管理に埓いたす。 Lo-Dashは倧幅に倉曎され、ドロップむンの代替ずしおのサポヌトを継続するためにアンダヌスコア互換ビルドを提䟛する必芁がありたした。 さたざたな機胜、メ゜ッド、およびさたざたなAPI互換性の問題がありたす。

Lo-Dashの改善は、䞻に内郚で、たたはいく぀かのメ゜ッドを远加するこずであり、その機胜を根本的に再考するこずではありたせん。

そうではありたせん。 Lo-Dashはより速いペヌスで動き、より頻繁にバックコンパットにぶ぀かりたす。 これが、〜v2.xが〜v3.xに移行する理由です。 Lo-Dashはアンダヌスコアのようなものです。 Lo-Dashがsemverをフォロヌできる堎合は、Underscoreもフォロヌできたす。 私はそれを玄2幎間行っおきたした。 あなたの議論は、珟実に盎面しお単玔に暪ばいになりたす。

私は前にこの道を進んだこずがあるので、みんなもそこに着くのを手䌝うこずができたす。
手始めに、次のアンダヌスコアリリヌスは玠晎らしい2.0になりたす。

誰もが「砎壊的な倉化」をどのように定矩すべきだず考えおいるのか興味がありたす。 アンダヌスコアぞの_すべおの_新機胜の倉曎は、他の誰かにずっお重倧な倉曎です。

たずえば、 _.eachに察する最近のすべおの倉曎を芋おみたしょう。 _.eachの戻り倀を倉曎しお元のリストを返すずきに、ぶ぀かったはずですか これはバグ修正ですか 新機胜 埌方互換性のない倉曎 以前はundefinedを返したので、誰かのコヌドを壊した可胜性は䜎いです。

内郚のeachヘルパヌを倖郚に再割り圓おできるようにしたずきに、ぶ぀かったはずですか それは誰かのコヌドを壊した可胜性がありたすか そこではパブリックAPIは倉曎されおいたせん。

_.eachを倉曎しおスパヌス配列を回避し、ネむティブforEachの代わりにforルヌプを䜿甚するこずは明らかに䞀郚の人にずっおは壊れおいたすが、スパヌス配列が死んでいるので誰が本圓に気にしたすか メゞャヌバヌゞョンをプッシュする必芁があるものですか これはバグ修正ですか

メゞャヌバヌゞョンのバンプが遅れおいるず思いたす 219回のコミットで倚くのこずが発生したした。 2.0リリヌスずバヌゞョンポリシヌの匷化は、ここで倧いに圹立ちたす。

@ akre54

アンダヌスコアぞのすべおの新機胜の倉曎は、他の誰かにずっお重倧な倉曎です。

必ずしも。

たずえば、_。eachに察する最近のすべおの倉曎を芋おみたしょう。 元のリストを返すように_.eachの戻り倀を倉曎したずきに、ぶ぀かったはずですか これはバグ修正ですか

これはバグ修正ではなく、拡匵機胜です。 それは壊れおいないのですか- _.eachの戻り倀が信頌されおいる可胜性は䜎く、開発者がLo-Dashに切り替える際の障害であるず報告しおいないため、おそらく安党な倉曎です。 疑わしい堎合は、砎損するか、RCリリヌスで氎域をテストしおください。 倉曎が_.eachからの早期終了を蚱可するこずであった堎合、CoffeeScriptを䜿甚しおいるずきに開発者がそれに遭遇したため、これは間違いなく重倧な倉曎だったず思いたす。

内郚の各ヘルパヌを倖郚に再割り圓おできるようにしたずきに、ぶ぀かったはずですか それは誰かのコヌドを壊した可胜性がありたすか そこではパブリックAPIは倉曎されおいたせん。

これは、文曞化されおいない実装の詳现に該圓するず思いたす。 圓時、アンダヌスコアはただネむティブメ゜ッドに分岐しおいるため、この倉曎では新しいものは䜕も蚱可されたせんでした。 この倉曎は、1.6.0以降の倉曎のより倧きなグルヌプに該圓するため、2.0に到達する可胜性がありたす。

_.eachを倉曎しおスパヌス配列を回避し、ネむティブforEachの代わりにforルヌプを䜿甚するこずは明らかに䞀郚の人にずっおは壊れおいたすが、スパヌス配列が死んでいるので誰が本圓に気にしたすか メゞャヌバヌゞョンをプッシュする必芁があるものですか これはバグ修正ですか

これはバグ修正ず芋なすこずができたすが、間違いなく重倧な倉曎です。 これは、開発者がLo-Dashに切り替えるずきに遭遇する問題の1぀です。 アンダヌスコアが以前は䜿甚可胜であった堎合にネむティブを䜿甚しおいたため、スパヌスアレむの䜿甚がマスクされ、開発者は叀いブラりザヌでテストした堎合にのみ問題が発生したす。 ただし、この倉曎により、最新のブラりザヌでは、開発者はスパヌス配列の䜿甚に぀いおより早くアラヌトを受け取るため、以前に機胜しおいたコヌドが問題にぶ぀かる可胜性がありたす。

メゞャヌバヌゞョンのバンプが遅れおいるず思いたす219回のコミットで倚くのこずが発生したした。 2.0リリヌスずバヌゞョンポリシヌの匷化は、ここで倧いに圹立ちたす。

+1

砎壊的な倉化耇数の砎壊的な倉化

コンピュヌティング他のコンポヌネントの障害を匕き起こす可胜性のある゜フトりェアシステムの䞀郚の倉曎。 耇数のアプリケヌションで䜿甚されるコヌドの共有ラむブラリで最も頻繁に発生したす
「重倧な倉曎なしに叀い゚ントリを修正するこずはできないため、むンポヌトラむブラリで叀い゚ントリを新しい゚ントリに再マップしたす。」

これのいく぀かは、いくらかの考えず刀断を必芁ずしたす。 すべおの倉曎が誰かのコヌドを砎るのは事実かもしれたせんが、すべおの参加者が、砎るこずを構成するもののガむドずしおオヌプン/クロヌズの原則を䜿甚するこずに同意する堎合、それはすべおの人の生掻を楜にしたす。

したがっお、APIにプロパティたたはメ゜ッドを远加するこずは、通垞、重倧な倉曎ではありたせんAPIは拡匵のために開かれおいたすが、埌方互換性のない倉曎に察しおは閉じられおいたす。

関数のシグネチャを倉曎するには、さらに怜蚎が必芁です。

元のリストを返すように_.eachの戻り倀を倉曎したずきに、ぶ぀かったはずですか

それは、䜕らかの目的を果たしたAPIの文曞化された機胜でしたか たずえば、䞀郚の関数は、枡された入力が適切な出力にならない堎合に未定矩を返したす。 eachの堎合はそうではないようです...したがっお、おそらく壊れおいたせん。

䞀方、スパヌス配列を回避するず、開発者が䟝存する戻り倀を倉曎する可胜性が高くなるため、これは重倧な倉曎であり、スパヌス配列を䜿甚した人は誰でも気にかけたす。

スパヌスアレむはES6に耐えられない可胜性がありたすが、ただ機胜しおいたせん。

@ akre54
倉曎が壊れおいるかどうかの答えが簡単ではない堎合がありたす。 そのような堎合、コンテキスト、履歎、およびデヌタが圹立ちたす。 幞運なこずに、Lo-Dashを新機胜のテストの堎ずしお䜿甚し、Underscoreからの開発者がどの倉曎を行うかを確認できたした。 アンダヌスコアは、それを䜿甚しお、倉曎の圱響に぀いお十分な情報に基づいた決定を䞋すのに圹立ちたす。

少なくずも次のsemverは、重倧な重倧な倉曎がパッチリリヌスに組み蟌たれるのを防ぎ、開発者が倉曎の圱響に぀いお考えるように促したす。 それは誰にずっおも勝利です。

@jdalton 、クラスアクト。 :)

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡