作为程序员,如何快速上手项目

news2024/11/24 15:01:07

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~

本节从“道、术、器”三个方面为大家分享程序员如何快速上手项目。

1

26ebd2126bae5493983670fc24730b2a.png

道,就是道理、规律,万事万物都有道,软件开发也有道。

软件开发的本质是把明确的业务需求转换为可靠的系统实现,就是把现实生活中的事物转换成程序中的对象,根据业务对象建立数据模型,根据业务流程和逻辑制定出程序的流程和规则,通过一种或者几种程序语言,结合一些中间件形式特有的软件系统,让软件系统来实现公司的业务目标。

现在网络上流行一句话:“面试造火箭,工作拧螺丝”。大家都在吐槽说大材小用,觉得工作简单的人,其实是说明你做的只是重复性的工作,天天面对业务逻辑,增删改查,如此反复,大家都做烦了。从这个层面也可以说明大家入行久了,会觉得软件开发就是增删改查。

其实,无论在哪个公司,无论他们使用什么技术,程序员进去以后就是把其公司的业务需求,通过增删改查这个对数据的基本操作,按照业务流程和逻辑通过接口调用,让不同业务模块进行数据通信,以达到实现业务需求的目的。

随着业务的发展,系统会变得复杂,人们就会进行架构优化,使系统进行解耦,构建组件和服务,持续优化系统性能,增强系统的可用性、可靠性、易用性。

也可以用一个公式来定义程序的本质:程序 = 数据 + 算法,这里的算法可以理解为业务逻辑,流程和规则以及数据之外的一切软件技术。

不管是多么复杂的系统,其实都是数据和业务逻辑组合起来,用一些技术手段解决系统中遇到的问题。

1、数据层面

SQL数据库:MySQL ,Oracle

nosql数据库:Redis,MongoDB,Memcache

缓存:本地内存,分布式缓存

文件:ftp

2、算法层面

前端技术:HTML,CSS,JavaScript,jQuery,ajax

Java技术:Java 基础,J2EE,多线程,JVM 调优

Java 框架技术:Spring,SpringMVC,Struts2,Hibernate,Mybatis

系统交互:HTTP,HTTPS,WebService,Socket,XML,json

服务器:Linux,tomcat

互联网技术:微服务,消息队列,分布式

系统架构:设计模式,高并发,高可用

无论在哪家公司,软件开发的本质就是上面这些东西,无论是职场新人还是跳槽人士掌握了这些,就掌握了软件开发的道。

2

48a215855aa50f0a180154a4174819c4.png

掌握了软件开发的道之后,上手一个项目肯定不是问题,但是不一定就能快速上手一个项目,快速上手重点在于速度和效率,那么快速上手,势必有它的方式和方法,也就是我们这里说的术。

在这里为大家分享我总结的快速上手一个项目的四要术,如下图:

d0f199707d37c59c6980d11e61109135.png

下面我们来聊一聊这开发四要术是什么意思。

1、代码

获取代码

作为技术开发人员,我们的工作内容就是写代码,因此到了新公司,获取到代码就是我们优先要做的事情。

不同的公司入职后的流程不一样,有的公司入职后直接就把代码给到你了,有的公司流程比较完善,需要走权限分配流程,入职指导啥的。不管是什么情况,到了公司,我们想快速上手项目,首先就是要拿到代码。

如果进入公司几天了,还没有拿到代码权限,此时你应该做的是想办法获取到代码。

提供一些思路:找你的领导要,如果不行,找你的同事拷贝,你可以用积极的态度去争取,不要怕被怼,总会有人愿意提供给你想要的东西。

拿到代码以后,如果是给了你账号和权限,那么你可以用版本管理工具导入到你的开发工具里,如果是从同事那里拷贝的,你可以拷贝到你的工作空间,并导入到你的开发工具里。

研究代码

拿到代码以后,我们下一步要做的就是研究代码,搞清楚这个代码的架构以及风格。

此时不要直接打开一个代码文件,从头开始读,这肯定不行,我们首先要做的就是了解这个代码工程是怎么分层的,分为多少模块,这个主要是通过代码的包结构来判断。通常来说,会有业务包,公共包,基础工具包,常量包,数据结构包等。

