需求变化与 IoC

需求又变了,怎么办?

先上一个轻松的段子:

程序员 XX 遭遇车祸成植物人,医生说活下来的希望只有万分之一,唤醒更为渺茫。可他的 Lead 和亲人没有放弃,他们根据 XX 工作如命的作风,每天都在他身边念:“XX,需求又改了,该干活了,你快来呀!”,奇迹终于发生了,XX 醒来了,第一句话:“需求又改了?”。

这个段子用幽默的方式反映了需求变化是每一个程序员、架构师或项目经理都会经常遇到的问题。面对这个问题,不同的人有不同的应对之道,最近微博上有一段关于需求变化的讨论:

@假装刺猬的猪:我们在软件开发过程中,会持续碰到客户需求变更的情况。如果没有领域建模,我们单纯将问题使用直觉将问题解决,那么等到客户需求变 更或者有新的需求时,就会面临一个僵硬的前设计!无法在以前的设计上持续深入的优化模型,导致需求变更无法及时深化。设计实现均滞后与变更!

@高煥堂: <碰到客户需求变更的情况>是合理的;但<领域建模>不是美好的手段!!!

@weidagang: 要不被客户牵着鼻子走,需要自己有很强的设计能力,反过来让客户跟着你的设计来满足你的要求。能做到这点的公司很少,但这是软件行业唯一有希望的出路。

@高煥堂: <这是软件行业唯一有希望的出路>。 Great!!

如何应对需求变化? @假装刺猬的猪的答案是领域建模,并持续优化模型,适应需求的变化。@高煥堂则认为领域建模不是美好的手段。我进一步补充,应该“反过来”让自己在需求变化中处于主导地位,而不是被动地适应。

控制反转 (IoC)

什么样就算是“反过来”了呢?举个例子:

用户想购买一台普通 PC,他只想电脑能流畅运行魔兽世界,他根本不想知道什么叫主板,什么叫内存,什么叫 CPU;但他不得不接受必须购买主板、CPU、内存的事实,因为 PC 架构是产业标准,而不是由用户定的。客户有选择的权利,但没有设计的权利,客户的需求必须在设计框架下得到满足。

这里我们要问 PC 架构是保护了谁的利益?显然,直接的受益者是厂商。如果没有 PC 架构的保护,厂商就会直接面对客户,客户说我需要功能A,我马上分析设计实现功能A;客户说我要功能B,我马上分析设计实现功能B … 有了 PC 架构的保护,厂商就变得更加强势,用户的一切需求都必须在 PC 架构下来谈。厂商可以倾听用户的声音,不断改进产品,但设计主导权永远在自己手中。我们 IT 行业常常用“做产品”和“做项目”的视角来区分不同的公司,但很少有人用“做设计”的视角来看。实际上,关键的问题在于设计主导权是厂商还是在客户。如果 设计主导权在客户,不管是做产品、做服务还是做项目,其命运必然是疲于奔命应付客户,最后获得微薄的利润;如果设计主导权在厂商,不管做产品、做服务还是 做项目都能有更多的话语权和更高的利润。

当然,光有设计还不够,必须客户接受才能起到通过设计掌握主导权的作用。这一方面需要自己具有很强的设计能力,如苹果就是以设计能力著称的公 司;另一方面,和其他厂商结盟壮大阵营也是一种方法,如最著名的 Wintel 联盟(Windows+Intel),以及现在的日益壮大的 Android 阵营都属于此类。假如有厂商不遵守 PC 产业标准,说我的 PC 就没有主板,没有显卡,因为用户更不不需要这些东西;那么,它要么像苹果一样独树一帜成为一种新的标准,要么无人问津。

