1
zava 2014-07-06 20:56:41 +08:00
听lz这样描述, 感觉你们的技术栈都是 java(JVM) 生态的啊. 何苦要换成 Python, 成本代价很大的.
|
2
Livid MOD 如果你在写帖子的过程中打开了其他主题,或者是回复过其他主题,那么会造成你写帖子的页面上的 CSRF token 失效。
|
3
Livid MOD 如果是出现这种情况,那么你只要继续点提交就可以发送成功的。
|
4
tan9le OP @zava JAVA作为主要的技术支撑,但是J2EE对于纯小白来说,学习代价还是有些大的,而且随着业务的逐渐发展,有些项目已经不是由客户提供环境,我们进行部署的这种方式来实施了,有一部分客户是直接委托我们进行开发、运营。
算是做一部分技术积累和尝鲜吧,也不可能大规模,一个小组来做。 |
7
reeco 2014-07-06 21:29:42 +08:00
javaEE程序猿飘过
|
8
est 2014-07-06 21:40:44 +08:00 1
这个不叫转型到Python。。这个叫用Java的框去套python。。。。。Zookeeper没有替代,python也得继续用zookeeper的客户端。
|
9
n37r06u3 2014-07-06 21:41:53 +08:00
最近面试一家公司 也准备转python开发 不过python做企业级应用 经验确实不丰富
|
10
skybr 2014-07-06 21:42:59 +08:00 1
要发挥tornado的异步优势, 得找容易被嵌进ioloop的driver. 配sqlalchemy会被坑的.
|
13
tonyluj 2014-07-06 21:47:23 +08:00 1
1.对于这个问题,可以参考 http://stackoverflow.com/questions/2461702/why-is-ioc-di-not-common-in-python
3.数据库连接方面,cx_oracle确实依赖一些Oracle client或env,上次开发配置Oracle就花费了不少时间,最后还是用docker 3.这个把依赖的库放到工程目录就可以了吧 4.高并发的话,集群可以用lvs,也可以在单机用Nginx+supervisor+N个tornado,数据库用memcached+Mysql,数据库写的话加一层rabbitmq LZ可以参考一下豆瓣、Dropbox这些使用Python的公司是怎么解决的。 |
14
palmers 2014-07-06 21:50:50 +08:00
围观下
|
15
tan9le OP @tonyluj 非常感谢,针对第一点,我想是我的思维模式已经习惯了J2EE导致的
依赖方面,比如我在开发环境中使用了virtualenv,然后通过pip安装了10个第三方库,那么我将virtualenv中的Lib目录下的py/pyc/pyd拷贝至生产环境就可以使用了么? 最后一点我可能没有表述的很清楚,LVS/Nginx,或者F5都可以实现负载均衡,但是我还是比较关注服务路由,服务治理/管理,还有多版本服务共存等等的解决方案,当然这一块可以通过自行编码实现,但是指望一个新的团队去造轮子可能会不太现实,请问这一块有没有什么建议呢? |
16
JoshuaJin 2014-07-06 22:23:40 +08:00 1
看了LZ的问题觉得如果只是做一些技术积累的话完全没必要用python去重写java版本的应用。本来JAVA EE提供很多现成的功能还要在python体系内去找,功能稳定不稳定另说,能不能找到还是个问题。不太清楚LZ看中python在企业应用中有什么优势,如果是说开发效率,部署灵活性的问题,为什么不考虑scala, clojure呢?framework也有,和java也能互通,觉得很有优势。
|
17
tan9le OP @JoshuaJin 我没看中Python在企业应用中的优势,而且这个主题就是来问问大家Python在企业应用中有没有优势的。
其实我是有私心的啦,首先我自己对Python比较感兴趣;其次,Python的学习难度比较低,如果新人想系统的学习J2EE,耗费的时间也比较长,换句话说,我现在想用Python的一大原因就是他的门槛低,学习速度快 |
18
est 2014-07-06 22:47:03 +08:00 1
@tan9le 我告诉你实话把:
> 注服务路由,服务治理/管理 python这一块基本是靠——手动。因为Java冷启动慢,需要编译才能部署,所以那么麻烦,python呢,一般都是新功能直接杀掉worker重启容器即可。载入时间基本不成问题。甚至有在服务器上直接修改.py文件在线调试的(喂喂喂这样干过的不要不承认!) 服务治理/管理还是很原始——用环境变量、Redis、SQLite搞的多的是,甚至配置就直接写成一个.py文件然后项目去import即可。其实.py文件可读性比较高了可以直接人工修改。没有Zookeeper那种高大上的。 |
19
tan9le OP |
20
wuxqing 2014-07-06 23:21:12 +08:00 1
个人观点:
python入门简单,但要用好,也是不易的 python做最短平快(或者1、2个人)的项目挺好,但是大点的项目,对人员要求还是蛮高的。可能会写出很难维护的项目,我已经经历过了 纯小白还是用你成熟的技术(架构)吧,用python不见得省心 |
21
helloworld00 2014-07-07 00:31:06 +08:00
dropbox都从python跳到go了。。。
|
22
2ex 2014-07-07 08:49:54 +08:00
从目前来讲Python用在生产环境还是挺好得。Web框架建议用DJango,Tornado太过于精简了,到头来基本得session等功能都要靠自己来实现,另外tornado得资料没多少,django资料是海量。新人遇到问题很容易可以在stackoverflow等站上找到解决办法。
Golang基本上都是用来写后台高并发的,用作写web不是不可以,但明显不是最方便的。 |
23
tan9le OP @helloworld00 golang目前还没达到我们团队能够消化的地步,只能尝尝鲜
|
24
tan9le OP @2ex 我相信就技术语言本身而言,大家都差不多,只有实现复杂度的问题,而真正能被企业应用所使用的往往是它有没有丰富的,成熟的解决方案和实施路径。django在解决我提出的问题上我好像没搜到什么方案呀
|
25
tan9le OP @2ex 还有一个地方可能是我没描述清楚的,我们大多数的应用是包含移动终端的,django我的调研结果是做web应用比较有优势一些,不知道理解的是否正确?
|
26
mengzhuo 2014-07-07 09:19:30 +08:00
@est
2年Python开发表示服务器上改文件中枪……还附赠reload ----------------------------------------- Tornado IOLoop坑比较大,小心数据库没有驱动 sqlalchemy 第三方插件良莠不齐……也得小心 ---------------------------- 楼上吐槽Python多人开发就不行了,明显是队友、沟通、合作不给力啊,曾经和6个人一起开发过的表示没有压力。 |
27
jjx 2014-07-07 09:32:27 +08:00
俺这几年主要的一个事项就是用python做erp开发, 先期语言经验包括c/vb/java/c#/delphi/pb/x++等,对于企业db应用,动态语言是最好的选择, python是动态语言中最好的选择. 理由就不讲了, 无法理解的人永远无法理解
至于lz, 明显的python新手, 我觉的还是自己先积累几万行的代码经验后再动这个念头会好 |
28
tan9le OP |
31
sharewind 2014-07-07 10:26:05 +08:00
写过python 和 java ,真心觉得还是java 稳妥。。。。
|
32
vicalloy 2014-07-07 10:43:49 +08:00
@mengzhuo 楼主是想让小白来做,所以我认为“不适合多人开发”是合理的吐槽。
脚本语言由于太过自由(python已经算比较不“自由”的),会给人各种犯错的机会。 让一群小白协作很容易失控。 相比而言JAVA只要能编译通过就已经成功大半了。 |
33
timonwong 2014-07-07 10:59:31 +08:00
想让代码迅速腐化吗?那就让一群Python新手开发项目吧,除非这个项目不重要,而且持续时间比较短。
|
34
incompatible 2014-07-07 11:02:55 +08:00 via Android
|
35
tremblingblue 2014-07-07 11:10:44 +08:00
感觉这样的项目转为jee感觉就是挖个大坑自己跳,而且都是新手的话,还是那么多人,感觉真的不大建议.
从公司层面这样做真的不大好.当然对于lz自己的能力啊什么的这个挑战其实挺不错的. |
36
cloud107202 2014-07-07 11:21:56 +08:00
建议坚持java
动态语言开发速度是建立在非特别复杂/非大型非企业应用的前提下 更何况对于复杂/多人协作/大型/企业应用来说,比开发速度更重要的点多了去了。Java作为工具链丰富,语法严谨的工业语言非常合适 |
37
timonwong 2014-07-07 11:22:46 +08:00
@incompatible
2. 整套方案用Python实现的估计,MQ有个WebSphere MQ的binding, PyMQI,没有用过不做评价 3. Python的工作流主要关注的是数据,而不是业务。了解过spiff,用过OpenStack的taskflow,感受是真不好用。 |
38
mengzhuo 2014-07-07 12:51:36 +08:00
|
39
incompatible 2014-07-07 23:43:37 +08:00
|
40
incompatible 2014-07-07 23:53:02 +08:00
@mengzhuo
是人都会犯错误 语言的特性决定了错误是在编译期就被发现还是运行时才被发现 拿duck typing举例: java不支持这种玩意儿(当然你也可以用反射来实现),所以永远不会出现系统跑起来了结果发现传给某个方法的参数并不是它想要的这种事情 我个人认为在大型工程中,基于接口编程比基于约定编程要靠谱的多 |