港香网

繁体版 简体版
港香网 > 重生八七之传奇 > 第一百六十六章 Min软件开发平台

第一百六十六章 Min软件开发平台

章节错误,点此举报(免注册),举报后维护人员会在两分钟内校正章节内容,请耐心等待,并刷新页面。

作为一个资深程序员,袁明对集成开发环境(ide)认识比这个时代的任何人都深。早期的编程语言在送进编译器处理之前,必须要先经过流程图、撰写表格、打卡,所以当时并不需要开发环境。作为第一个高级语言的basic,是第一个有开发环境的编程语言,同时也是第一个可以直接在主机或终端机前编写代码的编程语言。当时它的开发环境是采取命令行方式的,并不像后来的大多数开发语言使用选单和图形化。但是它提供了编辑、档案、管理、编译、调试、执行等功能,算是集成开发环境的雏形。

袁明用的第一款集成开发环境是turboc,那还是因为大学里开始学习c语言时才用到了。后来就是turboc++、borlandc++、c++builder、visualc++,再之后就百花齐放。根据项目应用环境的不同,从命令行到图形界面,从eclipse到idea,从c到java,从编译到反编译,从单机到网络,什么环境都要用。所以,后世的资深程序员任何一个拿出来,都要秒杀这个时代的那些程序员大牛。

现在minos发布以后,只是对三方软件开发商提供了一系列的dll库和资料,怎样开发和集成还需要软件商自己去琢磨。当时袁明就想做一个开发环境,帮助三方软件商提供工作效率,减少开发成本。他有着后世的经验,上来就准备做插件式集成开发环境。

插件式集成开发环境是后世发展起来的终极开发环境,它基于微内核架构,把各种开发工具作为插件,根据需要动态载入软件中,为集成开发环境提供了强大的扩展能力。eclipse、idea等着名集成开发环境都是采用的这种架构,一经推出就风靡了整个软件行业,老牌的ide提供商纷纷不敌退场。

这款开发环境由于基于微内核架构,自然就可以载入多种编译器,因此为跨语言编程提供了良好的支持。袁明目前暂时只准备提供basic、c语言和c++语言,basic和c都是面向过程的,c++是面向对象的。面向对象编程在大规模软件开发中,具有强大的优势,相对来讲面向过程编程在小规模软件开发中具有优势。袁明知道未来不但有大规模的服务端系统,也会有小规模的移动系统,所以两者都支持在未来会具有更多优势。

袁明这次不但要支持多语言,他还有野心要做跨平台的开发环境。跨平台就是指软件开发一次以后,可以在多个操作系统上执行。这在后世java语言之所以大流行,成为主流开发语言,和java的跨平台性直接有关。要在多个操作系统上执行,就必须面对每种操作系统在内核、接口、执行机制上的不同。在没有跨平台能力以前,如果软件商需要在多个操作系统上发布自己的程序,就需要在每个操作系统上都开发一遍。

比如莲花公司,它的电子表格系统是在msdos、makos操作系统上提供的,当威阮的win操作系统出来以后,它不看好win操作系统,所以就没有投资在win操作系统上。当win大行其道之后,它再花了很长时间才做出了win版的电子表格软件,而这时威阮的电子表格程序已经完全占领了市场。最终莲花公司失去了在电子表格市场的领导地位,破产被收购。

从这一点上就能看出,跨平台对软件商是多么重要!如果莲花公司当初是基于跨平台的开发环境下,开发出的电子表格系统就能很快迁移到win上,而不用再做战略选择了。直接发布到win就好了,软件几乎不用做什么修改。

跨平台能力其实就是在操作系统和软件之间加了一个中间层,叫做虚拟机。虚拟机的作用就是把软件的指令转为操作系统的指令去执行,每种操作系统的不同由虚拟机去识别。软件完全不用理会它会运行在哪个操作系统之上,它只要关心和虚拟机之间的接口即可。这样通过虚拟机就可以让软件开发更简单,开发速度更快,在多个操作系统上的发布更容易。

