在公司作的项目和本身在学校作的有什么区别?

前言

只有光头才能变强。html

文本已收录至个人GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3yjava

不知道你们仍是学生的时候有没有这个问题:公司作的项目和本身在学校练手的项目有多大的区别。我之前在学校跟着视频作一些项目练手,总感受公司作的东西会要难不少,不知道跟公司的真实项目区别在哪。git

总的来讲,我实习的总时间也快半年了,谈谈我以为公司项目和本身练手的项目有啥区别,欢迎补充。github

1、区别

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

这就有两个区别:vim

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

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

好了,如今项目已经在本地上了,那咱们要将项目在本地上启动起来吗?这得问同事。在公司作项目,通常都分了好几个环境ssh

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

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

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

远程Debug

还有,咱们本身作项目的时候,try-catch完了以后,习惯可能就e.printStackTrace();

万能的e.printxxxx

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

分析起来不方便

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

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

因而,通常出现了问题,咱们先去登上机器,查一下日志的信息是怎么样的。而登上线上的机器上,也不是直连的,会通过一层堡垒机。堡垒机是作啥的?

来源:https://www.zhihu.com/question/21036511

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

因而乎,咱们就登陆到堡垒机上,而后再连上线上机器就去查看日志了。查看日志怎么看?

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

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

最后

总结:

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

乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,关注便可获取!

转发到朋友圈是对我最大的支持!

相关文章
相关标签/搜索