V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  keakon  ›  全部回复第 38 页 / 共 55 页
回复总数  1086
1 ... 34  35  36  37  38  39  40  41  42  43 ... 55  
2011-09-12 11:12:15 +08:00
回复了 Mianco 创建的主题 Python 用Python开发商业项目,选择什么框架比较便捷
@Mianco 编码速度,还是维护和排错的速度,还是框架速度,还是学习速度?这些都是成本。
2011-09-12 01:13:52 +08:00
回复了 Livid 创建的主题 Diablo III Diablo 3 的 Open Beta 大概会在什么时候开始呢?
@tokki 有Mac客户端?
2011-09-11 17:51:07 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@Los 我会很爽快地离开,重点是有很多地方使用普通话,且我和这些人都认可普通话。

我不知道政府的禁令具体内容是什么,但如果只是在公开场合、电视台、广播电台中避免使用粤语,同时允许一部分台只为听得懂粤语的观众服务,我觉得是非常合理的,甚至是法律中早有规定的。

我记得我小时候去广州时,除了CCTV以外,所有电视台都是我听不懂的话,害得我实在没事可干。


关于约定,你所得过于抽象,而在Google里搜索“rails 约定”都是些命名规范之类的东西,而带来的好处并未提及。


@Livid,为什么Chrome下每敲一个字符,输入框就会增高一点?查了下源码可能是这个引起的:

<textarea class="mll" name="content" id="reply_content" onkeyup="c();" onpropertychange="this.style.height=this.scrollHeight+'px';" oninput="this.style.height=this.scrollHeight+'px';"></textarea>

scrollHeight要比style.height多6px,因为存在3px的padding。
2011-09-11 16:49:09 +08:00
回复了 krazy 创建的主题 程序员 怎么学算法比较好?
@krazy 算法很有必要用C来写,因为在表达底层数据结构时更有优势,而且测试性能时也不会因为语言的因素受到影响。
2011-09-11 15:50:04 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@Los 哈哈,其实这件事我很支持政府的(如果我没有理解错的话)。我待在上海,就觉得上海话很难听和拗口。我自己是可以不学,也可以不说;我也很认可上海人相互之间用上海话交流;但重要的是别TMD的对我说上海话,或者是一群人交流时,一小部分人不时说些上海话。

对我来说,避免痛苦远比获得快乐重要。一开始我就说了,Ruby有“很多”我喜欢的东西,但是为此而忍受“一些”我不喜欢的东西,这点我做不到。
而对“很多人”来说,这些我认为的痛苦是不存在的,所以他们会喜欢Ruby,对此我觉得可喜可贺。
但是强迫别人认可自己的痛苦或快乐,这是我不可接受的。所以我选择只和与我价值观相同的人交流,因为这部分人已经认可了什么是我们共同“不想用的”,也就不需要承受道德上的自责了。
2011-09-11 15:03:54 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@chloerei 我明确说出来吧,省得你还搞不懂我们观念上的根本差异:你希望的自由,是不想用可以不用;但我希望的是不想用的,我要求全世界所有人都不能用。

我承认这样很霸道,所以才会提起iOS。观念和乔布斯相符的,会满意iOS,不符的可以去选择Android。2者本来就都没有错,只在于你是否选择和你观念相符的。
2011-09-11 14:52:54 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@chloerei 我很不乐于和Rubyer讨论语言,原因前面也提到过了。
所以只简单回答下,我希望你有反对意见的话,先站在对方的观点想想为什么会存在这个问题,而不是把别人当成无理取闹的异类。

我就经常很疑惑,我自己就是证人,哪怕全世界只有我一个人疑惑,也是“让人疑惑”。同理,你也只能证明你自己不疑惑,不能证明它不“让人疑惑”,这在海猫中属于恶魔的证明。
要我说的话,我不认同“在实际开发中未曾成为问题”。我看到那条语句就得猜测是不是函数调用,这么大的问题都不是问题的话,那我把save改成一个属性,你在阅读代码时是否还按照“约定”认为它是函数调用?