跨平台得到了软件开发和发布的便利时,也付出了性能的代价。不过随着计算机速度越来越快,这一点性能损失对于软件开发和发布的成本来说,越来越无足轻重。未来谁掌握的跨平台的标准和基础,谁就能统治软件行业,后世的java已经证明了这一切。

这一世袁明不准备让java出现了,他准备让basic、c和c++直接运行在虚拟机上,让这些语言具备了跨平台能力,这也算是为后世程序员做一些贡献吧。上一世袁明就经常吐槽,明明c++和java差不多,开发时还要用两个环境写,类库和工具也是完全不同的两套,一个项目做起来不知道有多辛苦。现在直接好了,c++直接运行在虚拟机上了,无论你是做服务端开发,还是做桌面开发,你都可以用一种语言了!无形中学习的成本被降低了很多。

当然让c++直接运行在虚拟机上,肯定会面临被吐槽降低c++性能,对于这个袁明根本不想理会,上辈子见过太多c++和java性能之争,结果啦?跨平台还是成为了主流。

1月开始袁明集中精力到了复兴软件,专门组建了一个min软件平台项目组。min软件平台项目组内部包含两个子项目,一个是虚拟机minvm项目,一个是minide项目。由于现在图形界面还很简陋,minvm项目直接就是命令行,minide项目采用了最简图形化界面形式,类似于当初turboc的界面。

由于minvm存在,需要对标准的basic、c和c++语言进行改造,主要的部分就在于内存资源的分配和指针上。minvm负责了内存资源的创建和销毁,所以编程语言将不再需要管理内存了;指针既是c、c++灵活性的特色,也是程序混乱和泄漏的源泉,而且内存地址变成minvm堆栈,无需再让程序员自己计算地址了,所以袁明直接取消了指针。改变后,由于新的basic、c和c++语言的语法和标准的不同,袁明就把他们重新命名为minb、minc和minc++语言。

min软件平台是一个庞大的项目,仅仅minvm项目组就有40多人,minide项目组更是有100多人。也亏了苏省路9号地方大,装下了复兴软件上下300多人。不过后面还是要准备搬家了,以后人会越来越多,这个地方总会装不下的。现在安达已经对新买的新街地块做设计了,后续准备建成第一个综合商贸实体的安达广场,其中会建三栋超级高楼,其中一栋60层最高楼,已经被袁明预定作为复兴控股的新总部,改名为复兴大厦,未来将把所有复兴系公司都搬入进来。

复兴软件使用的全是复兴电脑,不但成本低、速度快,而且造型还漂亮。因为从芯片到主板,从显示器到机箱,全是复兴电脑自己造的,使用上更加安全。公司里的那些小年轻们,对于复兴电脑那是爱不释手,都不敢相信这是他们自己公司生产的。atx机箱的造型可比现在普遍横躺的at机箱漂亮多了,关键是组装和接线都简单了。有时候,程序员自己就能打开机箱,做做清洁什么的。

袁明为保证这两个项目的质量,特地亲自写代码开发了一个叫svn源代码版本控制系统,参考了后世的svn软件,主要用于在团队开发模式下,代码签入签出的版本管理。程序本身并不大,连1000行都没有,关键是设计理念采用了无锁模式,代码的签入签出不需要给文件加锁;采用差分编码,只保留文件相继版本之间的差异,这个方法可以更有效的存储数个版本的文件;采用分支管理,可以让同一软件的不同版本以一棵树的方式存在。

此外他引入了后世持续交付的开发模式,从最核心功能开始,每天设定目标,每天交付,每天做一轮集成测试,下班前要保证集成后的程序可运行。把测试人员下放到开发小组中,基本2、3个开发人员和一个测试人员组成开发小组,测试每天检查开发的单元测试用例执行情况,以及持续集成测试情况,及时反馈到开发手边,让每一个发现的问题都不留到第二天。同时,也是起着督促开发人员提升开发质量的作用。

有了这一个svn和持续交付,研发团队的软件质量和开发效率有了极大提升。如此袁明才能把更多的精力放在设计、架构和核心代码上。

分页内容获取失败,退出转/码阅读.

分页内容获取失败,退出转/码阅读.

分页内容获取失败,退出转/码阅读.

『加入书签,方便阅读』
123456