前端实习第二个月小结

时间飞快,第一次实习已经过去两个多月,作一些简单的总结和分享。

注:文章整体会比较轻松,提及的经历、经验仅作参考。

一、关于实习/工作内容

1、工作内容

近期做的是管理后台方面的业务,技术栈:前端react+antdesign,后端:ava。

日常开发:根据已有的功能进行修修补补:写写页面,封装接口等等。

2、参与发版

近期幸运地参与了一次发版,管理后台要上新页面(这两个页面刚好就是我写的)。发版前的流程:完成(前端/后端)任务、打包、推代码、上测试环境、测试、前后端修改bug、上生产环境、发版。如此反复,这套流程早已熟记于心,已成了“家常便饭”。

在开发过程中要注意很多细节问题,否则稍不留神就出错,而且后续还要继续改,可能会影响整体节奏。

这里分享几个我平时记录的易错点。

对于常用组件:

1.输入框:注意校验规则(字符串/数字/数字大小/手机号/是否必选等等)

2.下拉框:注意单选或者多选,拿到手的原型图要格外注意。

如果有多个下拉框,数据之间是否关联?比如A下拉框的选中数据作为获取B下拉框接口数据的入参?A和B又作为C的入参?这个要特别注意,不清楚及时问相关开发人员,避免后期的繁琐修改。近期我就踩过这个坑。

3、协同前行

对于前端实习生来说,前期有人带,是非常重要的,可以让我们少走很多弯路。

这里要特别感谢我的领导和组长,确实帮助我很多事情。

领导更多的是从思维、从宏观的角度,告诉我怎么去做好当下的业务需求;还有在业务对接时,如果出了问题,会帮我联系和跟进。

组长更多的是从实用的解决问题的角度,给我很多帮助,像一些业务通用组件的封装以及使用,撰写代码的一些注意点,比如一个很小的注意点(就体现了“逻辑清晰度”和“代码简洁性”)。

//就比如,在函数中,如果data有值,则赋值给params,否则params取undefined。
//一开始,我会这么写
const getParams=(data)=>{
    let params =data;
    if(!data){
        params=undefined;        
    }
    // ...其他语句

}

// 但后来,我组长说一行语句直接解决了
const getParams=(data)=>{
    let params =data || undefined;
    //...其他语句
}

第二种方式更符合常见的编程习惯,因为它在声明时就处理了 data 的假值情况,使得代码更加简洁和直观。

虽然我们可能知道第二种方式,但有些时候惯性思维,导致我们宁愿写“简单但多”的代码,也不愿意写一些“较少用但高效”的代码。

所以有人愿意提醒和纠正我们开发/编程习惯,我们要多加注意、修正、总结,也要懂得感恩。

知识点的联系以及综合使用,会极大地简化代码,提升我们的开发效率。

就好比ES6标准的出现,解决JavaScript在ES5时代存在的一些限制,比如缺乏对类、模块、箭头函数等的支持,以及对异步编程的改进等。

  1. 更简洁的语法:ES6引入了箭头函数、模板字符串、解构赋值等,这些都使得代码更加简洁易读。

  2. 增强的数据结构:新增的MapSet对象提供了更高效的数据存储和操作方式。

  3. 模块化:ES6的模块系统使得代码组织更加模块化,便于代码的维护和复用。

  4. 类和面向对象编程:ES6的class语法糖使得面向对象编程更加直观和方便。

  5. 异步编程改进:Promises和async/await关键字使得异步编程更加直观和易于管理。

我们得向标准和趋势看齐和学习。 


二、个人学习

前言:近期学校在推毕业设计的进度,我之前做了一个景点小程序,但管理后台系统还没做。因此我近期也在推动毕业设计的进度,学习和练习了做管理后台方面的知识。


1、核心内容:node+express

一些学习和练习已发在博客,有兴趣请自学阅读。

【NODE】01-fs和path常用知识点


express专栏

2、分享一些练习结果

前端(vue2)

防止信息泄露,就展示部分前端内容。

服务端(node+express+mysql)

这套知识的确好用,搭建服务器非常容易。可以看我的express专栏,相信你会有所收货。

展示的是模拟数据。

测试工具apipost(postman也可以,看个人使用习惯)