关于“不追求简洁”,如果你注意到我的用词了的话,我对那么有好感的Ruby的第一印象不是简洁,而是简约。这2个词在Rubyer眼里也许看不出区别,这更让我觉得当初用这个词用对了。


@Livid 载入github的内容严重拖慢页面加载速度,能改善下吗?
2011-09-11 14:23:03 +08:00
回复了 jeeson 创建的主题 Google App Engine Google App Engine 价格和用量继续微调 (谷奥)
@linsk 如果只是学习,GAE的免费配额还是能维持一个1000PV以下的站点的。等超过1000时,我想该学的你也都学会了。
2011-09-11 14:19:21 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@chloerei 我想说的是我在接触Python后没多久,就喜欢上Ruby了,详情可以看 http://www.keakon.net/article/888

但随着了解的深入,就越来越觉得不爽了。

我可以轻易为JS和Python抛弃学了4年的C++,但却忍受不了Ruby,这实在很难以偏见来说服我自己。
2011-09-11 14:06:01 +08:00
回复了 Los 创建的主题 Ruby on Rails 关于 ruby 和 rails
@Los 那篇文章如果你读完的话,就知道我并非只是抨击RoR。我真正想说的是各种东西都有其适应的群体,开发者应该拿有限的时间去找适应他的技术,而不是逼自己去适应技术。


拿其中一个观点来说:Pythoner极力维护语言的纯洁性,简洁易懂是他们的哲理;Rubyer很喜欢新奇,巴不得每行代码都能用6种语法来写。

以你上面的为例:“Ruby允许一个函数可以有多个别名,比如得到 Array 的长度,有size,length甚至count”。

那么Python为什么不这么做?因为它需要简洁,这种简洁也带来了一致性和通用性,可以减少人们的疑惑和学习负担。
试想一下字符数组,它在C语言里可以当成字符串。前者或许可以有size,length甚至count,但是后者有count合理么?而在Python中,不论是内置的list、set、str、unicode、dict,还是开发者自定义的类型,一律都用__len__(self)这个接口获取长度,而且这个命名也让你趋向于选择更短的内置函数len()。

为什么要用函数而不是对象的方法?
我不知道Guido设计的初衷是怎样的,但是如果一个函数只想接收定义了__len__(self)方法的对象时,len()可以让不支持的对象抛出异常。而如果换成size(self)、length(self)和count(self)方法的话,你在定义自己的类时,为了不与标准的接口相冲突,这3个方法你都不能定义。于是你不能有square.size、rope.length和money.count,除非你保证其他人不会把这些对象当成Array。

我承认你的例子里用count确实更符合语境,但在Pythoner看来,作为一门语言的基本类型,它应该保持简洁;而在开发者需要他的语境时,才去自行定义别名。
而在Rubyer看来,他们只知道__len__很丑,len不面向对象,而且没有alias语法,这太过死板和沉闷了。


关于那个“:attachable_id=>topic_id”,我只想说人类的语言不会带:和=>。不管你学过多少门语言,只要没学过Ruby的人都看不懂这些符号。
而Python极力避免使用符号,宁愿使用关键字来取代符号。


还有我之前所提到的,那个.save让人疑惑究竟是一个属性访问,还是一个方法调用。一个get方法模拟成属性说得过去,可是这种带有强烈副作用的方法,为什么要伪装成人畜无害的样子?
假如这个对象还有个saved属性,然后你在获取它时碰巧少写了个d,而这个save方法最后会返回saved属性,会出现什么现象呢?你也许会说我有写单元测试啊,可假如你的测试代码是save == saved,或者这个错正好就发生在单元测试里呢?


