如何更快的了解新项目

​屎山应对指南:怎么快速上手一个自己不熟的新项目? ​ 对于身在职场的程序员们来说,骑驴找马,加薪跳槽可能已经是家常便饭。 而跳槽后将面对的第一个难题,就是要面对屎山。 哦不,我是说:快速上手自己不熟的新项目。 大部分程序员,在面对这种情况,通常有两种选择。 要么避其锋芒——修修补补边缘功能,避免触及核心代码,进而惨被屎山教做人。 要么坐以待毙——赶鸭子上架,周一入职,周二上线,周三事故通报,周四last day+知无不言…… 阅读详情

如何更快的了解新项目

一、对于新建的项目

1.1 软件需求规格说明书(SRS)

SRS(Software Requirements Specification), 软件需求说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。

具体内容详情百度

1.2 软件项目概要设计文档

使用模块化方法、功能分解方法

1.3 软件详细设计说明书

1.4 软件详细设计与实现

1.4.1 开发环境
1.4.2 系统总体结构设计
1.4.3 系统流程逻辑设计
1.4.4 数据库表设计

二、对于引入的项目

在这之前,我一直学习的是 SSM 框架的内容。MVC 的设计模式。

2.1、了解项目的目录结构。

  1. 了解项目的目录,区分出来是什么框架。
  • 只要了解各个项目结构的特点就能够知道使用了什么样的框架。因为是引入的项目,对于之前的项目开发者,他对文件结构肯定有自己的一套想法,所以要分析清楚每一个文件夹的主要作用。最好记录下每一个文件夹下面的文件的主要作用,可以通过目录树注释的方法,提醒自己,让自己对引入的项目一目了然。

2.2、了解文件命名特点。

项目的文件命名一定是有规范的。

  1. 根据文件夹来命名。
  2. 根据文件的命名,直接根据类的名称来命名。
  3. 根据文件的作用命名。
  4. 根据项目模块命名。

2.3、了解代码处理过程。

  1. 基本的框架。
  • 如果在 第一部分:了解项目的目录结构中认识到了某种框架的话,可以根据配置文件、入口文件、运行策略,一步一步的深入。
  1. 基本的设计模式。
  • 还要的项目使用了一些设计模式,还应该去了解一下设计模式,比如说 MVC设计模式。
  1. 了解项目的入口。
  • 一般的项目都是有入口文件的,index.html 或者 index.php 、index.jsp 等。看懂入口文件代码,不要轻易放弃。

2.4、在了解项目整体架构后,我项目添加一些新功能。

  • 建议:根据文件结构、文件命名规范,添加一个新的类、新的方法,添加一个新的页面。最后通过输入相应的 URL 访问数据,如果成功显示你想要的信息的话,那么就说明对这个项目有了初步的认识。
作为一个测试如何快速熟悉新项目 (what)对于测试来说,从产品的角度去思考熟悉产品对于快速熟悉测试系统的业务流程是很有必要的。 (why)在如今敏捷开发及迭代快速开发模式下。对测试的效率有着越来越高的要求,因此可以做以下操作: 工作第一天,一定要抽出一点时间,把自己当成感受公司的产品,这样可以快速了解产品的核心功能点。 了解公司的产品研发管理流程,产品测试的流程 如果有交接工作的测试同行,要全之前所有的功能需求文档、效果图、测试用例,测试报告、测试计划等,了解产品的历史版本,以及从测试用例的编写情况。这些文档如果在工作中,. 阅读详情

相关推荐

开发板的使用

一、开发板使用学习大纲。 1、开发板组成、核心板资源,底板资源。 2、开发板连接、调试工具、串口参数配置。 3、开发板启动过程。 4、文件传输 1)使用串口传输。 上传/下载 2)使用网口传输。 上传/下载 5、临时/永久配置开发板IP地址。 6、开发板启动脚本。 二、开发板的组成。 核心板: CPU处理器: 芯片:S5P6818(三星) 内核: ARM cortex-A53 -> 八核处理器 运行内存:512MB*2=1G nandflash:4G 底板: 电源线:5V 串口...

qq_45633736的博客 2659

怎么快速了解一个新的项目

很多新人进入一家新公司后,最头疼的就是如何快速了解公司的业务和项目架构。 因为文档很少,没有文档,或者是文档严重落伍, 根本没法看;如果你碰到一个特别热心的老员工,事无巨细地给你讲,随时在你身边答疑解惑, 那简直是天大的好运气, 现实是大家都很忙,没人给你讲解。 很快就要深入项目做开发了,怎么办呢? 我在加入新公司后,就遇到了悲催的情况。但是在一个多月时间里,我靠自己的力量熟悉了大概十个项目,总结了一些方法,分享给大家。 这里强调一点,我的策略是大体了解整个业务线上的所有项目,大概摸清楚每个项目都是干嘛的,

weixin_42227661的博客 4676

