鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > cms安装教程 > 新云cms > >

研发周报第23期:谁动了我的代码?

来源:互联网 作者:佚名 时间:2015-08-11 09:11
我们挑选了本周研发频道的精华文章,推荐给您的绝对有料,闲暇时不妨来细细品味我们精心为你呈现的这份技术大餐,或许有您意想不到的收获。本周看点嗨,伙计,别碰我的代码

我们挑选了本周研发频道的精华文章,推荐给您的绝对“有料”,闲暇时不妨来细细品味我们精心为你呈现的这份技术大餐,或许有您意想不到的收获。本周看点嗨,伙计,别碰我的代码!、流行Linux和Windows脚本语言列表、过程式编程vs.面向对象编程。

本期热点当属:

1. 嗨,伙计,别碰我的代码!

如果你曾经在任意一家大公司工作过,你或许会遇到这种情况,不希望别人触碰自己的代码,尤其是当别人修改了你的代码,这一行为让人很恼火!

来自微软研究院,苏黎世大学和加利福尼亚大学的David,就代码的所有权问题进行了深度的访谈。David的结论是基于Win7和Vista开发的一个调查,调查结果显示出问题的地方主要在于代码被二流开发者动过。

在微软,我们发现当越来越多的人操作同一个二进制文件的时候,出错的可能性会更高。

经过我们的观察和项目经理的讨论,我们发现当没有一个明确的内容指标,代码贡献者将代码传播给更多的开发者,这将加大了沟通障碍,目标失调,不一致的接口和语义,所有的这些情况都会导致软件质量下降。

在微软,我们发现当越来越多的人操作同一个二进制文件的时候,出错的可能性会更高。经过我们的观察和项目经理的讨论,我们发现当没有一个明确的内容指标,代码贡献者将代码传播给更多的开发者,这将加大了沟通障碍,目标失调,不一致的接口和语义,所有的这些情况都会导致软件质量下降。

2. 流行Linux和Windows脚本语言列表

具备脚本知识的系统管理员与其他系统管理员有着明显的区别。脚本是一门“系统管理员”创造的艺术。这门艺术需要了解系统本身的相关知识,系统管理命令的语法,编程和算法知识以及至少一门脚本编程语言。对系统管理员来说编写脚本有很多选择,每种脚本语言都有着自己独特的语法和优点。脚本语言之间几乎没有相似之处,但也不会像外星语那样难以读懂。脚本语言既可用来管理系统,也可以用做Web开发。基于服务端和基于客户端的脚本语言很少。客户端脚本语言大多数用来在浏览器里显示内容以及与用户进行交互。服务器端脚本语言通常用来管理系统或Web服务。本文中,我们只会关注那些用作系统管理的脚本语言。让我们开始吧!

  • Bash
  • Perl
  • PHP
  • Python
  • sed

3. 过程式编程vs.面向对象编程

过程式编程和面向对象编程的区别并不在于是否使用函数或者类,也就是说用到类或对象的可能是过程式编程,只用函数而没有类的也可能是面向对象编程。那么他们的区别又在哪儿呢?相见本文介绍。

类只是帮助简化面向对象编程的工具,并不是面向对象编程的要求或指示器。

很多开发者认为他们使用了类就是在做面向对线编程;另一些人认为他们使用函数就是在做过程式编程了,这并不正确。过程式编程和面向对象编程都是一种写代码的途径,而不是你写代码的手段。你会遵循步骤,按照设定好的方式去编写程序吗?你看起来是在函数式编程,但是如果你专注于状态改变和密封抽象,你就是在用面向对象编程。

4. 函数式编程的10年演化:越来越纯

在过去10年中,函数式编程的定义一直在慢慢改变,在“Wikipedia page on Functional Programming”上可以显著地反映出来。

从最初在2003年8月14号之前的定义是:函数式编程作为一种模式,强调函数的使用到在2012年7月14号在计算机科学领域,函数式编程是一种编程范式,把计算看作是一种数学函数计算并且避免状态和可变数据。

想了解函数式编程的发展史吗?不妨移步这里。

5. 为什么函数式编程很重要:不一样的白板图

为什么我们要学习函数式编程?为获得更好的软件设计技术!

一天,我们设计了一个流程,来校对款项的收支平衡。下面这张图就是我们在几年前设计出的结果:

从那以后我们开始学习函数式编程。函数式编程让我们以数据流的方式思考过程处理:数据进来,做变换,过滤,计算,最终的结果就是输出。不仅软件是这样工作的,每段代码,每个函数,都模型化成数据输入,数据输出。中间没有状态的变换。

按这种方式思考问题使我们得到了这样的流程图:

把程序当成数据管道的思考方式使我们关注结果应该是什么,而不是每一步应该如何做。这种更高层次的思考问题的方式使得我们在系统设计阶段避免陷入细节实现的泥潭中。

6. 1993年开发首个Adobe Flash应用的两个工程师 如今何在?

