国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > 研发周报:为什么开发者担心将代码公布

研发周报:为什么开发者担心将代码公布

来源:程序员人生   发布时间:2014-09-17 18:01:18 阅读次数:2208次

在上一周,研发频道最热门的文章当属优秀程序员的6个共同特质:具有好奇心、热爱分享、具有社区意识、以身为程序员而自豪、有点懒、代码可视化的能力。此外,受大家追捧的文章还有:细数10个令人惊讶的NodeJS开源项目、项目开发中,质量和速度哪个更重要?

下面让我们一起来细细品味这些热门文章。

1.优秀程序员的6个共同特质


如果你在一家IT公司,与周边的程序员接触时间越长,对他们的可爱之处了解地就越多:或呆或萌,或正派或猥琐。如果你恰好是一个程序员,你会发现身边优秀的同事也总是有一些共同点。原文作者ROYVANRIJN总结了他身边优秀程序员同事拥有的6个共同特质: 

  • 具有好奇心
  • 热爱分享
  • 具有社区意识
  • 以身为程序员而自豪
  • 有点懒
  • 代码可视化

2.为什么开发者担心将代码公布

代码公布不是什么坏事,不仅能够促进交流、提高开发者的个人技能,还能提升软件质量。


从开源代码或者是公布代码里获得的利益是无法估量的。也很难想象,在今天的编程世界里,如果没有免费的类库、代码片段和技术教程的话,那会带来多少麻烦。可是,为什么大多数开发者如此担心将他们的代码公布出来呢?对于这个问题,本文作者Matthew Mombrea是Cypress North的创始人、软件工程师、科技爱好者,在这篇文章里介绍了开发者为什么害怕将代码公布的四点原因:

  1. 我的代码还不够好
  2. 不希望别人非议自己的软件程序
  3. 事关安全问题
  4. 拥护自己的技术思想

将自己的代码公之于众听起来很吓人,实际上你获得的好处比失去的东西要多的多。别人看了你的代码之后,你的代码一定会比被看之前好很多,你接受批评的能力也会有所改善,同时,别人也能从你的分享过程中获得很多好处和启发。

3.UX设计师和软件开发者,谁将是2014年的老大?

本文作者Nic Newman是Tigerspike公司的MD EMEA兼战略主管。在这篇文章里,作者主要将UX设计者和软件开发者作比较,通过对当前软件和UX环境的分析,总结出两者之间的相互关系,以及谁能够在接下来的发展过程中挑战更加艰巨的任务。

这里主要讨论的是移动App的UX设计,以Holy Grail为例,优秀的设计满足了高性能软件创造真正引人入胜产品的需求,就像The Economist在iPad上所说的那样。更重要的是,在2014年,世界上将会有更强大的力量把UX设计师和软件开发者这两个角色推向不同的新方向:

  1. 全新时代的全新工作方式――持续的生产力
  2. 移动优先――比我们意识到的更迅速
  3. 具备记忆、感知和预测功能的软件技术
  4. 移动趋势正在将陈旧的web体系结构推向边缘

那么,谁将获得成功呢?

前两个趋势的结果是大大增加对App的需求。然而,App数量的增加所带来的问题是预算的不断增加。因此,企业将依靠标准化的UX,和基于软件的UX进行策略安排,这样才能满足App的需求。

趋势三将会使得App变得更加动态,而趋势四则会导致对智能软件的更大依赖性。上面所提到的这些“压力”组合意味着软件开发者将更加强大,且需要将更多的UX设计能力装入到他的软件工具箱。软件开发者将在2014年的手足之争中蝉联冠军,保住国王宝座。  

4.项目开发中,质量和速度哪个更重要?

在项目开发中,你会倾向于质量还是速度?当然,两者都很重要,理想的情况是,在规定的时间段内高质量的完成所有的东西。但是往往现实是比较残酷的,很少会给你这种机会,使得这两者不能兼得。

