在我的周边朋友身边就发生过这样的事情:
故事1:A君在北京从事Java开发好多年了,萌发了创业的念头,想组建了一个开发团队想大干一场。但是慢慢发现,构建一个有战斗力的团队真不容易。后来技术团队的组建初步有了起色,但是技术路线却非常难成一致意见。折腾来折腾去,把有点上道的技术人员都折腾得跳槽了。费了巨高的成本搞了一个架构师,就是利用SSH框架搭建了一个开发环境,数据量小,业务初期还是不错的,但是当业务快速增长的时候,运行速度就无法满足需要了。是重新来过还是在SSH的基础上继续折腾,非常难以抉择!
故事2:Jenny从英国回青岛大半年了,很喜欢青岛这座海滨城市,空气很好,周围的一草一木也很亲切,这也是当初为什么回来的原因之一。不过,Jenny一直在为产品管理的事情焦头烂额。除了开发成本高,软件层次一直比较低。产品团队管理之外,还要考虑技能水平、分工、角色岗位、薪酬、性格特点等等,各方面都耗费了大量的时间。由于缺乏大规模的压力测试,花了大量时间做出来的产品,却不能适应海量数据下的大并发访问。想找一些高手吧,在软件业本来就不发达的二线城市又不太现实;离开二级城市转到一级城市发展吧,又承担不起高额的运营成本与人力资源成本,路在何方真的是个问题!
故事3:经过大半年的筹备,阿灿的技术团队终于组建起来了。不过,人员流动始终是个挥之不去的话题。换了人,技术方案就要换,随之而来的维护问题也是让人焦头烂额!阿灿沮丧了,他怎么也想不明白,为什么新来的人就不愿意继续在老人留下来的系统上进行维护和再开发呢?如果才能建得起来铁大的营盘?
类似的故事,不胜枚举。总结一下问题出在如下几个方面:
1. 人员培养速度缓慢。从人力资源团队的角度来讲,更多考虑人员的职业道德是否符合企业文化和价值观。而软件开发项目经理更多考虑的是,新成员是否能够为软件开发项目做出贡献,并符合项目文化和价值观。如果你的软件开发团队都不是自己亲手组建起来的,你又如何能够保证软件开发团队能够按你期望的模式运作?应聘人员通过各种认证,仅仅代表具备了基本的知识体系和理论基础。但任何认证都无法真正体现出每个人的学习能力和应用知识的能力,而这两点恰恰是软件开发项目最关心的技能。尤其是,要成为一个优秀的软件架构师,往往需要具备10年以上的软件开发经验,入门的门槛是相当高的,尤其是在互联网产品愈发重要的当下,一个软件架构师往往需要掌握多项技能,他所需要的知识面会很广,需要过程更需要时间的学习和磨练。
2. 人员开发效率低下。一个产品往往需要多个部门的合作,各部门沟通的有效性直接会影响到产品的质量和产品的进度。如果技术开发人员没有良好的交流沟通能力,可能会严重阻碍项目的推动。尤其是小型的团队开发中,缺乏沟通往往会导致成员对任务内容、要求和职责理解有误,导致开发效率低下,甚至引发成员间的矛盾。开发人员如果不能清楚地表达工作计划、遇到的困难、需要什么支持,会导致项目负责人无法及时掌握项目进展情况,并进行合理分配资源。在工作中时常会发生别人(通常是上级)征询意见时不知如何表达,但被分配具体工作后又觉得自己未被尊重,从而产生挫折感。技术开人员大多思维能力强于交流沟通能力,性格也大多趋向于内向,喜欢做事多于说话。如何提高自身沟通交流能力是摆在很多开发人员面前的一大难题。
3. 技术架构不统一没有延续性。作为设计师,需要保证产品功能的现实,产品功能的可持续性,产品的稳定性及产品的可用性等。产品的这些需求都依赖于架构师对产品技术的规划。架构师在接到商业需求之后,最主要的工作就是将其转化为技术需求。这个过程的完成与架构师抽象思维的能力密不可分。好比说Tiny框架这个项目,主架构师第一个闪过的念头多半就是:这个系统必须具有长期的统一性。而负责每一个Tiny框架功能的架构师,又需要对这些部分进行进一步的抽象化。这些往往是中小企业团队所不具备的。由于缺乏优秀的架构师,导致团队在产品的现实规划上没有自己明确的目标和具体的可行性实施方案,缺乏统一的延续性,导致后期难以满足产品在升级、改版方面的需要。
4. 性能不能满足运营要求。整天只知道大谈“云计算,SaaS”这些东西的团队,注定开发不出优秀的产品。这种毛病在新的开发团队非常常见,因为这可以忽悠更多的客户。不过,新的技术虽好,程序员接受和再培训还需要时间,还要考虑到系统的兼容性问题。因此,夸夸其谈的名词专家,往往死得更惨。尤其是出现大并发的数据考验时,做出来的产品往往会难以满足运营要求。
5. 构建开发框架成本太高无法承受。时下各种软件系统发展越来越复杂,尤其是框架软件,其涉及的问题以及知识面太多。当网站变大后,不可避免的需要拆分应用进行服务化,以提高开发效率,调优性能,节省关键竞争资源等。当服务越来越多时,服务的URL地址信息就会爆炸式增长,配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?等等……在遇到这些问题时,开发成本往往会正比例飞速增长,甚至让中小企业团队无法支撑。
想要减少开发工作量或是缩短时间,降低成本,使用框架便是一个很好的选择。尤其是,使用质量好且有延续性的开源框架正在成为主流!
1. 节省团队时间和精力。框架节省了我们不少的时间,并且让扩展变得更容易。由于拥有完整的生态体系,以及活跃的社区氛围,使得团队战斗力更强!由于框架强制使用公共的约定,因此它能有效地解决一些共有的问题。框架能够让工作更连贯,也能避免我们写一大堆自定义模块来实现某些性能,我们所需要做的,就是将这些共用模块放在框架中实现。以Tiny框架为例,一年的开发就需要提交数千个Commits,解决了无数个疑难杂症。此外,从文档维护的角度来看,一年900多页的文档内容,也能够帮助开发团队解决许多难题。
2. 技术支撑更有保障。优秀的开源框架,通常具有高内聚、低耦合、高质量的代码,专职的团队,可以保持项目持续不断的前进。还是以Tiny框架为例,Tiny主工程共有621个Issues,里面有需求,和改进,有BUG。由于有良好知识积累体系,使得使用Tiny框架的人们越用越强,越用越爽!相当于有一个强大的后援团队在为你的项目服务。这些优点,不胜枚举。当A君在青岛的海边悠闲地喝着咖啡时,完全不用担心客户的跟踪电话了。
3. 成本更低,附加值更高。在优秀的开源框架体系里,由于顶层设计避免了重复劳动,所有软件参与者都会避免做重复的事情。尤其是对于个体或小型企业,很明确,光是SSH/I已经不足让你的方案看起来高大上,也不足以支持业务数据量比较大的时候的应用场景,也不足以支撑居高不下的软件开发实施成本。在优秀的开源框架开发团队里,整个团队配置往往更加合理,高低水平者各司其职,使得运营成本更低、附加值也更高。以Tiny为例,正在构建的Tiny生态圈,上百个UI组件及流程组件已经足够你日常使用,还会有更多被不断加入,这些完全就是超值服务了!
总之,使用质量好有延续性的开源框架,基于开源框架做应用是未来中小型软件公司的发展趋势,你将获得更加超值的回报!
相关推荐
这个开源框架就是基于这种模式,提供了数据验证功能,适用于构建小型到中型的项目。 **MVVM模式** MVVM模式的核心思想是解耦视图(View)与模型(Model),通过ViewModel作为两者之间的桥梁。ViewModel负责处理...
基于Devexpress的winform开源框架,包括源码。 网盘密码: a123
### 基于Devexpress的WinForm开源框架知识点解析 #### 一、DevExpress与WinForms简介 DevExpress是一家专注于为.NET平台提供高质量控件组件的软件公司。DevExpress的产品因其丰富的功能、出色的性能以及良好的用户...
在Android应用开发中,图片加载是一个非常重要的环节,特别是在处理大量图片或者网络图片时,高效、内存友好的图片加载框架显得尤为关键。`ImageLoader`就是这样一个被广泛使用的第三方开源框架,它为开发者提供了...
本书不仅回顾了开源软件的发展历程,还深入探讨了开源革命成功的原因以及未来的发展趋势。在这个过程中,书中涉及了多个重要的开源软件项目、相关组织以及众多影响深远的技术领袖。 首先,Apache HTTP Server是由...
【标题】"一种开源业务系统框架winform源码"揭示了这是一个基于Windows Forms(Winform)的开源软件开发框架,专用于构建业务系统。Winform是.NET Framework中的一个UI库,用于创建桌面应用程序,它提供了丰富的用户...
本开源框架专注于权限系统的开发,为开发者提供了一套完整的解决方案,以实现高效、安全的用户权限管理。 权限系统是任何企业级应用的核心组成部分,它允许管理员控制不同用户或角色对系统资源的访问级别。在...
开源的特点意味着该框架可以被全球的开发者自由地查看、使用、修改和分发,有助于社区的持续发展和改进。 【标签】:“KODIGO框架” KODIGO框架可能是这个PB开源框架的具体名称。这个名字可能代表了框架的核心理念...
开源框架完美组合之Spring.NET + NHibernate + ASP.NET MVC + jQuery + easyUI 中英文双语言小型企业网站Demo Domain:领域模型 Dao:持久层 Service:服务层 WebSite:表示层 Common:通用类
总之,这个RBAC开源框架为开发者提供了一个强大的工具,通过其源码和API文档,可以轻松地在项目中实现高效、安全的权限管理。无论是对于初学者还是经验丰富的开发者,都是值得研究和学习的宝贵资源。
剖析当前深度学习软件框架行业市场趋势,并基于应用、产品及生态三大关键维度构建厂商竞争力体系,评估主流玩家的核心竞争优势及综合壁垒,形成对中国市场深度学习软件框架发展情况的客观评价,并为行业未来发展提供...
HslCommunication开源框架是一款专为工业通信设计的开源项目,其主要目标是提供一套高效、稳定、易用的通信解决方案,适用于各种自动化设备和控制系统之间的数据交换。该框架由C#语言编写,可在Visual Studio 2019...
Halcon是德国MVTec公司开发的知名机器视觉软件,提供了丰富的图像处理和模式识别功能,广泛应用于工业自动化、半导体、医疗等领域。而C#则是微软开发的一种现代编程语言,以其简洁的语法和丰富的类库,成为开发...
皮肤框架在软件开发中是一种非常实用的技术,它允许开发者为应用程序提供美观的界面,提升用户体验。SkinTK_V0.20 是一个专为MFC(Microsoft Foundation Classes)平台设计的开源皮肤框架,提供了丰富的皮肤定制功能...
而标题中的“Winform开发全套31个UI组件开源共享”意味着有一套完整的、包含31个不同功能的用户界面组件,这些组件已经开源,可供开发者免费使用和学习。 这套开源UI组件库可能涵盖了常见的对话框、按钮、表格、...
一个国人写的开源blog系统,使用ASP.NET MVC框架开发. 具有以下优点: 1,代码精练,优雅,。 2,使用了大量的设计模式 3,采用N层架构设计,分层非常合理。 4,支持强大的扶肤功能 5,大量使用了.net Framework 3.5...
开源框架ActionBarSherlock 和 ViewPager 仿网易新闻客户端,项目详情:http://blog.csdn.net/xiaanming/article/details/9971721
PhotoView开源框架jar包与源码包,使用这个框架可以实现双击放大,手势放大图像的功能
开源小型GUI,只需要gui,c和gui.h 一、资源要求 估算最低硬件要求: ROM - 13K RAM -2K 二、GUI框架 GUI 框架构成: 1、窗口:可以绘制多个窗口; 2、控件:支持窗口内显示其他控件如按钮、文本框等; 3、 事件...
在Android应用开发中,选择合适的框架能够极大地提升开发效率,改善代码质量,同时也能帮助开发者更好地理解和掌握最新的技术趋势。以下是我对这个"Android优秀热门开源开发框架合集(7个)"的详细解读。 首先,...