zoukankan      html  css  js  c++  java
  • 2013年工作中遇到的20个问题:201-220

    201.天际网 注册帐号,好处,该网站发邮件给我推荐了几个人,同一个公司的。
    另外一个看点,公司内部的一个“产品工程师”在该网站的头衔是“经理”,我擦。

    结论:网上的很多信息,经理、CEO仅供参考。

    202.Firefox调试工具Firebug。
    自带的有时候不太好使,我最近几个月还以为自带的调试工具就是Firebug。


    203.在线正则表达式检查工具。
    一个好工具http://www.regexpal.com/
    输入正则表达式,再输入值,自动校验,把匹配的和不匹配的字符串用不同的颜色区分开来。

    204.测试部门 Testlink 很严格,开始很费时间,后来只要按照流程走,就可以测出bug。
    这点比开发强多了。

    类似的,开发要多写单元测试。

    205.Word文档审阅模式。
    可以给Word添加注释,这样在看别人的简历等Word文档的时候,就把别人写的和自己给的注释区分开了。

    同样的,PDF也有审阅模式增加注释这个功能。

    206.更新时,不应该修改创建者creator。
     update set参照了insert的字段列表,把creator也更新了。
     为什么set creator = #{creator}不报错了?
     因为Service中Add和Update方法使用了同一个方法,都设置了creator。
    private void buildCampaignGroup(CampaignGroup campaignGroup) {
      campaignGroup.setCreator(SessionUtils.getCurrentUserId());
     }
     
     为什么会习惯性地更新一个id了,因为update一般会去更新updateUserId字段,
     但是这个表里却没有。
     
     下次一定要认真写单元测试。
     断言正确的情况和错误的情况!!!
     
    207.如何卸载Eclipse中已安装的插件。
    最近才知道原来Eclipse还可以自己卸载已经安装的插件,方法是点击菜单“Help”,“Install New Software...”,
    在弹出的对话框中选择那个非常隐蔽的“already installed”链接:

    现在就可以选择要卸载的插件,然后点“Uninstall...”把它卸载掉。


    208.使用JqueryUI对话框,手动设置对话框的width和height这2个参数,避免出现不必要的滚动条。

    209.修电脑。
    笔记本进水了,当晚没关机,反复启动。
    最终,主板和显卡都短路了。400+200=600元。

    笔记本自带的1个键盘保护膜,不仅仅是用来保持键盘清洁的,更主要是防水吧。

    210.WinSCP 显示的中文是乱码。
    步骤1:点击 [WinSCP-->环境],在右侧的[文件名UTF-8编码(U)]选择[开启](默认的是“自动”)
    步骤2:重启,重新连接服务器

    参考资料:http://zhidao.baidu.com/link?url=TaZw2cpfzsiCU_gbzBuI0gV2eQK0QzruGNqzLC8w9340lvNAcyvnnC8KVHb9Tve_RPX3jIzBx-RMXh0IBtl55a&autorefresh=1378346005578

    211.Java修改代码需要重启Tomcat,才能看到效果。
    就这个问题,我问了公司某Java专家。
    有以下收获:
    a.灰度发布。
    灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。


    参考 百科 http://baike.baidu.com/link?url=qC6yV28VJVmpV9EA-I3z35KC4-4U0SkBqANM4KlJNBC2rn5tpPdm3TQryfcY9OmwMDM008sXHvJIuoODHRiOnq
    b.downtime
      n.(工厂等由于检修、待料等的)停工期

    c.debug模式下,如果不改变程序的函数签名或者新类,是可以不用重启就能刷新的。
    这个叫 hot swap。

    auto publishing不要关,关掉 auto reloading。

    d.jrebel
    JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。
    JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。
    当程序员在开发环境中对任何一个类或者资源作出修改的时候,
    这个变化会直接反应在部署好的应用程序上,从而跳过了构建和部署的过程,每年可以省去部署用的时间花费高达5.25个星期。

    参考资料:JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。当程序员在开发环境中对任何一个类或者资源作出修改的时候,这个变化会直接反应在部署好的应用程序上,从而跳过了构建和部署的过程,每年可以省去部署用的时间花费高达5.25个星期。

    212.魅族手机。
    从京东买回来的MX2,反应超级迟钝,刷机也不行。
    用了8个月后,最近1位同事,帮我弄好了。
    格式化硬盘,重新刷机,刷新ROM等固件。

    213.spring mvc传递数组参数,数组长度有限制。

    超过256个就数组越界了。

    http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/validation/DataBinder.html

    static int  DEFAULT_AUTO_GROW_COLLECTION_LIMIT
              Default limit for array and collection growing: 256

    @InitBinder
    protected void initBinder(HttpServletRequest request,
    ServletRequestDataBinder binder) throws Exception {
    binder.setAutoGrowCollectionLimit(1024);

    }

    214.eclipse 使用git导入Maven项目。
    非常关键的第1步:右键 > Import > Project from Git->选择URI->输入Remote Git Repo的配置信息
    其它的步骤,输入和选择就可以了。

    区别:下载SVN项目的时候,是New ->Other->从SVN检出项目。
    参考资料:http://blog.sina.com.cn/s/blog_812973c30101loug.html

    215.ha HA(High Available), 高可用性群集。

    是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点。通常把正在执行业务的称为活动节点

    参考资料:http://baike.baidu.com/view/143772.htm#sub5065301

    某经理QQ就爱HA啥的,缩略语太流行了。

    216.关闭Linux防火墙。
    sudo ufw disable
    防火墙在系统启动时自动禁用。

    217.Web项目访问路径冲突。

    项目有个模块的访问路径是http://localhost:8080/manager
    与Tomcat自带的/webapps/manager重复了。
    会优先访问Tomcat自带的。

    218.hql不支持以下语法。
    String hql = "update DataResource set isSync = :isSync,syncTime=:syncTime where id in (:idList)";
    could not bind value '1,2' to parameter: 3; java.lang.String cannot be cast to java.lang.Integer

    isList是字符串,(1,2,3),id是DataResource的int类型的主键。

    换成SQLQuery也不行。
    String sql = "update DataResource set isSync = :isSync,syncTime=:syncTime where id in (:idList)";
    org.hibernate.exception.DataException: could not execute native bulk manipulation query


    219.一个key多个value的集合。
    Apache Commons Collection中已经有了MultiValueMap。
    类似的集合有MultiKeyMap ,1个value,多个key。
    幸亏我没事的时候就看看开源组件的API,知道有很多好用的工具类和API。
    现在不用自己去实现集合了。

    220.SQL语句in有个数限制和性能问题。
    问leader一个hql的问题,他提到in后面的id个数是有个数限制的,
    具体多少个没有去查,网上搜到下看到有个CSDN网友说Oracle最多能有1000个。

    另外一个问题,in的效率不够高,具体不清楚。

    此外,有一个更好的解法。
    update DataResource set isSync = :isSync,syncTime=:syncTime where id in (:idList)
    为了更新某行记录,使用id来定位,这样需要知道大量的id,
    另外一种方式是 用其它多个字段来进行定位,当然这也是有局限性的。

    update DataResource set isSync = :isSync,syncTime=:syncTime where name="fans" and version="1.2";

    相关阅读

    工作问题 http://blog.csdn.net/FansUnion/article/category/1334371

    原文参见:http://FansUnion.cn/articles/2530

  • 相关阅读:
    Hadoop集群(三) Hbase搭建
    Hadoop集群(二) HDFS搭建
    Hadoop集群(一) Zookeeper搭建
    Redis Cluster 添加/删除 完整折腾步骤
    Redis Cluster在线迁移
    Hadoop分布式HA的安装部署
    Describe the difference between repeater, bridge and router.
    what is the “handover” and "soft handover" in mobile communication system?
    The main roles of LTE eNodeB.
    The architecture of LTE network.
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463590.html
Copyright © 2011-2022 走看看