JVM是什么 他有什么脚本是什么语言呢?

来自子话题:
主要看你的定位在哪里。简单说,作为一个业余时间的练手就是很赞的作品,但要定位成专业交易平台则问题很多:&br&&ul&&li&Python的问题不仅仅在于延迟性能,更致命的是这个弱类型语言很难做编译期静态检测,系统复杂以后很容易写出 bug。这对于交易系统这种对系统稳定性有苛刻要求的系统来说是很难接受的。&/li&&li&你的架构看起来是图形界面和策略代码都跑在一个进程里,如果这是真的那就意味着任何一个 UI 上的问题都有可能导致交易策略崩溃。看你的截图,开发这么复杂的图形界面要想不出问题,很难。&/li&&li&截图上还可以看出这个系统运行起来会同时跑很多个 Order。Order 多了以后首先是上面说的稳定性隐患很致命,你的系统一旦崩溃,那些还在运行的 Order 估计多半要手动清理了,手慢了可能会有直接损失。另外系统需要实时收发行情数据来更新界面,如果架构上没有解藕的话,很可能意味着界面更新慢会阻塞网络数据的收发(俗称 backpressure)。&/li&&li&事件驱动引擎要做好并不容易。比如有名的 &a href=&///?target=http%3A//esper.codehaus.org& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Esper&i class=&icon-external&&&/i&&/a& 就是相当复杂的系统(而且用户体验还很差)。用 Python 写,我觉得难度更加大。&/li&&/ul&基本上,从计算机系统的角度考虑,我觉得最好还是不要定位成一个大而全的一体化交易系统为好。你作为一个交易员,如果能把自己熟悉的业务部分的若干模块提炼出来做精就很有价值了。&br&&br&开源协议 GPL 系是大忌,慎入。GPL 的意思是用了你的代码以后,自己的二次开发也要强制开源,这意味着所有的交易策略都要开源,那就没人敢用你的东西了。&br&&br&如果有兴趣在系统开发上向前走,几点建议是:&br&&ul&&li&核心策略相关的代码用强类型语言编写,做足检查和测试&/li&&li&至少在进程粒度上把图形界面和交易策略分开&/li&&li&现在的图形界面是 Web 的天下了,试着学学 HTML/CSS/Javascript。&/li&&/ul&&br&看到题主的回答中这一段非常有感触:&br&&blockquote&&p&但是在实际运用中,交易团队表达了一个强烈的观点:这个平台实在是太难用了!&/p&&p&1. 由IT团队设计的API功能非常强大,但是也太过繁琐,导致学习曲线极为陡峭&br&&/p&&p&2. 为了追求速度,没有设计原生GUI(本来就为了在Linux服务器上跑),但是今天绝大多数的非超高频(追求微秒级延迟的那种)交易策略,几乎都需要有人实时监控,你总不能让交易员盯着个linux shell上不断print出来的内容或者盘中去翻日志吧,这个运维风险就扛不起。尽管可以作为插件的形式开发GUI,但C++本身的GUI开发还是较为复杂的,非专业IT很难搞的定。&/p&&p&3. 交易员团队的需求变化很快,通常等不及IT去排班开发,最好是今天收盘有个点子,明天开盘就能开始接实盘数据验证,没问题后天就能上实盘。比如去年四季度的分级基金套利机会就是稍纵即逝,那段时间如果能快速开发完成一套专门的监控套利系统,抓住的利润绝对会比用excel接wind数据来的多不少。&/p&&p&4. 某些业务逻辑确实太过复杂,交易员想解释让IT明白,无奈IT并不是太擅长某些金融领域(比如期权高频套利的整个业务框架),交流成本太高。&/p&&/blockquote&&p&这可以说是纯 IT 背景的人入行会遭遇的最大的挑战,一个 Pure IT Role 其实是很难适应交易这个行业的。干这行是非常需要复合型人才的,IT 如果只满足于在自己一亩三分地恪守软件开发的职责,后果就是 Trader 们被逼自己写代码,这实在是一出悲剧。&/p&
主要看你的定位在哪里。简单说,作为一个业余时间的练手就是很赞的作品,但要定位成专业交易平台则问题很多:Python的问题不仅仅在于延迟性能,更致命的是这个弱类型语言很难做编译期静态检测,系统复杂以后很容易写出 bug。这对于交易系统这种对系统稳定性…
来自子话题:
是因为人生苦短,喜欢偷懒
是因为人生苦短,喜欢偷懒
来自子话题:
&p&语法上东西我就不说了。&/p&&br&&p&计算机程序可以粗略的分成,代码+数据。初学者很容易就会将这两者对立起来,会认为代码就是代码,数据就是数据,两者是完全不同的。但实际上,两者可以统一起来的。将代码跟数据统一起来,是学习计算机编程的一道门槛。&/p&&br&&p&可以参考我以前的回答。&a href=&/question//answer/& class=&internal&&回调函数是什么?&/a&&/p&&br&&p&将数据保存起来,以后再使用,会觉得很自然。但将代码保持起来,以后再使用,很多人会觉得很别扭,难以理解。都是因为还没有过那道槛。&/p&&br&&p&代码指令执行时候,会处于一定的环境,单纯将代码保存下来,还是不够的,需要将代码所处的环境也保存下来。闭包其实是,将代码跟代码所处于的环境做为一个整体来看待。周围的环境,表现为代码所使用的数据。在有些语言中,这个概念叫代码块(block),匿名函数(lambda)等等。&/p&&br&&p&数据跟代码不再人为割裂开来,统一起来看待。闭包就会是很自然的概念。数据可以传递,从一个地方传递到另一个地方,并且以后再使用。闭包从某个角度来说,也是数据,当然也可以传递,从一个函数传递到另一个函数,也可以保持下来,以后再调用。因为将环境也保持下来了,以后调用的时候,就还原当时的情况,延迟执行,就很容易,很自然地实现了。而延迟执行有什么作用?就是另一个话题了。&/p&
语法上东西我就不说了。计算机程序可以粗略的分成,代码+数据。初学者很容易就会将这两者对立起来,会认为代码就是代码,数据就是数据,两者是完全不同的。但实际上,两者可以统一起来的。将代码跟数据统一起来,是学习计算机编程的一道门槛。可以参考我以…
来自子话题:
作为做了几年php开发的程序员我说下个人的看法:&br&&br&1 如果是程序员的话,不管你是ruby、python、java、.net、c、c++,还是php,你可能都需要学习这些语言的基本知识,这个语言的函数库,或者是类库,那是越熟悉越好&br&2 对于web应用开发的程序员,你肯定要熟悉数据库和sql编程,那肯定是越熟悉越好,而且对于javascript和css也是如此,越熟悉越好&br&3 对于数据库和服务器的配置,这不应该是你需要花很多精力的地方,因为这是运维人员的工作,如果某个公司对这个有要求,那他们估计就没有运维人员,这些东西很繁琐,而且需要实践,所以建议不要花太多的实践在这上面,了解就可以&br&4 对于设计模式也是了解为主,你可能会用到设计模式的地方很少,而且如果你真正对编程有感觉了,一段时间的实践之后你自然知道怎么用,哪些总是喜欢把设计模式、编程思想挂在嘴边的基本都是没毕业的&br&5 如果可以的话,我建议使用linux系统,学习Vim,并且学习apache,php,mysql的编译,不过如果你坚持用linux系统的话,那你肯定会试着自己编译这些东西的&br&6 多看php手册,学好英文,有什么问题首先看手册&br&7 学习敏捷开发,学习使用PHPUnit、SimpleTest这些工具写单元测试,并且在实际的项目中使用&br&8 如果要深入点的话,学习PHP扩展的开发,也许你可能不会开发扩展,但如果你了解了如果开发一个扩展,你就会知道PHP并不是想很多说的那么简单&br&9 学习并使用PHP的框架,如果你用了某个框架1-2年,那就试着去看下它的源代码,并试着理解那些代码,如果可以的话试着自己开发一个框架&br&10 所有程序语言都说用来解决具体的问题的,语言很重要,学好用好一门语言并不是一天两天的事,不要相信哪些给你兜售编程思想的人,思想是在实践中积累的,而不是看了书学了别人的思想就会了,然后就什么都可以写了&br&11 学习算法,锻炼思维
作为做了几年php开发的程序员我说下个人的看法:1 如果是程序员的话,不管你是ruby、python、java、.net、c、c++,还是php,你可能都需要学习这些语言的基本知识,这个语言的函数库,或者是类库,那是越熟悉越好2 对于web应用开发的程序员,你肯定要熟悉数…
来自子话题:
高级一点的,我一般也是让对方现场写代码。&br&1,常见设计模式,举例几个,举出来的写几个伪代码,讨论一下实际业务场景。。&br&2,写个jq的简单选择器,思路,伪代码。&br&3,写个requirejs,简单的,原理,伪代码。&br&4,nodejs自动化工具相关的,stream相关,知道的更多都会聊一下。&br&5,性能优化方面的经验。&br&6,前端广告方面的经验。&br&7,常见的一些ui组件的实现原理,伪代码,比如放大镜,智能提示,拖拽一类的。&br&8,给个具体场景,给几个框架,让他选型,问为什么。&br&&br&一般的前端就问问基础知识,dom操作啥的了。。&br&&br&因为我算法不好,所以我也不会问算法(最多就是个快排,冒泡了),css相关的我会问下rem,vm,移动端自适应的一些方法,一些css3动画的bug,css3动画回调的实现一类,可能还会问问canvas的api和使用经验。&br&&br&大概就这么多,我比较偏向实操。。
高级一点的,我一般也是让对方现场写代码。1,常见设计模式,举例几个,举出来的写几个伪代码,讨论一下实际业务场景。。2,写个jq的简单选择器,思路,伪代码。3,写个requirejs,简单的,原理,伪代码。4,nodejs自动化工具相关的,stream相关,知道的更…
来自子话题:
肯定是Jade。EJS不要说跟Jade比,就是跟传统模板技术,比如Smarty比,也很挫了,比如不支持模板继承。&br&&br&Jade有两点是超出传统模板技术的。&br&&br&第一、简洁。&br&注意,简洁并非单指更少的符号,而是看是否能match你的需要。Jade强制的缩进格式能凸显html的结构,而对于前端来说,最重要的任务恰恰是处理结构,而不像一般的html author那样是处理内容。反过来说,假如你的主要任务是处理内容,比如写作blog之类的,那你应该用wiki或者markdown之类的,而不应该用Jade。&br&&br&第二、html-aware&br&传统模板技术其实是通用模板,即模板引擎并不care你输出的是html还是其他格式的文本。而Jade专为HTML设计,因此可以做许多传统模板做不到的专门针对html的优化。举个几个简单的例子:&br&1. 决定如何输出属性(当属性赋值为null/false时不输出属性,为true时只需属性不需要值,这在传统模板里写起来很麻烦、代码难看易出错)&br&2. 自动产生well-formed结构(甚至可决定是否要输出结束标签,而传统模板理论上也做不到这点,除非引入额外的html parse或tidy)&br&3. 换行处理,避免产生额外的空白节点&br&4. 对输出的变量自动进行特殊字符的encode&br&&br&当然,这些ejs或传统模板也有能实现的,但是用起来感觉都很挫。&br&&br&实际上,Jade在这方面其实做得还不够好(我打算顺着这个思路做个开源的项目),但是比那些传统模板还是要优雅多了。&br&&br&&br&补充:下面的答案有人吐槽缩进在混杂IDE时的问题。这个问题其实所有基于缩进的语言都有,比如Python、CoffeeScript之类的。简单来说只要团队里统一就可以了。如果仅仅因此要舍弃Jade,只能说很幼稚。&br&&br&另外有人说Jade的性能太差。但根据 &a class=& external& href=&///?target=http%3A///dom-vs-innerhtml-based-templating/796& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/dom-vs-inner&/span&&span class=&invisible&&html-based-templating/796&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& ,预编译的Jade性能算是相当好的,反倒是EJS几乎垫底。
肯定是Jade。EJS不要说跟Jade比,就是跟传统模板技术,比如Smarty比,也很挫了,比如不支持模板继承。Jade有两点是超出传统模板技术的。第一、简洁。注意,简洁并非单指更少的符号,而是看是否能match你的需要。Jade强制的缩进格式能凸显html的结构,而对于…
来自子话题:
当我复制黏贴一个python代码到另一个文件里,【看起来】缩进什么都对,结果一跑就飞了的时候(
当我复制黏贴一个python代码到另一个文件里,【看起来】缩进什么都对,结果一跑就飞了的时候(
来自子话题:
国内不太清楚,只说美国。&br&&br&R vs. SAS&br&&br&美国大型金融机构几乎前篇一律的用SAS。最重要原因的在于用SAS省却了尽职调查。R作为一款免费软件,有大量第三方的library或者package。你说你用吧,挺方便,但是每用一次你就得给这个来一次尽职调查。不然银行内的model validation team,internal audit或者美联储都回来挑麻烦的。或者你不用,不过自己把所有需要的工具自己写一遍也够累的,何况自己写了也需要validate。而不管是对第三方code的尽职调查,还是对自己code的validation,都成本很高,牵扯很多部门,需要按照详细的流程走下来。(美联储的要求越来越严格了)&br&反观SAS,作为一个default工具,不管是用Base SAS还是SAS EG,交点钱就好了。对于这些机构来说,SAS真的不贵。我们最近在帮某大行Bulid model,team去了几十个人,客户也没在乎是不是每个人都需要,就给每人都配了Base SAS和SAS EG。&br&&br&另外银行动辄上百个G大小的数据,R跑起来可能真的太吃力了。相反基于Server的SAS用起来非常流畅。&br&&br&Python vs. C++&br&这个我了解不多。但是Python在machine learning上的应用越来越好,所以在量化交易上应该还是有前景的。而且Python和其他语言的对接做的很棒,也算是他的优势吧。另一方面Python真的很简洁,连我这种看见C++就头疼的人也能写一些simulation。如果要求不是很严格,很多人会非常乐于接受Python吧。
国内不太清楚,只说美国。R vs. SAS美国大型金融机构几乎前篇一律的用SAS。最重要原因的在于用SAS省却了尽职调查。R作为一款免费软件,有大量第三方的library或者package。你说你用吧,挺方便,但是每用一次你就得给这个来一次尽职调查。不然银行内的model …
来自子话题:
因为刚好参与到了这个项目的设计 所以讲讲它的背景.&br&&br&Reason 的作者是 Jordan Walker, 他本人很少在大会上talk 但是是 Facebook 最受欢迎的两个library: ReactJS, ReactNative 的作者.&br&&br&其中ReactJS的初始版本是用Standard ML 写的, 后来Jordan发现了OCaml并痴迷于该语言 恰好Facebook有很多基础性软件也是用OCaml 写得,比如 Flow(&a href=&///?target=https%3A///facebook/flow& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/facebook/flo&/span&&span class=&invisible&&w&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&), Hack(&a href=&///?target=https%3A///facebook/hhvm/tree/master/hphp/hack& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&hhvm/hphp/hack at master · facebook/hhvm · GitHub&i class=&icon-external&&&/i&&/a&), Infer(&a href=&///?target=https%3A///facebook/infer& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - facebook/infer: A static analyzer for Java, C and Objective-C&i class=&icon-external&&&/i&&/a&), Pfff(&a href=&///?target=https%3A///facebook/pfff& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - facebook/pfff: Tools for code analysis, visualizations, or style-preserving source transformation.&i class=&icon-external&&&/i&&/a&), 还有些内部为开源的工具.&br&&br&OCaml 是一门非常优秀的语言,这里就不具体展开了,但是很多不习惯于OCaml的语法 特别是很多Javascript 用户很在意语法,而且Jordan在JavaScript 社区有很大的影响力,所以Jordan就想给OCaml设计一种对JavaScript用户比较好的语法 以吸引更多的用户不要被语法这种肤浅的表象困惑 而了解并使用这门优秀的语言。&br&&br&与此同时 去年Jordan了解到我在给OCaml添加新的编译器后端(&a href=&///?target=https%3A///bloomberg/bucklescript& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - bloomberg/bucklescript: A backend for the OCaml compiler which emits JavaScript).&i class=&icon-external&&&/i&&/a& 可以把OCaml编译到非常可读的高效的JavaScript, 这样Reason的工作就更加有意义了,JavaScript 可以用自己很熟悉的语法,但是真正的Semantics 比如类型推断,检测核心依然是OCaml这门语言, 而且生成可读的JavaScript, 这样就有点像TypeScript 但是起点要比JavaScript 好很多 没有任何历史包袱.&br&&br&Reason 已经开始在和BuckleScript 结合使用了比如:&br&&a href=&///?target=http%3A//bloomberg.github.io/bucklescript/reason-demo/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&OCaml to Javascript transplier playground&i class=&icon-external&&&/i&&/a&&br&&a href=&///?target=https%3A///bloomberg/bucklescript-addons/blob/master/examples/reason-demo/README.md& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&bucklescript-addons/README.md at master · bloomberg/bucklescript-addons · GitHub&i class=&icon-external&&&/i&&/a&&br&&br&不光是Reason 新的语法, Facebook 还会继续在OCaml的工具上进行投入,比如IDE, build system.&br&&br&这对于函数式语言 或者 OCaml用户来说都是利好消息 : )
因为刚好参与到了这个项目的设计 所以讲讲它的背景.Reason 的作者是 Jordan Walker, 他本人很少在大会上talk 但是是 Facebook 最受欢迎的两个library: ReactJS, ReactNative 的作者.其中ReactJS的初始版本是用Standard ML 写的, 后来Jordan发现了OCaml并痴…
来自子话题:
中国程序员年薪中位数30万元。&br&那些个说又拖什么后腿了,拖脚后跟了,又扯蛋了的人,你们真的有 Stack Overflow 帐号吗
中国程序员年薪中位数30万元。那些个说又拖什么后腿了,拖脚后跟了,又扯蛋了的人,你们真的有 Stack Overflow 帐号吗
来自子话题:
一行代码屏蔽百度搜索里害死人的广告:&br&&div class=&highlight&&&pre&&code class=&language-js&&&span class=&nx&&$&/span&&span class=&p&&(&/span&&span class=&s2&&&#content_left&div&&/span&&span class=&p&&).&/span&&span class=&nx&&has&/span&&span class=&p&&(&/span&&span class=&s2&&&font:contains('- ')&a:contains('推广'), &a:contains('推广链接'), &a:contains('商业推广')&&/span&&span class=&p&&).&/span&&span class=&nx&&remove&/span&&span class=&p&&();&/span& &span class=&c1&&//或者hide()&/span&
&/code&&/pre&&/div&&br&在百度搜索的页面下,按F12打开调试台,在console中输入上述代码再回车,排在前面的百度推广条目就不见啦!&br&&br&原来的网页:&br&&img src=&/d412dfdca185_b.png& data-rawwidth=&766& data-rawheight=&687& class=&origin_image zh-lightbox-thumb& width=&766& data-original=&/d412dfdca185_r.png&&&br&&br&变干净的网页:&br&&img src=&/d32f4f6904dd3_b.png& data-rawwidth=&770& data-rawheight=&612& class=&origin_image zh-lightbox-thumb& width=&770& data-original=&/d32f4f6904dd3_r.png&&&br&&br&我还简单制作了一个屏蔽百度广告的Chrome插件,欢迎大家试用。下载地址:&a href=&///?target=https%3A///filick/Baibye& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GitHub - filick/Baibye.&i class=&icon-external&&&/i&&/a&
一行代码屏蔽百度搜索里害死人的广告:$("#content_left&div").has("font:contains('- ')&a:contains('推广'), &a:contains('推广链接'), &a:contains('商业推广')").remove(); //或者hide()
在百度搜索的页面下,按F12打开调试台,在console中输入上述代码…
来自子话题:
很多男人的通病就是,总是借着打击女朋友来显示自己多厉害。事实上我从小学三年级开始就不做这么幼稚的事了。
很多男人的通病就是,总是借着打击女朋友来显示自己多厉害。事实上我从小学三年级开始就不做这么幼稚的事了。
来自子话题:
1. Web performance APIs ,可以得到各种时间比如dns解析时间、连接时间、跳转时间、加载时间等指标,具体请自行查资料,不赘述。&br&2. 浏览器的私有API,比如 chrome.loadTimes()&br&3. DOM ready/load 事件&br&4. 白屏时间(first paint time)&br&5. 首屏时间(Above-the-fold time)&br&&br&4和5尚无公认的确定方法和对应api。特别是5,怎么定义首屏没有统一的标准。因此需要自行确定,并用一些相对hack的方式获取。前一段时间百度和腾讯都有人分享过他们的做法,可以参考,具体链接等回头找到了再补。&br&&br&如果只是要大致了解网站的性能,最简单的办法是使用Google Analytics,它包含了性能统计。如果要非常细致的数据(比如web performance api上的数据),可以自己写,也可用我写的这个库:&a href=&///?target=http%3A///hax/WebPerf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/hax/WebPerf&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a& (有基本的兼容处理,但优化不够,所以我们自己只取样5%~10%的用户加载这个脚本。下个月我还会抽时间改进)。
1. Web performance APIs ,可以得到各种时间比如dns解析时间、连接时间、跳转时间、加载时间等指标,具体请自行查资料,不赘述。2. 浏览器的私有API,比如 chrome.loadTimes()3. DOM ready/load 事件4. 白屏时间(first paint time)5. 首屏时间(Above-th…
来自子话题:
问题提了将近一天, 看到了很多零零散散的肯定或批评. 作为从 0.1 版开始将其作为主力编辑器的伪全栈, 用 VS Code 写了不少 Node.js 代码 (TypeScript / JavaScript). 也看到 VS Code 有许多变化, 有好评价的, 也有不好评价的.&br&&br&首先是去年末在 Connect 2015 上的高潮, VS Code 开源并且支持插件. 其实相比开源本身, 更令人激动的是 GitHub issues 这个超级大熔炉. 作为用户我们能非常直接地与开发团队交流, 提出需求, 听听别人的看法, 包括来自开发团队的, 也有来自其他用户的. 我自己虽然有很多 (没人用的) 开源项目, 但相比纯粹的开源, 更让我认可的是这种交流方式 (当然, TypeScript 项目也同样如此). 所以大家如果有想法或者建议, 完全可以提交 issue, 与其他人一起讨论: &a href=&///?target=https%3A///Microsoft/vscode/issues& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Issues · Microsoft/vscode · GitHub&i class=&icon-external&&&/i&&/a&.&br&&br&当然, issues 也是窥见项目进展的好地方, 比如可以通过 Milestone 查看下一个迭代的进度: &a href=&///?target=https%3A///Microsoft/vscode/milestones& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Milestones - Microsoft/vscode · GitHub&i class=&icon-external&&&/i&&/a&.&br&&br&作为一个 Web 前端出生的 JavaScript 工程师, 我的关注点更多的是在 JavaScript 及 TypeScript 相关的功能上. 从 0.1 到 1.0, VS Code 在对 JavaScript 的语言支持上摇摇摆摆做出了好多次改变. 这个似乎也是大家吐槽的重点. 但是作为一个正经用 VS Code 做项目开发的个人/团队, 对着一系列的改变还是非常认可的, 不过两个事情分开说.&br&&br&&b&挑大梁的 Salsa&/b&&br&在不久前的版本里, VS Code 已经开始内置 Salsa 支持. 有的同学可能不知道什么是 Salsa, 在最初的 VS Code 版本里, JavaScript 的支持就是由基于 TypeScript 定制的语言服务完成的. 再往后, 这个分支合并到了 TypeScript 中, 成为了 TypeScript 语言服务的一部分, 并为 JavaScript 提供语言支持. 这部分也就是 Salsa 了. 得益于 Salsa, TypeScript 已经可以在项目中混写 JavaScript, 甚至可以作为 ES-next 的编译器使用. 而受益于 TypeScript, Salsa 赋予了 VS Code 可以与 IDE 媲美的 JavaScript 代码提示, 自动完成与重构支持.&br&&br&&b&代码提示&/b&&br&&img src=&/9a985faff4b_b.png& data-rawwidth=&960& data-rawheight=&800& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/9a985faff4b_r.png&&&br&&b&代码导航与重构&/b&&br&&img src=&/49ec9f3a5975c63efb0f7_b.png& data-rawwidth=&960& data-rawheight=&480& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/49ec9f3a5975c63efb0f7_r.png&&&br&不过相比 WebStorm 来说, VS Code 在模糊匹配上还比较弱势, 毕竟很多时候由于各种各样的写法, Salsa 并不能处理模糊的情况. 但就能准确推断的地方, Salsa 绝对是一把好手. 也由于 Salsa 是属于 TypeScript 的一部分, 不仅 VS Code 可以由它获益, 其他编辑器也可以通过 TypeScript 语言服务提供同样强大的 JavaScript 支持.&br&&br&当然, 要体验完整的 VS Code JavaScript 开发体验, 需要创建 jsconfig.json 文件. 1.0 中也在右下角提供了快捷方式, 方便用户上手.&br&&img src=&/4a59fdaabf00_b.png& data-rawwidth=&960& data-rawheight=&160& class=&origin_image zh-lightbox-thumb& width=&960& data-original=&/4a59fdaabf00_r.png&&&br&&b&Linter 和 Linter&/b&&br&从一开始, VS Code 就提供了内建的 JavaScript 语法检查. 但不幸的是, 项目一大, 这货延迟可以长达好几秒钟. 到后来有一段时间干脆关闭了开发过程中的语法检查, 但即便是作为人肉 Parser 的我, 也会经常漏掉错误. 后来 Code 加入了 JSHint 与 ESLint 支持 (需要使用 npm 安装对应的全局模块 jshint 或 eslint), 默认不启用, 当然我是果断换上, 从此丝滑无比. 另外由于可以使用团队共用的 .jshintrc 或 .eslintrc 配置文件, 不需要最后跑挂了测试再回头改代码风格 (再后来 JSHint 和 ESLint 独立成插件, 不再内置). 对于 &a data-hash=&399dd66f4ddd828ed343dc11& href=&///people/399dd66f4ddd828ed343dc11& class=&member_mention& data-editable=&true& data-title=&@王吉& data-tip=&p$b$399dd66f4ddd828ed343dc11& data-hovercard=&p$b$399dd66f4ddd828ed343dc11&&@王吉&/a& 所说的配置问题和默认风格, 可以将他提到的&br&&a href=&///?target=https%3A///egamma/65c0e2ab625a& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/egamma/&/span&&span class=&invisible&&65c0e2ab625a&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 文件保存到用户目录下, 避免每次都需要添加到项目中. 但这样有个坏处是全局配置和局部配置会合并到一起, 如果是团队项目的统一配置, 可能会和编辑器的提示情况有出入.&br&&br&&b&Debugger&/b&&br&VS Code 的另一大亮点是 debugger, 第三方运行环境和语言也可以通过它提供的 API 快速搭建调试插件. 从插件上线以来, 已经有了适配 Chrome, Cordova, GDB, LLDB, PHP, Python, Ruby, Pascal 等一堆运行环境或语言的插件. 我司的 &a href=&///?target=https%3A//ruff.io/zh-cn/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Ruff&i class=&icon-external&&&/i&&/a& (JavaScript 硬件开发方案) 也在探索使用 VS Code 提供包括远程 debug 在内的应用开发体验.&br&&br&&b&其他细节和槽点&/b&&br&&ul&&li&&b&更友好的 tasks.json 配置. &/b&过去在 VS Code 中没有 tasks.json 配置时执行任务 (比如 Ctrl+Shift+B 构建项目), VS Code 会生成一个包含了各种任务示例的 tasks.json 模板. 而现在会提供一个列表供用户选择. 终于不用一次又一次回答其他同学怎么配置 TypeScript 编译任务了.&br&&/li&&li&&b&反馈不足的本地化.&/b& 1.0 更新后, 在包括 QQ 群, 知乎, 以及 GitHub 相关 issues (这个其实更早) 都有看到大家吐槽本地化的命令栏不能识别英文命令. 但下一个月的更新应该会有一个合理的解决方案.&/li&&li&&b&退化的内置 Auto Fix.&/b& VS Code 刚出来的时候, JavaScript 中如果出现了 $, process 这样的标示符, 会提示下载对应的 typings 文件, 但忘了是在哪个版本中移除了这项功能. 虽然熟手都会自己用 tsd 或者 typings 这样的工具, 但对新手来说少了一个友好的特性.&/li&&/ul&VS Code 从一开始选择了键盘为中心, 基于 JSON 文件配置的方式, 其实一定程度上增加了对于初学者的上手难度. 但迈过这个坎儿, VS Code 已经代替了我的 Visual Studio 和 Sublime Text, 也希望它能成就更多人的生产力.
问题提了将近一天, 看到了很多零零散散的肯定或批评. 作为从 0.1 版开始将其作为主力编辑器的伪全栈, 用 VS Code 写了不少 Node.js 代码 (TypeScript / JavaScript). 也看到 VS Code 有许多变化, 有好评价的, 也有不好评价的.首先是去年末在 Connect 2015 …
来自子话题:
&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&jquery&i class=&icon-external&&&/i&&/a&的优点:他是常用的js工具方法的一堆封装,他在一定程度上加快前端开发的速度,会缩短项目开发周期,会减少很多代码。&br&缺点:因为jquery内部做了很多细节的处理,当然最终目的是为了方便的调用。但是有些初学者误以为,js的本来面貌就是这个样子。用Jquery去描述业务场景,而不是试图用代码逻辑来解决问题。所以很多人就此对jquery造成依赖。很多提问的时候问,这个问题用jquery怎么解决。&br&为什么他能够像现在如此受欢迎,成为一种事实的标准,是因为他的封装充分考虑了开发者的习惯,在尽可能大的角度来方便开发者调用与二次开发,这是他的一个优点之一。具体体现在,类工厂链式方式的调用,比如:&br&$().show().animate(),比如set,get的统一参数处理。$().css('width') $().css({ width : 200 });&br&&br&而且在早期版本兼容了低版本ie的很多bug,使开发的注意力真正的关注到逻辑与数据上来,而不是成天解决兼容问题。&br&其它优点不一一等等。&br&至于如何使用好jquery,jquery提供的方便快捷封装在整个前端开发流程占多大的比例?为什么我们一定要建议先学js,在学习其它框架,这是我们要搞清楚的。&br&1. 其实如何使用好jquery,取决于原生js的基础,什么是原生js的基础:&br&比如:js语句后面到底用不用加分号,不用加分号时在哪个地方有坑?&br&js里边单双引号是否有区别,他的标识名命名规则是怎么样的,为什么prototype与jquery都取$为他的工厂函数标志?如果你将来写一个,还有没有其它符号可用?&br&js里边保留字,关键字,有哪些?each与普通的for循环有多大的区别,他的好处在哪里,他的坏处在哪里,我们什么时候该用他,什么时候不该用他,等等。&br&还有高级的,如何实现一个类的继承,如果用jquery方便的继承,什么闭包,闭包的优缺点,什么是事件代理,代理的优缺点。等等&br&上面的这些知识,在任何一个jquery相关书籍里边提的不多,而这些恰恰是一个js初学者必须掌握的。&br&&br&2. jquery在整个开发过程中充当了一个方便操作dom的工具方法集合,而前端开发除了操作常用的dom之外,还需要操作页面的交互数据,模块化开发,工程师发布等等。夸张点说:jquery只是前端开发中的一个部分,他没有任何一处能力完全取代原生js。而且我们需要了解的还有很多,具体见下文。&br&前面从个人的角度介绍了一下什么是jquery,然后什么是js,百度很多,不一一介绍。&br&3. 只有在学好原生js的基础上,才能很多的学习jquery或其它框架。因为jquery与其它框架出现的初衷就是加快js开发,粗暴的理解,他对常用的js开发函数进行了封装,所以js功底扎实,基本看api及说明就能很快的入手,这也是jquery及其它框架欢迎的根本。&br&然后个人建议:先学原生js,再学jquery,然后有空学习jquery源码,才能更好的使用jquery。&br&然后问题来了,除了jquery之外还有什么值得学习的主流js框架?&br&jquery 主要战场还是在dom操作这块,顺带封装了ajax或其它的常用方法。&br&其它经典怀旧的几个有空的时候可以了解一下他们的源码,&a href=&///?target=http%3A//mootools.net/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&mootools&i class=&icon-external&&&/i&&/a&, &a href=&///?target=http%3A//prototypejs.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&prototype&i class=&icon-external&&&/i&&/a&.是他们启发了js向工程化,团队化,协作化方向发展的转变,&br&yui虽然听说停止开发了,但他的代码思想与那些yahoo jser付出,努力的结晶是值得我们学习与默拜的。&br&除了jquery之外,ext是一个巅峰,需要了解一下。他是初期企业级UI框架解决的一个鼻祖,从一定程度上解决了当时企业级应用的复杂界面交互,但是后来由于界面风格的单一化或本身一些性能问题,而被一些开发者弃用。&br&其它类ext的比如:&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&easyui&i class=&icon-external&&&/i&&/a&, lightui, &a href=&///?target=http%3A//www./& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&j-ui&i class=&icon-external&&&/i&&/a&, 这几个,并没有真正意义上颠覆或超越ext,但在天朝本地化或语言或自身业务模式上有了一定的微创新或发展。&br&由于随着前端交互或数据的提高,对前端的依赖也是越来越大,这样前端的代码也是越来越多,这样的场景下就需要一个能解决代码块与块之间的调用,多块的代码加载,等等这些问题的框架出现。这时候requirejs,seajs填补了这2个空白。&br&然后核心的模块解决了,块与块的问题解决了,就剩下打包发布了,最近业界有这三个东西做这方面的工作。&br&&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&grunt&i class=&icon-external&&&/i&&/a&, &a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&gulp&i class=&icon-external&&&/i&&/a&,&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&fis&i class=&icon-external&&&/i&&/a&。&br&又随着前端代码的越来越复杂,不得不出现了javascript mv*的解决方案:&br&&a href=&///?target=https%3A//angularjs.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&angularjs&i class=&icon-external&&&/i&&/a&, &a href=&///?target=http%3A//www.react-china.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&React 中文&i class=&icon-external&&&/i&&/a&, &a href=&///?target=http%3A//vuejs.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&vuejs&i class=&icon-external&&&/i&&/a&, &a href=&///?target=http%3A//backbonejs.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&backbone&i class=&icon-external&&&/i&&/a&, 有空的时候了解一下。&br&其它的如:&a href=&///?target=http%3A//underscorejs.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&underscore&i class=&icon-external&&&/i&&/a&,&a href=&///?target=https%3A///& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/&/span&&span class=&invisible&&&/span&&i class=&icon-external&&&/i&&/a&&br&移动端的几个需要了解一下,&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&jq mobile&i class=&icon-external&&&/i&&/a&, &a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&zepto&i class=&icon-external&&&/i&&/a&.&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&knockout&i class=&icon-external&&&/i&&/a&,&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&swipe&i class=&icon-external&&&/i&&/a&,&a href=&///?target=http%3A//cubiq.org/iscroll-5& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&iscroll&i class=&icon-external&&&/i&&/a&&br&还有一些剑走偏峰的作品比如:&a href=&///?target=http%3A//threejs.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&three.js&i class=&icon-external&&&/i&&/a&,&a href=&///?target=http%3A//d3js.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&d3.js&i class=&icon-external&&&/i&&/a&,&a href=&///?target=https%3A//famo.us/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&& famo.us&i class=&icon-external&&&/i&&/a&,&br&还有一些国内jser的贡献,团队或个人的都有。比如&a href=&///?target=http%3A///& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&qwrap&i class=&icon-external&&&/i&&/a&, &a href=&///?target=https%3A///RubyLouvre/avalon& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&avalon&i class=&icon-external&&&/i&&/a&,还有一个百度的七巧板,腾讯的jx,&br&还有其它的如, &a href=&///?target=http%3A///projects/lightbox2/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&lightbox&i class=&icon-external&&&/i&&/a&, &a href=&///?target=http%3A//aui.github.io/artDialog/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&artDialog&i class=&icon-external&&&/i&&/a&, &a href=&///?target=http%3A//www.my97.net/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&/aui/artTemplate&i class=&icon-external&&&/i&&/a&。&br&&br&还有,如果你对以上前端技术真的感兴趣,有兴趣加入前端交流群:&b&&/b&,禁闲聊,无意义大图片,非喜勿进。
的优点:他是常用的js工具方法的一堆封装,他在一定程度上加快前端开发的速度,会缩短项目开发周期,会减少很多代码。缺点:因为jquery内部做了很多细节的处理,当然最终目的是为了方便的调用。但是有些初学者误以为,js的本来面貌就是这个样子。用Jq…
来自子话题:
Windows 也有装起来非常简单的开发环境啊。&br&但是卖钱。&br&&img src=&/e520b0d86e2457b59acc258f270a7b4c_b.png& data-rawwidth=&1200& data-rawheight=&699& class=&origin_image zh-lightbox-thumb& width=&1200& data-original=&/e520b0d86e2457b59acc258f270a7b4c_r.png&&
Windows 也有装起来非常简单的开发环境啊。但是卖钱。
来自子话题:
談一個技術上的原因。&br&學習算法需要&b&分析算法的時間和空間複雜度&/b&。&br&JavaScript的標準ECMA-262[1]並沒有指明各種操作的複雜度,各個腳本引擎的實現可能會不一樣。&br&而C++本身較JS底層、透明,而且C++的標準庫也會指明各種操作的複雜度,例如upper_bound()是對數時間複雜度[2]、vector::push_back()是分攤常數時間複雜度[3]。&br&所以,使用JavaScript實現算法時,相比C++,可能較難分析算法的複雜度。&br&&br&[1] &a href=&///?target=http%3A//www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&ecma-international.org/&/span&&span class=&invisible&&publications/files/ECMA-ST/Ecma-262.pdf&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[2] &a href=&///?target=http%3A///w/cpp/algorithm/upper_bound& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&std::upper_bound&i class=&icon-external&&&/i&&/a&&br&[3] &a href=&///?target=http%3A///w/cpp/container/vector/push_back& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&std::vector::push_back&i class=&icon-external&&&/i&&/a&&br&&br&---------------------------------&br&一些之前对 &a data-hash=&ec03b8e839a6fb763e1bdb& href=&///people/ec03b8e839a6fb763e1bdb& class=&member_mention& data-editable=&true& data-title=&@winter& data-hovercard=&p$b$ec03b8e839a6fb763e1bdb&&@winter&/a&的回应,复制于此:&br&&br&每個語言都有底層,但C++比JS底層,我只是說C++比JS容易分析複雜度。&br&&br&實際上,申請O(n)內存時某個操作系統申請了O(n^2)內存,這個可能性是存在的,只是我們一般能相信這個操作只會分配O(n)的內存。&br&&br&即使有偽代碼,也難判定複雜度。例如對象可以用hash table或是sorted map實現,當中各個操作的時間複雜度就不一樣。&br&&br&那個reference是按standard寫的,有些會說明C++11和之前的分別。例以在我的答案中提及list::size()在C++11規定要O(1),而C++03則不是。
談一個技術上的原因。學習算法需要分析算法的時間和空間複雜度。JavaScript的標準ECMA-262[1]並沒有指明各種操作的複雜度,各個腳本引擎的實現可能會不一樣。而C++本身較JS底層、透明,而且C++的標準庫也會指明各種操作的複雜度,例如upper_bound()是對數時…
来自子话题:
看到有匿名用户说“Php7性能再好,它也是PHP,某种程度上,php7的意义还不如swoole这个扩展。”,还有评论怀疑是我写的。赶紧出来澄清下。知乎一个人只能答一次,所以肯定不是我写的。而且PHP7的价值是远超Swoole的。PHP7是给所有PHPer的福利,Swoole主要是面向高阶PHP程序员。&br&&br&PHP7和Swoole是2个方向的东西,详情可以看我写的博文《PHP7与Swoole》 &a href=&///?target=http%3A///archives/440& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/archiv&/span&&span class=&invisible&&es/440&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&PHP7的改进对Python没有冲击。性能是相对的,&b&和自己比更有意义&/b&。比如PHP5.6下我的程序可以支持每秒100个请求,PHP7可以提升到每秒300个请求。可以应对更大的并发。这样才是有价值的。&br&&br&PHP7的伟大之处就是可以让你的程序&b&无成本&/b&地提升2倍性能。所以PHP程序员们赶快出来跪谢鸟哥吧。
看到有匿名用户说“Php7性能再好,它也是PHP,某种程度上,php7的意义还不如swoole这个扩展。”,还有评论怀疑是我写的。赶紧出来澄清下。知乎一个人只能答一次,所以肯定不是我写的。而且PHP7的价值是远超Swoole的。PHP7是给所有PHPer的福利,Swoole主要是…
来自子话题:
获奖的都是有真本事的人,在上面练几个题目得个好名次,十分能证明你对数据科学这个领域的实践和理解。我现在招人的时候几乎是这个标准:&br&&ol&&li&写上参加过Kaggle比赛,我会看简历。&br&&/li&&li&得过一次10%,我会给电话面试。&/li&&li&得过2次或者以上10%,我会给on site面试。&/li&&li&得过一次前10,我们会谈笑风生。&/li&&/ol&楼主加油。
获奖的都是有真本事的人,在上面练几个题目得个好名次,十分能证明你对数据科学这个领域的实践和理解。我现在招人的时候几乎是这个标准:写上参加过Kaggle比赛,我会看简历。得过一次10%,我会给电话面试。得过2次或者以上10%,我会给on site面试。得过一次…
来自子话题:
因为吃完py就可以吃raspberry pi啊。&br&&br&学会py还可以飞。&br&&img src=&/4e6cabdb54c15_b.jpg& data-rawwidth=&518& data-rawheight=&588& class=&origin_image zh-lightbox-thumb& width=&518& data-original=&/4e6cabdb54c15_r.jpg&&&br&&br&好吧我够了。悄悄搬运开始学py的第一个slide。感觉这个概括的相当全面了。一句话Java和Py和平共存互补啦。壮哉我大Java母语(抱歉有点跑题了(逃_(√ ζ ε:)_&br&&img src=&/bf69c2af65c29e81ee06bc1_b.jpg& data-rawwidth=&700& data-rawheight=&6217& class=&origin_image zh-lightbox-thumb& width=&700& data-original=&/bf69c2af65c29e81ee06bc1_r.jpg&&
因为吃完py就可以吃raspberry pi啊。学会py还可以飞。好吧我够了。悄悄搬运开始学py的第一个slide。感觉这个概括的相当全面了。一句话Java和Py和平共存互补啦。壮哉我大Java母语(抱歉有点跑题了(逃_(√ ζ ε:)_
来知乎,参与讨论

我要回帖

更多关于 脚本是什么 的文章

 

随机推荐