• 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

  • 相关阅读:
    websphere、weblogic上JConsole的配置
    JMX连接WebSphere和WebLogic
    通过JMX监控管理weblogic的运行
    Manage, Administrate and Monitor GlassFish v3 from Java code usingAMX & JMX
    Harbor 简要安装说明
    VCSA 添加新管理用户的方法
    Oracle 修改参数
    CentOS8 设置开机自动登录账户的方法
    MYSQL使用mydumper备份恢复操作简介
    浅析网站上设置的广告位不显示问题:如何避免Adblock广告拦截
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463590.html
Copyright © 2020-2023  润新知