目前待解决的问题

1 景点数据新增/编辑,关于图片上传的问题,重点在于后端的文件存储(写入/保存),如果涉及多张图片上传呢?可能又是另外的问题。

2 小程序内容数据的收集和数据表数据迁移。

3 小程序的登录验证、日志记录等。

4 留言评论的校验和审核问题。

.....


三、小结 

感谢看到这里的朋友。

生活和工作,且行且珍惜。

快过年了,这篇文章可能是年前最后一更了吧哈哈(可能也会再更新一篇)。

提前祝大家新年开心,身体健康。

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

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

相关文章

搭建一个基于Spring Boot的书籍学习平台

搭建一个基于Spring Boot的书籍学习平台可以涵盖多个功能模块,例如用户管理、书籍管理、学习进度跟踪、笔记管理、评论和评分等。以下是一个简化的步骤指南,帮助你快速搭建一个基础的书籍学习平台。 — 1. 项目初始化 使用 Spring Initializr 生成一个…

dl学习笔记:(4)简单神经网络

(1)单层正向回归网络 bx1x2z100-0.2110-0.05101-0.051110.1 接下来我们用代码实现这组线性回归数据 import torch x torch.tensor([[1,0,0],[1,1,0],[1,0,1],[1,1,1]], dtype torch.float32) z torch.tensor([-0.2, -0.05, -0.05, 0.1]) w torch.…

OpenHarmony-7.IDL工具

IDL 工具 1.openharmony IDL工具 在OpenHarmony中,当应用/系统服务的客户端和服务端进行IPC(Inter-Process Communication)跨线程通信时,需要定义双方都认可的接口,以保障双方可以成功通信,OpenHarmony ID…

openssl s_server源码剥离

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

前端小案例——网页井字棋

前言:我们在学习完了HTML、CSS和JavaScript之后,就会想着使用这三个东西去做一些小案例,不过又没有什么好的案例让我们去练手,本篇文章就提供里一个案例——网页井字棋。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可…

Leetcode 983. 最低票价 动态规划

原题链接&#xff1a;Leetcode 983. 最低票价 class Solution { public:int mincostTickets(vector<int>& days, vector<int>& costs) {int n days.size();int last days[n - 1];int dp[last 1];map<int, int> mp;for (auto x : days)mp[x] 1;dp…

Java中的 锁现象演示和原理解释 多线程操作资源类 八种案例 同步方法 静态方法 对象锁 类锁

目录 面试题 案例 1 标准访问有 ab 两个线程 案例 2 其中一个同步方法暂停 3 秒 案例 3 新增普通方法 案例 4 创建两个对象 案例 5 两个静态同步方法 一个对象 案例 6 两个静态同步方法 两个对象 案例 7 一个静态同步方法 一个普通同步方法 一个对象 案例 8 一个静态同…

HTML应用指南:利用GET请求获取全国特斯拉充电桩位置

随着电动汽车的普及&#xff0c;充电基础设施的建设变得至关重要。作为电动汽车领域的先驱&#xff0c;特斯拉不仅在车辆技术创新上持续领先&#xff0c;还积极构建广泛的充电网络&#xff0c;以支持其不断增长的用户群体。为了提升用户体验和服务质量&#xff0c;开发人员和数…

cuda + cudnn安装

1.安装CUDA Toolkit 在设备管理器&#xff08;此电脑–右键–属性&#xff09;的显示适配器中可以查看自己的显卡型号&#xff0c;去下载对应的CUDA Toolkit 。或者输入以下命令查看Driver Version &#xff0c;cuda Version&#xff1a;12.2代表12.2版本以下兼容可以进行安装 …

【k8s面试题2025】1、练气期

主要通过呼吸吐纳等方法&#xff0c;将外界的天地灵气吸入体内&#xff0c;初步改造身体&#xff0c;使身体素质远超常人。 文章目录 docker 和虚拟机的不同Kubernetes 和 docker 的关系Kube-proxy IPVS 和 iptables 的异同蓝绿发布Kubernetes中常见的数据持久化方式关于 Docke…

vue | 插值表达式

