实习经验记录

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(备份文件系统)

原文地址:https://www.cnblogs.com/BobHuang/p/11636784.html