2023年工作初体验

23年终于正式入职,参与了正式上线的电商平台、crm平台等项目的研发,公司规模较小,气氛融洽,没有任何勾心斗角、末位淘汰,几乎没什么压力。虽然是我的第一家公司,但实际是个适合养老的公司(笑
总结下今年工作学到的实践经验

交流方面

多交流、多沟通,老员工知道哪个地方有现成的接口。重点还有多与需求方沟通,不要觉得自己刚来不好意思交流。
刚来在业务流程上的问题尤其要大胆说,说错了也没问题,新人本来就不熟悉业务,说出一个错误选项让师兄或业务部排除,比自己去看不熟悉的代码要省时间。
一定要会砍需求!我tm直接砍砍砍!其实和运营部门和产品经理关系还挺好的。网上互怼的段子也有不少。如果不砍需求做了无用功,还是自己吃亏,绩效也受影响。

工作流程

公司使用阿里云效进行需求管理,类似gitlab
用github比喻的话,“需求/任务”对应issue;可以在对应的需求/issue上建立有对应编号的分支;
提交到自己分支,然后在jenkins测试环境选中自己的分支构建,就可以让需求的提出者/测试人员也线上测试效果了;

测试通过的话就可以提交到master分支。同github相同,新建请求合并(pr)时可以选择评审人,由评审人负责code review

经验方面

idea 提取函数;比起复制粘贴老代码,还是提取为函数,方便以后统一修改(dry原则,don’t repeat yourself,避免同一功能重复使用);如果只记得修改一个地方,那其他几处就成了bug;
代码风格:给我做code review的这位,指出了使用stream 和 lambda表达式代替for循环赋值hashmap的问题。过去我比较喜欢朴素的写法,今后要保持风格一致。

性能

在遍历中最好不要有跨服务、跨接口、数据库的操作。我曾写过一个在遍历中调用dubbo远程接口查询订单的程序,耗时非常长;可以利用缓存"空间换时间"的思路,把数据取过来缓存在hashMap中。
之前开发的时候我只知道在For循环里查询数据库可能会对性能造成影响,现在知道了参与微服务开发后,在循环里遍历远程接口同样会对性能造成压力;而且接口都是设置了超时时限的,可能导致调用失败。

数据库

谨慎添加新字段。我刚入职添加了好多新字段,因为当时临近节假日,技术经理又放婚嫁去了,时间紧任务重,又是个性格内向的新人,进来没有好好了解需求和曾经的表结构。导致在数据库里加了不少多余字段(另一位师兄也很忙来不及细看)。一定要认真和产品经理(或类似提需求的职位,本文统称产品经理)好好交流那些内容需要哪些不需要;另外也要早点儿熟悉公司代码和表结构,有些冗余字段其实没必要加,可以用多表查询,同其他表的字段保持一致。

测试

公司唯一的测试妹子离职了,现在是自测+产品经理测,很多时候我这个不熟悉业务的新人测不出问题\bad
在实践中终于学会了打断点,并且再断点中改变数据进行测试。

postman测试

请求头中content type以填写的请求体为准,不能更改,要去选请求体的格式

测试的直接把验证码相关的校验给我注释起来口牙!

本地与开发环境配置

虽然.gitignore文件可以使git忽略一些文件,但在环境方面却有些难用,比如刚修改.gitignore后git默认还会追踪之前的那些文件;开发者本地开发时需要修改本地/测试/开发环境配置文件中的信息(比如有的开发者不会把开发环境放在本机127.0.0.1或是常用端口),需要提交时忽略这些更改,但此时的.gitignore确是公有库中大家都在使用的,不论是新增忽略文件、暂时忽略某些配置文件都挺难办;
师兄的解决办法是每次提交时在idea手动忽略;
我的办法是在idea的启动参数中指定环境,那里优先级高,覆盖掉配置文件的内容;这样每次启动时就会用本地环境,而且不用动任何文件;
在这里插入图片描述

规范与习惯

git提交消息:以需求编号开头
跟随前人的习惯写:项目新老代码交替,代码风格和技术栈多变。有的导出Excel功能用poi,有的用easyExcel;有的判空用==null三元表达式,有的用Objects.isNull(),还有的写if/else。我们代码好用==的三元表达式,那用同一个文件里统一用,不要一会if/else一会儿三元表达式。

不要用魔数,不要写这么复杂,有Objects.nonNull这个方法

    public boolean equals(Object obj) {
        if (obj instanceof Integer) {
            return value == ((Integer)obj).intValue();
        }
        return false;
    }

instanceof是不会空指针的

interface中定义常量

contains用List不如Set

分布式事务

找一个中间的一致性管理?成本和复杂性太高,金融之类的强制要求可能需要

A调用B,B也有事务,A还没提交,B只能读老数据
要么A搞个接口让B读,也挺麻烦
要是改隔离级别,可能产生脏数据。
可以搞个job晚上自动核对数据,甚至发个报警让人工处理。每天几千笔极小交易的公司也是这么处理。
多表的update保持一致要加事务,但是分布式事务成本很高,所以用消息队列?主要还是为了异步吧,事务该被拆开还是拆开了。

测试环境和生产环境的不同

除了分支不同、jenkins构建的分支不同之外,有些参数也不同。
mq延时消息,延时级别对应的延时时长,测试环境数据库里的时间比较短,方便测试。正式环境比较长。

身体

身体是编程的本钱。曾有一次感冒发烧,39°C,代码是点进一层调用忘一层,第二天只能请假。一定要保证身体。

24年规划

  • 坚持写博客。今年没有打算争抢博客之星,倒是白白没落了几篇好文章啊
  • 加入某个权威性的计算机组织。(大不了趁三月打折买个CCF会员doge)
  • 尝试发表论文、同高校教师合作。虽然两年考研失败、一年忙于工作,几乎断了考研路,但还是有一小丢丢的科研♥呢。只能说体验体验吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/292080.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

郑州大学算法设计与分析实验2

判断题 1 #include<bits/stdc.h> using namespace std;const int N 50; int f[N], n;int main() { // freopen("1.in", "r", stdin);ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> n;f[1] 1; f[2] 1;for(int i 3; i &l…

教程:Centos6迁移旧虚拟机文件后的网络配置教程,完美解决虚拟机移动后的网络ip变化问题

博主在工作后,想整整之前大学的虚拟机集群,因此特意从之前的旧电脑把虚拟机文件给拷贝了过来,在导入到vm-workstation,顺便能启动虚拟机后,发现之前的静态ip已经跟现在的宿主机网络不一样。想着重新配置,但觉得太麻烦,故想到了修改网卡的mac地址+网卡重配置方法,完美解…

基于多反应堆的高并发服务器【C/C++/Reactor】(中)Buffer的创建和销毁、扩容、写入数据

TcpConnection:封装的就是建立连接之后得到的用于通信的文件描述符&#xff0c;然后基于这个文件描述符&#xff0c;在发送数据的时候&#xff0c;需要把数据先写入到一块内存里边&#xff0c;然后再把这块内存里边的数据发送给客户端&#xff0c;除了发送数据&#xff0c;剩下…

Ajax基础入门_Ajax概述,同步与异步,Axios的使用,JSON数据及FastJSON的使用

Ajax 文章目录 Ajax1 概述2 作用3 同步和异步3.1 同步3.2 异步 4 代码编写4.1 服务端4.2 客户端 5 Axios5.1 使用5.2 代码5.2.1 前端5.2.2 后端 5.3 请求方法别名 6 JSON6.1 概述6.2 JSON 基础语法6.2.1 定义格式6.2.2 js 对象与JSON的转换 6.3 发送异步请求携带参数6.4 JSON串…

从0到1入门C++编程——03 内存分区、引用、函数高级应用

文章目录 一、内存分区二、引用三、函数的高级应用1.默认参数2.占位参数3.函数重载 一、内存分区 C程序在执行时&#xff0c;会将内存大致分为4个区&#xff0c;分别是代码区、全局区、栈区和堆区。 代码区用来存放函数体和二进制代码&#xff0c;由操作系统进行管理。 全局区…

docker镜像仓库详解(Docker Registry)

本片文章主要是对docker的镜像仓库进行了详解。其中包含了一些常用了 docker 指令&#xff0c;通过举例进行详解。也详细解释了镜像仓库的工作机制和常见的镜像仓库。也实际拉去和运行了一些镜像。希望本篇文章会对你有所帮助&#xff01; 文章目录 一、什么是Docker Registry …

jQuery图片放大缩小旋转预览代码

jQuery图片放大缩小旋转预览代码-遇见你与你分享

基于SpringBoot的在线考试系统源码和论文

网络的广泛应用给生活带来了十分的便利。所以把在线考试管理与现在网络相结合&#xff0c;利用java技术建设在线考试系统&#xff0c;实现在线考试的信息化管理。则对于进一步提高在线考试管理发展&#xff0c;丰富在线考试管理经验能起到不少的促进作用。 在线考试系统能够通…

独立看门狗与窗口看门狗

一、简介 STM32F10xxx内置两个看门狗&#xff0c;提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障&#xff1b;当计数器达到给定的超时值时&#xff0c;触发一个中断(仅适用于窗口型看门狗)或产…

FindMy技术用于鼠标

鼠标是计算机的标准配置之一&#xff0c;其设计初衷是为了使计算机的操作更加简便快捷&#xff0c;减少用户在操作中的负担。用户可以通过移动鼠标&#xff0c;实现光标的精确移动&#xff0c;进而选择、拖拽、复制、粘贴等操作。这种操作方式&#xff0c;使得计算机的操作变得…

小程序测试和APP测试的区别

今天看了一下关于如何测试小程序的教学视频&#xff0c;里面讨论了一个很经典的面试题&#xff1a;小程序测试和APP测试的区别&#xff0c;包括在之前的面试过程中也确实是遇到过这个问题&#xff0c;所以这次打算把它记录下来&#xff0c;也算是知识巩固了。 首先从测试的内容…

2023年终总结,被裁员

在一个睡意朦胧的早上&#xff0c;我被闹钟惊醒&#xff0c;原来今天已经是2024年1月1日了&#xff0c;2023年平平无奇的结束了&#xff0c;唯一让我感触波深的事情是我在二月份的裁员名单里面。2024加油&#xff01;&#xff01;&#xff01; 工作上的总结 回顾2023&#xf…

本地监控jar包可视化性能数据

一、机器申请 二、maven项目jar打包 三、机器性能监控 1.jdk版本配置 本地下载的机器虽自带jdk&#xff0c;但是jdk版本过低&#xff0c;需重新安装jdk 参考&#xff1a; Linux系统安装JDK1.8 详细流程_linux安装jdk1.8-CSDN博客 2.jvm参数修改 需修改jvm堆内存 栈内存信…

Linux基础——进程初识(三)

1. 进程优先级 首先我们要知道&#xff0c;进程优先级是操作系统用来确定多个进程同时运行时&#xff0c;哪个进程会获得更多CPU时间片的相对重要性或优先级的评估。他和权限的区别在于权限决定了能不能访问资源&#xff0c;而优先级是在能访问资源的前提下&#xff0c;决定了…

Day7 vitest 之 vitest配置第三版

项目目录 runner Type: VitestRunnerConstructor Default: node, 当运行test的时候 benchmark,当运行bench测试的时候 功能 自定义测试运行程序的路径。 要求 应与自定义库运行程序一起使用。 如果您只是运行测试&#xff0c;则可能不需要这个。它主要由library作者使用 …

多线程实践项目

前言 前面几篇文章分别学习了多线程的基本知识和线程池使用&#xff0c;这篇则为项目实践和整理。 项目参考 选择了两个项目github地址&#xff0c;如果不方便下载可以下面留言评论私发。 1.马士兵老师的juc&#xff0c;讲述了多线程的基本知识线程讲解 2.基本的线程演示&am…

几种读nii图像方法的轴序比较

读 .nii / .nii.gz 图像并转成 numpy 可用 medpy.io、nibabel、itk、SimpleITK 几种方法&#xff0c;然而几种方法读出来的轴序有出入&#xff0c;本篇比较此几种方法。 Datum 所用数据来自 verse&#xff0c;经 iTomxy/data/verse/preprocess.py 预处理&#xff0c;朝向和轴…

【VTK三维重建-体绘制】第五期 vtkLODProp3D

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ&#xff1a;870202403 前言 本文分享VTK中体绘制中的vtkLODProp3D对象&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起进步&#xff01; 你的点赞…

【数据挖掘】基于 LightGBM 的系统访问风险识别(附源码)

基于 LightGBM 的系统访问风险识别 文章目录 基于 LightGBM 的系统访问风险识别一、课题来源二、任务描述三、课题背景四、数据获取分析及说明&#xff08;1&#xff09;登录https://www.datafountain.cn并获取相关数据&#xff08;2&#xff09;数据集文件说明&#xff08;3&a…

好代码网同款wordpress主题,适合搭建资源分享类网站,自带五六百的精品资源数据

代码简介&#xff1a; 好代码资源网是个还不错的资源分享类网站&#xff0c;基于wordpress搭建的。它的主题看起来还是不错的。这里分享一下这个网站的主题包。说是主题包&#xff0c;其实就是整站打包的&#xff0c;集成了主题&#xff08;wordpress美化主题包几个插件&#…