论坛首页 编程语言技术论坛

目前ruby适合非web的enterprise开发否

浏览 18372 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-02-01  
rubynroll 写道
不知如何定义enterprise应用....我倒是用ruby做过一些几个月或许几年无人值守的应用,嵌入式系统。另外我还作过一些socket server的应用,也是稳定服务几个月不用重启的。事实上,即使是几个月才有的一次重启,也是因为服务器重启。

只要你不去使用不稳定的扩展,ruby本身运行还是相当稳定的。

听上去不错,不知道这些项目代码量多大?
企业应用感觉就是给非IT企业用的管理软件。
举例来说,企业需要管理一个仓库,如果有东西需要入库,则会扫描条码,查询仓库内如果这个东西比较多,
则拒绝入库,如果低于某个数量,则允许入库,如果是自动仓库,则这个程序还要驱动自动的小车过来取走
并且放置这个东西。
如果出库则会驱动装卸设备,把设备运送出来,并且检查库存,如果低于警戒数量,则要短信通知相关采购,
如果持续几天不能补上,则要通知经理。
某些东西还有有效期,对有效期也要管理,快到期的先出库。
这个系统至于有什么界面不重要,是web界面也好,哪怕是个console界面,企业用户实际上不会有太大意见,
能完成任务才是企业关心的。

目前python已经听到一些企业在用了,虽然数量也是非常少。
0 请登录后投票
   发表时间:2012-02-02  
kaven 写道
rubynroll 写道
不知如何定义enterprise应用....我倒是用ruby做过一些几个月或许几年无人值守的应用,嵌入式系统。另外我还作过一些socket server的应用,也是稳定服务几个月不用重启的。事实上,即使是几个月才有的一次重启,也是因为服务器重启。

只要你不去使用不稳定的扩展,ruby本身运行还是相当稳定的。

听上去不错,不知道这些项目代码量多大?
企业应用感觉就是给非IT企业用的管理软件。
举例来说,企业需要管理一个仓库,如果有东西需要入库,则会扫描条码,查询仓库内如果这个东西比较多,
则拒绝入库,如果低于某个数量,则允许入库,如果是自动仓库,则这个程序还要驱动自动的小车过来取走
并且放置这个东西。
如果出库则会驱动装卸设备,把设备运送出来,并且检查库存,如果低于警戒数量,则要短信通知相关采购,
如果持续几天不能补上,则要通知经理。
某些东西还有有效期,对有效期也要管理,快到期的先出库。
这个系统至于有什么界面不重要,是web界面也好,哪怕是个console界面,企业用户实际上不会有太大意见,
能完成任务才是企业关心的。

目前python已经听到一些企业在用了,虽然数量也是非常少。

代码量不大,我用ruby作的项目,ruby代码从来不超过1w行,单个ruby文件大多在2-3百行。
用ruby写程序,我喜欢采用多进程模型,尽量把任务分解到各个小程序中完成,这样可以充分利用操作系统的资源,例如可以采用现成的监控系统,有些任务和shell脚本配合完成,等等。
例如有一个项目,前台web用rails,后台有十几个进程作一些控制,其中有一个控制电子闸门的,同一个程序有5个进程,因为要控制5个闸门。端口参数从命令行传入即可,既简单又方便扩展,操作系统进程提供了天然的容错屏障,一个进程挂了还不影响其他闸门的控制。

ruby相对于其他语言的一个优势是她表达能力强,因此程序可以短小精悍。另外因为rails的原因,有很多丰富的资源可以利用,例如ActiveRecord就可以轻松对付与数据库打交道的任务。
0 请登录后投票
   发表时间:2012-02-02  
rubynroll 写道

代码量不大,我用ruby作的项目,ruby代码从来不超过1w行,单个ruby文件大多在2-3百行。
用ruby写程序,我喜欢采用多进程模型,尽量把任务分解到各个小程序中完成,这样可以充分利用操作系统的资源,例如可以采用现成的监控系统,有些任务和shell脚本配合完成,等等。
例如有一个项目,前台web用rails,后台有十几个进程作一些控制,其中有一个控制电子闸门的,同一个程序有5个进程,因为要控制5个闸门。端口参数从命令行传入即可,既简单又方便扩展,操作系统进程提供了天然的容错屏障,一个进程挂了还不影响其他闸门的控制。

ruby相对于其他语言的一个优势是她表达能力强,因此程序可以短小精悍。另外因为rails的原因,有很多丰富的资源可以利用,例如ActiveRecord就可以轻松对付与数据库打交道的任务。

听上去非常不错
还有一个问题就是源代码问题,如果用户购买源代码,那么问题比较简单,
有些时候用户没有购买源代码,ruby就比较麻烦了,不知道有什么简单有效的办法。
0 请登录后投票
   发表时间:2012-02-02  
kaven 写道


现在越来越无法忍受java,c#这类非动态的语言了,感觉花了大量时间在类定义,接口抽取上。。。等等其他脱了裤子放屁的事情。


类定义及接口抽取是对业务的建模,不做业务进行抽象和建模就直接干活的基本上属于山贼做法。
0 请登录后投票
   发表时间:2012-02-02  
泰山北斗 写道

类定义及接口抽取是对业务的建模,不做业务进行抽象和建模就直接干活的基本上属于山贼做法。


这句话分开来说一点没错。但是对业务进行抽象和建模要做到语言级别才能干活?我倒是从来不这么干。
0 请登录后投票
   发表时间:2012-02-02  
rubynroll 写道
泰山北斗 写道

类定义及接口抽取是对业务的建模,不做业务进行抽象和建模就直接干活的基本上属于山贼做法。


这句话分开来说一点没错。但是对业务进行抽象和建模要做到语言级别才能干活?我倒是从来不这么干。


呵呵,没那么夸张吧,和建模相比,将建好的模型落实为语言没那么夸张。应用的开发的效率不仅仅是语言本身,还要看是否有成熟的框架,中间件支持。
0 请登录后投票
   发表时间:2012-02-02  
建模肯定需要做,但是初期花在建模上的时间我还是很少的,
现在采用快速搞出个原型,依靠不断重构测试迭代着前进,
设计已死,我是非常同意的。
ruby对于快速搞出个原型,还是非常称手的兵器。有的时候我
会用ruby写个原型,最后等结构稳定了,再翻译成其他语言。
3 请登录后投票
   发表时间:2012-02-02  
我一般的做法是:系统分析,架构设计,原型建模。顶多做到模块级别的设计,至于到类/接口定义级别,不是说绝对没有,的确是非常少。原型可以是拿脚本,HTML,甚至是卡片,什么方便就怎么做。
0 请登录后投票
   发表时间:2012-02-02  
有java经验的,我更推荐groovy
0 请登录后投票
   发表时间:2012-02-02  
jjx 写道
有java经验的,我更推荐groovy

groovy感觉太小众,实际体验怎么样?
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics