[ js ] 從C/C++到Javascript

作者: stan0227 (一切從零開始)   2014-01-22 23:18:01
各位版眾好
我過去三年工作經驗以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在開發上的慣例
謝謝!
作者: s25g5d4 (function(){})()   2014-01-23 00:32:00
直接從 C 跳到 JS 會不會太誇張 你們公司怎麼決策的
作者: shaopin (Brian)   2014-01-23 08:37:00
其實也沒什麼不可以, 我也是從寫kernel module到nodejs
作者: superpai (超級白)   2014-01-23 08:53:00
用TypeScript看看?
作者: mrbigmouth (大嘴先生)   2014-01-23 08:55:00
文件寫得好應該就行了 請參考一下jsdoc這種自動產生文件的工具 其格式都是很有用的 如果還是覺得不方便之前有看到人有介紹 有IDE能解析jsdoc的註解 自動在你寫程式時跳出各method的提示跟說明...這就要找看看了不管是coffeescript還是typescript 註解都是必要的老實說我用這種二次編譯的東西都不是很順手 XD
作者: stan0227 (一切從零開始)   2014-01-23 13:52:00
感謝回覆~~看來TypeScript是目前團隊比較適合的方案感謝各位的分享~~
作者: megaman1206 (megaman)   2014-01-24 00:35:00
推薦您Emscripten XD
作者: TuTu522 (oh)   2014-02-25 02:07:00
我推 Dart

Links booklink

Contact Us: admin [ a t ] ucptt.com