大家好,我叫谢伟,是一名程序员。
最近比较忙,一方面是换工作,一方面是熟悉新的环境。一言难尽。
今天的主题:如何快速熟悉一个项目
之所以讲这个话题,主要是最近新入职,因为是创业公司,不像大公司里的节奏,给你时间学习,创业公司需要你快速的融入环境,快速的熟悉业务代码,快速的实现需求。坦率的讲,能力不足的时候会给你带来焦虑。
综合下来,当下,我还是喜欢创业型公司。
所以,我就遇到里这个问题,入职三天,第一天就开始分配任务,好在完成了需求,虽然需求不是很复杂。但是快速熟悉了项目,切入进了项目内。
我把自己的方法整理出来,希望对大家有帮助。
主要是后端代码为例
这一点主要说明的是,你应该要有些基础,写过些代码,不管是自己私底下接触,还是仿照别人的例子,你大概要熟悉一门编程语言,知道后端大概会接触些什么技术。
在这之前,你要会用一种类型的数据库,不需要精通,初级的知道CURD 其实都还OK,但是这样的水平可能会让你写的代码或者设计的业务比较不堪,所以,关于数据库尽量需要知道更多的知识,比如数据库的三大范式,索引、外键、主键、数据库关联等
不管实际上你入手的项目是不是你熟悉的编程语言,至少你要熟悉一门编程语言,假如你要熟悉的项目的编程语言刚好是你会的,那么你熟悉起来当然是更得心应手了。假如不是你熟悉的编程语言,其实也都好OK,因为我见过许多程序员,编程语言都不是最重要的,只要熟悉了一门,这种技能迁移的能力,在程序员届实在是太常见了。
知道 http 请求的主要过程,知道 http 的动作。
看得懂API:方法、参数、响应值。
更高一点的需求,会用 swagger 编写 API
...
初级的后端技术就这些东西吧。
跑通代码意味着你大概能知道这个项目最后的结果是咋样的。
比如说这是一个后台管理系统,你可以看API 文档,大概知道提供哪些接口。
假如又提供了前端,那更好,你可以看看网站,网页点击点击,看看网络请求是调用的哪个API. 触发的动作是什么,响应又是什么。
跑通代码,你可能也可以看到,整体的部署流程是什么样的,比如如何部署的?容器?镜像?最后又是如何自动的部署到服务器上的?
假如代码没跑通,那么你可能依赖没搞好,或者设置没搞好,或者需要走的步骤你没执行?
总之,跑通代码很重要。
相同的道理,有时候,你使用某个开源项目,某个具体的用法文档上写的不是很清楚,这个时候有可能你需要看看开源项目的测试文件,有可能你只是摘抄几个测试文件中的函数,自己运行起来,再修修改改,然后你可能就搞懂了具体怎么用了。
跑通代码这一步,应该就已经会有下载第三方库的步骤了。
这些第三方库,不需要你使用的非常6, 你只需要知道如何使用即可。怎么知道如何使用?
1、看官方文档 2、看不懂就Google 搜一搜能看懂的例子,但只是作为辅助手段,最主要的还是文档 3、拷贝文档例子,自己实验下,发现问题,有时候你看到的以为会,其实不一定真会,让代码跑起来很重要 4、换个例子,结合自己的历史经验和现有的文档,看看能不能换个例子再实现一下,能不能更优化了你之前的想法,提供了更好的解决方案
项目结构,讲究的是如何组织的代码层级结构,体现在最终的效果上就是代码文件是如何组织的了。
我之前非常崇尚领域驱动 DDD
项目的组织也一度按照的是 DDD 的指导思想:
不过当然不是所有的项目都和你想象的一样,受历史的原因,项目的组织结构往往受第一个写这个代码的人的影响,一定程度上反应了第一个写这份代码的人的编程风格。
好,这里当然不是讲述个人编程风格问题。
好的项目组织:
这是第一印象,什么叫好看呢?项目组织清晰,一看就知道,哪部分是干什么的,实现了什么样的功能。
特别是作为一个初始阶段的项目,会频繁变动,这个时候拓展性、可维护性的项目一定会给你解决掉诸多的问题。
即相互之间的依赖少,即可实现功能。低耦合性对于不断变更的需求的初始项目来说,爽的一笔。
总之,就算你不熟悉具体的代码内实现什么样的功能,仅仅看项目结构,你大概也能猜出来这个文件内的代码大概是实现什么。对我来说,这就是好的项目组织结构。
假如遇到的项目组织,确实不是上文讲的那么优雅,那怎么办?
好,这节主要是梳理项目的组织,知道哪块负责什么任务。
可能光看还不容易明白,不利于思维的呈现。那怎么办?
假如还是不懂,那怎么办?
兄dei, 问问会的人罗。
面子是最不值钱的玩意,不懂就问
简单的说
好,本节大概这样,最重要的是第五条。
再会,我是谢伟。