test-day-79

Today’s Task

  • Add a page to search properties on ReleaseMe
  • Add comment time to ReleaseMe
  • Rewrite Delete comment button API
  • Transfer Jenkins Jobs
    • Run LB_QAv5_INTBVT
    • Run RL_CP_INT_PreProduction_INTBVT
    • Run Master_Lockbox_BVT

Additional Task

  • Rebuild ibex image
    • Ask Jen to create repositories
    • Fix ibex.grpc container script
  • Rebuild saola.infra image
    • Ask Jen to create repositories

Code Review

如果异步函数没有返回值,不用特地去 try-catch return null 啥的

如果要触发 react 页面的重新渲染,用 forceUpdate(),而不是 setState({})

后端自己本身也要判断

要按照参数的合法性去检查

后端的 api 不够 RESTful

请求一个长得很像的 api, /comment/26 这样子

然后根据给它不同的 Request Method 来执行不同的操作

怎么样把 api 写得更为 RESTful 呢?

Thought

已经不知道多少次

梦见自己回到初中

这一回,是在熟悉的第一排

用湿巾纸反复擦拭桌面的油腻

不知道反映了什么心理活动

让弗洛伊德老爷子和周公一起同语文老师探讨探讨吧

我居然在中午

又一次闻到了

家乐福面包房的烘焙麦香

踩到的坑

saola.infra 的 image name 叫 healthy-play 而不是 health-play

中间差了一个 Y

release-me-dev-note

在 ReleaseMe 上写 bug 的开发笔记

1. disable rerun button

PLACE_HOLDER

以后想起来再补上

翻页的时候,flow id 不会变

componentDidUpdate 里面 prev.props 和 this.props 变更的时候要精确到具体的某一个 props

不要用一长串连在一起的 .then() ,直接 let foo = await bar();

2. delete comments

CommentController, CommentInfoDao, CommenInfoMapper

CommpenInfoType, CommentInfoDB,

ResponseEntity

在 Mapper 里面写 SQL 的时候,DB 里面的列名、CommentInfoDB 类里的 Property name, 一定要各自对应上… 别写错了

虽然这几个类之间的关系完全搞不清楚

但还是照猫画虎撸出来了 DELETE comment api

Button 的 onChange 需要给的是 callback,而不是一个返回值类型为 void 的 function

在遍历 List Item 的时候,ANT List 的索引和 dataSource 好像可以在 callback 里直接拿到这个对象,但并不能直接 console.log 出来,但这个对象的属性好像是可以访问到的

3. Refresh page, then 404

页面刷新之后就 404 了

大抵是朝后端发请求但是没有找到的缘故?

暂时先用一个不好看办法解决了

<BrowserRouter> 换成了 <HashRouter>

4. Property Page

直接请求后端的 /property/all 这个 api 会返回空 body

需要到 Zookeeper 那里去写点 @DynamicProperty

如果一层套一层太长的话,容易被 antd 的默认样式覆盖掉

这个时候在 css 里面,把它的祖先全套上

尽量避免用 !important

test-day-78

Today’s Task

  • Add a page to search properties on ReleaseMe
  • Fix Delete Comment Button
  • Transfer Jenkins Jobs
    • Install Trigger build plugin
    • Run LB_QAv5_INTBVT
    • Run Master_Lockbox_BVT
  • Release Support
    • Push sign off for CHG0154788-*, including skipped

Additional Task

Thought

梦见了回到 2002 年

路边所有的招牌都变回了原先的百花齐放

字体,样式,充满了烟火气

回家继续锻炼核心和腰腹力量

test-day-77

Today’s Task

  • Add a page to search properties on ReleaseMe
    • Rebooting backend but failed on 8080
      • solved by checking yml urls
    • Frontend page
  • Delete comments (only current users’)
    • Add DELETE APIs on comments to backend
      • Get familiar with Spring Boot
      • SQL in CommentInfoMapper
      • convert in DAO
      • API in Controller
    • Frontend Button
  • Transfer Jenkins Jobs
    • Run Master_Lockbox_BVT
    • Move all the other jobs
    • Test all the other jobs
  • OneBox-Setup vmip
    • Deploy with nginx and docker
      • Get familiar with nginx
      • Get familiar with dockerfiles
  • Help Song Chenxin to change image tag pattern