我所谈到的“反过来”本质上就是软件设计中的控制反转 (Inversion of Control, IoC)思想。IoC 是每一个初级程序员向高级进阶所需要了解的最重要的 设计思想。由于 Spring 等开发框架的流行,知道 IoC 概念的程序员不在少数,但不少人对于 IoC 的理解仅仅停留在通过依赖注入 (Dependency Injection)实现解耦这个层面。实际上,IoC 的应用不仅包括解耦,它还是框架的基本原理,在非计算机领域,IoC 也是无处不在,如果你能从上面的例子中体会到 IoC,这才算是融会贯通了。

软件开发中一种最常见的模式是“以用户为出发点,以需求分析为核心”。该模式提倡从用户需求中分析推导出设计和实现,比如,TDD 式的设计正是这类典型。而 IoC 式的软件设计与此截然相反,IoC 的设计是一种“以愿景(自身利益是愿景的重要方面)为出发点,以架构为核心”的模式。如果用户的需求是一台电脑,我们如何能通过第一种模式分析需求推导出 “主板-CPU-内存-外设”的 PC 架构呢?恐怕很难。IoC 式的设计是以用户看不见摸不着的架构为核心,自己主导设计,用户需求是设计的约束条件和验证手段,而不是出发点和目标。我们想要掌握主动,不被需求变化搞 得疲于奔命,就必须熟练使用第二种模式。

我们的人生都被环境和各种客观条件所束缚,多数人只能随波逐流,听从命运的安排。你有没有想过要拥有人生的主导权呢?既然你是程序员,你懂 IoC,你能否设计自己的人生框架呢?Yes,you can!

Linux 操作系统渐渐边缘化:份额已微不足道

北京时间3月26日消息,据国外媒体报道,虽然Linux系统因其灵活性、实用性被广泛看好,但从近年的表现来看,由于使用者越来越少,Linux在桌面操作系统领域已经边缘化了。 在服务器领域,Linux操作系统的光环依旧耀眼。根据市场调查机构IDC于2010年发布的一份报告指出,市场中20%的服务器都搭载了Linux操作系统。而其他一些调查报告也指出,Linux操作系统在服务器领域的占有率还在继续提高。

最近有媒体称,仅亚马逊一家公司,在其数据中心就有50万台服务器搭载了Linux操作系统。这些服务器分布在全球各地,为亚马逊推动云服务的发展打下了坚固的基础。毫无疑问,这是Linux操作系统在服务器领域即将成为霸主的强烈信号。

但在桌面操作系统领域,Linux系统的市场份额几乎可以忽略不计。在这个领域,Windows系统拥有绝对的领先优势,虽然Mac OS X系统的 占有率与Windows仍然相差甚远,但Mac OS X仍然是市场中不容忽略的一股力量。Linux系统曾被人们广泛看好,但现在除了偶尔被人关注之 外,该系统已经被人们所遗忘。Linux在桌面操作系统领域的市场份额还不足1%。

笔者为了能够真实的体验Linux系统,曾将该系统Ubuntu版本作为桌面操作系统使用了一个月。在这一个月中,虽然Linux系统可以满足所有的 桌面应用,但笔者总感觉非常不习惯。当笔者希望以便捷的方式完成日常工作时,就必须对系统进行不断的调整,这太过于繁琐了。笔者认为,为了体验Linux 而放弃使用Windows系统,这样耗费了大量的精力,未免太得不偿失。最后,由于在Linux系统中找不到以前在Windows中常用的工具,而且 Linux系统也无法与iPhone、iPad进行同步,笔者不得不停止使用该系统。

当然,你不能认为这全部都是Linux系统的错。虽然微软、苹果的研发实力能够确保他们以更快的速度响应用户需求,但他们并没有这么做,也不会这么做。主要原因是,Linux在桌面操作系统领域的占有率太小了,几乎没有任何影响力。

Linux系统也有一些优点,比如拥有一个非常出色的支持系统,还拥有一群忠实的技术用户。他们愿意帮助初次使用Linux系统的用户,虽然你很难找 到他们,但在Linux系统相关论坛中,隐藏着各种自命不凡的技术高手,他们会因为你连一些最基本的东西都没搞清楚而瞧不起你。

