各位版众好
我过去三年工作经验以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究竟是什么?
目前团队除了透过命名规则外,另外就是每个函式之前都要有个注解来解释这些参数
2) 物件的property是动态的
这是一个很powerful的特性
但是在开发过程中一样很困扰团队
C++的开发IDE提供了Intellisense帮助我们很快的选取到物件的property
或是回到物件定义的地方了解实际的实作方式
但是Javascript的动态property让Intellisense难以实作
因此在使用物件时,我们常常不晓得有哪些property可以使用
而回归搜寻物件定义的地方也很麻烦
另外由于此特性,可能你预期的property在runtime中被移除掉了
例如var playerCount = playerQueue.size();
原本预期得到人数,但是由于size()可能被移除或是被赋予了其他的意义
而造成与预期有落差的状况
======================================================================
不晓得Javascript开发圈的朋友们是如何解决上述开发过程中的议题?
团队目前就是透过命名方式, 注解以及落实单元测试来协助开发
很想了解一下Javascript在开发上的惯例
谢谢!