zoukankan      html  css  js  c++  java
  • 实习经验记录

    if(logger.isDebugEnabled())  先判断一下,虽然浪费了时间,但是构造一个log字符串才是很耗时间的

    1.在本地修改与远程代码无冲突的情况下,优先使用:pull->commit->push
    2.在本地修改与远程代码有冲突的情况下,优先使用:commit->pull->push

    采用pull->commit->push呈现出来的就会是一条没有merge、没有多余commit的一条完美分支。

    有新的分支需要拉取一下

    git remote update origin --prune

    建立bug修复是这样的

    f. 开始Hotfix
    
    git checkout -b hotfix-0.1.1 master    
    g. 完成Hotfix
    
    git checkout master
    git merge --no-ff hotfix-0.1.1
    git push

     删除本地分支,如果无法删除可以放心使用-D的

    git branch -d 分支名称

    撤销上次commit,hard就没了啊

    git reset --soft HEAD^

    合并commit

    git rebase -i head~2

    修改 .bash_profile展示分支

    function git_branch {
      branch="`git branch 2>/dev/null | grep "^*" | sed -e "s/^* //"`"
      if [ "${branch}" != "" ];then
          if [ "${branch}" = "(no branch)" ];then
              branch="(`git rev-parse --short HEAD`...)"
          fi
          echo " ($branch)"
      fi
    }
    
    export PS1='u@h [33[01;36m]W[33[01;32m]$(git_branch)[33[00m] $ '

    vim之后source一下就是有效了

    回滚上一次提交

    git reset --hard HEAD^

    发布产品的maven语句

    mvn clean deploy -Dmaven.test.skip -U

    更新系统git无法使用,会让你下载git。请重新下载安装xcode命令行,运行如下命令

    xcode-select --install

    错误代码:

    Сannot Run Git
    xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
    Download Configure...

    一个网页需要登陆,但是其实检查的事cookies,

    我们可以postman里配置一下

    具体的cookies可以F12审查然后查看network里找到

    然后可能会415错误,这个需要使用json来解决,就是body右边的选择json

     查看环境变量的命令

    env | grep mysql

    lombok

    @Data
    使用这个注解,就不用再去手写Getter,Setter,equals,canEqual,hasCode,toString等方法了,注解后在编译时会自动加进去。
    @AllArgsConstructor
    使用后添加一个构造函数,该构造函数含有所有已声明字段属性参数
    @NoArgsConstructor
    使用后创建一个无参构造函数
    @Builder
    关于Builder较为复杂一些,Builder的作用之一是为了解决在某个类有很多构造函数的情况,也省去写很多构造函数的麻烦,在设计模式中的思想是:用一个内部类去实例化一个对象,避免一个类出现过多构造函数。
     

    EventBus

    EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。
    用法:
    首先,这里我们封装了一个事件对象Event,一个监听者对象EventListener。然后,我们用EventBus的构造方法创建了一个EventBus实例,并将上述监听者实例注册进去。然后,我们使用上述EventBus实例发布一个事件Event。然后,以上注册的监听者中的使用@Subscribe注解声明并且只有一个Event类型的参数的方法将会在触发事件的时候被触发。
    总结:从上面的使用中,我们可以看出,EventBus与观察者模式不同的地方在于:当注册了一个监听者的时候,只有当某个方法使用了@Subscribe注解声明并且参数与发布的事件类型匹配,那么这个方法才会被触发。这就是说,同一个监听者可以监听多种类型的事件,也可以在多次监听同一个事件。

    这次这张数据表有50个变量,我人傻了,还是直接用代码生成吧,小模拟,问题不大

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        freopen("1.in", "r", stdin);
        freopen("1.out", "w", stdout);
        string str;
        vector<string> V, V1;
        while (getline(cin, str))
        {
            int f = 0;
            string temp;
            for (auto c : str)
            {
                if (f)
                {
                    if (c == '`')
                    {
                        V.push_back(temp);
                        break;
                    }
                    temp += c;
                }
                else
                {
                    if (c == '`')
                        f = 1;
                }
            }
        }
        for (auto s : V)
        {
            string temp;
            int f = 0;
            for (auto c : s)
            {
                if (c == '_')
                {
                    f = 32;
                    continue;
                }
                else
                {
                    temp += c - f;
                    f = 0;
                }
            }
            V1.push_back(temp);
        }
        int size = V.size();
        for (int i = 0; i < size; i++)
        {
            cout << "<result property="" << V[i] << "" column="" << V1[i] << ""/>"
                 << "
    ";
        }
        cout << "
    
    ";
        for (int i = 0; i < size; i++)
        {
            cout << "`" << V[i] << "`"
                 << ",";
        }
    
        cout << "
    
    ";
        for (int i = 0; i < size; i++)
        {
            cout << "#{" << V1[i] << "}"
                 << ",";
        }
    
        cout << "
    
    ";
        for (int i = 0; i < size; i++)
        {
            cout << "<if test="" << V1[i] << " != null">`"
                 << V[i] << "` = #{" << V1[i] << "}, </if>"
                 << "
    ";
        }
    }
    生成mapper某些重复的代码

    用iterm2

    可以直接brew安装

    dump(备份文件系统)

  • 相关阅读:
    win10 mysql5.7忘记密码如何解决
    win10 mysql5.7指定某个配置文件启动
    kubernetes配置(kubeconfig)对多集群的访问
    kubernetes中kubeconfig的用法
    rancher v2.2.4创建kubernetes集群出现[etcd] Failed to bring up Etcd Plane: [etcd] Etcd Cluster is not healthy
    kubernetes 强制删除istio-system空间,强制删除pod
    rancher2.0 自定义应用商店(catalog)
    docker-compose安装及docker-compose.yml详解
    细述kubernetes开发流程
    轻松了解DNS劫持
  • 原文地址:https://www.cnblogs.com/BobHuang/p/11636784.html
Copyright © 2011-2022 走看看