Additional Task

  • Upgraded Jenkins on Slave1 from 2.150 to 2.222.4 to use Rebuild and Trigger Job plugin

Thoughts

周五 James 解决了slave1访问很慢的问题

看着像是 log 太多了,清掉就 ok 了

上午的半个小时相当紧张,Jenkins 更新失败了

最可怕的是降级回原来的版本会报新的错误

爬了 20 分钟的 Stack Overflow

设置了参数,调整读取 config 的时间

终究最有用的解决方案还是降到一个中间的版本

中午刷了一题 leetcode

是不是可以早点起床吃早饭,早点骑车带着笔记本去到什么地方自己学点东西?

昨晚 8 点睡到了 1 点,随后又从 4 点睡到了 8 点 45

今晚试试 10 点多睡,醒来如果天亮,先直接爬起来吧

下午照猫画虎写了 ReleaseMe 删评论的 api

然后开始在前端用 ts 写 bug

java-spring-boot-0

1
2
3
4
5
你说我一个半吊子 DevOps,

怎么就跑去写 React + Spring Boot 了呢

很惭愧,做了些微小的工作

Quick start

先从官方文档一脚踹进门呗

可以不用 deploy WAR files,就能直接支持 Tomcat, Jetty 或者 Undertow

简化 build configuration

自动配置 Spring 和第三方库

绝对不会生成代码,也不需要 xml 配置

start.spring.io -> Add dependencies -> Spring Web -> Generate

即可得到 demo.zip

解压完了进 IDE 打开

冲进 src/main/java/com.example.demo/DemoApplication

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}

@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}

}

./mvnw spring-boot:run 就可以跑起来了

可以用 curl localhost:8080/hello 来确认

@SpringBootApplication:这是个 Spring Boot App

@RestController:这个 class 描述的是通过 web 可用的 endpoint

@GetMapping("/hello"): 用后面的hello() 来处理到 localhost:8080/hello 的请求

@RequestParam(value = "name", defaultValue = "World"): 需要一个名字叫 name 的参数,如果缺省的话默认值是 World

test-day-76

Today’s Task

  • Add a page to search properties on ReleaseMe
    • Rebooting backend but failed on 8080
      • solved by checking yml urls
    • Frontend page
  • Delete comments (only current users’)
    • Add DELETE APIs on comments to backend
      • Get familiar with Spring Boot
  • Transfer Jenkins Jobs
    • Double check script typo
    • Run CP One Case Successfully
    • Run RL-CP-BVT Successfully
    • Run Master_Lockbox_OneCase
    • Run Master_Lockbox_BVT
    • Move all the other jobs
    • Test all the other jobs
  • OneBox-Setup vmip
    • Deploy with nginx and docker
      • Get familiar with nginx
      • Get familiar with dockerfiles
  • Help Song Chenxin to change image tag pattern

Additional Task

  • Help DongBo solve ssh issue
  • Fix ChangeHost dulplicated folder issue

Thought

为什么 Jenkins 的 TTFB 踏马的可以飙到 3s 一个请求???

从点击 Configuration 到可以编辑配置我要等 1 分钟????

草了啊 有没有不用 GUI 的办法

1
When you want to hurry something, that means you no longer care about it and want to get on to other things.

也许我从来都不需要去思索工作的价值

不用带着执念,去纠结白天我创造了什么价值

妄想通过努力工作而致富,是虚无缥缈的南辕北辙

工资增长的速率,远远追不上每平方米房价上涨的速率

甚至都跟不上一年 6% 的通胀

运气再好一些的话,每天基金亏得钱足够让我一天白干

test-day-75

Today’s Task

  • Add a page to search properties on ReleaseMe
    • Rebooting backend but failed on 8080
  • Delete comments (only current users’)
  • Help Song Chenxin to change image tag pattern support
  • Transfer Jenkins Jobs
    • Porpoise_Docker ssh permission
  • OneBox-Setup vmip
    • Deploy with nginx and docker

Additional Task

  • Get familiar with zookeeper
  • Review CHG01547021 Prod Wiki Page

Comment

每天 9 小时的睡眠

属实是精神世界的保险丝

倒推回去

十点半就必须去洗澡了

test-day-74

