`
harry
  • 浏览: 187666 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于Python和Java结合的新思路

阅读更多
   本人所在的公司(一个创业型的网络公司),主要的系统都是在java平坦上开发的。不过坦率的说用Java开发网站,不如脚本语言Python,php等用起来方便、直接。我们新的系统主要是社区这一块,决定使用python开发,使用django。这样就带来了python和原来的java系统结合的问题。
   比如原来的已有的积分结算系统,里面有很多关于结算的logic,我不想在python这边再实现一遍,不仅是重复的劳动,而且又要测试一遍,是否和原来的一致,更可怕的是当结算逻辑更改的时候,要维护两份代码!!!
   首先想到的方案是让django跑在Jython上,在网上看到已经有人这样做了,不过貌似很麻烦,还有很多未解决的bug。
   这样遇到了困难,转而想通过python和java通讯的方式,通过socket?这样还要自己做一套java object和python object转化的程序,麻烦,没把握能否达到想要的效果。在google上搜了一把,有很多java和python通讯的东东,不过好像没有适合我需要的。突然想起学习spring的时候,提供web service的机制中有个叫hessian的方案,基于http的二进制协议,貌似速度快,而且简单好用。hessian也提供python client访问代码。貌似可行。
   那么现在要做就是把原来的代码按web service的方式,封装成一个个hessian service。比如积分结算的service。然后在django的views.py中通过hessian调用这个service就可以了。
   虽然http调用会带来一定的开销,不过用hessian的话应该开销不大。大家觉得怎么样,现在的方案是python+hessian+java?
分享到:
评论
5 楼 lqefn 2008-05-10  
帮助
搜索
退出
设置
我的圈子
我的博客
收件箱 (1)
欢迎 lqefn !
   圈子首页 → Python → 全部博客
2008-05-04
关于Python和Java结合的新思路
关键字: python java hessian

本人所在的公司(一个创业型的网络公司),主要的系统都是在java平坦上开发的。不过坦率的说用Java开发网站,不如脚本语言Python,php等用起来方便、直接。我们新的系统主要是社区这一块,决定使用python开发,使用django。这样就带来了python和原来的java系统结合的问题。
比如原来的已有的积分结算系统,里面有很多关于结算的logic,我不想在python这边再实现一遍,不仅是重复的劳动,而且又要测试一遍,是否和原来的一致,更可怕的是当结算逻辑更改的时候,要维护两份代码!!!
首先想到的方案是让django跑在Jython上,在网上看到已经有人这样做了,不过貌似很麻烦,还有很多未解决的bug。
这样遇到了困难,转而想通过python和java通讯的方式,通过socket?这样还要自己做一套java object和python object转化的程序,麻烦,没把握能否达到想要的效果。在google上搜了一把,有很多java和python通讯的东东,不过好像没有适合我需要的。突然想起学习spring的时候,提供web service的机制中有个叫hessian的方案,基于http的二进制协议,貌似速度快,而且简单好用。hessian也提供python client访问代码。貌似可行。
那么现在要做就是把原来的代码按web service的方式,封装成一个个hessian service。比如积分结算的service。然后在django的views.py中通过hessian调用这个service就可以了。
虽然http调用会带来一定的开销,不过用hessian的话应该开销不大。大家觉得怎么样,现在的方案是python+hessian+java?
by harry 浏览 (83) 评论 (4) 收藏 相关推荐 评论
cloudeye 2008-05-04
认同楼主的意见。

如果有遗留系统,将其功能封装起来对系统新的部分提供服务,是比较稳妥的方式。

不管它看起来多么的陈旧或者丑陋,遗留系统的价值就是,它经过了测试和长时间用户使用保证没有问题。用统一的语言重新实现或许不难,可是这部分的测试工作不做可是不行的(要保证程序正常测试的工作量和时间可比些代码多多了,或许就给你的项目加了一一半的工作量)。

所以,饭一口一口吃,遗留系统的迁移以后有机会的时候再做,不要把这部分工作引入到当前的项目里面增加风险。同时变动两个部分总是比较麻烦和为危险的,一个一个来,变动A部分的时候,B部分本来是好的不动它,这样可以做为参照,比较稳妥。
dennis_zane 2008-05-04
就这么个简单的功能还搞上ICE了?管道,标准IO通讯也成
coolmenu 2008-05-04
用ICE嘛,python/php作前端 java/c++作后端
robbin 2008-05-04
用单一的解决方案永远是TCO最低的方案。发表评论

4 楼 cloudeye 2008-05-04  
认同楼主的意见。

如果有遗留系统,将其功能封装起来对系统新的部分提供服务,是比较稳妥的方式。

不管它看起来多么的陈旧或者丑陋,遗留系统的价值就是,它经过了测试和长时间用户使用保证没有问题。用统一的语言重新实现或许不难,可是这部分的测试工作不做可是不行的(要保证程序正常测试的工作量和时间可比些代码多多了,或许就给你的项目加了一一半的工作量)。

所以,饭一口一口吃,遗留系统的迁移以后有机会的时候再做,不要把这部分工作引入到当前的项目里面增加风险。同时变动两个部分总是比较麻烦和为危险的,一个一个来,变动A部分的时候,B部分本来是好的不动它,这样可以做为参照,比较稳妥。
3 楼 dennis_zane 2008-05-04  
就这么个简单的功能还搞上ICE了?管道,标准IO通讯也成
2 楼 coolmenu 2008-05-04  
用ICE嘛,python/php作前端 java/c++作后端
1 楼 robbin 2008-05-04  
用单一的解决方案永远是TCO最低的方案。

相关推荐

    基于Python和Java的HanLP自然语言处理设计源码

    本项目作为HanLP的实践应用,通过Python和Java的结合,为自然语言处理领域提供了新的思路和工具。开发者可以参考本项目的源码,了解如何设计和实现一个自然语言处理系统,同时也可以直接利用HanLP进行实际的项目开发...

    Java、Python和Matlab混合编程及其在气象中的应用.pdf

    例如,可以将现有的Matlab代码和Python脚本在Java平台上重用,通过混合编程的方式,结合各语言的特长,共同完成复杂的气象数据处理任务。 在具体实现中,Java作为核心语言构建的系统,可以嵌入其他语言的代码库,而...

    基于Python的Java Web开发课程设计源码

    它结合了Python的简洁性和易用性,帮助学生更好地理解和掌握Java Web开发的相关知识点和技能。源码的文件结构、模块划分以及配置文件和数据库的设置都体现了一套完整的课程设计思路,非常适合用于教学和实践操作。...

    基于Java和Python的Android自学之路设计源码

    本项目“基于Java和Python的Android自学之路设计源码”提供了这样一个学习资源,它是一个完整的Android应用开发项目,不仅包含了丰富的开发资源,还结合了当前流行的两种编程语言——Java和Python。 Java作为...

    使用Java+Python实现(Python部分已经打包为exe,使用Java调用)__

    从技术实现的角度看,这种结合了Java和Python优势的系统设计方法,为解决复杂信息管理问题提供了一种新的思路。它既利用了Python在数据处理和算法实现上的高效性,又利用了Java在界面设计和平台无关性上的优势。此外...

    基于Java和Python的力扣刷题练习设计源码

    基于Java和Python的力扣刷题练习设计源码是一项旨在为编程学习者提供练习机会的项目,它通过结合两种流行的编程语言——Java和Python,让用户能够在解决实际问题的同时提高编程技巧。该项目包含多种编程题目类型,...

    基于Java和Python的灵犀智能心电管理系统设计源码

    灵犀智能心电管理系统是结合了Java语言的稳定性和Python语言的灵活性的一款创新医疗管理系统。系统的核心框架采用Java语言构建,确保了软件的高效稳定运行,同时也保证了系统的跨平台兼容性和安全性。Python语言则...

    基于DDD架构的Java和Python混编项目

    技术层面以外,项目还展现了跨界融合的设计思路,不同技术栈的结合不仅仅是在代码层面上的简单叠加,更重要的是在设计理念上的相互借鉴和融合。DDD架构的引入,帮助项目团队更好地理解OCR服务的业务本质,以及如何...

    python 2019毕业论文参考文献.docx

    - **详细内容**:文章回顾了从机器语言到汇编语言,再到高级语言(如C/C++、Java和Python等)的历史变迁,并分析了每种语言的特点及其应用场景。这对于理解Python在当前技术生态中的地位具有重要参考价值。 #### ...

    基于Java与Python多语言实现的链家二手房数据爬虫设计源码

    同时,项目中的跨语言编程实践也为处理复杂互联网数据提供了一种新的思路和方法。随着技术的不断进步和数据应用需求的不断增长,未来基于Java与Python等多语言的数据爬虫将会更加智能化和专业化,为数据科学和互联网...

    Python语言程序设计PPT课件.zip

    与其他高级编程语言如C、C++和Java等相比,Python在数据的表示、处理和可视化方面都有绝对的优势。有编程基础的学习者在学习Python时最好能忘掉以往程序设计语言的语法,彻底转变观念,以全新的姿态融入到Python的...

    Python语言程序设计习题答案.zip

    与其他高级编程语言如C、C++和Java等相比,Python在数据的表示、处理和可视化方面都有绝对的优势。有编程基础的学习者在学习Python时最好能忘掉以往程序设计语言的语法,彻底转变观念,以全新的姿态融入到Python的...

    Java+selenium2

    通过以上知识点的梳理,可以全面地了解Java结合Selenium进行UI自动化测试的重要性和所需掌握的核心概念。对于希望从事自动化测试的Java开发人员来说,这些知识点是基础中的基础,能够帮助他们建立自动化测试的整体...

    Python语言编程在高中信息技术教学中的应用.pdf

    受到新课标的影响,教材的编纂和出版正在适应新的教学要求,导致许多地区的课程内容由基础知识转向了程序设计。在这个过程中,学生需要学习多种编程语言,比如Scratch、Java、Micro:bit、C++等。其中,Scratch适合...

    Python语言程序设计源代码.zip

    与其他高级编程语言如C、C++和Java等相比,Python在数据的表示、处理和可视化方面都有绝对的优势。有编程基础的学习者在学习Python时最好能忘掉以往程序设计语言的语法,彻底转变观念,以全新的姿态融入到Python的...

    基于Python和JavaScript的少儿编程设计源码

    在当今信息技术高速发展...本项目“基于Python和JavaScript的少儿编程设计源码”通过多元化的文件组成和技术融合,提供了一个全方位的编程学习平台,不仅适用于少儿编程教育,也为编程教育的创新和发展提供了新的思路。

    注入 - 代码注入之远程线程篇 - C_C++_Python_Java - 博客园.pdf

    从所提供的内容中,我们可以得知该文档是一个技术博客,作者基于CodeProject上的一篇老旧文章,结合自己的理解和实践,撰写了关于代码注入技术的文章,特别关注于远程线程注入的技术细节。 本文档主要讨论了以下几...

    基于Python语言的面向对象程序设计课程教学.pdf

    对于教学中面向对象程序设计课程的改革和创新来说,Python语言的引入提供了一个新的思路。通过选择合适的教学内容、设计合理的教学过程和方法,可以有效提升学生的学习兴趣和效果,最终达成教学目标。 在对Python...

    Python与PHP互调用库,可以在PHP中使用Python语言的函数和类库,或者在Python中使用PHP的包 支持 Linux/Windows/macOS 等多种操作和平台

    这些工具的出现,不仅促进了不同技术栈的融合,也为软件开发带来了新的思路和方法。 Python与PHP互调用库的开发,标志着编程语言互操作性的一个新里程碑。它让不同语言的开发者可以更好地利用各自语言的优势,同时...

    java 笔记本

    1. **Jupyter Notebook**:虽然Java不像Python那样原生支持Jupyter Notebook,但通过项目如BeakerX,我们可以将Java代码集成到Jupyter环境中,创建交互式的代码单元格,便于测试和演示。 2. **Swing或JavaFX**:...

Global site tag (gtag.js) - Google Analytics