瞎扯淡 聊聊自己的编程强迫症吧~.~

zfben · 2011年12月02日 · 最后由 hooopo 回复于 2012年02月04日 · 4851 次阅读

我主要有两个强迫症:

  1. 看见双引号的字符串,如果可以用单引号替换,必定用单引号替换代

  2. 缩进敏感,喜欢把代码缩进得整整齐齐,但遇到 ruby 中的 when..case..end 结构就无比纠结啊纠结

还有两个不是很严重的强迫症:

  1. 看见:sym => sth,就要改成 sym: sth(ruby1.9 的新写法)

  2. 喜欢用 action if/unless condition,哪怕已经用 if/unless condition action 写好了

大家有哪些强迫症呢?

@zfben 使劲的保存代码好几遍

@rockliu 同样。。每写完一句保存一次。。。

#2 楼 @bony me too 我是绝对不用 unless 容易逻辑混乱

  1. 去掉 trailing space
  2. =, <%, %>, 等前后必加空格...

Case 我喜欢这么对齐:

@messages = case message_type
  when :inbox_messages     then current_user.inbox_messages
  when :sent_messages      then current_user.sent_messages
  when :archived_messages  then current_user.archived_messages
  when :inbox_proposals    then current_user.inbox_proposals
  when :sent_proposals     then current_user.sent_proposals
  when :archived_proposals then current_user.archived_proposals
  else redirect_to my_message_inbox_path(:inbox_messages)
end

#5 楼 @fredwu 我喜欢这样对齐:

@messages = case message_type
            when :inbox_messages     then current_user.inbox_messages
            when :sent_messages      then current_user.sent_messages
            when :archived_messages  then current_user.archived_messages
            when :inbox_proposals    then current_user.inbox_proposals
            when :sent_proposals     then current_user.sent_proposals
            when :archived_proposals then current_user.archived_proposals
            else redirect_to my_message_inbox_path(:inbox_messages)
            end

#4 楼 @poshboytl 这个做法是很正确的,不算强迫症

  1. 看见:sym => sth,就要改成 sym: sth(ruby1.9 的新写法) 这个…我还真没敢这么写。毕竟大家习惯的写法还是:xx => yy, 改了没法看啊…

我现在工作中主要写 python,每次完成前都会用 PyFlakes 的 vim 插件去检查一下,严格遵循 PEP8 http://www.python.org/dev/peps/pep-0008/

au BufWritePre *.* :%s/\s\+$//e

vim 保存消除 trailing space.

原来大家都这样啊....不停 ctrl+s..以前做 java 还不停的 ctrl+shift+f.. 想起高中时候打星际时不停切换编队不停 A 的感觉..

#8 楼 @southwolf 我也是不太喜欢 1.9 的 hash 写法,一直用老的

#8 楼 @southwolf 这个语法,有时候,json 可以直接拿 eval 来解析.. 自己写脚本的时候,不想引入太多依赖就这么用

#8 楼 @southwolf #13 楼 @huacnlee

我看见 param: :test 一定会改回 =>. ruby 程序猿爱 hash rocket 必须超过 Haskell 程序猿爱λ

我的强迫症是看见长的代码就一定要改成短的...

例如看见 :a => 就一定要改成 a:

我的 case ... when 一定要这样... :

@messages =\
  case message_type
  when :inbox_messages     then current_user.inbox_messages
  when :sent_messages      then current_user.sent_messages
  when :archived_messages  then current_user.archived_messages
  when :inbox_proposals    then current_user.inbox_proposals
  when :sent_proposals     then current_user.sent_proposals
  when :archived_proposals then current_user.archived_proposals
  else redirect_to my_message_inbox_path(:inbox_messages)
  end

然后再改成

if current_user.respond_to?(message_type)
  @messages = current_user.send message_type
else
  redirect_to my_message_inbox_path(:inbox_messages)
end

textmate 对很多强迫症有良好支持:

ctrl + ' 切换单双引号 ctrl + : 切换字符串和符号 ctrl + [ 切换花括号和 do block opt + cmd + ] 对齐等号 ...

喜欢修 warning..

强迫自己排版代码。

#19 楼 @hooopo 这个。我写 C 的时候有空也喜欢。但一般不折腾。。

强迫排版

和楼主一样

#19 楼 @hooopo 发现了……

#3 楼 @huacnlee 只要看到 unless 我就会强迫把它翻译成 if not,好纠结。所以后来很少用它了。还有 ctrl+s 是必备的。囧

喜欢 每修改一点代码,就 git commit 一下。 喜欢 把多个 git commit 合并成一个 commit,再 push。 喜欢 git rebase 喜欢 在 commit message 中包涵 issue number,比如 -m "#998 member password"。

代码中对绝对不能有 中文,除了 i18n 中的内容。 注释也不能使用中文。 代码中绝对不能使用拼音。 类似的代码必须对齐, 没用的空格 回车,必须删掉。 代码中绝对不可以使用缩写 没有的代码必须删掉。注释掉的代码必须删掉,不允许注释代码(除了调试)。

在我使用 c++ c#的时候,绝对不允许写“注释”(基于代码就是注释和文档的原则) ruby 这种语言,动态特性太强,有些地方(such as magic code)不些注释,真的不行啊。

经常使用 netbeans 和 sublime text 2 的 format

......看到任何感觉不爽的代码,就想改!.......

当一个sql 表中有一个字段是 remark(备注) 字段时,总是要纠结一下,应该是用varchar 类型呢,还是text 类型。每次都这样。

看到

STATUS = ["a", "b","c"]

都要改成

STATUS = %w[a b c]

同一楼。。。每次运行前和 结束前 先不停地保存好几遍。。。等自己反应过来 就已经保存了 4-5 遍了。。。

Ctrl+s , 空格,代码格式,不对齐不舒服!

我喜欢抖脚。

‘排版’ + 代码优化

匿名 #33 2012年01月05日

在编写 Ruby on Rails 代码的时候,总是想着/寻觅着 C++ on Rails 的实现,总是看着没有()的函数别扭。

#28 楼 @allenwei 哈 看到 twitter 上还有人问有没有类似%w[a b c],但是返回 [:a :b :c] 的写法

#26 楼 @ery 合并 commit 好高级呀 我还没有学会.........

#27 楼 @qichunren text 啊 这种事情我都不纠结了 真存在性能问题就把 remark 字段分出去

#3 楼 @huacnlee unless 不会混乱 会混乱的是 unless else

又想起一个,修改了一处 view,就立刻要到浏览器中刷新看一下,一小处也要这样

俺最喜欢 敲空格键 写完一个文件 再敲一次

git st,即使自己知道文件的修改情况了 -_-!

遇到 case when 的时候习惯替换成 hash,如果可以的话

匿名 #43 2012年01月11日

#31 楼 @hlxwell 好像麦兜也喜欢抖脚

#41 楼 @ilstar 哇 我也是唉 和习惯性敲 ls 一样.........

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