我想这3点差异的本质就是:Python追求简洁,不让人疑惑;而Ruby追求自由,让自己惬意。
这也是我说“真正的Python程序员和Ruby程序员肯定是2个极端,绝对是水火不容的存在”的原因。他们的观念和care的方面完全不一样。
更多原因可以看这篇文章,有些观点现在看来存在错误,但大方向上和我现在的看法仍然相符: http://www.keakon.net/2009/03/17/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E9%80%89%E6%8B%A9Python%EF%BC%8C%E8%80%8C%E9%9D%9ERuby

其实回头想想,这有点像iOS和Android的差异。很多人想把iOS当成Android用,然后觉得很不灵活。可问题是2者本来就是风格迥异的,不适应就换一个,何苦折腾自己?


关于你的PS.2,这并不能解决根本原因,如果想用mootools呢?
2011-09-10 11:52:59 +08:00
回复了 Mr_Vangogh 创建的主题 Android 用Eclipse开发Android程序真是慢得一逼啊
@wenhuacn 还不如多花点钱开发iOS应用…
2011-09-09 19:07:04 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
@Los 据我所知,redis是存在丢失数据的风险的,为了提高性能,写入文件的间隔一般都达到几分钟了吧。

说些题外话。就代码来说,以我直观的看法就是符号太多了。
如果说Python是写英文的话,Ruby就是写公式了。
英文可以一眼区分出是否优雅,而公式只能看出是否复杂。
这是我在学习Ruby时最大的障碍。

另一点就是我不喜欢Ruby的一些省略,例如自动return最后一行表达式,函数调用可以不带括号。
我知道我自己可以因为不喜欢,而不去这样写。但我没法限制别人这么做,我也不可能不去读别人的代码。
我同意很多人喜欢这种自由,可这种不考虑副作用(比如得手动return nil,没法直接传递函数,查找函数调用时经常搜到注释)的默认做法让我觉得设计者考虑问题有点单纯。

还有一个很大的区别:做同一件事,Python和Ruby都可能有几种写法,区别就在于前者只有一种是最简单而优雅的,并且同时还是效率最高的。
这也可以看出Ruby鼓励多样性,但我不得不为学习多种方式付出N倍的时间,因为我没法避免遇到这样的代码。

所以虽然Ruby有很多我喜欢的特性,但最终还是放弃了。设计者在观念上与我格格不入,这是我感到最遗憾的。
2011-09-09 18:33:24 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
@Los 表示确实很难读,粗略看了下,如果发通知时用户不在线,上线时怎么查看错过的通知?
2011-09-09 15:58:34 +08:00
回复了 berrylei 创建的主题 随想 互联网企业做大了就一定得上市么?
多加点空行和换行吧,看着密密麻麻的…
2011-09-09 00:32:24 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
看完一部电影,结果多了这么多回复……

感觉 @Livid 在另一篇的回复像是在挑刺,虽然 @Los 也是在赌气,但没必要过了20个小时还去接茬吧…
自信和自傲的差别很小,往往就在于是否怀疑自己的能力。虽然有时候很难做到坦诚地表达,但只要以最好的善意去揣测对方,之后的沟通就会顺利很多。
人总是会不自觉地贪慕虚荣,若不先给与赞美和鼓励的话,就很难获得认同和真正帮助到对方。我觉得你运营V2EX是希望能帮助到大家,那么你大可让人愉悦地接受你的意见,这个技巧我想并不难掌握。

关于 @Los 的这个问题,我总结下我的想法:
1. 不管编码效率如何,需求和设计的成本加进去就不止7天了。
2. 7天以后还有维护的成本。
3. 细节上的处理和新功能的开发,不真正去运营是感受不到的。
4. 不去运营的话,你无法证明它的价值,也就无法吸引足够多的开发者持续更新这个项目。
2011-09-08 20:13:54 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
@Los 曾经学过,但感觉篇幅太长,学不进去。我喜欢那种简单的构架,可以一眼看透底层的实现。
Ruby倒是花了很长一段时间去学习,最终觉得不适合我而放弃了。

