前言
现在好多文章,在教大家如何面试,跳槽。跳了之后呢,如何快速熟悉项目,通过试用期呢。
大家在入职都会面对一个问题,就是熟悉项目。那么熟悉
相信大家都在看到一座代码大(shi)山放到自己面前,都不知从何下手。如果有老同事讲解,健全的文档供查阅,那么入手起来就很方便。但就我入职以来多年经验,大部分公司的项目文档不全。你一入职,老同事就甩手(对,你是去接锅的);除了HR姐姐的入职培训,没有更多的信息;这种情况下,该如何快速入手项目呢。
这里代码部分拿PHP项目举例,其他语言的读者也可借鉴思想。
何谓熟悉了项目
一个项目,它的存在就是为了解决问题,那么熟悉项目就是,了解他能解决什么问题。
那么就需要向这个 项目提问--发起请求。再看我们能得到什么样的回答--响应。
那么我们能提什么问题呢?比如,Android APP问:现在手机手机壳是什么颜色?我要根据这个颜色变换壁纸。显然向项目提出这样的我问题,项目是不能回答的。
那么我们得到了什么回答(响应)呢,我得到了它返回给我的参数。哦不仅仅是这些,这背后它查阅了什么数据,或者更改了什么数据,还给其他项目发送了请求,或者消息,这都是这项目的响应。
所以熟悉项目我们要知道:
- 可以解决什么问题
- 解决问题过程中做了什么?
把项目当黑盒
这里我们抽象一下,参考 [冯·诺伊曼结构]
![3308a4e3b0c94c0c652d05ba5b72b1e5.png](https://img-blog.csdnimg.cn/img_convert/3308a4e3b0c94c0c652d05ba5b72b1e5.png)
冯·诺伊曼结构-百度百科图
不论我们的http服务,Api服务,Rpc服务,都可以抽象成如上模型。
http服务的输入就是`http请求`,运算器是`php-fpm`程序,控制其表现的是`php`代码,储存是磁盘,内存,或是redis,输出是`http响应`。
Rpc服务的输入就是`TCP`报文, 运算器是`php`常驻程序。
MySQL服务也能这样抽象,输入是MySQL格式编码的`TCP`报文,