大话IT框架和产品研发

在应用编程“茹毛饮血”的上个世纪八九十年代,Servlet和JDBC大行其道,一个会写jdbc的程序员拿着不菲的工资,被开发商和大众们奉若神明。那时程序员的数量稀少,编程是名副其实的高科技+高薪职业。随着信息化的水平不断提高,信息技术迅速向社会的各个行业渗透。金融、商务、教育、政府、工业,人民生活国家运作的方方面面都插入了信息化的影子。软件的需求爆炸式增长,带动IT行业的人员数量和开发技术快速增长。各种培训机构如雨后春笋般涌现,向IT行业输送了大量生力军。IT行业从“单枪匹马打天下”的个人英雄时代向商业化、团队化、标准化、持续化的方向发展。新的开发语言、开发方法、开发框架出现了,IT不再是单纯的技术行业,而是综合了市场、运营、管理、架构等多种因素的现代化行业。

需求的增长,原始的servlet和jdbc的开发方式变得相对笨拙而低效,技术人员不仅需要编写冗余繁杂的代码,调试各种技术错误,还要理解日益复杂的开发需求。企业的开发成本飙升,技术人员也变得疲惫不堪。然而“所谓的高手都是一群懒人”,将重复的技术工作组件化,使开发人员的注意力都转移到业务需求上来。在这一初衷下,开发框架、技术产品、软件架构横空出世。发展至今,各种开源和商业框架产品多如牛毛。结合各个行业的不同情况呈现出两种不同的发展方向,一种是根据行业的业务需求进行深度沉淀,比如财务系统、人资系统、CMS系统等;另外一种不针对具体的行业,在技术层次上进行封装改良,讲究通用性,比如Apache基金会下的各种产品,各种中间件及.Net
Framwork等。这些框架大多有着强大的社区和商业公司支持,久负盛名,历久弥新。

国内也有不少研发自己技术框架和产品的公司,如金蝶、用友、长城医疗这类的,这类公司走的是行业沉淀的路线,根据自己公司的行业特点研发自己的产品,不少已经在相应的行业里面取得了垄断效应。还有一类研发通用性技术框架的,这种公司基本上是跨行业经营,大一些的项目公司基本上都有自己的那一套。但不管框架产品怎么发展,都偏离不了它们的初衷:剪除重复劳动,提高生产效率。不少中大型的企业成立自己的基础平台研发部门,就是意识到了这一点的重要性。

谈到基础平台研发部门,这些部门里往往集结了企业中的才俊,但中国企业中的这些部门大多处境尴尬。从大环境看,技术的潮流主要操控在国外的大公司、行业协会的手里,他们的技术储备先于市场需求很多年,走技术带动市场的路线,从消费概念到物资生产全面垄断,市场被带动以后又反过来投入更多在技术研发上,形成良性循环。国内的情况则相反,技术上常处于被动带领的位置,只能依靠其他行业的需求来改进自己的技术;软件行业的利润总体上仍不如工业等传统行业,企业利润低,拿不出富余的资金做研发;即使拿的出来,又面临计算效益的难题,一个技术产品不是项目,很难短期内盈利,在某些情况下甚至很难计算其盈亏。

所以平台研发部门在很多企业里面看起来都“一事无成”,其他部门的员工吐槽说“没看见搞出什么新技术”,BOSS觉得“投了那么多研发资金没发现市场效益”。有些平台研发部门意识到自己的尴尬,玩起了闭门造车,脱离一线研发,力求“高科技”,结果搞出的东西反而招致更多吐槽。还有的只是图个“标新立异”,偏离框架产品研发的初衷,炒作各种概念“忽悠”BOSS以求经费。这两种做法,第一种脱离现实,产品的效益最终还要靠最终用户的反馈,脱离了一线研发这个最终用户便没有效益。第二种不负责任,框架产品的研发是个长期改良的过程,BOSS又不是傻子,他看不破你的的技术迷魂阵难道还看不懂财务报表么?他自己不懂技术难道他不认识懂的人么?最后还是逃得了和尚逃不了庙。

综上,一个好的框架产品是一个面向业务的产品,它可以屏蔽大量的技术细节,又不失自定义的余地。因为任何一个框架产品都不可能涵盖所有的用户需求,更不能反过来限制需求,所以“默认实现,开放修改”是个增强通用性的好办法,像Struts、Hibernate、MyBatis这样的著名框架都含有这种思路。

界面化开发、配置文件可以屏蔽实现细节,但同时也限制了需求的灵活实现,它们可以减少代码的数量但永远不可能取代代码的作用;有人倡导全面配置化,希望在运营层次上取代技术研发的过程,但从现实来看即使是如微软、IBM这样的IT巨头,仍然拿不出可以完全“去代码化”的解决方案;即使有这样的产品,仍然需要极专业的培训和技术理论基础才能掌握其配置方法。这方面Spring框架给我们提供了非常好的思路,Spring对各种第三方工具进行封装,以配置文件和注释形式为开发提供了很多解决方案:小到文件上传、跨数据库事务,大到负载均衡,OSGI,可谓无所不包,你可以自由选择使用这些方案或者不使用——无非是几行配置,也可以在默认实现上定义自己的代码实现特殊的功能——遵守Spring规范即可。Spring简单、优雅、开放、轻量的特点,体现了产品研发者兼容并蓄、实事求是的胸怀,是它受欢迎的重要原因。

框架产品的研发应该比其他研发更加认清自己所处的大环境,更多实事求是,更少故弄玄虚。框架产品的研发,重需求收集、重产品决策、重人员素质更重技术服务。因此专门的产品经理或者运营经理是不可少的,技术研发和产品运营本质上是不同的工作,研发看重细节和持久的投入,产品运营则看重总体走向和产品服务。因此身兼多职必将影响效率发挥。平台研发部门应该在人数上保持较小的比重,“麻雀虽小五脏俱全”,毕竟这方面研发失败的风险很高。