众所周知,今天的Flash起源于1993年的SmartSketch,是一个为触控平板电脑设计的绘图程序。Jonathan GayRobert Tatsumi在Future Wave Software公司开发了Smartsketch。

Jonathan Gay (left) and Robert Tatsumi (right) – founders of Flash

FutureSplash Animator是在1996年发行的第二个版本,支持动画,并以插件的形式让人可以在浏览器里直接观看动画。

1996年,Macromedia收购了Future Wave公司并且把FutureSplash Animator软件再次改名为Flash。2005年,Macromedia公司被Adobe Systems公司收购并且把Flash最终命名为Adobe Flash。

Gay和Tatsumi又做了什么?

后来,Gay和Tatsumi成立了Greenbox公司,旨在帮助住户可视化地理解和管理他们的能源消耗和煤炭使用。

那么现在他们又在做什么呢?

7. SOA王者归来?

SOA已死?

 从2009年至今,国外的分析师们不止一次的为SOA撰写讣告,由此也引发了各式各样的探讨。从Anne Thomas Manes的SOA is Dead;Long Live Services到David Rubinstein在SD Times上发表的SOA is dead,but SOA lives on...诸如此类的讨论层出不穷。

关于SOA死亡的原因归结起来大致有以下几点:

  • SOA未能兑现IT系统改善的预期,甚至导致了系统的复杂和脆弱;
  • 成本增加,无法迅速看到业务价值和ROI回报;
  • 缺乏理解SOA的熟练架构师;
  • 过于技术化导致业务人员难以理解;
  • 厂商的过分炒作和兜售让用户产生反感;
  • 受到虚拟化、云计算、Web等新兴技术的强烈冲击。

SOA王者归来?

包括IBM,前两年提SOA也很少了,然而,日前在北京举行的IBM IMPACT 2012高峰论坛上,SOA却成为了活动上被提到最多的技术词汇,IBM也进一步明确了“下一代SOA”的发展方向,提倡将云计算、企业移动等新技术趋势全面纳入企业SOA未来发展路线图中。IBM软件集团大中华区WebSphere总经理徐刚认为,对于SOA来说,人们已经不再谈SOA是什么、能做什么、怎么落地,而是谈论SOA的最佳实践。现在很多企业内部的任督二脉已经打通,下一代面向企业服务架构将基于开放标准打通外部互联,以SOA为中心,开展API治理、事件处理...

8. Java恶意软件出现新变种 攻击手法略有不同

本周早些时候,安全厂商F-Secure发现了一种基于Web的恶意软件攻击新手段,这种攻击手段利用Java程序识别专门针对于操作平台的恶意软件二进制文件,然后发布至OS X、Windows和Linux等操作系统。

在F-Secure最初的发现中,面向OS X发布的恶意软件是一个PowerPC二进制文件,令OS X无法在许多采用Snow Leopard和Lion等系统的Mac机上运营。但现在F-Secure发现该Java恶意软件出现了一个新变种,而这个变种此次成了一个x86二进制文件。它的工作机制基本上与F-Secure最初发现的一样。正如之前发现的结果,用户在访问运行小Java程序的钓鱼式网站时,恶意软件就会安装到他们的电脑上。

9. 关于Clojure特性的几点思考

Clojure是JVM上的一门新的语言,类似Groovy,Jyphon和JRuby,它能动态的、简洁的、无缝的与Java进行交互操作。Clojure在很多方面还是很成功的,但是有一方面却是令人窒息,那就是速度。这里指的是Clojure的运行速度。这是一个众所周知的话题也是开发者们在Stack overflow上经常讨论的话题。我并不打算在这里引发争论,而是想想谈谈因话题而引发的一些思考。

初次运行Clojure启动的时间会很慢。在REPL里运行“Hello world”是非常令人头疼的,这里收集了各种语言在MacBook Pro上运行“Hello world”所需要的时间,这个Macbook Pro配置了2.5GHz的酷睿双核CPU”,一起来看下对比情况:

从图中我们可以看到,Java自身运行时间为0.35s,而Clojure因自身原因又多增添几秒。这1.3s就是前面我们所提及的为什么Clojure不适用于终端脚本语言?任何一种脚本语言(比如lein或者REPL)的运行时间都会受控于启动时间。相比较Clojure程序员,很多Clojure开发者并未没有注意到这些,因为他们大部分时间花在了REPL上。

10. 我是如何将盗版者转化为付费用户的

塞翁失马,焉知非福?如果你的收费软件拥有很多盗版用户,肯定不会让你舒服。但实际上他们也许也是你的软件的志愿传道者,让你的应用变得更为流行(微软就是一个鲜明的例子)。但是若不能将盗版者转化为付费用户,软件开发人员就无法从中获利,又何谈“福”字?文中是一位开发者分享自己的软件被盗版并顺水推舟吸引用户付费的经历。

在软件和娱乐产业,盗版并不一定意味着销量下降。

往期回顾:

研发周报第22期:编程语言谁的影响力更大?


网友评论
<