接下来要看的是资源包,这里面一般放的是各种配置文件,通过这些配置文件我们可以来判断代码使用的是什么框架和技术。

接下来从业务包里找个看起来简单一点的的业务,比如数据查询类的,关键词一般会是 get,query,search等,从简单的业务入手,看下相关的代码,结合代码的注释,快速了解代码实现的风格和技术细节。
运行代码

经过上面的代码研究,基本上我们对代码工程会有一个基本的认识,下一步就是让代码运行起来,自己可以参考一个业务代码,自己模拟一个需求,用类似的代码风格实现这个需求,目的是为了快速适应新公司的开发技术和习惯。

在这里,如果遇到代码报错,运行不起来,不要自己蒙头解决,遇到问题立马请求周围的同事帮忙解决,不用担心别人是不是觉得自己能力不行,这个不是重点,因为每个公司都可能用自己特有的技术,也有一些小的不为人知的配置或者技术点,让老同事帮忙解决并记住这些细节,会大大地增加你的效率。

切记没有必要把时间浪费在让代码运行起来这个点上。

2、数据

数据主要指数据库,因为系统里的数据一般都会持久化存储在数据库里。

获取数据库

有的公司数据库是运维人员维护的,有的公司是技术维护的,但是无论谁来维护数据库,一般情况生产数据库的权限不会提供出来。

因此,这里的获取数据库,可以理解为获取测试数据库的权限,或者是生产数据库的只读用户。

研究数据库

获取到数据库以后,我们首先要做的就是了解系统的数据模型,表结构以及数据存储格式。

这里分别从 Oracle 和 MySQL 来为大家介绍下,通过关键表和指令了解数据库的模型。

通过上述的方法,我们可以快速地了解数据库的模型,包括有几张表,表里都有什么列,查询表里的数据,通过这些数据结合代码基本上能快速地了解一个系统。

  • Oracle

    USER_TABLES 可查询当前用户的所有表:

    SELECT * FROM USER_TABLES;

    USER_TAB_COLUMNS 可查询表中的列:

    SELECT * FROM USER_TAB_COLUMNS;

  • MySQL

    显示当前数据库中所有表的名称:

    SHOW TABLES;

    显示某个表的字段:

    desc 表名;

  • SQL

    查询具体的表:

    SELECT * FROM 表名

3、文档

收集文档

一般入职后,会有入职资料发给大家,里面可能有技术文档,也可能是公司的一些开发规范或者员工守则。

如果没有技术文档,此时,可以去找周围的同事了解一下,公司有没有资料库,有没有想过需求,技术文档,有的话,可以要一些过来。

文档一般会分为开发规范,技术资料,需求文档,设计文档,数据库文档,测试用例,部署文档等。

阅读文档

文档可能会有很多,一个一个地读是非常浪费时间的,因此我建议大家首先要读的就是开发规范,这里面可能包含公司的开发流程,通过这个你可以快速了解项目的开发流程以及需要遵守的规范,不至于工作中出错。

另一个大家要读的就是需求文档和设计文档,通过需求文档和设计文档结合代码可以快速的了解项目,以便你快速上手项目。

最后利用业余时间看看那些其他你觉得有用的文档,以便了解公司和项目更多的细节。

4、业务

业务这个部分在下一节”作为新人,如何快速了解公司的业务“进行详细说明,这里不再赘述。

3

122ef1214f9534367c923470a5ffc28c.png

器,在这里指的就是工具,“工欲善其事,必先利其器”,快速上手项目,势必也需要一些好的工具。

这里给大家介绍一些开发常用的提高开发效率的工具。

IDE:IntelliJ IDEA,Eclipse,sublime

记事本工具:UltraEdit,Editplus

源码管理构建工具:TortoiseSVN,Git,maven

数据库工具:PLSQL Developer,navicat,SQLyog

设计工具:PowerDesigner,Visio,XMind

其它工具:Xshell,Xftp,BeyondCompare,JMeter,Postman

熟练使用各种工具,尤其是 IDE 的各种快捷键可以极大地提高工作的效率,有关以上工具的使用技巧,网上有很多资料,可以去了解学习。