Vue 是一个用于 构建用户界面 的 渐进式 框架 1. 构建用户界面&#xff1a;基于 数据 动态 渲染 页面 2. 渐进式&#xff1a;循序渐进的学习 3. 框架&#xff1a;一套完整的项目解决方案&#xff0c;提升开发效率↑ (理解记忆规则) 插值表达式&#xff1a; 插值表达式是一种 Vu…

【蜂巢——方向,数学】

题目 代码 #include <bits/stdc.h> using namespace std; using ll long long; int dx[6] {-1, -1, 0, 1, 1, 0}; int dy[6] {0, 1, 1, 0, -1, -1}; void cal(int d, int p, int q, int& x, int& y) {x p * dx[d];y p * dy[d];d (d 2) % 6;x q * dx[d];…

C语言进阶习题【1】指针和数组(1)——一维数组

1. 数组名的意义&#xff1a; sizeof(数组名)&#xff0c;这里的数组名表示整个数组&#xff0c;计算的是整个数组的大小。&数组名&#xff0c;这里的数组名表示整个数组&#xff0c;取出的是整个数组的地址。除此之外所有的数组名都表示首元素的地址。&#xff08;一维数…

禁用输入法的方案

车间运行的SF系统&#xff0c;扫描产品条码。WB输入法等工具流氓软件&#xff0c;文本框获得焦点之后&#xff0c;自动打开输入状态&#xff0c;美其名日&#xff0c;智能化。输入法open状态下&#xff0c;扫描条码是乱码的&#xff0c;或是不全&#xff0c;缺字符。分析是输入…

Linux提权-02 sudo提权

文章目录 1. sudo 提权原理1.1 原理1.2 sudo文件配置 2. 提权利用方式2.1 sudo权限分配不当2.2 sudo脚本篡改2.3 sudo脚本参数利用2.4 sudo绕过路径执行2.5 sudo LD_PRELOAD环境变量2.6 sudo caching2.7 sudo令牌进程注入 3. 参考 1. sudo 提权原理 1.1 原理 sudo是一个用于在…

3. 后端验证前端Token

书接上回&#xff0c;后端将token返回给前端&#xff0c;前端存入cookie&#xff0c;每次前端给后端发送请求&#xff0c;后端是如何验证的。 若依是用过滤器来实现对请求的验证&#xff0c;过滤器的简单理解是每次发送请求的时候先发送给过滤器执行逻辑判断以及处理&#xff0…

【转】厚植根基,同启新程!一文回顾 2024 OpenHarmony 社区年度工作会议精彩瞬间

在数字化浪潮奔腾不息的今天&#xff0c;开源技术已成为推动科技创新与产业发展的强大引擎。2025年1月10日-11日&#xff0c;OpenAtom OpenHarmony&#xff08;开放原子开源鸿蒙&#xff0c;以下简称“OpenHarmony”或“开源鸿蒙”&#xff09;社区2024年度工作会议于深圳盛大启…

数据结构(Java版)第九期:LinkedList与链表(四)

专栏&#xff1a;数据结构(Java版) 个人主页&#xff1a;手握风云 目录 一、LinkedList的模拟实现 1.1. 头插法 1.2. 尾插法 1.3. 插入中间节点 1.4. 删除某个节点 1.5. 删除所有为key的元素 二、LinkedList的使用 2.1. 什么是LinkedList 2.2. LinkedList的使⽤ 三、…

第22篇 基于ARM A9处理器用汇编语言实现中断<四>

Q&#xff1a;怎样编写ARM A9处理器汇编语言代码配置使用按键和定时器中断&#xff1f; A&#xff1a;本次实验同样为中断模式和监督模式都设置ARM A9堆栈指针&#xff0c;并使能中断&#xff0c;此外在主程序中调用子程序CONFIG_HPS_TIMER和CONFIG_KEYS分别对HPS Timer 0&…

Python学习(十三)什么是模块、模块的引入、自定义模块、常见的内置模块(math、random、os、sys、uuid、时间模块、加密模块)

目录 一、什么是模块&#xff1f;1.1 定义1.2 分类1.3 五种模块引入的方法1&#xff09;import 模块名&#xff08;全部引入&#xff09;2&#xff09;from 模块名 import 功能名&#xff08;部分引入&#xff09;3&#xff09;from 模块名 import *&#xff08;引入公共功能&a…