V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
unbug
V2EX  ›  程序员

[分享小心得]变量命名神器 Codelf 上线一个季度日 UV 稳定 500 左右

  •  
  •   unbug · 2016-04-09 17:58:32 +08:00 · 9352 次点击
    这是一个创建于 3155 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每年我都会开发一些与开发者相关的东东, 大家熟知的可能是MIHTool (因为上了 Google I/O 2013 嘛), 不是因为我时间特别多, 也不是因为我单身, 只是想法很多很多, 我都是从我需要的着手, 基本是用勿以善小而不为的心态去做东西, 几乎所有我做的东西全是我自己需要的, 我甚至没有去想别人有没有需要, 但我习惯了分享, 自然就有人些会了解到. 开源的项目有好几个, 大家可以关注我的 https://github.com/unbug.

    今天我就说说变量命名神器 Codelf. 目前日 UV(周一到周五)稳定 500 左右, 它是一个开源工具, 我是一个不懂得赚钱的人, 我甚至不懂得赚权, 那我为什么会关注它的 UV 呢?因为这是目前为此让我自己从中收获像平常人一样的家常便饭式的乐趣.

    是的, 我收集了所有搜索的变量名, 每天有几千个, 我会经常看这此变量名, 因为除变量名和搜索时间本身, 我对其他信息一无所知, 但有此变量名看看就很有意思, 而且我会很不自觉的联想到对方在开发什么, 想设计什么函数, 然后自己也去 Codelf 搜索搜索, 不时的就会看到一些非常有趣的代码, 这让我兴奋不已. Codelf 可以查看不同语言的不同项目的代码段, 其实面向对象如此普遍的当下, 就变成了一个东西使用不同语言实现的对比过程, 这些代码段都是几分钟内看完, 自然会有收获; 更重要的是我自己主动去看这些代码而乐此不疲; 加上很多同学真的很文艺, 很多搜索条件看着就让人想乐.

    关于推广, 不像 MIHTool, 它本身在 App Store 上, 搜索 debug 就出来了, 不需要我去做什么. 但 Codelf 是个网站, 其实我没有什么推广的渠道, 我个人觉得目前能保持日 500UV 是个意外, 我只是发微博, 多亏国内几个技术社区帮我转发了, 我是非常感谢, 不然也不会有今天的乐趣.

    另外, 就是我在知乎上回答了一个问题收获了 600+的赞 - 编程的时候 命名 方法或变量 词穷了怎么办?

    “计算机科学的两件难事:缓存失效和命名。” 当然这里的命名有着更深层的意思,比如 W3C 的各种术语。已经有很多教我们如何命名的规范 Naming convention (programming) ,每个编程语言都有各式各样的命名规范 [像 CSS 就有几套非常有效的规范( OOCSS,BEM,SMACSS,SUITCSS,Atomic...)] 但这些规范并不能消除我们的问题,每个程序员或多或少都在编程过程中为变量和函数命名苦恼过...查看全文

    不断有人在 GitHub 上提 issue, 我就随手开发了 Chrome App, Atom 插件, Sublime Text 插件. 维护的工具量看是变大了, 其实不然, 因为 Codelf 本身是一个 Web App, 只是因为离线做得好罢了.

    开发过程的一些小收获, Codelf 变成了我试验 Web 前端技术的一个小白鼠, 我平时的项目基本全是 requireJS 式的模块, 在 Codelf 上试了 Webpack 后我也把手边的项目的模块全换成了 commonJS2 的格式, 很多模块很容易放到我一些 nodejs 的项目里使用了; 我为了管理我的 GitHub 分组, 就在上面加入了这个功能, 直接使用的就是 IndexedDB; 我为了缓解 Codelf 大文件代码段高亮会导致浏览器假死的问题, 我开发了DOMSnap - 一个直接离线 VIEW 层的 JS 库; 我为了收集一些数据, 也升级了自己的DDMS - 基于 Express 的复杂表单管理系统.

    如果我不是出于自己需要开发 Codelf, 我应该不会收获这些, 也很难持续更新到现在.

    image

    16 条回复    2016-05-10 17:21:33 +08:00
    bp0
        1
    bp0  
       2016-04-09 18:35:50 +08:00   ❤️ 1
    这么多选择!

    命名困难的原因之一就是选择太多!
    unbug
        2
    unbug  
    OP
       2016-04-09 19:08:06 +08:00
    @bp0 好问题
    feiyuanqiu
        3
    feiyuanqiu  
       2016-04-09 19:09:19 +08:00 via iPhone
    个人感觉,当觉得命名困难的时候,其实是因为还没有想清楚这个变量、这个方法或者这个类是要干什么,还不能用一个或几个词准确描述它的工作,才觉得无法命名,这是命名的最困难的阶段。而只要想清楚了它的任务,命名也就非常简单了。我觉得 codeif 更像是 iciba 之类词典的替代
    unbug
        4
    unbug  
    OP
       2016-04-09 19:19:41 +08:00
    @feiyuanqiu 它只是更加专注而以
    audi
        5
    audi  
       2016-04-09 19:21:58 +08:00 via iPhone
    有了这个网站,这下更难了
    unbug
        6
    unbug  
    OP
       2016-04-09 19:33:54 +08:00 via iPhone
    @audi 对于某些人也许会这样
    paddingme
        7
    paddingme  
       2016-04-09 20:16:18 +08:00
    好棒,学习!
    mantianyu
        8
    mantianyu  
       2016-04-09 23:49:16 +08:00 via Android
    用了这个网站一段时间, 感觉并没什么用。。。
    主要是搜出来的英文名字太过于直译了
    mantianyu
        9
    mantianyu  
       2016-04-09 23:51:59 +08:00 via Android
    @mantianyu 看着标题直接回复的, 没注意到楼主是作者。。。。 不好意思说的有些直接了
    jjx
        10
    jjx  
       2016-04-10 00:11:10 +08:00
    主要的是那些具体业务相关的名词, 没有的还是没有. 已有的往往是可选择的太多, 又不能帮我们决定
    unbug
        11
    unbug  
    OP
       2016-04-10 09:07:51 +08:00
    @mantianyu 阿, 木事木事.
    @mantianyu @jjx 现在的流程是这样, 如果直接搜索中文, 是先翻译再搜索的, 但翻译会返回很多近义词, 而搜索只会搜索输入框里的英文+翻译的第一个近义词. 所以, 可以先看看建议那排的近义词, 找到合适的直接点击就会搜索对应的变量名了, 当然, 输入框是支持空格的方式进行组合搜索的.

    非常建议使用过的同学去提 issue, 慢慢改进.
    Delbert
        12
    Delbert  
       2016-04-10 21:38:24 +08:00 via Android
    @unbug 试试 word2vec ?
    unbug
        13
    unbug  
    OP
       2016-04-11 07:09:18 +08:00 via iPhone
    @Delbert 不是很明白怎么原理,回头研究一下:)
    Delbert
        14
    Delbert  
       2016-04-11 07:28:17 +08:00 via Android
    @unbug 将一个单词作为一个向量,含义近似的单词之间的距离短,相同含义的单词词组之间的向量具有近似的方向和距离。向量可以进行运算。
    unbug
        15
    unbug  
    OP
       2016-04-11 09:47:42 +08:00 via iPhone
    @Delbert 然后这个工具可以自动计算?嗯,要研究一下
    unbug
        16
    unbug  
    OP
       2016-05-10 17:21:33 +08:00
    @jjx 看多了自然就积累多了, 不是个依赖品
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3352 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 11:31 · PVG 19:31 · LAX 03:31 · JFK 06:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.