假如建立一个PB2的rails版本分支

2011-09-07 14:18:47 +08:00
 Los
谁有精力来全面clone一个PB2的rails版本?
不做任何功能和UI上的变化,以我个人开发的话,开发周期估计要一个星期左右,有可能不需要一个星期,也可能超过一个星期稍微长点,其中最浪费时间最无奈的应该是对PB2中l10n多语言支持手工转为rails用I18n格式。

这个开发周期对我现在而言太长了,谁有精力来开发呢?

现成可用的gem
判断是否mobile
https://github.com/brendanlim/mobile-fu
头像上传
https://github.com/jnicklas/carrierwave
twitter绑定
https://github.com/jnunemaker/twitter
recaptcha验证
https://github.com/ambethia/recaptcha
处理输入内容中的@
https://github.com/mzsanford/twitter-text-rb
28940 次点击
所在节点    Project Babel
256 条回复
mlzboy
2011-09-07 19:20:41 +08:00
开发一个吧,回来再来看看你估算的时间准确与否,这个可以反应一个人想的和实际动手之间的距离,我刚开始以为用rails做一个电商的站一个月总够了,结果搞了3个月,开发过程中可能会遇到没有想到的问题
keakon
2011-09-07 19:36:42 +08:00
@Los 我不知道RoR是怎样的开发速度,但7天显然不够。

如果我去做这样一个社区,我至少会花1个月的空闲时间来考虑需求,收集各种时刻闪现出来的创意,在考虑可行性和必要性后,融合和舍弃一些特性。
在将未来的发展方向考虑进去后,才会开始数据库建模,并同时根据可行性和性能来调整。因为这才能保证性能和扩展性。你当然可以把1小时内搭建出来的模型用于一个几千人的社区,但如果人数增加1000倍呢?

你或许会说你只是clone,需求什么的直接照搬就行了。但GAE的datastore是特有的,你几乎无法重用V2EX的model。而在脱离datastore后,你可以有更大的发挥空间,也应该有更好的实现。舍弃掉该有的改进,这种产品真的就只能像 @Livid 那样理解了。

如果你的项目都是3天完工的,我很疑惑你能从中得到些什么,也无法想象有人对花5年时间做这样的事怀有成就感。
对我来说,思考远比编码的收获大,因为后者只是印证一个理所当然的结果。

而在编码完成后,我还经常需要改变需求或者优化性能,几乎每个月都要抽出点空来做。这种看着自己的代码日渐成熟的心情,或许你也是没空来体验的。

我也经常和 @Livid 有不同的观点,但这次我认为他说得很对。如果你还在V2EX的话,好好思考一下那几个问题,大概比你继续下一个5年要有意义一些。
iandyh
2011-09-07 20:03:32 +08:00
@keakon 赞同。底层数据结构的改变会导致上层一系列逻辑的改变。这个不是在一星期内能想清楚的。
huacnlee
2011-09-07 20:30:18 +08:00
@Kymair 对,哥用了4天,哈哈哈
不过那玩意做出来没用,没意思,要有人用才有意思啊
huacnlee
2011-09-07 20:33:11 +08:00
http://github.com/huacnlee/homeland
地址在这儿,现在还有 MongoDb 的分支
bhuztez
2011-09-07 21:05:50 +08:00
@mlzboy 一般我都直接把自己直觉估计的时间乘3当作估计时间的 :-p
fanyange
2011-09-07 21:33:05 +08:00
最近用PB2做了一个小的社区项目,也做了一些自认为有点geek向的站后,思考了不少问题,其中100%和 @Livid 所提到的问题重合。感谢你的提醒。

网站的运作目的、服务导向和独立价值所在,确实是应该首要思考的问题,我想很多用pb2或类似geek风的平台做站都或多或少有一种类似炫耀和某种姿态感的成分,然而这并不重要,重要的是用户需求和前面说的那三点。

所以如果真的考虑过这几点的站长,最好的办法就是依据它们来进行自主开发,做出独一无二能创造价值的东西。

我揣测 livid 也和我有同样的看法吧。不过开源的东西也有这点好,自由。我知道是想多了,但自由地做做和自由地说说都是允许的。
mkeith
2011-09-07 21:49:09 +08:00
@Los @Livid @keakon 其实只是思考角度的问题,是做一个网站程序,还是一个网站。
Los
2011-09-08 00:54:12 +08:00
@keakon 花了好几个小时搞的半成品,http://v2less.heroku.com/ ,开发这类型的思路很明确,基本没有太多要思考的地方,假如真的7天开发,90%的功能应该能完成,顺利的话100%完成并非不可能,不过PB2有些功能我今天下午看了下代码,倒是想删去了事。
所谓3天练手项目,是这类型的 http://www.opendefine.com/ 难度不大
Anylei
2011-09-08 01:42:46 +08:00
个人以为 @Los 本意可能是以兴趣想为 PB2 添枝加叶,做一个 Rails 分支版本,环境不一样,或许能让更多人用到。而 @Livid 可能没意识到这个出发点,而谈运营方面。

