26

本期封面报道——移动开发大势图,我们将邀请一批来自海内外的资深移动技术专家或者行业分析师,以开发者、创业者为视角,审视在这一场IT大变局中,移动开发技术的发展变化、焦点问题以及创业机遇。

首先,我们将提供一篇由杂志记者原创的产业综述:

1.《移动应用产业链大势图》 

大浪淘沙,成就者终将是那些能顺应大势的人。尤其是对于移动开发者、创业者,该如何看待这一行业?本刊记者,以整个移动互联网产业链(包括运营商、平台商、终端商、应用开发商)为线索,就业界最关心的几个问题,比如:“中国三大运营商3年内迅速衰退?iPhone行将就木?做农民工群体的应用能赚大钱?应用商店一收费立刻就死?洋品牌和土山寨联合绞杀了国内自主创新?”走访了相关专家,希望以次能勾勒出当今移动应用大潮的发展轮廓。

其次,我们会深度追踪当今主流技术平台的热点应用和关键技术。

 2.《Android开发经验谈》 

 从G1上市到现在,已市面上已经出现了至少30款Android手机。为什么至今依然有一些用户在抱怨Android不好用,在相关的开发中,什么才是真正值得关注的,开发的核心是什么?为什么移动应用需要格外关注用户体验?本文将对这些方面作出解答。 阅读全文 »

标签:
阅读:3,572 次
25

程序员1009封面本期封面报道:移动开发大势图

移动互联产业正经历一场颠覆式的变革:旧产业格局重组的过程中,新的机遇正大量出现。本刊邀请了海内外移动应用的资深专家,以开发者、创业者的角度出发,探索分析移动开发技术的重要变化、关键问题以及创业机遇。

1)移动开发大势图

2)移动应用产业链大势图

3Android开发经验谈

4)浅窥Windows Phone 7之用户交互设计

5iPhone开发需要注意的数个问题

6MeeGo:将开源进行到底

7)开放的移动开发生态系统——Qt

8)手机Linux操作系统比较分析

9友盟:面向移动开发者的统计分析平台

10团队和过程:提升移动应用体验的根本

11)构建可持续的移动应用商店


高端视点

1)怎样激发研发人员的创新力

2)敏捷十年 软件开发大变革

3)云计算是一种商业模式 ——可服务的云计算 阅读全文 »

标签:
阅读:9,515 次
25

文 / 郑飞科

iPhone的问世,到Android平台的崛起,互联网手持设备开始疯狂增长。从当初0~9的数字按键到现在全触摸屏,已经发生巨大变化。在前不久的某科技会议上,Eric Schmidt——GoogleCEO宣布,每天有超过20万台的Android设备被激活。作为mAPPn手持端的产品经理,我非常的兴奋,因为更多的人正在体验移动计算带来的变革。在经历了aHome 4Gfan Moible等多个项目后,我对产品创造的过程有了更深的体会,在此与大家分享,希望能带来有益的助推。


移动产品的现状和问题

面对快速成长的市场,Android正在经历各种各样的问题。对比AndroidiPhoneApp生态环境,iOS上的App显然有更完整的产品设计规范、严格的审核机制、完整并且相对封闭的App开发环境。开发者只能使用Objective-C进行开发,并且你需要有一台Mac。令人抓狂的App审核过程体验,古怪而漫长。但Apple也有不错的地方,也正因为他们严格的环境和规范,包括非常具体的Guidelines,才有效地保证了App的高质量。

Android上,Google提供了基本的设计指导、松散的审核方式、开放的开发环境。Google Market非常开放,几乎没有审核限制,只要不被举报,就可以放到Market上去。但如此宽松的条件,带来的却是App质量的下降和体验的不统一。这也是我们产品团队一直在努力克服的问题。

那么,在Android上,如何才能持续地设计并开发出良好体验的产品呢?

图1  Google Market和Apple Store

图1 Google Market和Apple Store

阅读全文 »

标签:
阅读:1,746 次
19

敏捷开发是2001年被提出来的概念,它是由17位业界专家总结概括出的一些可以让软件开发团队具有快速响应、合作开发能力的价值观与原则,自那时起,ScrumFDDXPLeanCrystal等敏捷开发方法不断涌现,重构、持续集成、并行开发、结对编程等敏捷最佳实践也广泛地应用于团队开发中。敏捷宣言中提出的四项基本价值观(人和交互重于过程和工具;可以工作的软件重于求全责备的文档;客户协作重于合同谈判;随时应对变化重于循规蹈矩),也对软件开发,乃至整个高科技产业产生了深刻的影响。


经历了十年的普及与发展,特别是近几年的积累与沉淀,敏捷开发成为一项主流的开发方法,人们的关注点从以往的CMMCMMI,已经逐渐转到敏捷开发上来。但是国内仍有许多IT从业者对于敏捷不甚了了,或者对敏捷开发存在着或多或少的误解。因此,2010年《程序员》10月刊的封面报道话题定为“敏捷十年”。届时,《程序员》将邀约国内外敏捷专家,敏捷方法的实践者、敏捷团队的领导者为我们介绍敏捷发展的十年之路,以期在敏捷开发的认识和实践上匡正与除谬。 阅读全文 »

标签:
阅读:863 次
05

UMLChina首席专家   潘加宇


利润=需求-设计

潘加宇利润=收入-成本。不管出售什么,要获得利润,需要两个条件:第一,要卖出好价钱;第二,制造的成本要低。妙就妙在,价格和成本之间没有固定的计算公式,这就是创新的动力之源。放到软件业上,笔者也炮制了一个公式:利润=需求-设计。

需求工作致力于解决产品好卖的问题,设计工作致力于解决降低成本的问题。二者不能相互取代。你能低成本生产某种软件产品,但不一定能保证它好卖。你的某种产品好卖,但如果生产成本太高,或者在市场需要新型号时,无法复用之前的组件,又要投入大量人力物力去制造轮子,最终还是赚不了多少钱。要迈向低成本制造好卖的各款产品的境界,并非喊喊口号就能达到,需要静下心来,学习和实践下面四项技能。

业务建模。描述组织内部各系统(人肉系统、机械系统、电脑系统等)如何协作来为组织的客户提供服务。新系统只不过是组织为更好地满足客户,对自己的内部重新设计而购买的一个零件(和招聘一个新员工没有本质区别)。如果能学会通过业务建模去推导新系统的需求,而不是拍脑袋得出需求,假的需求变更会大大减少。

需求定义。聚焦于待开发系统的边界,详细描述系统要卖得出去必须具有的外部表现——功能和性能。这项技能的意义在于强迫我们从的角度思考哪些是涉众在意的、不能改变的契约,哪些不是,严防污染。需求定义的结果——需求规格说明书是的衔接点。

分析。提炼系统内需要封装的核心领域机制。可运行的系统需要封装各个领域的知识,其中只有一个领域(核心域)的知识是系统能在市场上生存的理由。对核心领域作研究,可以帮助我们获得基于核心域的复用。

设计。将核心域知识和非核心域知识结合,最终实现系统。代码就是设计指的就是这狭义的设计。代码确实是设计,但代码不是分析,不是需求,不是业务建模。 阅读全文 »

标签:
阅读:4,040 次
05

盛大创新院程序员  霍炬


霍炬早年我也喜欢过UML,觉得是对复杂工程的解决之道。后来碰上越来越多的实际问题,发现UML并不能很好地解决。一方面,要能精确地用UML定义问题,需要长时间的训练。就好像用一门不熟练的语言说话,时常会导致误解,UML也一样。多年前我曾经在团队里推行过UML,结果发现有大量问题表述不清,最后还是要靠面对面地重新描述问题和讨论解决思路,沟通效率很低。在这方面,UML并没有能成为一种统一语言,甚至比自然语言更难以取得统一。另一方面,当年很多人和公司都迷信用UML直接生成代码来提高生产力。这似乎不是我一个人的误解,Rational曾经出过不少软件,不光建模,还要做代码转换,生成代码框架。这部分实际使用效果不够好,生成的代码机械、复杂,经常难以理解,并且因为是自动生成的,阅读修改都很困难。