作为服务器操作系统,Linux的功能极为强大。如果你所在公司打算更换或者增加服务器,Linux系统就是最好的选择,因为它实在太出色了。但是, 如果你打算购买一些个人电脑,那么你还是继续使用Windows或Mac OS X系统最合适,Linux使用起来太不方便。

笔者明白,Linux系统仍然拥有一批忠实爱好者,他们对这款操作系统永远充满信心,甚至会大肆抨击这篇文章的内容。他们也许会说,Windows系 统就像垃圾一样,而Mac OS X更是邪恶,直到使用了Linux系统,他们的灵魂才能够安息,所以在他们尝到好处之后,就再也不愿意回到过去。

但这些用户对桌面操作系统领域格局的影响力太弱了,也根本无法改变Linux系统被边缘化的局面。普通消费者在选择操作系统时,并不会考虑 Linux,只会考虑它的竞争对手Windows系统或者Mac OS X。主要原因是,为Linux系统开发第三方应用的软件商太少了,这让普通消费者 很难适应,而这些用户也根本无法通过用户社区或者交流论坛获得帮助。对于技术爱好者或者黑客而言,Linux系统是非常棒的武器,但对于普通大众来说,它 毫无价值。

所以,还是把眼光放长远一些,虽然我们依然看不到Linux在桌面操作系统领域的未来。现在,关于Linux会成为桌面操作系统领域重要一员的讨论,已经可以结束了,Windows 与Mac OS X两者之争,才是该领域的主题。

此外,我们现在已经处于后PC时代了。Windows、Mac OS X面对iOS和Android这样的后起之秀,尚且难保成功,更何况是实力更弱的Linux。不过,Android系统也采用了Linux架构,这对Linux的支持者来说也算一个小小安慰。

文/搜狐IT

App Store 中国区调整算法:封杀刷排名

国内应用推广机构APPYING近日爆料称苹果App Store中国区排名算法开始调整,App刷排名行为将完全失效,根据香港应用商店分析网站App Annie公布的榜单显示,目前APP Store上的应用排名出现了较大的变化,其中有多款国内应用排名跌幅超过50。

据了解,从3月初开始,App Store中国区免费应用排行榜,每天下午3点整开始进入“锁榜”情况,一般在下午6点左右恢复排名更新。在这段真空期内的刷榜行为,无法马上见效,但会在下午6点排名更新后,见到效果。

APPYING联合创始人康轶文称,3月20日App Store排行榜出现了从15:00开始连续7个小时没有变化的情况,23:00排名才刚刚开始变化,而这是近期App Store锁榜行为中最长的一次。

APPYING公布的数据显示,近期APP排名更新真空期从原先的4个小时,逐步变长5个小时、6个小时甚至7个小时。真空期内,排名变化依然保持小幅波动,但是刷量行为也不会马上见效。

康轶文表示,苹果一定在增加APP排名因素,让更多用户行为数据加入到算法中,并且那些和时间相关的、无法作弊的数据将出现在App Store 排名因素内,APP刷排名行业将受到一次重大冲击。

App Store中国区调整算法:封杀刷排名

文/凤凰网

运营商回应 WiFi 钓鱼质疑:黑客根本看不懂

WiFi验证身份一一对应信息加密处理。由咖啡吧免费WiFi“钓鱼”事件引发的风波仍在蔓延。近日,有一位不愿透露姓名的技术专家在媒体上称,除了私人建的小WiFi外,运营商的WiFi也不能保证百分百安全。针对该质疑,上海运营商技术人士指出,运营商早已从技术层面解决这类安全问题,用户可以放心使用WiFi。

多种手段保障网络安全

那位不愿透露姓名的专家称,通信运营商的WLAN热点与咖啡厅的WLAN热点并没有太大区别,“当所有人都接入网络待在一起,就可以进行监听。”而上海电信技术人士许先生驳斥道:“运营商使用的安全机制远远高于一些社会WiFi。”

许先生表示,目前公共场所的WiFi主要分为两种,一种是商家自建的WiFi,采用空口加密,即所有人通过同一个密码进入网络,有的甚至连密码都没有,容 易给黑客入侵留下机会。这好比把钥匙交给所有人,大家进入同一扇大门,很不安全。而运营商大都采用“Web网页”认证方式,“以上海电信为例,我们的 Web网页支持https加密协议,每个人对应唯一的用户名和密码,用户在这个网页里填写的信息,都被送到终端去解密、认证。”

此外,所有用户的IP地址都是由核心路由器分配的。在运营商的WLAN网络中,黑客无法通过截取用户的IP地址窃听广播数据包。“即便黑客知道我这个IP 地址,自己去设一个IP也无法访问。每一个用户IP和远程终端都是一一对应的,只有经过核心路由器分配的地址才能访问网络。同时,核心路由器还会实时监测 用户是否在线,如果用户不在线上,会及时收回网络资源,关闭通道,保障用户安全。”

据透露,从去年起,上海电信公司WiFi网络开始大规模采用瘦AP(无线接入点,也称无线网桥、无线网关)。瘦AP与核心侧AC设备间的数据传输,都经过 “打碎式”加密。“就像是炒菜一样,瘦AP的所有数据分解后混作一团,传到AC终端加以解密。即便有黑客在过程中截获了数据,也完全是一头雾水看不懂。”

而上海移动推出的手机认证方式,也具有较高安全性。上海移动内部人士介绍,使用移动运营商官方的WiFi信号,用户链接成功后,打开浏览器会进入验证界面,需要通过自己的手机号码获得短信验证后,才能开始无线冲浪。

专门为中国移动提供WiFi设备专业建设和维护服务工作的夏侯宇表示,运营商提供的公共WiFi网络无论是否免费,都是采用电信运营级的网络设备,性能稳 定。运营商在WiFi组网时都会部署多种安全措施,例如连接上WiFi后要想上网还需要通过身份认证、或是要求使用专用的客户端软件等,在后台服务器端, 运营商往往还会提供24小时的监控。

选择免费WiFi谨防“李鬼”

网络信息安全专家李铁军表示,用户在使用WiFi时,要自身提高警惕度,不要见到有免费WiFi就想用,在公共场合选择WiFi热点时,一定要看清楚热点 名称。黑客一般会起非常相近,容易迷惑人的WiFi名字,如Starbucks 2、KFC1等等,上网之前一定要咨询管理人员。手机或者笔记本电脑也不 要启动自动连接WiFi的功能,而是先通过手机或者笔记本电脑自带的“查询附近可用无线网络”功能进行甄别。

夏侯宇建议,市民在公共场所最好优先选择运营商提供的WiFi。“目前不少运营商都针对其自身的用户提供免费的WiFi使用时长,充分利用这种优惠可以让用户在省钱的前提下享受到安全性更有保障的WiFi服务。”

文/IT时报

工信部近期将启动宽带普及提速

上周,在出席工业转型升级规划贯彻实施工作会议时,工信部部长苗圩透露,工信部将在近期正式启动宽带普及提速的工程。苗圩表示,“十二五”期间,工信部要着力提升国家新型工业化产业示范基地信息网络基础设施的水平,要求把示范基地的宽带建设作为今年的一项重点工作给予格外的倾斜。他透露“过几天将正式启动宽带普及提速的工程”。

在今年两会期间,苗圩在接受采访时曾表示,我国宽带提速的目标是到2015年末,城市家庭上网带宽达到20M,农村家庭上网带宽达到4M。目前宽带中国战略已经上升到国家层面,将有一个具体的规划,而发改委、工信部等相关部委正在组织研究具体规划,争取年底正式出台。

《京华时报》