后续为大家介绍,作为新人如何快速了解公司的业务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/989428.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

strerror函数

目录 strerror 函数介绍&#xff1a; 举例&#xff1a; 使用案例&#xff1a; 优化&#xff1a; perror&#xff1a; strerror 函数介绍&#xff1a; 函数声明&#xff1a; char * strerror ( int errnum );头 文 件&#xff1a;#include <string.h>返 回 值&a…

基于 SpringBoot 的智慧养老平台,附源码、教程

文章目录 1.研究背景2. 技术栈3.系统分析4系统设计4.1 软件功能模块设计4.2数据库设计与实现 5系统详细设计5.1系统功能模块5.2后台登录功能5.2.1管理员功能 源码下载地址 1.研究背景 困扰管理层的许多问题当中,智慧养老平台一定是养老平台不敢忽视的一块。但是管理好智慧养老…

一.使用qt creator 设计显示GUI

一.安装qt creator 二.创建项目 文件-》新建项目 三.使用设计 可以直接使用鼠标拖拽 四.转换为py文件 # from123.py 为导出 py文件的文件名 form.ui 为 qt creator创造的 ui 文件 pyuic5 -o x:\xxx\from123.py form.ui五.显示GUI from PyQt5.QtWidgets import * fr…

【C进阶】指针(二)

六、函数指针数组 数组是一个存放相同类型数据的存储空间&#xff0c;我们已经学习了指针数组 eg&#xff1a; int *arr[10] //整形指针数组-数组-存放的是整形指针 char *arr[5] //字符指针数组-数组-存放的是字符指针 那么把函数的地址存到一个数组中&#xff0…

2023国赛A题保姆级思路代码:定日镜场的优化设计

A题是一套传统的机理分析加规划求解题&#xff0c;首先我们要根据每个月21号的特定时间点建立一个太阳角度框架&#xff0c;根据题目所给出的公式计算效率&#xff0c;还有输出的热功率&#xff0c;然后根据月份求解各种效率&#xff0c;再把年份进行汇总&#xff0c;二三题都是…

阿里国际、亚马逊等跨境电商平台做测评怎么避免踩坑?

由于跨境电商的卖家越来越多&#xff0c;测评逐渐成为众多卖家的关注焦点&#xff0c;在各个跨境电商平台上&#xff0c;随着店铺数量的增加&#xff0c;同一商品之间的竞争也日益激烈&#xff0c;不同于国内的电商平台&#xff0c;跨境电商平台很少提供与卖家客服进行沟通的机…

论文简读 LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

论文地址&#xff1a;https://arxiv.org/pdf/2106.09685.pdf 项目地址&#xff1a;https://github.com/microsoft/LoRA 全文翻译地址&#xff1a;https://zhuanlan.zhihu.com/p/611557340 本来想自行翻译的&#xff0c;但最近没有空 1、关键凝练 1.1 LORA是什么&#xff1f; …

序列号读取

1.序列号读取 1.1 应用示例目的与思路 获取光盘的外接圆&#xff1b;然后进行极坐标变换&#xff0c;获取字符所在的区域&#xff1b;最后进行字符分割、识别及其在原图上显示。 1.2 应用示例相关算子介绍 (1) mean_image(Image : ImageMean : MaskWidth, MaskHeight : ) …

SpringMVC的整合完成CRUD(增删改查)

SpringMVC是一种基于Java的Web框架&#xff0c;它是Spring框架的一部分。SpringMVC通过使用MVC&#xff08;Model-View-Controller&#xff09;设计模式来组织和管理Web应用程序的开发。 在SpringMVC中&#xff0c;Model代表数据模型&#xff0c;View代表用户界面&#xff0c;C…

2023年证券投资咨询行业研究报告

第一章 概况 1.1 定义 证券投资咨询业务是指取得监管部门颁发的相关资格的机构及其咨询人员为证券投资者或客户提供证券投资的相关信息、分析、预测或建议&#xff0c;并直接或间接收取服务费用的活动。 根据服务对象的不同&#xff0c;证券投资咨询业务可以分为&#xff1a…