时间: 2024-08-30 18:13:33

大话IT框架和产品研发的相关文章

android产品研发(七)-->Apk热修复

转载请标明出处:一片枫叶的专栏 去年一整年android社区中刮过了一阵热修复的风,各大厂商,逼格大牛纷纷开源了热修复框架,恩,产品过程中怎么可能没有bug呢?重新打包上线?成本太高用户体验也不好,咋办?上热修复呗. 好吧,既然要开始上热修复的功能,那么就得调研一下热修复的原理.下面我将分别讲述一下热修复的原理,各大热修复框架的比较,以及自身产品中热修复功能的实践. 热修复的原理 通过更改dex加载顺序实现热修复 最新github上开源了很多热补丁动态修复框架,大致有: HotFix      

android产品研发(六)-->Apk混淆

前面一篇文章中我们讲解了android里面的多渠道打包,对于大型的app来说,几百个上千个渠道包都是很正常的事,所以效率定制化是一件很重要的事.主要讲解了三种多渠道打包方式,并分析了其各自的利弊,在各自产品多渠道打包的时候,可以根据自身的产品需求选择相应的打包方式. 而本文主要讲解Apk的混淆,这里的混淆分为两种代码混淆和资源文件混淆.实际的产品研发中为了防止自己的劳动成果被别人窃取,混淆代码能有效防止apk文件被反编译,进而查看源代码.说来惭愧,作为互联网创业公司的我们也确实对竞品Apk反编译

android产品研发(十七)-->Hybird开发

转载请标明出处:一片枫叶的专栏 上一篇文章中我们介绍了android开发中经常会涉及到但又常常被忽视掉的开发者模式.主要讲解了包括如何打开手机的开发者模式,开发者模式中各个菜单的意义和作用,如何清除手机App数据,以及清除手机App数据具体清除那些数据等知识点,具体关于android中开发者模式的知识,可参考我的:android产品研发(十六)–>开发者选项 本文将介绍android中hybird开发相关的知识点.hybird开发实际上是混合开发的意思,这里的混合是H5开发与Native开发混合

android产品研发-->总结(持续更新中)

转载请标明出处:一片枫叶的专栏 最近的android产品研发系列主要讲解的是android产品研发过程中涉及到的技术,技巧,实践等.前面我们讲解了android源码系列的文章,源码系列的文章东西比较多比较复杂,并且一些东西还没有讲完,这里已经更新了30篇了,后续的东西一定会更新的.考虑一直讲源码系列可能看的比较累,这里就有了产品研发系列的文章.本个系列的文章主要是讲解android产品研发过程中一些需要注意的技术技巧与实践.其主要面对产品研发,对App稳定性,友好型,兼容性要求较高的App. 下

android产品研发(二十二)-->android实用调试技巧

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了android UI优化方面的知识.我们讲解了android中的include.marge.ViewStub标签,在使用这些标签时可以简化我们的布局文件,优化组件绘制流程:讲解了android中的过度绘制相关知识点,通过优化我们的App过度绘制可以提高App的UI绘制流程与性能:我们还讲解了App中一些UI优化的小tips.更多关于android UI优化方面的知识可以参考我的:android产品研发(二十一)–>android中的UI优化

android产品研发(十二)-->App长连接实现

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了android应用内页面跳转协议-scheme协议,通过该协议我们可以跳转至指定的Activity,并在该Activity中解析scheme用于跳转到指定的页面,我们可以利用scheme协议实现应用内页面跳转.H5页面与Native页面相互跳转.通知栏消息跳转相应页面等,具体可参考:android产品研发(十一)–>使用scheme实现页面跳转. 而本文中我们将讲解一下App的长连接实现.一般而言长连接已经是App的标配了,推送功能的实现基础

android产品研发(八)-->App数据统计

转载请标明出处:一片枫叶的专栏 上一篇文章中我们介绍了android社区中比较火的热修复功能,并介绍了目前的几个比较流行的热修复框架,以及各自的优缺点,同时也介绍了一下自身项目中对热修复功能的实践.目前主流的热修复原理上其实分为两种,一种是通过利用dex的加载顺序实现热修复功能,一种是通过native层实现指针替换实现热修复功能,两种各有利弊可以根据自身产品的需要选择不同的方案. 而文本将要介绍一下android产品中另一项基础功能-数据统计.App数据统计的意义在于通过统计用户的行为方式有针对

android产品研发(二十一)-->UI优化

转载请标明出处:一片枫叶的专栏 上一篇文章中我们讲解了android产品研发过程中的代码Review.通过代码Review能够提高产品质量,增强团队成员之间的沟通,提高开发效率,所以良好的产品开发迭代过程中,代码Review是一个必不可少的步骤.那么如何进行代码Review呢?我们主要讲解了团队成员之间的代码Review,代码lint检查,开发规范等方面的知识点,更多关于代码Review相关的知识可参考我的:android产品研发(二十)–>代码Review 本文我们将讲解一下android U

产品研发管理(一):产品版本命名规则

概述 准备些一系列的文章来介绍我们怎样进行产品研发管理的.这是第一篇:产品版本命名规则. 产品版本命名规则 首先介绍一下产品发布版本命名规则. 例如:3.1 M020 3:大版本.如果是核心平台升级了或者核心功能重新设计实现了,会改变大版本的名称.此版本不和上一大版本的系统兼容,需要全新重新安装. 1:小版本.新增大的功能会改变小版本的名称.用户可以从同一大版本的低的小版本的系统升级到高的小版本的系统. M020:维护版 .增加小的功能和bug修复.其中第一个版本叫做F000,后边的版本以M开始