在公司做的项目和自己在学校做的有什么区别?

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 不知道大家还是学生的时候有没有这个问题:公司做的项目和自己在学校练手的项目有多大的区别。我以前在学校跟着视频做一些项目练手,总感觉公司做的东西会要难很多,不知道跟公司的真实项目区别在哪。总的来说,我实习的总时间也快半年了,谈谈我觉得公司项目和自己练手的项目有啥区别,欢迎补充。

区别


在视频练的项目大多数都是由讲师在本地编码来讲解整一个项目的开发过程,而我们去到公司做的第一件事是啥?把项目clone(checkout)到本地来看。

这就有两个区别:

  • 去到公司往往不是从零开发一个项目,项目的框架和代码都已经写好了。我们更多要做的就是迭代这个项目(或者说修复这个项目原本就有的Bug)
  • 一个项目往往都会有几个人进行开发,这就肯定要用到版本管理工具(SVN/Git)。所以,去公司做项目之前最好是提前去学学Git/SVN这些工具的使用

比如说,我们使用Git的时候,要修改代码的时候会新建一个分支,改完了再合并到master分支上。

好了,现在项目已经在本地上了,那我们要将项目在本地上启动起来吗?这得问同事。在公司做项目,一般都分了好几个环境

  • 线上(现在正在给用户用的)
  • 测试(写完功能,先看一下在测试环境下有没有问题,没问题才发布到线上环境)
  • …等等(可能名字叫起来不一样,但不可能在本地上写完的代码直接就放到线上去跑了)

有的时候,可能环境过于复杂(各种系统相互依赖),clone(checkout)下来的项目就很难在本地上启动起来,或者说在本地上的数据跟线上的数据差距太大了(比较难看出效果)。所以,有的时候可能就不用在本地将项目启动起来。

那问题来了,我写完的代码怎么调试啊?我们可以这样干的:将本地写好的代码push到测试环境,然后本地远程连接测试环境,对其进行调试。

20.jpg

还有,我们自己做项目的时候,try-catch完了之后,习惯可能就e.printStackTrace();

21.jpg                                          万能的e.printxxxx

但公司的项目不会有e.printStackTrace();这种代码的存在。因为这打印出来的错误信息没有日期、等级等等,分析起来不方便。

22.jpg                                                 分析起来不方便

在公司一般将错误的信息(或者有用的信息)写到log(日志)中。

  • 比如说:LOG.error("send java3y article failed, {}", e);

于是,一般出现了问题,我们先去登上机器,查一下日志的信息是怎么样的。而登上线上的机器上,也不是直连的,会经过一层堡垒机。堡垒机是做啥的?

23.jpg来源:

每次登录线上的机器都要ssh xxxxip  到堡垒机上,然后再到堡垒机上输入线上机器IP连接,着实麻烦。于是大佬们就会写自动登录堡垒机,直接输入IP到线上的脚本

于是乎,我们就登录到堡垒机上,然后再连上线上机器就去查看日志了。查看日志怎么看?

  • 直接cat console.log吗,那得找到什么时候啊?
  • vim console.log吗,我想根据某个关键字来查怎么在vim上操作啊?如果log文件太大了,vim打开太卡了怎么搞啊…
  • 所以,常用inux命令还是得学学的呀

还有一点就是,在公司开发都要申请权限才能对数据库/机器/各种资源进行操作。而不像我们个人开发各种root权限,数据库各种DDL/DML随便玩。

DML/DDL数据库操作都要申请权限,发布代码到线上也要申请权限,想要去线上的机器上查看日志也要权限…..


最后


  1. 版本控制工具
  2. 远程连接Debug调试
  3. 不再使用e.printStackTrace();,而是log.error()来替代
  4. 各种权限都需要申请和审批

至于代码量来说的话,一般是公司的代码量比我们在学校做的项目要多得多的。技术的话就得看具体的公司了~

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5月前
|
存储 C++
【C++】C++公司人事管理系统(源码)【独一无二】
【C++】C++公司人事管理系统(源码)【独一无二】
167 2
|
8月前
|
小程序 JavaScript Java
就业|高校毕业生就业信息小程序|基于微信小程序的高校毕业生就业信息的设计与实现(源码+数据库+文档)
就业|高校毕业生就业信息小程序|基于微信小程序的高校毕业生就业信息的设计与实现(源码+数据库+文档)
95 1
|
8月前
|
存储 人工智能 搜索推荐
【C/C++】C/C++招聘信息管理系统(源码)【独一无二】
【C/C++】C/C++招聘信息管理系统(源码)【独一无二】
|
机器学习/深度学习 人工智能 弹性计算
与阿里云公司合作的项目获得优秀项目案例
近日,2022年度教育部产学合作协同育人项目优秀项目案例重磅发布。赵卫东老师与阿里云公司合作的项目荣获“教学内容和课程体系改革”优秀项目!https://mp.weixin.qq.com/s/bSuisNg-avFvvfRK2J7-4g
433 0
与阿里云公司合作的项目获得优秀项目案例
|
存储 Java 程序员
「职业职位」软件“开发者”和“工程师”有什么区别?
「职业职位」软件“开发者”和“工程师”有什么区别?
程序人生 - 996(二)马云:任何公司都不应该强制员工996
程序人生 - 996(二)马云:任何公司都不应该强制员工996
108 0
程序人生 - 996(二)马云:任何公司都不应该强制员工996
|
前端开发 算法 数据挖掘
俄罗斯央行:急需数字卢布,不会推迟 CBDC 测试;腾讯发布多个 Web3 岗位招聘信息;V 神:自己对以太坊的影响力不断下降 | 区块链周报
区块链周报栏目从产业动态、技术进展和政策监管等方面,为您总结了本周区块链领域发生的头条事件,让您更快速了解行业最新动态。
135 0
|
小程序 搜索推荐
小程序定制开发公司如何挑选专业的?
每个公司产品需求都不一致,模板小程序开发无法满足个性化需求和功能。定制小程序能够实现你想要个性化的功能。那么如何挑选专业的小程序定制开发公司呢?
144 0
|
小程序 搜索推荐
如何挑选专业小程序定制开发公司?
每个公司产品需求都不一致,模板小程序开发无法满足个性化需求和功能。定制小程序能够实现你想要个性化的功能。
161 0
|
消息中间件 运维 架构师
大公司和小公司的程序员有什么差别?如何进大公司?
  我在大公司干活前,基本都在小公司之间辗转,对比两种公司的经历,切身感受到“人往高处走“绝非是空话。我在之前的博文里,多次讲到程序员该去大厂看看,在这篇博文里,将结合我和我朋友的所见所闻,从技术和发展前景等方面,综合讲述小公司和大公司里程序员的普遍差别,以此再让大家感受下大公司经历的重要性。不过本文不是停留于此,还更将针对小公司干杂事的程序员,给出逆袭到大厂的若干建议,好正文开始。
223 0