• 如果不是使用unicorn服务器,可以使用God监控内存,当超过设定的阀值自动重启,但不确定是否影响请求。

  • 问题一

    数据来源:中华人民共和国行政区域规划(国家统计局发布)最新的发布时间为2014-01-17 15:04

    1. 是要在数据库中存储这些所有的省市区信息
    2. csv之类的格式,或者json,yaml之类的只是数据外在的表现形式,这个看具体的需求

    问题二

    结构存储:

    1. 关联的表记录的是主键.底层存储结构必须要有行政区域代码的字段,便于后续升级,如北京市是110000,北京市-北京市是110000,北京市-北京市-东城区是110101
    2. 要是将将存储格式和表现形式分开,就不会有这个问题.表现形式: 比如,北京市,可以表现为"北京",缩写"京"",首字母"B", 拼音"BJ" 如果是直辖市,合并市辖区和县为直辖市的名称 如果是地级市,去掉市辖区和城区 如果是省直辖县级行政区划,新疆维吾尔自治区直辖县级行政区划, 合并直辖县级到市

    问题三:

    362市, 2850区, 这不是很复杂,自己动手,扩展性和维护性由自己决定...

  • 更喜欢这样来处理图片预编译😄

    config.assets.precompile += %w( *.png *.jpg *.jpeg *.gif */*.png */*.jpg */*.jpeg */*.gif)
    
  • 3q 4 @dotcomXY 's code

    post :create, picture: fixture_file_upload('/test/data/logo.png', 'image/png')
    

    and the @dotcomXY's book

  • 手持移动设备用hover不合适。。。

  • 令人苦恼的性能问题 at 2014年2月01日

    EM是采用select的IO模式,如果不阻塞,理论上单机C10k,检测下你的一个页面不配置页面缓存时,需要阻塞多少ms,瓶颈在那里,就优化那里,@zangcw,总觉得数据是这样出来的: 100并发=20个默认的rack(如thin)服务器的线程数(每个都阻塞执行)*4台单机

    • &将block块转换成proc对象
    • def block.each定义了一个单件方法,接收者是上一步的proc对象
    • yield(call)中call,接收者self是proc对象,proc对象中的call方法返回这个可执行对象的结果
    • yield将这个结果传递给外部块的第一个参数

    * response.body=block这句指明了上一步的外部块是rack中间件或服务器中传入的,因为rack标准中规定body要响应body.each{外部块}

    综上,sinatra的body扩展了rack的body,不仅能each静态编码,还能each动态内容,通过的代码块的延后执行 @biaobiaoqi,新手不建议先看sinatra

  • 在cookie中不记录密码,只记录token,用token授权 0.登录时,token赋初值 1.超过30分钟,token失效 2.每一次用户请求,token重置 3.记录用户常用IP和登录设备 4.危险操作采用短信或者邮箱多重验证 这样应该相对安全一些

  • 关于单元测试的一些疑惑 at 2013年12月10日
    1. 重构现有代码时,回归测试时,是否会产生相关的bug,提高软件质量
    2. 改进现有功能时,集成测试时,是否对API有相关影响,增强向后兼容性
    3. 提交新的代码时,代码覆盖率测试时,是否有冗余代码,提高代码的可维护性
    4. TDD或BDD开发流程时,解释代码的作用,提高代码的可读性

    单元测试是上述测试的基础,如果@jarorwar没有上述需求,可以不用写单元测试,无非就是 a. bug多点(增加客服人员和测试人员) b. 代码行数多了之后,不知道相关代码的作用(只增加,不删除或修改代码) c. 不提供对上一个版本的支持(宣传是新品,另收费) d. 看到有问题的代码,有可能改出更多,更严重的问题或将问题埋的更深(能不改就不改)

    更多的问题尚未发现,望砖之。
    
  • Rack, 我忽视你了 [已更新] at 2013年12月09日
    require 'rack'
    Rack::Handler.constants
    

    介绍rack和app衔接的多,介绍server和rack的Handler衔接少,@liwei78可以将这部分加上去