Today’s Task

  • Add a page to search properties on ReleaseMe
  • Delete comments (only current users’)
  • CHG0154788 Lockbox Release Support
  • Change image tag pattern
  • Transfer Jenkins Jobs
    • Porpoise_Docker ssh permission
  • OneBox-Setup vmip
    • Deploy with nginx and docker

Additional Task

  • Check saola and ibex liquibase
  • Check nucleus STG info

Thoughts

早睡失败

在 YouTube 上看了很多 GCN 的视频,

是关于手变角度设定以及骑行姿势的

还看了 RC100 的升级改造指南

想换个坐垫了,还想弄个单盘

但最重要的还是练腿

等疫情结束了,想去台湾岛绕一圈1400km

还想换辆碳车去岛波海道朝圣一把

早起失败

1
2
3
4
5
I just think that their flight from and hatred of technology is self-defeating.

The Buddha, the Godhead, resides quite as comfortably in the circuits of a digital computer or the gears of a cycle transmission as he does at the top of a mountain or in the petals of a flower.

To think otherwise is to demean the Buddha -- which is to demean oneself.

为什么我踏马的每天晚上都能报复性熬夜到三点?

到了要睡觉的点 -> 不想睡觉 -> 继续 YouTube

归根结底,是白天的成就感不够

我好像没有在做自己内心深处认可的事情

也远远没有达到足够有说服力的技术水平

走马观花看教程最多也只能建立空中楼阁

根本没有办法思考

下次再这么晚睡

直接请假睡醒了再说

test-day-73

Today’s Task

  • CHG0154788 Release Support
  • Change image tag pattern
  • Transfer Jenkins Jobs
    • Porpoise_Docker ssh permission
  • OneBox-Setup vmip
    • Deploy with nginx and docker

Additional Task

  • Check Shadowbroker STG status
  • Manually update Shadowbroker cassandra liquibase

Thoughts

开始挤时间看书

中午吃饭的时候

下午摸鱼的时候

今天骑车在路上的时候,

体会到了 ZAMM 里的描述

1
2
3
4
You're in the scene, not just watching it anymore, and the sense of presence is overwhelming.

The concrete whizzing by five inches below your foot is the real thing.

遇到了很多神仙

有大哥工作日上午十点全副武装出来追风

也有神壕骑着碳车不戴头盔

可能给公路车加上货架和脚撑,

后面还挂着1kg的午饭的我

在他们眼里也是另一种神仙吧

test-day-72

Today’s Task

  • change image tag pattern
  • onebox vmip
    • get client ip
    • get hostname
    • get server ip
    • get vm ip
    • no need to get ips from frontend
    • use nginx or httpd instead of node
  • Transfer jenkins jobs
    • use web hub
    • check CP Docker status
    • Fix Post Steps
    • Fix QAV5-INTBVT
    • Porpoise_Docker ssh permission
  • check audit / merge output exception
    • Code-Merge
    • Component Audit
    • Component Audit V4

Additional Task

  • Fix FlowCard Rerun button after review

Code Review

不要这么写:

1
2
3
4
5
6
7
8
9
10
11
12
checkRerunStatus(flow: Flow) {
this.currentFlowCanRerun(this.props.flow).then(isAllowedRerun => {
this.setState({
isAllowedRerun: isAllowedRerun
})
});
this.currentFlowNotRerunReason(this.props.flow).then(erason => {
this.setState({
reasonNotRerun: reason
})
});
}

用 async 啊魂淡

1
2
3
4
5
6
7
8
async checkRerunStatus(flow: Flow){
let isAllowedRerun = await this.currentFlowCanRerun(this.props.flow);
let reason = await this.currentFlowNotRerunReason(this.props.flow);
this.setState({
isAllowedRerun: isAllowedRerun,
reasonNotRerun: reason
})
}

这样写明显就清楚多了

Thoughts

昨晚和蚊子亲密到凌晨四点半

内心深处的焦躁苦闷与不安如出一辙

为了避免自己再度陷入高三的逃学循环

想了想还是披上衣服出了门

脑海里已经在循环 Take Five 了

中午从 11 点睡到了 1 点多

梦里也在趴着做梦

可能是姿势造成了缺氧吧

醒来手麻了好几回

试着坐直了调整

只是抵挡不住睡意来袭

梦见我需要猛击 F5 才能醒过来

但键盘按键越来越少,只到 F4 为止

是处在趴在桌上动不了的状态

停电,所有灯全灭

巧克力饼干,很好吃