下面的背景内容挺长的,希望大家能先粗略了解一下情况
我现在在管一个学校内部的 Private Tracker ,负责维护。 Tracker 和周边的东西都是拿 PHP 写的,算是“祖传的”代码了。搞了一个夏天终于把它搞成 PHP 5.5 兼容了。至于再往后的版本,像兼容 PHP 7 需要把 mysql 砍了换 mysqli 或者 PDO ,我看并不是很现实,所以就没搞。
现在想继续加功能,然而实在是无法忍受坑爹的世界第一语言了,因而明确认为需要换开发平台。不过,迁移要逐步完成,所以至少要保证两套程序都用一样的数据库和表结构——至少原有的数据要一样,对浏览器留下的 cookie 和用户验证方法也要一致……总归有不少限制。
一方面迁移工作比较多,另一方面人手非常不够,可以看作只有一个人利用业余时间在搞(大学三年级,还好课不太多)。所以我非常在意迁移的方向,选了坑多的路就是自己在作死。
现在考虑的方向有这么几个:
下面是纠结的东西:
我不是专门学习软件工程 /CS 的,但是相对熟悉 Python (日常计算器,科学计算,抓网页),之前也拿 Django 写过一些简单的东西。然而我不确定 Python 的性能怎么样,因为我们服务器比较渣,而每天处理的请求数量大概有 200 万个,有朝一日全是 Python 后卡成傻逼,那我估计会被管理组的其他人拖出去枪毙个几分钟的。
C#看起来不错,至少官方 IDE 挺爽的。但服务器是 Linux ,只能拿 Mono 跑,或者日后的 CoreCLR 。总觉得这样哪里有些奇怪,或者会被性能 /兼容性 /莫名其妙的 bug 坑死。另一方面 ASP.NET 这种东西似乎比 Django 的模式复杂一些,不过我刚看了一个小时不到,也不敢妄下结论。
如果用 Java ,我个人不是很喜欢。看架势估计想撸出来什么有用的东西得猴年马月了。 Scala 或许不错,但也有很多人说有种种问题。而且,即使使用 JVM 上面的东西,我感觉大概率会用 Thrift 之类的东西通过 RPC 调用它,前端依然 PHP (不过看起来可能会好很多)。
最后一个选项就是接着用 PHP ,慢慢地修老 bug ,重构,分离前后端逻辑,迁移到 PDO/mysqli 。然而首先是我觉得撸 PHP 并不会比撸 Java 更优雅,同时也不想强奸眼睛和大脑,而且似乎 PHP 7 的性能也就是呵呵。另一方面,这样做的话我的新东西会被(老代码的) GPL 污染,虽然原则上只在那个服务器部署并没有问题,但也是莫名其妙感觉蛋疼。 HHVM/Hack 不予考虑,尤其是服务器还是上古的 32 位 CentOS 5 。
可以是上面那几个方案里面的一个,也可以提出其他的建议。在此提前说一句谢谢😊
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.