diff --git "a/homework/\345\274\200\346\272\220\350\275\257\344\273\266\345\234\250\344\274\201\344\270\232\344\270\255\347\232\204\345\272\224\347\224\250_\345\274\240\344\270\233-\345\210\230\346\230\216\344\274\237-\345\220\225\346\260\270\345\210\232.md" "b/homework/\345\274\200\346\272\220\350\275\257\344\273\266\345\234\250\344\274\201\344\270\232\344\270\255\347\232\204\345\272\224\347\224\250_\345\274\240\344\270\233-\345\210\230\346\230\216\344\274\237-\345\220\225\346\260\270\345\210\232.md" new file mode 100644 index 0000000..5f89850 --- /dev/null +++ "b/homework/\345\274\200\346\272\220\350\275\257\344\273\266\345\234\250\344\274\201\344\270\232\344\270\255\347\232\204\345\272\224\347\224\250_\345\274\240\344\270\233-\345\210\230\346\230\216\344\274\237-\345\220\225\346\260\270\345\210\232.md" @@ -0,0 +1,70 @@ +开源软件在企业中的应用 +================== + +##成员介绍## +张丛:北京金立通信设备有限公司,系统工程师,主要负责部署在阿里云平台主机的系统安全、蓝讯CDN和基调的相关业务。 + +刘明伟:广州玖玖伍捌健康服务有限公司,副总经理,主要负责健康医药平台的开发。 + +吕永刚:新科安云,工程师,主要负责云计算平台的相关研发。 + +刘伟:北京思特奇信息技术股份有限公司,工程师,负责电信行业CRM系统相关业务平台研发 + +朱文伯:北京航天光华电子技术有限公司,专业工艺师,主要负责操作系统的生产过程与相应问题的解决 + +##课程感受## + +近几年,由于IT技术的发展,互联网,电子商务,云计算和大数据等行业迅猛增长,带来了企业争相发展的良好势头。为了在市场竞争中保持领先优势,越来越多的公司都希望研发出具有前瞻性以及独具特色的产品来抢占市场。 +但是又苦于没有成熟、稳定、扩展性强的平台,且公司内部技术力量有限。所以为了能更好的实现目标,很多企业开始关注Opensource的相关产品。希望在产品繁多、性能优异的开源产品中选择可以做为自身平台发展的技术。 +但是为了能满足自身需求,在选择开源软件的时候仍然需要综合考虑:第一,软件的基本功能是否满户企业新产品的需求,是否能和老产品兼容;第二::软件的稳定性、性能以及可扩展性能否满足要求;第三:社区是否活跃、Release迭代周期是否合适、Team人员变化是否频繁; +第四:软件在安全方面是否有设计或改进。这四个基本问题明确后才能考虑是否被列入产品研发或部署的基础工具中,具体需要经过如下一些步骤完成产品研发或上线: + +1. 产品或项目的市场调研、需求分析 +2. 产品或项目kick-off meeting +3. 产品或项目前期技术Research、选型,分析各开源软件优缺点 +4. 开源软件功能、性能测试,稳定性分析 +5. 产品或项目UI Design、概要设计、系统架构设计以及设计Review +6. 产品或项目详细设计及Review +7. 产品或项目开发(Coding) +8. 产品或项目提交测试 +9. 产品或项目安装包及文档交付 +10. 产品或项目现场部署上线 +11. 产品或项目运维监控 + +以上几点是企业在多数产品或项目从需求调研到交付给用户的过程,其中第3、4点是针对开源软件进行的各种测试、分析工作,前面8个步骤中任何一项出现问题都可追朔到开源软件选型是否正确。 +可见开源软件对于企业在产品或项目开发中的参考价值尤为关键。但是作为开源软件,对于企业中的实际应用也同样具有让人忧虑和挑战的地方: + +1. 开源软件种类繁多,名目齐全,企业一时难以定位,如何选择合适的软件是关键。 +2. 开源软件由于缺少标准,大家在开发时采用各种不同的规范,语言书写不一致,注释缺少,代码测试力度不够等因素会严重影响软件质量。 +3. 多数开源软件最大的问题在于文档稀少,案例不多,企业很难对这类软件进行完整测试并实际应用。 + +由于以上3点,所以企业在开始的选择时,往往也感到举棋不定。因此以下几点供选型时参考: + +1. 不必力图功能强大,合适够用即可 +2. 对软件进行一定的测试,评估其性能是否可满户要求 +3. 软件社区是否活跃,是否持续有新版本release +4. 易用,配置量少,安全可靠 + +以上4点我们认为基本可作为企业开源软件选型时考虑的几个问题,个别特殊情况,特殊软件需要特殊对待。我们再来说说开源软件具体给我们带来的好处: + +1. 利用开源项目的方式,提高工作中团队合作的效率; +2. 以开源开放的思路,更为包容的心态; +3. 在社区多沟通交流,是程序员快速成长的捷径; +4. 可以利用开源社区,解决工作中的一些难题。 + +以下是我们对于开源软件优缺点的认识 + +开源软件的优缺点 +由于开源软件依托于互联网,电子商务,云计算和大数据等信息开放式行业,所以它的优缺点也是十分鲜明的: +优点: +1.代码是开放的,任何人都可以主动修改BUG,使其变得更好,而不必等待下一个版本。 +2.编码人员可以“体验”代码,以便更好地了解产品并作出改善。 + +缺点: +1.受限于现有的网络环境与相依存的行业特性,开源软件更容易泄密,安全性不够 +2.在开发过程中,关键的程序员的退出,会使一些开源项目陷于停顿。 + +但是总体来说,开源软件正在被普遍的使用,由于其代码的公开性,使得其在软件开发与软件应用领域得到广泛的使用, + +##待改进地方## +希望拿一个自己曾参与的开源项目来分析 \ No newline at end of file