一点感悟

栏目: 服务器 · 发布时间: 8年前

内容简介:一点感悟

不知道为什么,我是比较喜欢JS这种脑残语言的,并且也不想将其他语言用在工作中,比如 PHPPYTHONJAVA 之类的。

其实到最后肯定所有语言都是相通的,比如每种语言都会有自己的 lodashnpmpackage.json ,所以当精通一种语言之后是能对其他语言的人指点江山的。我之前的一个同事新手写python,库也不会用也不知道去哪里下载,我对Python的认识只限于这是一个用缩进来控制块的语言,但搜了一下果然有 piprequirements.txt

举这个例子是因为我认为,用一个语言用得精通比会用很多语言都是略知一二更重要。

前几天我有一个写PHP的同事,被迫去写nodeJS,然后遇到一个soap的问题,调了一天都没调出来,扔给我帮忙。问题大概是,用了一个叫 node-soap 的库,发请求的时候对方服务器总是返回 ERROR Invalid XML ,而用Postman把请求的body发出去,却能得到成功的返回结果,同事怀疑这个第三方库有问题。

我虽然对SOAP一窍不通,但我懂JS,觉得这个问题应该能找出原因。根据以前的经验,我觉得不太可能是第三方库的问题,因为每次只使用基本方法却有问题时我debug到别人库里去看明白原理之后,绝大多数时候都会发现是自己的问题。更何况这是一个1500+ star的库。

首先我想到的是,肉眼看上去同样的body,为什么得到不同的结果?很可能是encoding的问题。单步调试后发现库里并没有任何encoding的动作,所以排除该问题。

后来我注意到,第三方库在发送请求的时候发了很多header,把这些header也写进postman之后,果然返回了同样的错误。而之前同事测试时,postman里header都是默认值。所以可以肯定问题出在header上。

删除了 SOAPAction 这个header之后,请求就成功了。再具体到库里去搜这个 SOAPAction ,发现有一段

if (!this.wsdl.options.forceSoap12Headers) {
  headers.SOAPAction = '"' + soapAction + '"';
}

猜测应该是有一个 forceSoap12Headers 相关的设置,再去文档里一搜,果然有,把这个设置为 true 之后,问题就解决了。前后大概花了一小时。

写这篇是想说,磨刀不误砍柴工,首先你得学会怎么磨刀,然后得学会怎么砍柴,这样才能磨刀不误砍柴工。对于一个完全不熟悉的东西,因为掌握了最基本的方法,才能万物归一的去解决。

我反对对于不熟悉的东西,一上来就通看文档。在工作当中,是没有那么多时间让你从头去看文档,把所有东西都弄明白之后才开始工作的。

文档对于没有经验的人来说看quick start部分就够,因为就算看到 forceSoap12Headers ,也不知道是干什么用的。

对于有经验的人,才会需要在一开始就去细看 forceSoap12Headers 的设置

我也反对把写一种语言的员工强行安排暂时写另一种语言。除非是打算长期转向另一种语言,否则一两天做完一个task,根本不会对新的语言有系统性的研究,甚至都不知道debug的 工具 怎么用,对个人的发展是没什么实质性的帮助的,而且写出来的代码大都只能达到“能用”的程度,可维护性和稳定性都不一定会好,长远来看对公司也是不太好的。不过创业公司嘛,半年一次revamp,好像也没什么问题…


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Android软件安全与逆向分析

Android软件安全与逆向分析

丰生强 / 人民邮电出版社 / 2013-2 / 69.00元

本书由浅入深、循序渐进地讲解了Android 系统的软件安全、逆向分析与加密解密技术。包括Android软件逆向分析和系统安全方面的必备知识及概念、如何静态分析Android 软件、如何动态调试Android 软件、Android 软件的破解与反破解技术的探讨,以及对典型Android 病毒的全面剖析。 本书适合所有Android 应用开发者、Android 系统开发工程师、Android ......一起来看看 《Android软件安全与逆向分析》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具