2024/03/08

2024/03/03

2024/03/02

2024/02/29

2024/02/28

2024/02/27

spring boot test,spring context

  1. get value from application.yaml
    1. use environment
    2. use profile
    3. @component
      1. component scan 
      2. initialize the component
      3. add it to spring application context
      4. can get the bean from application context
      5. @Component equals @Bean in a @Configuration
    4. can use @SpringBootTest to load spring application context 


2024/01/09

2023/10/19

git,commit,branch ,cherry-pick ,merge

  • commit 
    • is snapshot of all files
    • not a change set
  •  to store the hash ID of the latest commit in a branch name.
    • branch name is just the lastest hash of commi branch name is just the lastest hash of commit
    • In fact, this is the very definition of a branch name: a name like master simply stores the hash ID of the commit we want to call the latest for that branch. So given the A--B--C string of commits, we just add the name master, pointing to commit C:

  • To remember which branch we want Git to update, as well as which commit we have checked-out right now, Git has the special name HEAD
    • current branch
    • A--B--C--D <-- develop (HEAD), master
    • HEAD still names the current commit.
    • detached HEAD just means that Git has made the name HEAD point directly to some commit instead of attaching it to a branch name

  • git merge
    • git checkout master
      • set HEAD to master
    • git merge develop
      • go backwards from master and develop, to find a shared base commit (祖先), called merge base
      • The merge base commit is determined entirely by the commit graph,
      • git diff baseCommint master  => get change set 1 
      • git diff basecommit  develop   => get change set 2
      • git combine the difference , use  a new commit id to save the result  ( merge commit )
  • cherry-pick
    • git diff somecommitId to get the change set
    • just put the change on current commit(branch)
    • but it maybe not works very well, git use cherry-pick-style merge, force the merge base commit to be the parent of the cherry-picked commit.
    • cherry-pick create a new commit to save the result. 
    •        G--H--F'   <-- master (HEAD)
            /
      ...--D
            \
             E--F   <-- develop
    •  cherry-pick uses Git's merge machinery to do the change-combining, but leaves the graph unmerged, simply making a copy of some existing commit
  • git merge somecommitid(branch)
  • git merge -no-ff

2023/10/12

2023/07/06

vscode ,gvm ,GOROOT

gvm install go19.2
gvm list
gvm use go19.2 --default

=>GOROOT、GOPATH will be set by gvm automatically

vsCode will use the go defined by $GOROOT

2023/06/26

kotest -

 "someContainer " - {

 "someTest" { }

 "someTest" { }

}


- はContainerの意味であり、その中に、別のScopeが必要

ない場合は、実行されない。

2023/05/31

mysql explain select

 ## explain select

- access_type:
- all(全件検索)/index(indexの全件検索)はfull-scanであり、要注意。
- indexはallより良い。
- possible_keys: 使用可能なindex(primary-key is index)
- key: 実際使ったindex
- ref: indexのKeyと比較するcolumn
- patition: 使ったpatition. patationは何?大きなテーブルを分解すること
- patitionは使えるかも!
- 分解のtypeは:RANGE,LIST,HASH,KEY
- rows: 大体の件数を推測した結果
- filtered: 条件が効いて、次の層に行く件数の割合。小さい方が良い。

2023/05/26

rails,where or

 

  1. def check
  2. @spec = Hash.new
  3. @spec = Spec.merge(Spec.where(a:1).or(Spec.where(b:0)))
  4. .merge(Spec.where(c:0).or(Spec.where(d:0))).first
  5. end

2023/05/17

change git http to ssh

 - git add ssh key
        - ssh-keygen -t rsa 
        - update to github ssh key
        - 
ssh -T git@github.com

     - add to .ssh/config

Host github github.com HostName github.com IdentityFile ~/.ssh/id_git_rsa #ここに自分の鍵のファイル名 User git

ssh -T github



- change git repository from http to ssh

    git remote -v

    git remote set-url origin git@github.com:xx/xx.git

git remote -v