最近这些年,我慢慢理解了软件开发模式的变化——从软件模式到互联网模式。这里有如下几层意思。

  • 软件的简单化。即由一个功能极多的复杂软件,变成了功能很少,但难度很高、非常深入的系统。
  • 开发速度加快。在互联网环境下,没有过去那种可以从容进行设计、建模、填代码的时间。从2000年开始的一系列开发思想,基本上都是在寻找快速开发的方法论,或是给这种方法论提供技术保障,比较有代表性的就是XP、重构、单元测试等,前者是方法论,后两者是技术保障工具。 阅读全文 »
标签:
阅读:6,876 次
05

金山软件程序员  刘鑫


刘鑫20022004年间,我非常爱用UML。但后来到北大青鸟执教,在准备UML课程过程中,甚至是在批改学生作业时,才深感以前对很多基础的UML组成,根本就理解错了。我抛弃了UML之后,不但没觉得有什么损失,反而觉得写代码就写代码,直接、清晰了很多。有了这样一个领悟后,我彻底戒除了IDEUML,反而感觉工作能力有所提升。

UML的立场,我也处于一个反复和深入的过程。一方面觉得像以前那样错用UML,真的是有害无益。大家仅仅是出于对工具的生产力迷信,这跟我早年盲目相信用VSDelphiRAD工具就一定比手写代码高效一样。IT业涉及的生产领域非常广大,管理方式也越来越丰富。很多场合根本不依赖UML这样的图例工具,文本就足够整个团队进行沟通了。但另一方面,看到一些企业也确实成功地使用UML进行工作。难道这样的团队是在假装一种获得满足的状态?似乎不可能。因此,我很困惑。

UML作为软件工程的一个发展成果,肯定有它的意义,特别是大型团队中的内外沟通。大型企业应用项目很难靠开发人员的个人才华来突破,而是要靠团队去完成客观的工作量。如果整个团队有一个大家都能理解的、图形化的、直观的沟通方式,确实是有积极作用。尽管单纯的图形和线段的作用还是有限,但是围绕UML,有一套基于文本的、清晰的定义方式和描述标准。只是了解这套标准,同样需要付出学习的代价。更糟糕的是,往往UML在团队中的使用价值,取决于平均甚至最差的那个使用者,而不是最好的那个。

我教过的ACCP的学生,几个班里能正确理解Use Case的不超过10人,能很漂亮地运用Use Case的,不超过3个。我用过各种UML工具,没有一个让我觉得可以很方便地帮助我快速画出我的想法。所有的图例工具都让我有一种跟不上思路的感觉。类似类图和代码之间互相转换的功能,更是让我觉得画蛇添足,华而不实。 阅读全文 »

标签:
阅读:10,503 次
28

——基于对C#之父Anders Hejlsberg演讲的总结


文 / 赵劼

程序设计离不开编程语言,但是编程语言在国内的大环境中似乎一直是个二等公民。国内的计算机教育和工程培训,似乎一直在宣传“语言不重要,重要的是思想”、“语言一通百通”等观点,甚至在许多人眼中,语言的讨论完全是不入流的,但其实编程语言与工具、框架或开发方法等一样,都对生产力有着重要的影响。事实上,语言的发展历史比其他方面更为悠久,并且在过去十几年,甚至最近几年中都依然在不断的碰撞和演变。期间一些新的语言诞生了,而另一些在当时看来阳春白雪的语言和编程范式也重新获得了重视。

Anders Hejlsberg是微软的Technical Fellow,担任C#编程语言的首席架构师,也参与了.NET Framework、VB.NET和F#等语言的设计与开发。几个月前,Anders在比利时TechDays 2010及荷兰DevDays 2010分别作了一场演讲,阐述了他眼中的编程语言的发展趋势及未来方向,本文便对他的观点进行了总结。

