- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
王春生 2014. 10. 25 自我介绍 王春生,群里面朋友都喊我春哥。 开源爱好者,敏捷爱好者,在路上的创业者。 2010年创业,主要做企业管理软件的开发。(2B) 今天和大家分享的内容: 我分享的话题是企业管理软件的架构演化之路。 企业管理软件的架构较少涉及并发、性能这些问题。 今天更想和大家分享我们这几年中遇到的问题和方案。 如何选择基础的开发语言及框架? 如何将软件部署到不同的私有运行环境中: 如何解决通用发行版本和客户个性化需求的问题: 如何解决SAAS环境的负载和用户数据完整的问题: 如何满足企业不同层次的需求: 1.1 如何选择基础的开发语言? 开发语言的争论永远是软件行业不衰的话题。 新兴的语言也越来越多。 很多新创业的团队也以采用新编程语言为豪。 但需注意风险:缺少大量应用证明、文档、人才等。 我们主要是做B/S架构的管理软件,选择的是 LAMP组合。 简单,轻量,跨平台,开发效率高,文档充足,人多。 业内(包括诸多的技术媒体)其实对PHP有很多的偏见和误解。 PHP是非常务实的语言,PHP社区也是非常务实的社区。 渐进演变,社区化驱动,着眼于实际问题,而非概念。 适合自己的才是最好的。 1.2.1 如何选择开发框架? 确定开发语言之后紧接着就是开发框架的选择。 每种语言都有成熟的开发框架。 就PHP来讲,有ci, symfony, yii, thinkphp等等。 但我们还是选择了自己开发框架(zentaoPHP),why? 第三方框架是通用框架,大量的功能用不上。 第三方框架变化无法控制,很多框架大版本升级后,向下兼容不够。 第三方框架复杂度很高,做深度修改成本较高。 第三方框架实现未必合理,很多框架照搬rails的概念,华而不实。 后续很多问题都是在框架层面解决的,是我们商业模式的基石。 核心的东西一定要掌握在自己手里面。 1.2.2 zentaoPHP:简单、友好、扩展、中庸 1.3.1 UI框架的痛苦选择 09年开始做产品的时候,尝试使用yui。 数据展示较多,大量使用表格。(表格是很好的工具) 有的前端工程师会比较激进,全部用div + css,其实不用。 后来尝试使用bootstrap2,但发现有很多问题: 更适合英文语境,中文语言因汉字字体等诸多原因效果并不好。 涉及诸多jquery的插件集成问题,问题较多(版本兼容,样式冲突等)。 很多实现未必合理。 后来借鉴bootstrap的理念,自己整合了zui框架。 很多人说既然有了bootstrap,为什么还要自己开发等等。 平等和国外产品对话,相信自己。 1.3.2 zui框架效果(zui.sexy) 2.1 管理软件私有化部署所面临的挑战 操作系统的选择越来越多。win2000, win2003,winxp, win7, win8, centos, ubuntu, debian 32位,64位。 云端的选择:云主机,虚机空间。 运行环境也极其复杂。360,防火墙,安全限制,物理隔离 2.2 我们是如何来应对的? 首先得益于apache + php + mysql良好的跨平台特性。 借助第三方的集成安装环境,打造自己的一键安装包。 对用户屏蔽技术细节,比如http端口的选择。 程序加强对各种异常情况的判断,首先能够处理,其次能够扑获错误,方便跟踪调试。 我们已经做过的努力: windows一键安装包(自己重写的控制面板) linux一键安装包 基于虚拟化的管理操作系统(lfs, 100m,allinone,虚机。) 一份耕耘,一份收获。这些琐碎的问题恰是团队的价值。 3 如何应对通用发行版本和个性化需求的问题 管理软件和互联网应用不同,个性化需求强烈。 很多软件开发厂商会陷入分支的泥潭,举步维艰。 我们的解决方案: 首先得益于php语言的动态解释,弱类型的特点。 在我们框架基础上实现了基于面向对象特性的扩展机制。 几乎可以对基于框架开发的应用的任何地方做修改。 扩展代码和主干代码物理上分隔。 这样我们维护都是一套主干代码 + 若干插件的方式。 老版本的插件 + 新的主干代码兼容性都还不错。 学会说不,决定不做什么更重要。 4 如何解决SAAS环境的负载和用户数据完整的问题: 除了私有部署之外,我们也为用户提供了saas的解决方案。 问题一:负载,这个很好理解。 问题二:数据完整性。方便用户的导入导出。 我们的方法很简单:一套系统 + 多套数据库 + 多节点。 通过数据库将用户的数据隔离,保证用户数据的完整性。 通过增加新的节点来解决单击性能的问题,水平扩展很容易。 不足的地方:升级的时候需要处理多个库(写脚本程序升级) 简单可靠的方案最有效。 5. 如何解决企业不同层面的需求?话题有点大,展开说下 5.1 创办企业需要什么? 想法:发现某一
文档评论(0)