2023年股票大宗减持研究报告

第一章 股票大宗减持概述 1.1 概念 大宗减持是指通过大宗交易的方式进行减持&#xff0c;即达到规定的最低限额的证券单笔买卖申报&#xff0c;买卖双方经过协议达成一致并经交易所确定成交的证券交易&#xff0c;其中A股单笔交易数量在30万股&#xff08;含&#xff09;以上…

JetBrains出品的IDE自动补全和提示文档设置

如题下图设置前景色和背景色&#xff1a; 效果如下图&#xff0c;标识1是Completion&#xff0c;标识2是Documentation&#xff1a;

人工智能应用加速落地,推动券商业务+IT双升级|爱分析报告

券商数字化转型已驶入快车道&#xff0c;多部政策文件相继发布&#xff0c;要求提升金融科技治理水平&#xff0c;加大科技资金投入&#xff0c;深化数字化转型。 与此同时&#xff0c;受宏观经济环境下行影响&#xff0c;券商同质化竞争加剧&#xff0c;传统经纪业务增长承压…

怎么把word文档转换成pdf?收藏这几个好方法

怎么把word文档转换成pdf&#xff1f;将Word文档转换为PDF格式是非常有用的&#xff0c;因为它可以确保文档的格式不会因为设备和软件的不同而发生变化&#xff0c;而且可以保护文档不被他人修改或篡改。此外&#xff0c;PDF文档通常比Word文档更小&#xff0c;更适合进行分享和…

Unity中Shader的屏幕抓取 GrabPass

文章目录 前言一、抓取1、抓取指令2、在使用抓取的屏幕前&#xff0c;需要像使用属性一样定义一下,_GrabTexture这个名字是Unity定义好的 前言 Unity中Shader的屏幕抓取 GrabPass 一、抓取 1、抓取指令 屏幕的抓取需要使用一个Pass GrabPass{} GrabPass{“NAME”} 2、在使用…

OpenCV4.8 GPU版本CMake编译详细步骤 与CUDA代码演示

导 读 本文将详细介绍如何使用CMake编译OpenCV4.8 CUDA版本并给出Demo演示&#xff0c;方便大家学习使用。 CMake编译详细步骤 废话不多说&#xff0c;直接进入正题&#xff01; 【1】我使用的工具版本VS2017 CMake3.18.2 OpenCV4.8.0 CUDA11.2 一般情况下VS版本≥VS2017均…

ICIF2023化工展首亮相,宏工科技解决方案助力制造升级

ICIF China 2023中国国际化工展览会于9月4日-6日在上海新国际博览中心举办。宏工科技携化工物料处理一站式解决方案首次亮相&#xff0c;同化工行业全产业链共叙物料处理自动化未来。 宏工科技是一家提供物料处理自动化设备、系统与服务的国家级高新技术企业&#xff0c;业务覆…

Java多线程4种拒绝策略

文章目录 一、简介二、AbortPolicy拒绝策略A. 概述B. 拒绝策略实现原理C. 应用场景D. 使用示例 三、CallerRunsPolicy拒绝策略A. 概述B. 拒绝策略实现原理C. 应用场景D. 使用示例 四、DiscardPolicy拒绝策略A. 概述B. 拒绝策略实现原理C. 应用场景D. 使用示例 五、DiscardOldes…

966SEO扫地僧站群·万能HTML模板[V1.9.1]

扫地僧站群万能HTML模板是一款站点管理软件,其主要特点是可以将原始的html模板放入程序中,无需编写任何标签,程序会全自动替换处理,从而快速构建出一个完整的网站,这种模式相对于传统的网站建设方式更加快速、简单,同时可以大幅度降低网站建设的成本和难度.服务器及域名量的配置…

【Linux】进程优先级,环境变量,进程地址空间

文章目录 1.进程优先级基本概念查看系统进程PRI and NIPRI vs NI修改进程优先级的命令其他概念 2. 环境变量基本概念查看环境变量方法常见环境变量测试PATH环境变量相关的命令环境变量的组织方式通过代码如何获取环境变量通过系统调用获取或设置环境变量环境变量通常是具有全局…