提到ActiveRecord的原因是GAE的ORM很复杂,属性放在不同的model里,key和parent的设定,索引的取舍,会造成功能、可行性、性能、扩展性、存储空间等方面的巨大差异。
举个简单的例子,昨天我还在GAE论坛看到有人抱怨30多M的数据,就用掉了1G的数据库空间(其实很多人都有这样的抱怨);而在我的博客里,7M的数据只用了10M左右(看不到个位)的空间,且性能和功能上完全达到了我的需求。
我还用过其他GAE上的blog,响应速度方面甚至可以相差1~2个数量级,这也是我为什么说数据库设计需要花非常多时间的原因。
2011-09-08 19:40:10 +08:00
回复了 adamsxu 创建的主题 分享创造 Doit.im 网站部分新版本发布了,大家看看怎么样?
@fly2never
1. 在Chrome下登录时,自动填写的密码会和占位符叠加到一起。
2. 希望有个日历模式。
3. 在隐私政策里只提到了用户的personal information,但我比较关心你们是否会任意查看用户的todo列表。说实话如果是国外的服务,别人看不懂中文,我就很放心。
2011-09-08 19:27:39 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
@Los 我不知道ActiveRecord是怎么做ORM,这些关系型的数据也是存储在一个ActiveRecord对象里么?会自动映射出一张关系表?那么作为post还是user的属性会有区别么?那么如果换个数据库,例如MongoDB,是否又有区别呢?

前面我也说过,我来设计的话,可能会变得面目全非。
例如我想做成长连接,服务器自动将更新push到浏览器。
而一旦这样做,可能不少表都需要增加一个时间戳,索引也需要变动;又或者设计一个更新表,可以封装所有类型的更新;甚至直接脱离数据库,用队列来驱动。

在思考功能的过程中,可能经常需要对数据库的设计和索引的取舍进行改变;而如果将这些思考过程延后到二次开发时进行,很多行为会与新功能冲突,或是有假定失效的可能(即原设计隐含的假设,但新设计下可能得区分不同情况)。


@Hyperion 我觉得中国的论坛逛多了,就会失去对人的尊重,也渐渐变得不懂自重。
像你这样挑衅的口吻说话,对象换成是你,你会接受吗?如果不接受,那说出来的意义只是为了自己的快感吗?
人都是聪明的动物,不需要太过直白。想想这句话,也许会让你避免很多无谓的争吵:在自己有理时,记得给对方台阶;在自己无理时,坦率地道歉。
2011-09-08 18:02:40 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
@Los 忙了一下午,先去吃饭=。=

字段好像少了点,比如收藏、关注和已读没看到。
2011-09-08 13:08:53 +08:00
回复了 Los 创建的主题 Project Babel 假如建立一个PB2的rails版本分支
@Los 我回顾了一下,好像没人嘲讽你。以前和 @Livid 争论时,或者看他和别人争论时,发现他自尊心比较强,而且比较敏感(好像很多人都这样)。不过这里我还是老观点,他说得没错。

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

很显然,如果是抱着对他人有用的想法来做项目,就不会这样急于求成。
我回顾了一下自己博客的代码库,除去需求之类的时间,在数据库设计和实现上花了8天,其他地方用了3天完成雏形。当时我对自己用到的很多东西并不熟悉,重新开发的话,那3天时间可能会大幅缩短,但数据库设计上,我想仍不会少于一周。
曾经也看过PB的源码,让我设计的话,数据库这部分会变得面目全非,而功能自然也会有所调整。我不认为7天内可以clone出一个让人心动的产品,我想你也不愿意别人拿你的产品二次开发时,觉得还不如重写一个算了。
1 ... 34  35  36  37  38  39  40  41  42  43 ... 55  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2744 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 33ms · UTC 04:09 · PVG 12:09 · LAX 20:09 · JFK 23:09
Developed with CodeLauncher
♥ Do have faith in what you're doing.