在快节奏的开发工作中,你必须争分夺秒,以在最后期限之前项目能够如期交付。但时间一紧,就容易忽视代码的质量和规范,或者不去写测试用例。反过来,如果太过追求项目的质量,则会拖延进度。

当客户需要你尽快交出成品的时候,要么使产品中的一部分整洁美观的,要么使产品是完整的,但有些部分不尽如人意。那么如何在这两者之间找到一个平衡点呢?来看开发者Matt Aebersold的建议。

  1.  项目开始时就注重代码质量会加快进度
  2. 按计划完成,留出改进时间
  3. 有时简单是最合适的方式
  4. 找出项目中什么是最重要的

5.Node.js 2013年大事记

Node.js从2009年诞生至今,成长速度很快,今年更是风生水起。简单来说,Node.js就是一个服务器端的JavaScript解释器,可以帮助开发者快速构建高度可扩展的web应用。那么,Node.js的2013年有哪些值得关注的大事情呢?下面,我们一起来看下。 

1. Node 0.10发布 

时间:2013年3月11日 

事件要点:Node 0.10分支实现了新的Node流Streams2,同时也在API和向后兼容方面进行了重要改进。详细信息,可参阅 《Node.js 0.10发布,1.0不远了》 。

 

2. AWS Elastic Beanstalk支持Node.js 

时间:2013年3月11日 

事件要点:亚马逊宣布亚马逊网络服务(AWS)云应用部署和管理功能AWS Elastic Beanstalk增加对Node.js的支持,可以帮助开发者针对Node.js的应用环境进行更多的自定义配置。 

3. Ghost博客平台成立 

时间:2013年5月28日 

事件要点: Ghost 是一个开源的博客平台,致力于追求简约,为大家提供更加畅快的写作体验,采用Node.js开发。更多信息,可参阅 Geek头条 。

 

4. Node.js Reactions站点成立 

时间:2013年5月28日 

事件要点:该 站点 以Gif动画的形式来展示Node.js的各种体验,萌图多多,令人捧腹,很好地传达了Node.js社区文化。

5. PayPal宣布转向Node.js 

时间:2013年5月30日 

事件要点:PayPal宣布放弃Java,转而采用Node.js开发Web应用程序,这对Node.js社区来说是一个大消息。 

PayPal还在近期推出了一款Node.js Web应用开发框架:Kraken,具体信息,可参阅 《Kraken:改变PayPal开发文化的Node.js框架》 ,来了解PayPal公司为什么会做出这样的选择。

6.NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目

在几年的时间里,NodeJS逐渐发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用NodeJS进行开发,像PayPal,此外,开发人员还可以使用它来开发一些快速移动Web框架。

除了Web应用外,NodeJS也被应用在许多方面,本文盘点了NodeJS在其它方面所开发的十大令人神奇的项目,这些项目涉及到应用程序监控、媒体流、远程控制、桌面和移动应用等等。

这十个开源项目分别是:

  1. NodeOS
  2. Noduino
  3. Node-WebKit 
  4. PDFKit
  5. Log.io 
  6. Nodecast或Leapcast
  7. Nexe
  8. Hyro
  9. Haroopad
  10. TiddlyWiki5 

7.【开源专访】Java高效开发框架Nutz:是SSH的轮子?还是新神器?

Nutz是一个优秀的国产开源项目,它是一组轻便小型的框架的集合,各个部分可以被独立使用,据作者称,Nutz的使命就是“解决第三方类库在Web项目开发中的低效问题”,而Nutz也被称作是“除了SSH之外的另一个选择”。

Nutz最初由zozoh(张志昊)于2009年发起,随着项目的发展,越来越多的开发者参与贡献(提交代码、撰写文档、测试bug等),后来逐渐形成了一个1000人左右的社区(主要成员)。

Nutz项目官网:http://nutzam.com/