最终造成误会。没有谁对谁错,枪打的地方不一样。
linsk
2011-09-08 02:44:04 +08:00
@Anylei 赞成
Los
2011-09-08 07:54:52 +08:00
@keakon 你应该仔细看下我的意思。我并非考虑搭建一个社区,只是提议开发一个PB2的rails版本分支,UI与功能都没有太大改变的情况下运行在VPS之类的环境下。BTW,说实话,至今我都无法完全理解 @Livid 所谓开源PB2真正的意义,似乎更倾向于免费提供使用的感觉,而非真正开源。
而我所说的三天小项目,你再看看 #8 楼我的回复,这个只是为了熟悉rails新版本的新功能,rails每次重大版本升级都会跟之前旧版本有很多小差异或者有很好的新特性,比如最新的rails 3.1.0 新增了 Asset Pipeline,为了熟悉这些新特性我更倾向于短时间内完成一个小项目并且里面运用到它的新特性。我管理的项目并非是三天项目,稍长时间的都有三年了,代码重构改进优化是对代码基本的负责,这些估计一个相对负责任的程序员应该都知道。我说PB2可以一个星期内左右完成rails分支的开发,其中一部分原因是我对V2EX的熟悉感,多年的老用户,几天每天都在使用它,作为一个开发人员,在对PB2的使用中很容易潜意识就想过某个功能的实现,而且PB2在功能上更是一个简化版本的论坛,没有复杂的会员等级机制和权限,没有太复杂的后台管理,所以开发难度并不大(这个跟PB2的创新没有关系)。


BTW,我对这帖子的气愤是因为我感觉到了某人一些语气上的嘲讽,并且,还在twitter上发表相关东西。
cmonday
2011-09-08 08:56:40 +08:00
和LZ一样,我也不明白@Livid 在想什么。
也许作为PB的开发者和V2EX的建设者、经营者,@Livid 有自己的骄傲和荣誉,不允许他人看低。
但是这次LZ说要做一个PB的rails版本,@Livid 一方面谈站点的建设与运营,一方面觉得LZ是在炫耀技巧,并且嘲讽"说比做容易“。
但是我觉得LZ的目的很单纯,打个可能不是特别确切的比方,就和新浪的人把Wordpress迁移到SAE一样,只是为了更多的人在不同的环境下可以使用而已,毕竟PB很适合做一个小型社区;而非@Livid 所谈的“把一个网站做成”。
bhuztez
2011-09-08 10:08:53 +08:00
@cmonday 我觉得 @Livid 是认为不自己去运营一个网站写出来也没意义。
ikbear
2011-09-08 10:25:23 +08:00
每当有个很棒的产品出现的时候,大家都会想去clone一下。这样clone的案例太多了,以至于大家都忘记了思考clone的意义何在。@Livid的初衷是提醒大家,要写有价值的代码,而不是单纯的clone或者copy。

很多技术牛人,为了练手,就是喜欢去clone一下别人的东西。这不是为了炫耀,也不是为了打败谁,就是单纯的为了代码而代码。从另一个角度讲,这就是它对于开发人员的价值。而@Los说如果建立一个rails分支,让更多的人在自己的VPS上能够跑上PB2,是个比原有的开源方案更有价值的事情。因为,原有的PB2程序虽然开源,却是只能运行在Google App Engine上,并且对于Google App Engine自己的东西依赖甚重。

每个人做每一件事情,都有各自不同的价值取向。初学编程的时候,你可能照着书上的例子将代码敲进计算机,这没任何创造性可言,但这同样是在创造价值;创业的时候,你需要从Make things的角度来做产品,这毫无疑问也是在创造价值。
ikbear
2011-09-08 10:36:27 +08:00
我将其整理在了Tech2IPO上:http://tech2ipo.com/2011/09/v2ex-debate-copy-or-not/
keakon
2011-09-08 13:08:53 +08:00
@Los 我回顾了一下,好像没人嘲讽你。以前和 @Livid 争论时,或者看他和别人争论时,发现他自尊心比较强,而且比较敏感(好像很多人都这样)。不过这里我还是老观点,他说得没错。

作为一个开源项目的发起人,我觉得他不仅是为自己写产品,更是为其他人写产品,因此有义务写得易于维护。
以我的经验,思考需求和设计上的时间越多,维护起来就越轻松。
以前也出现过想改PB代码,但最终决定干脆重写的人。没记错的话,@Livid 说过他只是想以最小的努力把PHP的PB1移植到Python的PB2。如果他不是那么急于移植的话,我想PB的开源会更为成功。
既然clone自己的项目都离不开重新设计,那么clone别人的,是否更应如此呢?

很显然,如果是抱着对他人有用的想法来做项目,就不会这样急于求成。
我回顾了一下自己博客的代码库,除去需求之类的时间,在数据库设计和实现上花了8天,其他地方用了3天完成雏形。当时我对自己用到的很多东西并不熟悉,重新开发的话,那3天时间可能会大幅缩短,但数据库设计上,我想仍不会少于一周。
曾经也看过PB的源码,让我设计的话,数据库这部分会变得面目全非,而功能自然也会有所调整。我不认为7天内可以clone出一个让人心动的产品,我想你也不愿意别人拿你的产品二次开发时,觉得还不如重写一个算了。
Los
2011-09-08 13:27:56 +08:00
@keakon 竟然是开发rails分支,数据库之类的设计和很多地方确实是完全要改的,说真的,PB2的功能代码确实没有太多的参考价值,只能取用UI和功能方面的设计,数据库方面改成mysql,schema 请看这里 https://gist.github.com/1202696
Los
2011-09-08 13:32:08 +08:00
@keakon 不得不提一下rails,rails写出来的代码,如果有个好的习惯,写出来的代码一般都是通俗易懂的,一般按照 http://rails-bestpractices.com/ 这里的大部分指导进行开发
Los
2011-09-08 13:40:48 +08:00
@keakon 昨天花最多时间处理是对内容的输入格式化
http://gist.github.com/1202708

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/17824

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX