全栈之路02-全栈工程师

02全栈工程师

Author: catboss
Email: catbosscj@163.com
Blog: 404…
Date: 2023-04-26 09:04

#Article

前言

随着IT行业的不断发展以及需求的不断变化,越来越多的工程师不仅是某个技术领域的专家,还精通其它领域,企业要求后端工程师同时精通前端开发技术,还要兼顾交互、视觉以及运维等等,于是“全栈工程师”应运而生。

内容

全栈工程师的定义

哥,我这报错帮我看一下…
哥,前端这个显示不出来是什么问题…
哥,服务器是不是挂了,咋这么慢…
哥,今天客户说在这再加点功能…
走的时候打扫一下卫生,把垃圾倒了,把花浇了…

虚假的全栈工程师:前端+后端
真正的全栈工程师:售前+UI+前端+后端+测试+运维+售后+打扫卫生+浇花…

全栈工程师的概念对于大部分人来说是模糊的,会多少才能叫全栈?会写一点html、会整点SQL语句,会熟练使用SpringBoot开发,就可以叫全栈,当码农七八年也可以叫全栈,没有一个明确的界限。

百度百科给出的定义

全栈工程师是指掌握多种技能,胜任前端与后端,能利用多种技能独立完成产品的人。

这也是业内普遍认同的定义,全栈工程师不一定是全能,但他一定是能独立完成产品的人,是全流程都熟悉并有经验的人。可能有人不理解开发为什么还要做售前售后的工作,因为全栈最重要的点就是要有全局的思维方式和强大的学习能力,熟悉多种开发语言,同时具备前端和后台开发能力,从需求分析,原型设计到产品开发,测试,部署,发布全流程,他必定要去接触市场,脱离市场和客户的全栈,只能叫个人开发者。

全栈工程师的工作范围

全栈程序员的工作内容相对于传统的前端或后端开发人员更广泛

前端开发

前端开发是全栈程序员的重要工作之一。全栈程序员需要熟悉 HTML、CSS 和 JavaScript 等前端开发技术,能够开发符合现代前端框架和工具的网站和应用程序。具体工作包括:

  • 设计并开发前端页面,实现页面布局、样式和交互效果等
  • 使用现代前端框架和工具,如React、Angular、Vue.js等,进行前端开发
  • 负责优化前端性能,提高用户体验
  • 与设计团队密切协作,确保前端设计符合用户需求和产品规范
  • 与后端团队协作,对接后端API,并保证前后端数据的正确性和一致性

后端开发

全栈程序员需要掌握至少一门后端语言和相关框架,如Node.js、Python、Ruby、Java、PHP等。在后端开发中,全栈程序员需要实现业务逻辑、数据处理和安全保障等。具体工作包括:

  • 设计并开发后端应用程序,实现业务逻辑和数据处理等功能
  • 使用现代后端框架和工具,如Express、Django、Ruby on Rails、Spring等,进行后端开发
  • 负责数据的存储和管理,设计和优化数据库结构
  • 实现服务器端的安全防护,确保应用程序的稳定性和安全性
  • 与前端团队协作,对接前端请求和响应,并保证前后端数据的正确性和一致性

数据库设计与管理

全栈程序员需要掌握数据库设计和管理,包括对SQL的理解以及如何使用数据库框架进行开发。具体工作包括:

  • 设计和管理数据库结构,确保数据的可靠性和完整性
  • 编写和优化SQL查询语句,提高数据库性能和响应速度
  • 使用数据库框架和工具,如MySQL、PostgreSQL、MongoDB等,进行数据库开发和管理
  • 与后端团队协作,确保数据的正确性和一致性

API 设计与开发

全栈程序员需要了解 RESTful API 设计的基本原理,熟悉 API 的开发、测试和文档编写。具体工作包括:

  • 设计并开发RESTful API,实现前后端数据传输和交互
  • 编写和优化API文档,提供清晰的API文档和API使用说明
  • 负责API的测试,确保API的正确性和稳定性
  • 与前端和后端团队协作,确保API的正确性和一致性
  • 熟悉API安全方面的知识,如认证和授权等

DevOps

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

全栈程序员需要了解DevOps的基本原理和实践,并熟悉常用的DevOps工具和技术。具体工作包括:

  • 使用自动化工具,如Docker、Ansible、Jenkins等,简化部署和运维流程
  • 负责应用程序的部署和运维,确保应用程序的稳定性和可靠性
  • 熟悉Linux环境,能够进行服务器配置和管理
  • 监控和分析应用程序的运行情况,及时发现和解决问题

全栈工程师所需工具

原型设计工具-Axure

网站:https://www.axure.com/

在进行方案原型验证时,还原度高,信息架构清晰的原型,能让用户更容易理解解决方案构想,并针对性发表意见。一个好的原型是有效进行方案验证的基础。市面上的原型设计工具百花齐放,其中类似墨刀 - 在线一体化产品设计协作平台 (modao.cc)等原型设计工具对于初学者十分友好。但是一个好的原型设计工具得让全栈工程师用起来得心应手,大部分公司或个人开发者还是倾向于使用更加老牌和专业的软件Axure

Axure RP是美国Axure Software Solution公司旗舰产品,是一个专业的快速原型设计工具,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。作为专业的原型设计工具,它能快速、高效的创建原型,同时支持多人协作设计和版本控制管理 。
Axure RP的使用者主要包括商业分析师、信息架构师、产品经理、IT咨询师、用户体验设计师、交互设计师、UI设计师等,另外,架构师、程序员也在使用Axure。

Axure的应用场景

  • 拉投资使用
  • 给项目团队
  • 销售用来做演示
  • 项目投标使用
  • 内部收集反馈
  • 教学使用

数据库建模工具-PowerDesigner

Power Designer 是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,他几乎包括了数据库模型设计的全过程。利用Power Designer可以制作数据流程图、概念数据模型、物理数据模型,还可以为数据仓库制作结构模型,也能对团队设计模型进行控制。他可以与许多流行的软件开发工具,例如PowerBuilder、Delphi、VB等相配合使开发时间缩短和使系统设计更优化。
power designer是能进行数据库设计的强大的软件,是一款开发人员常用的数据库建模工具。使用它可以分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。在这里,概念数据模型描述的是独立于数据库管理系统(DBMS)的实体定义和实体关系定义;物理数据模型是在概念数据模型的基础上针对目标数据库管理系统的具体化。

PowerDesigner是一款非常全面的数据库设计工具。使用PowerDesigner可以快速创建表,支持表与表之间建立关系,界面简洁,功能强大。同时支持将sql脚本导出,多种导出类型任意挑选,简单实用。说白了,作为数据库的开发设计人员,必须能熟练应用此类数据建模工具,数据库的设计就像是大楼地基,越往上层建东西越会明白设计的重要性。

集成开发工具-IDE

IDE千千万,Jetbrains系列IDE是个人认为做的最好的集成开发工具了,用习惯了再很难去接受其他的软件,但是萝卜青菜各有所爱,工具没有排名,适合自己、适合工作环境的才是最好的。工具只是一种习惯,打铁还需自身硬。后期我会专门出一期全栈工程师所要涉及到的IDE。

测试工具-ApiPost

专门的测试工程师,会用到测试用例管理工具,Bug管理平台,代码管理平台,持续集成管理平台等等。作为一个全栈工程师,适当了解即可,有基本的测试能力即可。

之前一直使用的是Postman,但用过ApiPost是真的香。

Apipost = Postman + Swagger + Mock + Jmeter

API调试、生成文档、Mock、测试一体化的协同工具,满足不同研发人员的不同需求。拥有ApiPost等于拥有了以上所有工具。

持续集成-Jenkins

持续集成,就是通常所说的CI(Continues Integration),可以说是现代软件技术开发的基础。
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也意味着每天可能会发生多次集成。
每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

别名小老头,

  1. 持续、自动地构建、测试软件项目。
  2. 监控一些定时执行的任务。

未完待续

总结

全栈工程师需要具备技术和管理能力,注重代码质量、用户体验和代码可维护性,保持不断学习和进步,才能在互联网行业中有一席之地。

  1. 学习一些新技术和工具,保持不断学习和进步。互联网行业变化非常快,学习新技术和工具可以保持竞争力。
  2. 不要只专注于技术,也要学习一些管理和沟通技能。在团队中,需要和其他成员协作,并向非技术人员解释你的工作。因此,学习如何有效地沟通和管理是非常重要的。
  3. 将代码质量放在首要位置。不要为了完成任务而忽略代码质量。写高质量的代码可以减少错误和维护成本,提高整个项目的效率和质量。
  4. 不要忽略用户体验。在开发Web应用程序时,确保用户界面友好和易于使用。提高用户满意度和用户留存率。
  5. 保持代码的可维护性。当代码的规模和复杂性增加时,代码的可维护性将成为一个关键问题。在编写代码时,要注意代码的可维护性,包括模块化、注释和命名规范等。

作为一个全栈工程师,想要做好产品,无非就下面三个问题:

  1. 我在什么时候应该去输入什么数据
  2. 数据/信息传递给谁,他应该做什么,有什么逻辑关系
  3. 统计什么数据,如何呈现

只有站在用户的角度去想问题,去实现用户的痛点,才能称为一位全栈工程师。

欢迎关注个人公众号【CatBoss全栈】交流学习

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫猫全栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值