CSDN记者此次采访了Nutz开发者社区中的几位主要开发者,请他们来谈谈Nutz这一项目的具体情况。


   zozoh(张志昊)   Wendal(陈镇铖)   胖五(武佩文)    JuqKai(朱凯)     Ywjno(杨文佳) 

CSDN:Nutz 能做什么?设计目标是什么?

zozoh:Nutz是一组轻便小型的框架的集合,可以做MVC、数据库访问、JSON转换、IoC等。目标是比市面上其他的类库设计的好用那么一点点而已。具体来说,包含的组件有:

  • Dao:针对JDBC的薄封装,事务模板,无缓存
  • Ioc:JSON 风格的配置文件,声明时切片支持
  • Mvc:注解风格的配置,内置多文件上传功能
  • Json:解析和渲染
  • Castors:Java 对象类型转换
  • Lang:更简洁的 Java 函数以及更丰富的反射支持
  • Aop:轻便快速的切面编程支持
  • Plugin:轻便的插件机制
  • Resource:资源扫描

Nutz的目标就是在力所能及的情况下,最大限度的提高Web开发人员的生产力,并且这些以不损害运行时效率为前提。

胖五:做Web开发比较方便,当然像Nutz的Dao、JSON等功能在其他地方也很适用的。

更多采访内容,欢迎大家点击查看原文。

8.【开源推荐】ThinkPHP:大道至简,让Web开发更简单

ThinkPHP是一个免费开源的、快速简单的、面向对象的、MVC结构的轻量级PHP开发框架,是为了敏捷Web应用开发和简化企业应用开发而诞生的。项目创立于2006年初,遵循Apache2开源协议发布。

ThinkPHP早期的思想架构来源于Struts,后来经过不断改进和完善,同时也借鉴了国外很多优秀的框架和模式,为Web应用开发提供了强有力的支持,这些支持包括:

  • MVC支持:基于多层模型(M)、视图(V)、控制器(C)的设计模式
  • ORM支持:提供了全功能和高性能的ORM支持,支持大部分数据库
  • 模板引擎支持:内置了高性能的基于标签库和XML标签的编译型模板引擎
  • RESTFul支持:REST模式提供了RESTFul支持,为你打造全新的URL设计和访问体验
  • 云引擎支持:提供了对新浪SAE平台和百度BAE平台的强力支持,具备“横跨性”和“平滑性”,支持本地化开发和调试以及部署切换,让你轻松过渡,打造全新的开发体验。
  • CLI支持:支持基于命令行的应用开发
  • AMF支持:支持Flex开发和Flash通讯,打造互联网富应用
  • PHPRPC支持:提供基于PHPRpc的WEBService解决方案
  • MongoDb支持:提供NoSQL的支持
  • 缓存支持:提供了包括文件、数据库、Memcache、Xcache、Redis等多种类型的缓存支持

目前ThinkPHP最新版为3.2版本,该版本要求PHP 5.3+,提供了更好的云平台支持,并进行了诸多改进:

  • 架构专门为模块化设计做了优化和调整,从而更适合企业级应用;
  • 采用驱动式设计,对于同一功能在不同环境和类型的操作只需要配置驱动即可轻松移植,不需要改变现有代码,同时也让你的应用能够适用于更多更复杂的运行环境;
  • 在底层核心就包含了对各种云平台的支持,通过定制不同的应用(场景)模式以及对应的驱动就可以轻松支持云平台的部署开发,你可以实现在本地开发,然后直接无缝部署到云平台,目前已经支持的包括SAE和BAE3。

开发资源:

  • 下载地址:http://www.thinkphp.cn/down.html
  • 项目托管地址:CSDN Code、Github
  • 文档:ThinkPHP3.2完全开发手册
其它看点包括:(更多精彩内容请点击“研发频道”)

  • JavaScript社区开发者调查:服务端JS盛行,Backbone.js使用最多
  • 华为王丰谈华为一体机三大优势 FusionCube SQL Server针对Windows集群加速
  • IE11中的WebGL探秘:渲染速度超Chrome

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生