【知识回顾】老程序员总结生涯所学 以后也许要失业了

近半年收获
「我:所掌握技术总结
mysql
redis
mongodb
nginx
java
springmvc
springboot
springcloud
mybatis
hibernate
golang
gin
go-zero
gorm
js es6
angular
vue
three.js
extjs
css
linux shell
ffmpeg

有的使用多年 有的刚刚入门 重要说明下近期所学
css 重点是flex和grid可以到developer.mozilla.org学习
js es6基础的话数字和布尔的转换 !!1得true 0+true得1 es6最容易忽略的是o={k:v},{k:b}=o表示b=o.k.一个有用的函数是深克隆structuredClone 但是它不能克隆proxy代理的对象.另外是语法兼容 尤其注意for对于空的兼容for(i of arr||[]).还有就是线程的出让 类似于java的yield在js中就是setTimeout 0毫秒即可,它可以在死循环或者多线程中出让一下 达到很多目的
vue的话用如果vue3版本 就是ref reactive及监听deep,要注意deep为true则old和new已经没有区别 即获取不到old.经常需要注意一奌,单独弄个变量表示obj的一个属性 这是有问题的 比如f=obj.f 当obj的属性变了obj.f=ff此时f已经不能表示obj.f 一方面注意这种关联的丧失 所以直接修改其内容 另一方面 又要注意浅层监听时 直接修改其内容导致监听不到 这里要对属性直接进行改变 比如在antd表格中 rowSelection = reactive({selectedRowKeys:selectedRowKeys0}) 在onChange中需要修改rowSelection.selectedRowKeys 而不是修改selectedRowKeys0,这可能是它没有深层监听 也可能是reactive会复制一份数据 改变复制前的变量是无用的.说到antd表格 尤其要注意给它设置key不然无法正常渲染.另外 组件的key可以决定其是否复用 没有key的组件要注意不同的实例中的全剧变量是不是相互污染,测试技巧就是测2个实例即可.总而言之,一方面要注意数据的子属性总是关联在父节点的 另一方面 有时需要直接修改掉它才触发浅监听 数据的克隆 另起变量名 还是要经常注意,就是说不能害怕失去关联而总是只修改数据内部而不赋值.最后就是ref reactive的对象如果是数组 可能无法遍历 要解构下[…val]再遍历
redis最值得关注的就是setnx在分布式中用处极大
gorm需要注意的是其更新方法会忽略假值 比如布尔类型想从true改为false 数字想从非0改为0就不能实现 此时需要使用指针类型.gorm另一个坑是连接问题 需要设置连接池共享连接数等 其默认的是不能用的
go语言需要注意其线程中的异常会导致程序退出 还有最坑的map如果并发读写出现异常还不能捕获 直接程序闪崩 interface.(T)转换类型加ok可防止异常出现
多线程需要注意共享变量加锁
nginx有两点要注意 它的reload在windows可能没有用 需要taskkill才行 还有就是rewrite ^/api/(.*) /$1 break;这个/$1中的斜线一定不要漏掉 不然排查要累死人
linux shell在电脑上可用git 在手机上可用termux 批量移动文件啥的 太好用了
ffmpeg是极其强大的软件 可转换格式如m3u8到mp4/webm 可截取 可改分辨率 饱和度 速度等 常用的命令有scale eq等 注意scale用-2代替-1表示自动计算以实现偶数


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值