Jenkins+docker 微服务实现自动化部署安装和部署过程

本文详细介绍了如何使用Docker部署Jenkins自动化服务器。主要内容包括:1)拉取Jenkins官方或BlueOcean镜像;2)创建容器并配置端口映射、数据卷挂载;3)设置防火墙规则;4)配置清华大学镜像加速;5)安装必要插件;6)SSH密钥配置;7)构建触发器设置;8)编写自动化构建脚本。通过Docker部署Jenkins可以简化安装流程,确保环境一致性,并利用容器特性实现快速启动和管理。文章提供了完整的配置步骤和注意事项,帮助用户快速搭建CI/CD环境。

qq_33665793的博客 1687

如何快速熟悉一个新项目

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33696822的博客 2210

Concentration Inequality(集中不等式)更新版

欢迎来我博客 https://wyue.name/2020/04/17/1/阅读这一篇博文 转载前请联系我,联系方式请见我博客 https://wyue.name/ Concentration inequality 刻画了一组随机变量的和(或者样本平均数)与其期望值的偏离程度,在算法收敛性分析过程中是非常有用的一类不等式。 这次主要总结一下最近一段时间遇到的集中不等式,不仅是不等式形式,...

Yue的博客 4554

芒果YOLOv8改进72:动态标签分配策略篇之ATSS:自适应训练样本选择Adaptive Training Sample Selection策略

YOLOv8代码实践|ATSS标签分配策略改进🥭

包括YOLOv5、YOLOv7、YOLOv8等模型改进 2909

JAVA程序员如何快速熟悉新项目?

JAVA程序员如何快速熟悉新项目

qqrrjj2011的博客 3115

nvidia系列教程-AGX-Orin系统刷机及备份

NVIDIA AGX Orin 是一款高性能的嵌入式计算平台,专为边缘计算和 AI 应用而设计。为了确保系统的稳定性和适应不同的应用场景,用户可能需要对 AGX Orin 进行系统刷机和备份操作。本文将详细介绍如何完成这些操作,帮助您更好地管理和维护 AGX Orin 设备。通过以上步骤,您可以成功地为 NVIDIA AGX Orin 刷写系统并创建备份。这些操作不仅能帮助您保持系统的更新和安全,还能在遇到问题时快速恢复系统。

flypig has a dream! 3328

刚到新公司,如何快速掌握项目的情况

如果你是一名刚去新公司的项目经理,临时接手了一个中途项目,可能之前的项目经理准备交接,刚好你来了,那么为了快速的了解项目情况,你有必要了解以下内容: 一、原项目调查 前项目经理目前手里有哪几个项目?目前哪些是在建设的重点项目? 项目是否有必须依据的法律法规、企业或者行业标准必须遵循? 项目的背景是什么?项目是不是一个另一个项目的子项目或者父项目? 该项目生产几套软件产品? 项目目前的参与人员有多少,分别在项目过程中是哪些角色?比如项目经理、设计工程师、开发人员、测试工程师、技术支持...

scbkjf的专栏 1457

【Py/Java/C++/C/JS/Go六种语言OD独家2024E卷真题】20天拿下华为OD笔试之【固定滑窗】2024E-考勤信息【欧弟算法】全网注释最详细分类最全的华为OD真题题解

可上练习华子OD、大厂真题绿色聊天软件戳oj1441了解算法冲刺训练(备注【优快云】否则不通过)

weixin_48157259的博客 619

安装 miniconda linux

安装 miniconda linux

jacke121的专栏 1万+

(web开发)更快的了解新项目

一个大项目不是一下就能够清楚的明白的,必须要有一定的技巧和方法去了解。我并不知道其他大侠是如何了解的,我这里只是总结一下个人的认识想法,希望大家不要吐槽。 1、首先必须了解项目的目录结构:     拿到一个项目,首先必须是要了解这个项目的文件结构,有时候通过文件结构我们就能够清楚的明白这个项目使用什么框架。比如说thinkphp、struct、django、这些框架的文件目录结

danhuang 1159

【HALCON工业视觉应用探索】02. C# + Halcon铸件毛刺机器人打磨引导:点云处理从实验室到工业现场的全流程落地

摘要:铸件毛刺的自动化打磨是机械制造领域的重要难题,其随机性(高度0.1-3mm)和复杂工况导致人工打磨效率低(3分钟/件)、工伤率高。本文基于Halcon 24.11与.NET 6,构建了一套点云处理方案:通过线激光扫描仪获取三维点云,经预处理、毛刺检测、路径规划三大模块,引导机器人完成打磨。虚拟实验测试显示,对高度>1mm的毛刺检出率达100%,定位误差±0.08mm,但工业现场受油污、粉尘影响,性能降至检出率68-75%、处理时间>45秒。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1128

如何快速上手一个新项目

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33973609的博客 115

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

