夢見がちWeb屋の浮かれ雑記帳

フロントエンド周りの技術ネタやらなんやらね

Javascriptのファイル名で大文字使うのやめてほしい

React.jsの実装とか見るとファイル名に大文字小文字混ざっているんだけど、個人的にはこの習慣ホントやめてほしい。

canDefineProperty.js
checkReactTypeSpec.js
deprecated.js
flattenChildren.js
getIteratorFn.js
getNextDebugID.js
KeyEscapeUtils.js
LinkedStateMixin.js
onlyChild.js
PooledClass.js
React.js
ReactAddonsDOMDependencies.js
ReactAddonsDOMDependenciesUMDShim.js
ReactChildren.js
ReactClass.js
ReactComponent.js
ReactComponentTreeDevtool.js
ReactComponentTreeHook.js
ReactComponentTreeHookUMDShim.js
ReactComponentWithPureRenderMixin.js
ReactCSSTransitionGroup.js
ReactCSSTransitionGroupChild.js
ReactCurrentOwner.js
ReactCurrentOwnerUMDShim.js
ReactDOMFactories.js
ReactElement.js
ReactElementSymbol.js
ReactElementType.js
ReactElementValidator.js
ReactFragment.js
ReactLink.js
ReactNoopUpdateQueue.js
reactProdInvariant.js
ReactPropTypeLocationNames.js
ReactPropTypeLocations.js
ReactPropTypes.js
ReactPropTypesSecret.js
ReactPureComponent.js
ReactStateSetters.js
ReactTransitionChildMapping.js
ReactTransitionEvents.js
ReactTransitionGroup.js
ReactUMDEntry.js
ReactUMDShim.js
ReactVersion.js
ReactWithAddons.js
ReactWithAddonsUMDEntry.js
shallowCompare.js
sliceChildren.js
traverseAllChildren.js
update.js

なぜならmac使っているとファイル名はCase-Insensitiveだから。 大文字の小文字が区別しないのでrequire('./foo')require('./Foo')が全く同じ挙動になったりする。

そこで事故るのが嫌だからファイル名は全部SnakeCaseにしたくてたまらない。つうか"node_modules"ディレクトリとかも全小文字なんだからそれに合わせたくて仕方ない。

W3CJavaScript Style Guideとかにも同じことが書いてある

Use Lower Case File Names Most web servers (Apache, Unix) are case sensitive about file names:

london.jpg cannot be accessed as London.jpg.

Other web servers (Microsoft, IIS) are not case sensitive:

london.jpg can be accessed as London.jpg or london.jpg.

If you use a mix of upper and lower case, you have to be extremely consistent.

If you move from a case insensitive, to a case sensitive server, even small errors can break your web site.

To avoid these problems, always use lower case file names (if possible).

けど誰もこんなの読まないだろうし、みんなFacebookの方に右に倣えするんだろーな。。。