2011-06-13 65 views
2

我过去三年在我以前的公司中为各种基于网络和桌面应用程序编写了python/django和c/C++。在遵循一般学习曲线的同时,我开始研究像Haskell/Erlang这样的函数式编程语言。但最近我转向了一家使用PHP和Java编程语言的公司。Python/Django到PHP的过渡?错误的学习曲线?

切换到python确实改变了我用来编写代码的方式,主要是在很好的意义上,然后学习haskell给思维过程增加了另一个维度。

我想知道:

  • 学习PHP和Java(我已经做了在Groovy/Grails的太项目)会是什么样的学习曲线上后退一步?

  • 目前公司基本上使用smarty作为模板引擎,也没有ORM这是在django工作后有点令人沮丧,是否有任何方式可以包括ORM和其他这样的功能?

  • 继续学习python/haskell是否有意义,假设我将留在现在的公司很长时间?

  • 另外,有什么可以正确的方式来从Python到PHP?我知道它的奇怪,因为通常人们问周围的其他方式(PHP到Python)

+7

从Python到PHP的正确方式是以120英里/小时的速度向下。 – 2011-06-13 05:49:46

+0

是的,我知道,但是从php到python的整个代码移植需要很长时间,对公司来说并不具有商业可行性,所以无论如何我应该学习它,虽然我讨厌这种体验。 – bilkulbekar 2011-06-13 05:53:37

+5

不幸的是,我可以建议的是,你可以找到你能找到的最大的萘普生瓶。 – 2011-06-13 05:56:53

回答

3
  • 如果必须这样做降压到PHP中,至少使用与ORM好可用的MVC框架之一:

  • 采用使用框架的好处:不要忘记在移动到php时编写测试!

  • 使数据库/序列化对象保持简单和清晰 - 以便可以从其他编程语言并行访问或从PHP世界移出。即,不要使用php的serialize(),而是使用json,protobufs,thrift。

  • 尽量保持你的代码的php部分尽可能小,并限制在web前端 - 试图用php创建新的后端服务,这在内存管理,线程等方面不是很好。如果你已经使用Java,您可以将它用于这个目的(或intrduce蟒蛇...)

  • http://www.phpsh.org/是你的新IPython中,虽然不是有用

  • 如果可能的话,尽量坚持PHP 5.3与命名空间和更好内存管理

+0

谢谢Udi。 Zend已经被使用了,尽管我仍然看到人们在代码中进行原始数据库查询,这没有多大意义。此外,没有命名空间被认为是一个好点,不是吗? – bilkulbekar 2011-06-13 06:43:02

+0

@bilkubekar:命名空间多次是个人品味的问题。通常python程序员喜欢他们,而php程序员不喜欢:很难驯服现有的代码来使用名称空间,并且在许多php上下文中没有意义。不过php 5.3有其他的好东西作为匿名函数。 – Udi 2011-06-13 07:20:30