作者stan0227 (一切从零开始)
看板Ajax
标题[ js ] 从C/C++到Javascript
时间Wed Jan 22 23:18:01 2014
各位版众好
我过去三年工作经验以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在开发上的惯例
谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.192.136.131
1F:推 s25g5d4:直接从 C 跳到 JS 会不会太夸张 你们公司怎麽决策的 01/23 00:32
2F:推 shaopin:其实也没什麽不可以, 我也是从写kernel module到nodejs 01/23 08:37
3F:→ superpai:用TypeScript看看? 01/23 08:53
4F:推 mrbigmouth:文件写得好应该就行了 请参考一下jsdoc这种自动产生文 01/23 08:55
5F:→ mrbigmouth:件的工具 其格式都是很有用的 如果还是觉得不方便 01/23 08:56
6F:→ mrbigmouth:之前有看到人有介绍 有IDE能解析jsdoc的注解 自动在 01/23 08:56
7F:→ mrbigmouth:你写程式时跳出各method的提示跟说明...这就要找看看了 01/23 08:57
8F:→ mrbigmouth:不管是coffeescript还是typescript 注解都是必要的 01/23 08:59
9F:→ mrbigmouth:老实说我用这种二次编译的东西都不是很顺手 XD 01/23 08:59
10F:→ stan0227:感谢回覆~~看来TypeScript是目前团队比较适合的方案 01/23 13:52
11F:→ stan0227:感谢各位的分享~~ 01/23 13:52
12F:推 megaman1206:推荐您Emscripten XD 01/24 00:35
13F:推 TuTu522:我推 Dart 02/25 02:07