1
linchanx 2011-09-07 14:32:06 +08:00
rails 这么高效?只要一个星期?
|
2
ikbear 2011-09-07 14:34:29 +08:00
叫Livid做啊。
|
3
Los OP @linchanx 本身PB2的功能就没有太复杂,只是clone的开发思路基本不会断开,「山寨」哪会不快捷?
PS: clone跟完全全新开发一个项目有很大的区别的,一个全新的项目,UI功能全部都要全新思考,这方面是最花时间的。 |
4
Livid MOD 我完全不怀疑一个有热情的程序员可以在很短的时间内搞定。
但是,我有几个问题希望你们思考: 1. 你们做一个项目的目的是什么?是为了自己爽,还是说有其他更有价值的目的? 2. 好的代码是否一定等于好的运营和坚定的把一个网站做成的决心? 3. 一个有存在必要的网站的核心价值观是什么? 我个人认为,如果不把除了代码之外的很多问题想得足够透彻,事情的结果很可能就是不停的半途而废。 你们要做任何事情我当然都支持,但是如果目的只是为了证明你们的代码能力比我强,那么不用你们开始写代码,我就已经很乐意承认了。:) |
5
Los OP @Livid 你想得太多了。出发点只是针对需要PB2这套程序的朋友提供另外一个运行环境,比如运行在一个VPS上。PS:近来GAE的配额调整应该会有不少人对它感到失望,所以才蹦出这么一个想法,并没有你想得那么复杂。
|
6
apple 2011-09-07 15:38:05 +08:00
|
7
apple 2011-09-07 15:40:00 +08:00
@Los 我表示我非常希望能有能在vps上运行的PB2,赞一个。 上楼的回复我在编辑回复的时候没刷新,没看到你的最新回复,所以有“猜测”这样的词:)
|
8
Los OP @Livid btw,一般我在rails重大新版本发布后都会花点时间搞个小项目来熟悉一下这些功能,一般这类型项目开发周期都是三天以内(非clone),所以开发周期一个星期以上对我而言并不算太短的时间了。
|
9
Livid MOD @apple 要做出目前 V2EX 的完整功能,@Los 宣称他可能都不需要用一个星期,我只能把这句话理解为该理解成的那样了。
|
10
dimlau 2011-09-07 15:44:06 +08:00
不在 GAE 上的话……为什么没有人更新一下原来那个PHP 的 PB ?
那个社区,即使是现在看来,我也觉得很科幻。 |
11
Los OP @Livid
现成可用的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 以上有gem完成了这些功能,剩下功能无外乎几个简单的基本功能,况且前端处理方面基本不用折腾,全面clone,一个星期左右完成有什么奇怪的?以一个使用rails超过5年,几乎天天以rails进行开发的人来说,这个开发速度并非过快。 |
12
linchanx 2011-09-07 15:54:51 +08:00
这个站用一个星期做不出来。。。。
|
13
lyoe 2011-09-07 15:56:37 +08:00
那就赶紧动手呗,讨论能不能做的时间都够完成挺多代码了
|
14
iwinux 2011-09-07 16:01:56 +08:00
说得我有点心动了……很想试试……
|
15
Los OP 突然想起这段故事,V2EX对于我是越来越没趣了。
--------------------------------------- 苏东坡与僧人佛印是好朋友,一天,苏东坡对佛印说:“以大师慧眼看来,吾乃何物?”佛印说:“贫僧眼中,施主乃我佛如来金身。”苏东坡听朋友说自己是佛,自然很高兴。可他见佛印胖胖堆堆,却想打趣他一下,笑曰:“然以吾观之,大师乃牛屎一堆。”佛印听苏东坡说自己是“牛屎一堆”,并未感到不快,只是说:“佛由心生,心中有佛,所见万物皆是佛;心中是牛屎,所见皆化为牛屎。” |
16
leondu 2011-09-07 16:13:53 +08:00
◎Los 我猜你一个星期做不出来 ;-)
|
18
skywinger 2011-09-07 16:18:30 +08:00
来拜下牛人。
|
19
huangz 2011-09-07 16:20:22 +08:00
|
20
skywinger 2011-09-07 16:21:19 +08:00
我倒是可以尝试着用 C++ 来做个v2ex的cgi网关,不过要花多长时间,就不大清楚了。
编写的cgi程序,基本上只要是服务器,都可以运行 |
22
wtl 2011-09-07 16:24:35 +08:00
楼主只是想部署在自己的机器上吧
rails经验3个月 体验下来 只能说楼主没有丝毫炫技的意思 |
23
skywinger 2011-09-07 16:25:47 +08:00
用memcache或是sqllite来存储大概一周左右的数据,大于一周的,全部移除。
|
24
Livid MOD |
25
leondu 2011-09-07 16:28:59 +08:00
大家心态放轻松点,封号之类的大可不必,放一段时间再看这个争论或许你自己都会发笑。
有时候落在文字上的表达没有语气,往往会造成相互间的误解,以为是嘲讽或者诘问。如果大家如果面对面坐在咖啡馆,说不定聊得还很开心。 总之放轻松些啦,世界上该烦的事情已经够多,程序员何苦难为程序员 :-) |
26
skywinger 2011-09-07 16:29:31 +08:00
其实如果是考虑性能的话,在所有的语言虚拟机执行效率方面,jvm是最快的,除此之外,C、C++这类的原生语言所编译出来的效率也是最佳的,内存占用也是最节省的。
|
27
skywinger 2011-09-07 16:33:06 +08:00
@Livid 其实一些需要持久保存的重要数据(如用户信息等),可以考虑存放在一些XML文件或是数据库中,应用预加载到内存的方式来改善访问速度。但是大量的过往数据,就有些麻烦了。
|
28
shawiz 2011-09-07 16:34:28 +08:00
网络的确会无端放大人与人之间的误解,我觉得我们都要反思下……
如果大家都以开放心态来看事情的话,其实啥事也没有。何必要在乎别人说的话呢,想做什么就去做吧~ |
29
iwege 2011-09-07 16:35:12 +08:00
己所不欲,勿施于人...
自己不想编码的话,livid说的就是对的说... |
32
skywinger 2011-09-07 16:49:42 +08:00
@bhuztez 这确是如此,如果是机器环境与编译程序的环境有很大出入的话(一般情况下是gcc版本及系统kernel的差别),可能还必须要考虑一些第三方的依赖。如果是采用动态调用的话,就算发布二进制的也没用。
|
33
Kymair 2011-09-07 16:50:51 +08:00
@Los
@huacnlee 同学早在一年之前就做过类似的事情了,他说花了4天。http://www.v2ex.com/t/1745 如果没记错的话,@lin 同学也有类似的作品。 完全100%的用Rails重制Project Babel,我不会说完全没必要。但是对我来说V2EX跟PB已经融为一体,是一个不断演化的社区,也是一个云计算背景下的新的尝试。尽可能的把一件事情做的久一点而不是挖很多的浅坑 |
34
skywinger 2011-09-07 16:51:14 +08:00
|
38
lin 2011-09-07 18:14:51 +08:00
@Kymair &大家,我,那个救直接是在GAE啊, http://www.geekaa.com
|
40
BB9z 2011-09-07 19:05:31 +08:00
Lz的生气莫名其妙。
|
41
mlzboy 2011-09-07 19:20:41 +08:00
开发一个吧,回来再来看看你估算的时间准确与否,这个可以反应一个人想的和实际动手之间的距离,我刚开始以为用rails做一个电商的站一个月总够了,结果搞了3个月,开发过程中可能会遇到没有想到的问题
|
42
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年要有意义一些。 |
45
huacnlee 2011-09-07 20:33:11 +08:00
http://github.com/huacnlee/homeland
地址在这儿,现在还有 MongoDb 的分支 |
47
fanyange 2011-09-07 21:33:05 +08:00
最近用PB2做了一个小的社区项目,也做了一些自认为有点geek向的站后,思考了不少问题,其中100%和 @Livid 所提到的问题重合。感谢你的提醒。
网站的运作目的、服务导向和独立价值所在,确实是应该首要思考的问题,我想很多用pb2或类似geek风的平台做站都或多或少有一种类似炫耀和某种姿态感的成分,然而这并不重要,重要的是用户需求和前面说的那三点。 所以如果真的考虑过这几点的站长,最好的办法就是依据它们来进行自主开发,做出独一无二能创造价值的东西。 我揣测 livid 也和我有同样的看法吧。不过开源的东西也有这点好,自由。我知道是想多了,但自由地做做和自由地说说都是允许的。 |
49
Los OP @keakon 花了好几个小时搞的半成品,http://v2less.heroku.com/ ,开发这类型的思路很明确,基本没有太多要思考的地方,假如真的7天开发,90%的功能应该能完成,顺利的话100%完成并非不可能,不过PB2有些功能我今天下午看了下代码,倒是想删去了事。
所谓3天练手项目,是这类型的 http://www.opendefine.com/ 难度不大 |
50
Anylei 2011-09-08 01:42:46 +08:00
|
52
Los OP @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上发表相关东西。 |
53
cmonday 2011-09-08 08:56:40 +08:00
|
55
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的角度来做产品,这毫无疑问也是在创造价值。 |
56
ikbear 2011-09-08 10:36:27 +08:00
我将其整理在了Tech2IPO上:http://tech2ipo.com/2011/09/v2ex-debate-copy-or-not/
|
57
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出一个让人心动的产品,我想你也不愿意别人拿你的产品二次开发时,觉得还不如重写一个算了。 |
58
Los OP @keakon 竟然是开发rails分支,数据库之类的设计和很多地方确实是完全要改的,说真的,PB2的功能代码确实没有太多的参考价值,只能取用UI和功能方面的设计,数据库方面改成mysql,schema 请看这里 https://gist.github.com/1202696
|
59
Los OP @keakon 不得不提一下rails,rails写出来的代码,如果有个好的习惯,写出来的代码一般都是通俗易懂的,一般按照 http://rails-bestpractices.com/ 这里的大部分指导进行开发
|
60
Los OP |
62
Los OP @keakon 对于点击计数之类的存储,一般会直接设计使用redis进行存储,heroku上不支持redis,所以关闭了点击计数的功能,demo对于点击的显示就为x
http://gist.github.com/1202719 |
63
Los OP @keakon 与topic相配合的post,因为设计上topic可以直接提问,可以直接title而不需要body,所以数据库里topic表structrue没有body项,在post以major是否为true得知为topic的body,这方面有些性能损失,不过在完成功能开发后都会花上半天时间来做些优化,所以问题不大。
http://gist.github.com/1202726 |
65
Los OP @skywinger 你所说的设想或者可以使用redis进行存储 https://github.com/antirez/redis ,而这个nginx与redis直接配合的module可能会有点研究价值,它可直接配合Lua做些处理 https://github.com/agentzh/redis2-nginx-module
|
67
Sivan 2011-09-08 14:18:27 +08:00
感觉楼主是一番好意⋯⋯
|
68
mlzboy 2011-09-08 14:23:37 +08:00
写出来open一下 代码地址,再发一下中间写的过程中哪些要注意的心得体会吧,
|
69
chloerei 2011-09-08 14:27:15 +08:00
validates :body, :presence => true
新的validates可以这样写~guides里已经更新了 |
70
bluef 2011-09-08 14:29:21 +08:00
主要大部分程序员不太能接受别人的(开发)能力比自己强
|
76
Hyperion 2011-09-08 15:48:00 +08:00
看到#70楼, 我笑了...
顶楼的那段话, 我理解出这么两个意思: #0 =>"用rails来仿制一个PB2吧! 我可以用一个礼拜完成, 但我没那时间, 有人可以来完成我挖的这个坑么?" 结合@Los 另外一个帖子 => "PB2, 谁有空或者无聊谁来仿一个吧! 我没空把我的时间浪费在这上面." 啧啧... |
78
chloerei 2011-09-08 15:52:18 +08:00
别扇风点火了,只讨论技术。3.1更新了不少内容,可以互相交流一下。
|
79
Los OP @Hyperion 很多时候一个星期我可以完成一个小项目并收上一小笔钱了,如果你觉得一个星期的价值不存在,那么抱歉,我们不在一个维度。
|
82
Los OP @Hyperion 完全错误,我只能断定为跟你无法交流。livid这个作为他的主项目来开发,属于自己的事业之一,可以花大把的时间都无所谓,我只能作为一个旁观者,花上一个星期来投入开发对我而言感到时间不允许
|
83
bluef 2011-09-08 16:13:08 +08:00
|
84
ikbear 2011-09-08 16:13:17 +08:00
@Los在Tech2IPO留言说:我不明白站长为什么强调「抄还是不抄?」,我压根就没有想过抄一个V2EX出来,那帖子只是建议有空闲时间的人搞个PB2的rails版本分支(注意,这里是PB2,代表某个程序而不是一个社区)
我并没有说你抄袭V2EX,而是说这是在V2EX上的讨论,讨论的是用Rails抄一份PB2程序。我在Tech2IPO所发的文章里,想并没有曲解双方的意思。我把它发到Tech2IPO的本意,并非要指责大家什么,我也没这个资格。我只是希望,能有更多的人看到这么有意思的讨论。 误会一直都存在,就像这里的讨论一样。要去说服别人,难。 |
85
Hyperion 2011-09-08 17:01:16 +08:00
#83 @bluef 的奇葩观点我无法吐槽...
突然有一种说不出来的郁闷感. "某人要copy PB2, 但觉得花时间来干这事情很浪费"... 这事情怎么听都让人不是滋味... 对错? 挖坑有错么? 是为了方便大家, 没错. 挖完了坑, 又嫌在这上面浪费时间? 时间在不同的人眼里, "价值"是不同, 有人觉得无所谓, 有人觉得挤出一点来填坑都是可耻下流的. 没错. 把写完的代码一楼一楼刷出来有错吗? 没有, 这是个人自由, 无论目的是什么. 但这些摆在一起, 怎么就这么让人恶心呢? |
86
bluef 2011-09-08 17:05:51 +08:00
|
89
Los OP |
94
Los OP |
95
Los OP @bluef 说真的,没有一点气愤是假的:) 其实开始并没有太大感觉,但我解释后他还在twitter说些什么「说比做容易」之类的让我感觉到气愤。
|
96
Los OP @skywinger 汗,怕怕,web开发方面我也说不出太多的东西,v2ex里提问估计大部分人都我了解。 http://stackoverflow.com/ https://github.com/ 这两个站基本可以解决大部分的问题。
|
97
est 2011-09-08 17:33:47 +08:00
回复快上100了。
|
98
Hyperion 2011-09-08 17:39:53 +08:00
|
99
Los OP @Hyperion 在你评价他人前,请先看看你自己。有话说:“佛由心生,心中有佛,所见万物皆是佛;心中是牛屎,所见皆化为牛屎。”
|
100
napoleonu 2011-09-08 17:45:28 +08:00
回复到100了。
|