`
funnywiser
  • 浏览: 4136 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

je专家挺多,想多请教一下

阅读更多
    做开发已经有些年头了,一直做的好像都是写代码的工作。平时也很少上这些论坛,这么多年从来没有在论坛上发过贴。可以这是在最初工作时养成的习惯吧,因为那时候还没有论坛。最多写代码上,碰到问题搜索一下,找到解决方案后就关掉了。
    最近发现也需要宣传一下自己,不然万一找工作,也好有个宣传的东西,就在CSDN上注册了博客。才开始关注这些论坛,以及论坛上面活跃的人。结果发现就技术而言,je上面更加适合于讨论问题。下次有些关于自己工作上碰到的问题,也可以拿到上面来探讨探讨了。
    不过要发起一个题目,确实也想不好,下次就对敢兴趣的帖子发表一下意见好了。我想只有在相互的辩论中才能真正的得到提高。
    我是一直做开发的,主要写的还是java。当然什么C#、Flex、VC、Delphi、PHP什么的,也写过一些。对于程序员来说,很多时候根据环境决定开发语言的,以及你所需要采用的技术。
    很多新的技术,也是稍微看一下。等到大家觉得都没有了问题之后,才敢使用。因为对于公司来说,项目是不允许失败的。所有不能无谓的去增加技术的风险。
    我是一只搞开发平台的研制工作,当然现在做这一块的人很多。是个公司可能都在说快速开发平台什么的。不过我做的还是挺早的,最早从2001年就开始了。所以说我们做东西很少上论坛,因为还根本没人做。我们用eclipse时,SWT才只有1.0,还挺不好用的。
    不过当初选定的技术,到现在也一直都没有什么改变,回头来看看这几年技术的变化,好像感觉自己落伍了一样。因此现在想融合一些新的思想和技术进来。
    我现在对几项技术比较赶兴趣,一个是DSL语言。我看到robbin在一篇帖子中评价普元时,觉得如果普元不是基于XML总线结构,而是有一套DSL语言,然后编辑器来生成这种语言,再加上一个管理完善的运行平台,这样才会理想。
    对于普元我不做评价,但是robbin这种思想和我们做的东西的想法非常接近,或者说我们的目标就是这样,可能技术有限某些指标方面没有达到而已。
    我这里暂时不对我的产品展开了,以后还有机会。我只谈实现这种技术会遇到的困难。
    1、首先一点DSL语言,比较难以选择。按理想来说可以选择python语言,但这样会加重使用者的学习成本。毕竟python掌握的人不多,社会还是java的人多一些,或者学校里就教过java。因此我们最后选择java语言。
    2、语言和编辑器的逆向工作很难。如果按照robbin的想法,用户可以直接编辑dsl,同时可以和编辑器配合做。但是编辑器生成的代码会把手工写的代码替换掉。这种逆向工作不好做。因此我们的做法是两者完全独立的,编辑器配置生成的代码是不能编写的,手工编写的代码可以供编辑器配置使用。
    3、调试和测试不好做。你要做调试,就要做跟踪,这是程序员的常用思路。这样的工程量就很大了,我们的思路是只有测试以及跟踪输出,没有debug。
    先说三点吧,其实还是有挺多问题需要解决的。总之,做一个这种平台很难,当你解决了一个问题之后,会发现还会有新的问题。并且你的功能也是需要不断扩展的。所以普元最初的时候,以为发现了银弹,确实最初的一些项目可能极大的提高了生产力。但是随着项目的复杂,其产品也做的越来越复杂,最终也导致了越来越难用。
    je的规矩挺多,也不知道该在什么地方发布什么贴。慢慢再摸索了。希望有人指点。
分享到:
评论
6 楼 maxiaoxia 2009-05-15  
。net的话,建议看一下MS DSL Tools,如果是平台,平台不能建模,需要手工生成code,对dsl定义不清,还是在现有架构下面开发吧
5 楼 LucasLee 2009-05-15  
要让用户去改DSL语言?这个只怕不合适。
任何语言都难以让用户去改,不是语言的问题, 而是逻辑完整性的问题。这就牵涉到必须有DEBUG等工具的配合才能达到较高的开发效率。
所以,我并不看好DSL给用户修改这样的特性。
我认为大多数时候,语言这个层面的东西不能过多的暴露给用户。这个特性只对少部分高级用户有用,不会是很重要的特性。
4 楼 funnywiser 2009-05-15  
lordhong 写道
Orz... 貌似你做的东西都挺深奥的...

可能我讲的不清楚,所以显得深奥了。其实也简单的,国内做的人也挺多。
我的想法就是通过一个配置器,能够轻易的配置业务逻辑的实现,然后生成代码来运行。
这个和普元做法类似,不过就是表现形式不一样。普元什么都用流程图来配,而我们用规则、用表格、用流程图来配。另外我们就是做到程序语言和业务领域语言的映射。
貌似规则引擎,但又不是真正意义上的规则引擎。规则引擎不会像我们这样直接映射代码,不会考虑测试与跟踪,不会考虑直接映射数据库。
我们没有匹配算法,没有理论。纯粹就是编写代码的另外一种方式而已,用失去语言灵活性来强化规范性以及易用性。
刚才说到的DSL语言的问题,是目前我们考虑需要解决的问题。
原先我们都是基于java的,我们可以在配置时直接调用java类,并且配置的逻辑是直接映射成java代码的。而且我们可以做java的语法提示等,因为java的反射机制支持这一点。
但是现在我们发现.net平台将有可能占领大量的市场。这样的话,我们基于java就不合适了。因为有可能服务器上安装的就是IIS,要让只懂IIS的人,去维护一个Tomcat不是一件很好的事情。因此需要我们配置的逻辑,可以直接供 .net调用。
因此现在在考虑究竟是基于动态语言呢,还是再为 C# 做一套。如果再为 C# 做一套的话,这个工作量可能会很大。因此现在要评估了。
3 楼 lordhong 2009-05-15  
Orz... 貌似你做的东西都挺深奥的...
2 楼 funnywiser 2009-05-15  
谢谢回复,看样子je的支持挺好。
看groovy介绍的不错。不过我看其可以很好的支持java,不知道将来对C#的支持怎么样?

关于我们现在技术选型的情况,我一直现在在做抉择。可能需要专门开篇帖子,讲述我们的目的,以及已有的技术,可能的选择。不过这这里大致说明一下。

我们选择采用DSL的目的,是为了我们业务逻辑层的开发工作。

现在大家都知道流行开发平台,就是说,持久层采用ORMapping技术、逻辑层采用配置技术、界面层采用所见即所得的设计技术。

但很多人,其实也都在反驳开发平台的必要性,首先认为不用重复发明轮子,用现有的那些框架就行。另外制作一个开发平台且不说开发成本,就其稳定性和性能来说也会带来新的问题。

我不想去过多的反驳这些言论,因为每个人站得角度不一样。我想说明的是,在项目开发中,确实有大量的工作是不需要高深的技术以及设计的。大量的工作是重复的,琐碎的。灵活性太大的东西,是难以控制的。

因此开发平台就是希望可以解决,项目中那些简单的、琐碎的、易重复的工作。当然很多程序员,觉得现在使用代码生成器,完全可以解决这些工作的工作量。但我们还应该再深一层,就是这些工作是易维护的。简单的说,就是我项目运行阶段,要改动,也是希望一样快的。

这就是采用代码生成器的弱项了,你在运行阶段,就不能重新生成一遍代码,而是需要手工去改代码了。

因此我们要将这些简单的工作,从一开始就不是基于代码,而是基于开发平台配置的。那样将来修改的时候,也就不用去改动代码,仍然是改动配置,这样才能真正的做到敏捷性。

说了这些,还没讲我们为什么需要DSL。

我们现在就是需要业务逻辑的实现,不采用代码的方式来实现,而是采用配置来实现。并且我们希望java可以很方面的调用这些逻辑、Ajax可以很方便的调用、C#可以很方便的调用。

我先好好研究一下,grooy的语法再说。其实配置器的目标应该是可以生成不同语言的,然后和不同语言的进行配合。所以需要研究各个语言的特点。
1 楼 lordhong 2009-05-15  
用java的话, 可以看看groovy, 做DSL

引用
  je的规矩挺多,也不知道该在什么地方发布什么贴。慢慢再摸索了。希望有人指点。

只能靠自己摸索了... 偶5钻的... 这几天天天在做脑残小测验...

相关推荐

    JE分词 1.4+1.5

    这个版本的JE分词在之前的基础上进行了多方面的改进和增强,使得其在处理中文文本时更为高效和精准。 首先,"全面支持Lucene 2.0"表明JE分词与流行的全文检索库Lucene有良好的集成,这使得它能够被广泛应用于搜索...

    BerkeleyDB-JE je-6.0.11

    Oracle BerkeleyDB-JE je-6.0.11

    Berkeley DB je3.3版

    数据复制功能使Berkeley DB je可以实现多节点的集群部署,增强了系统的可用性和容错性。在一个节点失败时,其他节点可以接管服务,确保业务不受影响。 7. **索引与查询** BDB je支持多种类型的索引,包括B树索引...

    je-5.0.73-API文档-中文版.zip

    赠送jar包:je-5.0.73.jar; 赠送原API文档:je-5.0.73-javadoc.jar; 赠送源代码:je-5.0.73-sources.jar; 赠送Maven依赖信息文件:je-5.0.73.pom; 包含翻译后的API文档:je-5.0.73-javadoc-API文档-中文(简体)版...

    MELSERVO-JE系列样本.pdf

    这一系列产品的目标市场是那些寻求降低设备成本但又不希望牺牲太多性能的用户。JE系列产品能够满足基本的伺服控制需求,且易于选型和设计集成,非常适合在成本敏感型的系统中使用。 标签“三菱伺服电机,JE系列”...

    三菱MR-JE-C伺服电机FB功能块(适用Q系列PLC) 流水线项目,16个MR-JE-C电机,为了加快编程速度,特意做的一个F

    流水线项目,16个MR-JE-C电机,为了加快编程速度,特意做的一个FB功能块,内部采用局部变量+全局缓冲区的方式进行编程,多次调用不冲突! 适用于Q系列PLC和MR-JE-C的运动控制。 FB功能块包含回原位、PV速度模式、PP...

    je-analysis.jar

    "je-analysis.jar" 是一个Java Archive (JAR) 文件,它是Java编程语言中用于封装多个类文件和其他资源的容器。这种格式通常用于分发可执行的Java应用程序或库。在这个特定的情况下,"je-analysis-1.5.3.jar" 版本...

    je-analysis-1.5.3

    首先,我们来理解一下Je-analysis的核心概念。它主要负责对中文文本进行预处理,包括分词、词性标注、停用词过滤等步骤,以便Lucene能有效地索引和搜索这些内容。Je-analysis 1.5.3版在此基础上进行了优化,提升了...

    MR-JE伺服样本

    MR-JE伺服具备多项先进的功能和特点,包括“先进一键式调整”功能,可以无需电脑操作即可完成伺服调整,大大简化了安装和调试过程。此功能还可以自动调整振动抑制控制和鲁棒滤波器,使得系统的性能更加稳定可靠。...

    je-analysis-1.5.1

    "je-analysis-1.5.1"是一款专用于中文分词的开源工具,它在中文信息处理领域扮演着重要的角色。这款工具集成了高效的分词算法,为开发者提供了便捷的接口,使得在Java环境中进行文本分析变得更加简单。"JE分词器"是...

    三菱伺服MR-JE使用手册

    通过以上详细的介绍,我们可以看到,三菱伺服MR-JE系列产品的使用过程中涉及到了多个方面的安全注意事项。只有严格按照手册中的指导进行操作,才能确保系统的稳定运行,同时保障人员的安全。对于首次接触此类产品的...

    je-analysis-1.5.1.jar

    je-analysis-1.5.1.jar 中科院的分词器,用的人很多,需要Lucene1.9-2.4版本才能使用

    丝印HX-JE芯片资料

    根据提供的文件信息,以下是对“丝印HX-JE芯片资料”的详细知识点阐述: 标题“丝印HX-JE芯片资料”指出了我们讨论的焦点是关于一款特定的芯片,而“丝印”这个词通常用在半导体制造工艺中,涉及在芯片表面印刷用于...

    je-analysis-1.5.3、lucene-core-2.4.1分词组件

    然而,需要注意的是,版本号较旧的"lucene-core-2.4.1"可能不支持现代的一些特性和优化,如最新的查询语法、多字段搜索等。为了获得最佳性能和最新特性,通常建议使用更新的Lucene版本,同时保持与分词器的兼容性。 ...

    三菱JE伺服使用手册

    ### 三菱JE伺服使用手册知识点总结 #### 一、安全注意事项概述 在开始任何与三菱JE伺服相关的操作之前,必须严格遵循本章节介绍的安全注意事项。这些注意事项被分类为“危险”与“注意”两个级别,旨在确保用户的...

    enshu JE60S 培训资料

    根据提供的文件内容,这份“enshu JE60S 培训...通过以上内容,我们可以看出该培训资料为使用者提供了一套完整的JE60S设备操作和维护指南,是设备操作人员、维护人员和故障修复专家在工作中不可或缺的技术支持材料。

    je分词jar文件1.5+1.4l两版本

    【标题】"je分词jar文件1.5+1.4l两版本"涉及的核心知识点是中文分词技术,以及两个不同版本的Java Archive (JAR) 文件——JE-Analysis1.5.1.jar和JE-Analysis1.4.0.jar。 中文分词是自然语言处理(NLP)中的关键...

    je-5.0.73-API文档-中英对照版.zip

    赠送jar包:je-5.0.73.jar; 赠送原API文档:je-5.0.73-javadoc.jar; 赠送源代码:je-5.0.73-sources.jar; 赠送Maven依赖信息文件:je-5.0.73.pom; 包含翻译后的API文档:je-5.0.73-javadoc-API文档-中文(简体)-...

    MR-JE-C编程要点.pdf

    JE-C伺服控制要点,方便plc对伺服关键寄存器读写

Global site tag (gtag.js) - Google Analytics