瞎扯淡 [牢骚贴] For the love of God, don't use Rails until you're familiar with Ruby!!

fredwu · 2011年12月08日 · 最后由 huacnlee 回复于 2012年02月04日 · 3376 次阅读

这一两个礼拜实在是太纠结了。公司客户的项目是由另一家公司开发的,然后才雇佣我们来帮他们建设额外的功能。

问题在于,另一个团队的 rails 代码写得惨不忍睹…… 还有,项目是 JS-heavy,结果,JS 代码写得更惨不忍睹……

郁闷那。。。(幸好今天是最后一天,接下去我就跳槽跑掉了=。=)

下面列出一点我在开发过程中遇到的问题,算是茶余饭后的聊天小插曲吧,大家随便看看~~

- 完全没有测试。对方当时还很牛逼的说,有一点点的unit tests,结果发现所谓的unit tests就是rails generator生成的那些assert true的模板,Orz...

- Git repo 300多MB!!! 对方用Jammit,然后把生成的js/css和.gz文件全部一股脑儿commit到repo上了

- JS代码存在严重的内存溢出——我用profiler测试了20分钟,GC后内存仍然溢出了20MB!!

- development.sqlite3和database.yml都给弄到repo上了,坑爹啊

- JS代码会莫名的crash你的浏览器

- 好多注释掉的代码。。。

- 好多“备份”文件,比如 abc.rb-2011-01-02 这类的

- 好多复制粘贴的代码——发现有一处,如果要改动UI,竟然要修改17个模板文件!!

- non-semantic HTML/CSS (比如 'left', 'right' 这类的)

- inline CSS

- 用的是HTML doctype,结果实际HTML用的XHTML...

- 好多debug代码,比如 if 1 == 1 这类的……

- 空格和缩进非常之乱。。。

- CSS里用了太多position: absolute和负数margin,修改UI相当的头痛

- 在某些module的CSS里发现 html { overflow: hidden; },靠!

- 整个项目用了40多次 setTimeout,很多都是没必要的乱用

- ruby进程也内存泄露,后来发现丫竟然在development模式里把每个request都弄了jammit.precache_all。这刷新一次就是20-50MB的内存,华丽啊……

- 好多UI逻辑全部都是写死的…… 

- 一个'data_controller.rb' 来做对所有数据的处理,而且逻辑写得非常之坑爹

晕眩啊晕眩。。。原本这个项目公司让我一个人处理,要弄好几个月。幸好我跳槽了,不然肯定折寿啊。。。

最喜欢看牢骚贴了 XD

哥,你要换个角度想:

如果所有人的能力都达到你的水平了,你不就失业了,正是因为他们能力不足,所以才承包给你们,这也就是对你的肯定和赞许。

#2 楼 @andor_chen 其实还有一些公司他们的代码无懈可击。所以没有请 lz 去

#2 楼 @andor_chen 话虽没错——而且我也经常这么想的。但是,当下的时候还是很郁闷啊。而且是因为代码是别公司写的,而且他们还继续在开发这个项目,所以也不能多说什么。只好找个地方发泄一下了。

#4 楼 @fredwu 之前对你了解了过,以你的能力,完全可以创业或者去初创公司,大可不必去应付难缠的客户

#5 楼 @andor_chen 不敢当不敢当。早些年前一直信誓旦旦想要创业,现在学得越多越觉得需要学更多(好绕口)。这次跳槽去 Sitepoint 也是希望可以充实一下带团队的经验,为将来创业铺路。^__^

#6 楼 @fredwu 你都尚且如此,我们这些小马仔岂不是无法生存了。行业性质如此,知识永远都学不完的,心态最重要。希望你在新的公司能够干的顺心。

我当初上一家公司接收项目的时候也是这个状况

1. JS, CSS 到处都是, A 文件夹一个,B 文件夹一个... 而且还有很多重复文件;
2. HTML 散乱文件;
3. 很多处重复复制得代码,命名奇怪;
4. 数据库里面很多拼音,以及拼音首字母缩写得命名;
5. 文件名大小些混乱,还参杂中横线以及一些 JS 得版本号。
6. 代码缩进混乱;
7. HTML 不是 DIV + CSS 的。
8. 配置信息分散在很多文件,甚至直接的代码调用处。
... 还有很多

重构了半年...后面居然练就了一生很好的心态,对这些代码不要急,慢慢来,一天一天的就会好起来。后面终于在 09 年我用 Rails 花了两个月把它重新搞了,之前 4 个开发,现在两个,而且另外个只是搞旧数据的转换(以前的数据库历史遗留乱得一塌糊涂啊)。两个月后项目上线,迎来所有人得好评,稳定性,速度,可维护性大大提升,然后那个版本一直跑到了现在。就是 http://www.ytrip.com 这个,不过现在都没人维护了,哎。

其实 09 年用 Rails 重构我还是冒着风险搞的,当时很闲,没有新工作 于是偷偷研究,和策划一起商议新的设计方案,只是偶尔在一些汇报会议上面提出在尝试新的做法,但用的语言基本上很少透露,主要还是担心公司怕小众语言不好招人,那个时候我已经生生的喜欢上 Rails,无法接受再用 Asp.NET 来搞。 终于结果确实是好的。而后面和老板聊的时候才得知,其实当时我的担心是没必要的,现在想想也是,他们只是关心产品是否稳定,好用,至于什么语言并不重要。 后面招人也没问题,当时做转数据那个人出去自己搞 iOS 软件单干了,剩下了我,我就又找了一个做 .NET 的,一个月就把他教会了,现在那哥们用 Rails 用得很爽。 后面也就没招人了,开发人员一直两个而且很闲,以前 .NET 的时候我们团队最多个时候 5 个人,正常情况 4 个。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号