程序员如何快速上手一个新项目?

不要事无巨细地请教老同学,要有Owner的心态 淘系技术部 - 淘系架构 - 光锥 在接手一个自己不太熟悉的新项目时,可以从以下几点思考以便快速熟悉系统。 熟悉业务 用户是谁、提供的核心功能是什么、系统在上下游的地位是什么。 不涉及具体的实现细节,通过核心功能产品层面的熟悉,能够对项目有一个全局性把握。 熟悉部署结构 最新的代码在哪,测试环境如何搭建,监控告警有哪些,线上如何部署,线上机器分布情况等等,通过自己亲自发布一次代码,观察哪些指标,了解整体的发布流程以及部署情况。 从问题中学习

数据库技术 1113

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

如何更快熟悉一个新项目

需求、视觉稿、交互稿都是针对前端的,有这些更规范一点,帮助你更好的了解基本功能。当然,没有也要接受 前端对信息处理逻辑、后端逻辑、数据库变化才是更应该注重的地方 我目前的情况就是给你新项目,没有说明文档更没有人给你交接什么,很头痛。下面我根据自己的经验(也许有不足的地方欢迎提出)说下这种情况如何更快熟悉尽量全的掌握各功能逻辑 第一步...

qq_27424375的博客 345

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

快速融入新项目开发

进入一家新公司初次接触一个新项目应该从哪里入手呢?怎么做才能快速的去熟悉项目并顺利进入开发工作?首先去熟悉项目大概情况,包括:项目的背景、项目业务流程、项目架构等。然后根据自己所分配的业务模块,去理解它的需求及设计。了解的差不多了就可以进入模块开发,参考同类型的业务模块尝试动手开发。

cyt涛的博客 971

编写更快的托管代码:了解开销情况

编写更快的托管代码:了解开销情况点击此处阅读全文

769

遇到一个新项目怎么办,不要慌,乘风破浪!

前言: 最近《乘风破浪的姐姐们》正在热播中,这档主打“30+”女性成长的节目让观众们感受到了即使年龄已经不再年轻,但是仍然可以乘风破浪! 但是在生活中我们也会碰到很多棘手的事情,比如很多测试同学刚接手一个新项目的时候,不知道怎么着手,特别是遇到一些比较特殊的行业,接触的比较少,一大串的专业名词看不懂记不住,肿么办呢? 一、首先知道项目是做什么的 接手一个新项目时,你肯定要了解到这个项目途径是什么?是后台管理还是面向用户的,项目的客户、受众群体是谁,站在他们的角度对整个项目测试。 很多同学在面试..

weixin_48048408的博客 548

对项目的了解几乎为零?如何快速上手一个新项目

ITOO项目3.1截止昨天已经结束,做3.1的这一个星期从刚开始对我负责的模块的一无所知,到后几天的算是“游 刃有余”吧,感触颇多。 3.1规定的是一个星期完成的,我是在3.1开始的前一天加入成绩管理系统的。刚上手的前两天可以说是那个纠结 啊,只有未解决的问题,没有关于关于模块的文档,而且之前负责该模块的又不在,一时间我是“丈二的和尚,摸不 着头脑”啊,于是下载下来学生端模块,开始顺着代码来一步一步往下顺。总共就7天,需要解决旧问题,完成新问 题,而且软考有些天没有敲代码了。可能自己给自己设定了压力

Aldeo 5958

梦中飞得更快的办法

  相信绝大多数人都做过梦,自己在天上飞。这个具体意思,因具体梦的不同而不同。   那么,有没有办法在梦里飞得更快?有。具体办法就是:   手臂伸直,与身体呈30度角。   有人问,汝试过?吾试过,确实快了。当然,绝大多数人是无法在梦里想起这个的。哈哈。 ...

柳鲲鹏 720

更快的Maven来了

Maven经常被拿来和Gradle做对比,最大的劣势之一就是Maven构建慢,Gradle比Maven构建速度快2到10倍,而如今Maven也可以更快了。Apache Maven团队从Gradle和Takari(Maven生命周期优化器)中获得灵感对Maven进行了强化,衍生出maven-mvnd项目,今天带你来尝尝鲜。 简单介绍 mvnd并不是对Maven进行了重构,而是内置了Maven。它实际上是一个或者多个Maven守护进程,用来执行实际的构建服务。一个守护进程实例可以为来自mvnd客户端的...

SharingOfficer的博客 497

用 PyPy 让你的 Python 代码运行得更快!

Python是开发人员中最常用的编程语言之一,但它有一定的局限性。例如,对于某些应用程序而言,它的运行速度可能比其它语言低100倍。这就是为什么当Python的运行速度成为用户瓶颈后,许...

Python中文社区 6227
上一篇: AndroidStudio 安装及配置
下一篇: JavaScript 基础 与 JQuery 库
Roobert_Chao
博客等级 码龄9年 89粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值