大约25~30年前,Anders开发了著名的Turbo Pascal,这是一套集语言、编译器及开发工具于一体的产品,也是Anders进入编程语言领域的起点。Anders谈到,当年Turbo Pascal所用的Z-80和如今的计算机已经不可同日而语。与那时相比,如今的机器已经有大约10万倍的外部存储容量,1万倍的内存大小,CPU速度也有大约1000倍的提高。但是,如果我们比较如今的Java代码及当年的Pascal代码,会发现它们的差别其实并不大。Anders认为编程语言的发展非常缓慢,期间当然出现了一些东西,例如面向对象等,但是远没有好上1000倍。事实上,近几十年来的努力主要体现在框架及工具等方面(如图1)。例如.NET Framework里有超过一万个类和十万个方法,与Turbo Pascal相比的确有了超过1000倍的增长。类似的,现在的IDE包含了无数强大的功能,例如语法提示、重构、调试器等。与此相比,编程语言的改进的确很不明显。 阅读全文 »

标签:
阅读:38,889 次
28

本期封面报道:新语言,新特性

程序员1008封面近十年来,计算硬件进入多核时代,互联网和移动设备成为主流平台,开发效率越来越重要,这些趋势催生了C#、Scala等全新语言,也使Common Lisp、Erlang等对很多中国开发人员来说曾经比较陌生的语言时髦起来,更让函数式、声明式、动态、元编程等此前多在课堂和学术界探讨的语言特性重新获得了重视。各种主流语言的发展趋势如何?在实战中又有哪些常见的经验和陷阱?新兴的语言有哪些常见工具没有的特色,怎样正确地学习和在实战中使用?怎样理解和运用新的语言特性?本期封面报道为您精彩展现编程语言之美。

1什么是最美丽的编程语言——《程序员》“编程语言研讨会”实录

2编程语言的发展趋势及未来方向——基于对C#之父Anders Hejlsberg演讲的总结

3C++强大背后

4ECMAScript5th中的语言特色

5拓展动态编程的新领域

6从Sun JDK 5、6、7看Java的提升

7C语言的前世今生

8不期而遇的利器——Erlang

9超凡脱俗的极限——Common Lisp

10R——不仅仅是一门语言

11纯粹之美——浅谈纯函数式语言Haskell

12镰刀、锄头和剪子——一组简单实用的工具 阅读全文 »

标签:
阅读:14,287 次
13

文 / Bill Buxton


1996年12月20日,苹果公司宣布准备收购NeXT公司,1997年2月4日以四亿两千七百万美元的收购价格成交。此次收购,苹果公司至少有两项获益,首先他们获得了能为下一代操作系统提供帮助的技术,其次苹果公司获得了NeXT公司的创始人之一史蒂夫·乔布斯。

当时苹果公司正处于困境,市场份额不断下降,股票价格处于12年来最低谷,已经到了危急关头。9月16日,乔布斯被提名为临时首席执行官。此时,媒体、市场、竞争对手们甚至客户们都在想一个相同的问题:乔布斯是否能够扭转乾坤,再造奇迹,重铸苹果的昔日辉煌?

现在看来,答案当然是肯定的,但在当时,并不明朗。诸多事例表明,答案并不重要,重要的是获得成功的路径,这也是我们讲述这一故事的初衷所在。通过这一活生生的案例,我们想说明商业目标与其他诸要素(管理、工业设计、软件、市场营销、运道和技巧)间的相互交织共存的关系。


苹果为什么与众不同

图1  Mac产品时间表。与iMac的发布相关的核心产品推介和主要事件时间表,图上红色线显示了从1996年7月1日至2005年6月13日间股息与股本拆细调整后的苹果每日收盘价。注意2003年以来股价飙升需要考虑iPod的因素。股票信息来源:雅虎财经

图1 Mac产品时间表。与iMac的发布相关的核心产品推介和主要事件时间表,图上红色线显示了从1996年7月1日至2005年6月13日间股息与股本拆细调整后的苹果每日收盘价。注意2003年以来股价飙升需要考虑iPod的因素。股票信息来源:雅虎财经

时隔不久,乔布斯就开始实施他的策略。他首发成功,1998年5月7日,第一款iMac诞生。该款机器从设计和商业角度来看,所造就的影响不亚于1984年推出的首款苹果电脑。它集计算机和显示器于一体,风格特异,独树一帜。其外壳采用半透明的“海水蓝”塑料制成,这是iMac设计语言最具特色之处。该机器于1998年8月投放市场,一炮打响,苹果重获新生。究其原因,主要还得归功于工业设计。 阅读全文 »

阅读:9,610 次
preload preload preload
京ICP备06065162