好像不小心回到信箱了?
※ 引述《stan0227 (一切从零开始)》之铭言:
: 各位版众好
: 我过去三年工作经验以C++为主
: 最近团队新专案使用Javascript + Node.JS作为主要开发语言与环境
: 团队人数约5人 过去皆无开发Javascript经验
: 在开发过程中遭遇到不适应Javascript语言特性的状况
: 想在此与各位讨论看看 在Javascript开发圈中是如何面对这些问题
: 1) Dynamic Type v.s. Static Type
: 过去习惯Static Type的我们
: 遇到Dynamic Type非常不适应
: 例如function的parameters
: 由于常常需要继续开发或维护其他成员所撰写的function
: 我们常常无法直接一目了然了解该function的parameters究竟是什么
: 是boolean, number, string或是其他更复杂的物件?
: 虽然变量的命名规则可以稍微改善这个状况
: 但是例如像var FunA = function( message ) {...}
: 这个message究竟是什么?
: 目前团队除了透过命名规则外,另外就是每个函式之前都要有个注解来解释这些参数
利用object当作参数
var rectangle = function ({
width: '100px',
height: '200px',
color: 'black'
})
然后你怕传错物件的话, fucntion里面的检查是不可少的~
: 2) 物件的property是动态的
: 这是一个很powerful的特性
: 但是在开发过程中一样很困扰团队
: C++的开发IDE提供了Intellisense帮助我们很快的选取到物件的property
: 或是回到物件定义的地方了解实际的实作方式
: 但是Javascript的动态property让Intellisense难以实作
: 因此在使用物件时,我们常常不晓得有哪些property可以使用
: 而回归搜寻物件定义的地方也很麻烦
: 另外由于此特性,可能你预期的property在runtime中被移除掉了
: 例如var playerCount = playerQueue.size();
: 原本预期得到人数,但是由于size()可能被移除或是被赋予了其他的意义
: 而造成与预期有落差的状况
js 有遍历object的方式, 另外可能要写在prototype里面并且避免prototype pollution
建议贵团队可以共同先分享js 的书, 例如javascript: good parts
有不少的js 书其实能解决你很多疑问, 而且更了解js
: ======================================================================
: 不晓得Javascript开发圈的朋友们是如何解决上述开发过程中的议题?
: 团队目前就是透过命名方式, 注解以及落实单元测试来协助开发
: 很想了解一下Javascript在开发上的惯例
: 谢谢!