1分钟,带你了解一个项目的开发周期

利用LECPServer快速5分钟开发一个免费的SCADA系统 SCADA 数据采集系统,简称数采系统,在工业控制和工业自动化领域,都是一个必不可少的系统工具;传统的数采系统,一般会使用 Labview 软件,通过与PLC和控制系统交互,获得数据,然后再写入数据库,最后通过C#或者VB编写的前端页面,对数据进行展示;稍微理想化的方式是通过组态软件,例如组态王,进行数据采集,然后再通过组态王的报表工具进行展示。 这两组方案都有弊端,第一组方案,由于Labview自带的报表组件简直惨不忍睹,需要使用多个编程平台混合编程,包括Labview和C#等混合编写的方式,需要的开发 阅读详情

平台奖励创作,可能会升级VIP文章,可以移步我的公众号:【编程朝花夕拾】,且可获取首发内容。

01 引言

原本打算分享一篇关于自定MCP Server的文章的,结果接到紧急项目之后,就搁置了。

转身投入紧急项目,开始设计、评审、开发等一系列操作,借此机会带你从程序员视角一起走进程序员的世界,从需求串讲、需求分析到开发设计、评审、代码落地、测试以及发布,了解一下程序员角度的项目周期。

02 需求串讲

需求串讲顾名思义就是新需求的讲解,从需求背景、由来以及需要做什么,打算做到成什么样子。可以认为就是一个蓝图,具体能不能落地实现,需要项目组成员讨论后才知道。

需求串讲过程中,应该是大家针对产品不合理要求、潜在的风险等提出异议。但是现实中,可能只会落在真正做开发设计的那个人身上。因为他不问、后面的设计就无法落地,除非已经完全理解。其他人可能就是顺便听听,在后面开发过程中不理解的只需要问开发设计者或者产品即可。

需求最怕的是迭代需求,然而也是我们经常面临的事情。因为迭代需求不仅要看考虑原有的逻辑是否兼容新需求,新需求能不能复用原逻辑。

如果是熟悉老业务的产品+熟悉老业务的开发+熟悉老业务的测试,整个流程就会变的简单很多。大家只需要一个眼神一个动作就知道合不合理、要修改的范围等,可以说大家都运筹帷幄。无论是沟通成本还是开发、测试都会变得极为高效。但凡有一个不熟悉,沟通成本就是增加。倘若都不熟悉,那将面临灾难。

03 开发设计

开发设计,就是要拆解需求,深入理解整个流程、涉及的功能点以及页面。包括库表的设计、编码的部分规范、以及人员分工等。

我最喜欢的就是画流程图,因为流程图可以清楚的表达每一个节点需要做什么。流程图也是帮助大家理解流程的重要工具、至少可以直接带入门要做什么、具体涉及的节点以及涉及的业务系统。下面是一个跨多系统的流程图:

库表的设计,主要用来记录用户输入、操作的内容等,方便后续的使用和查看。也是编码的重要组成部分。

开发设计好不好,取决于项目开发组成员能不能快速理解。如果一个新手也能快速上手,那就证明你的开发设计很完美。

04 开发设计评审

开发设计评审,就是需要项目组成员一起开会。由开发设计人员,讲解自己的设计思路、以及落地逻辑。其他人针对理解错误的、设计不合理的问题,提出疑问,然后达成统一的意见。

评审最怕的就是大家一言不发,会议很顺利,但是后续可能会有很大的障碍。最终落地的结果不是产品想要的,又要返工。这种情况是每个人都不想碰上的。

05 项目开发

项目开发,就是程序员的主场。将自然语言的文字,转化成代码语言,让计算机理解。

这是每个程序员每天都在面对的阶段。这个阶段中,程序员按照自己的想法编码,尽情的展示自己的代码风格以及逻辑才能。就像一个黑盒一样,不管里面是怎么实现的,最终的结果只要给你一个指令,结果符合预期即可。

06 项目测试

项目测试,是测试人员的主场。开发难免会进入思维误区,测试人员的介入,从不同的角度,验证代码的可行性以及健壮性。

这个阶段,程序员和测试员最容易争吵的地方。因为测试专门要提Bug,有些Bug会有异议,可能不是程序员产生的,但是又是真实存在的。程序员不太愿意改、测试有一定让改,这也就是「矛盾」激发的导火索。

07 项目发布

项目发布阶段,就是已经经历了一场血雨腥风之后的平静了,基本没有什么Bug存在,发布之后,此项目就暂时告一段落了。

发布生产环境,给用户使用,这个阶段的是运维团队的主场。

08 小结

这个就是程序员开发项目的一个完整的周期,周期时间可长可短。你觉得项目周期中最感兴趣是哪个阶段,可以评论区留言讨论。

好了,今天就介绍到这里了。

小程序开发周期全解析:从功能复杂度到实战建议 小程序开发周期是衡量项目可行性的重要指标,其核心取决于功能复杂度与技术选型。从技术原理看,原生开发与跨端框架(如uni-app)的选型差异会导致20%-40%的工期波动,而WebSocket实时通信等关键技术模块往往需要5-7天专项开发。在工程实践中,电商类小程序通常需要4-8周完成核心功能(含支付系统对接),而展示型项目可通过UI框架(如Vant Weapp)将周期压缩至1-3周。通过137个实战案例验证,需求变更与第三方接口问题是延误主因,采用MVP策略可节省40%初期开发时间。合理的测试分配(占总工期 阅读详情

相关推荐

一个完整的软件开发周期

一个完整的转件开发周期,可以帮助你更加了解企业的开发环境,早日走到工作岗位

怎样估算软件项目周期-代码行估算法

项目是指以一定的成本在一定时间内取得预期收益的系列活动。项目的“生命期”是管理项目的重要指标,而对项目周期的估算则是管理项目的重要一环。本期“项目管理”介绍对软件项目周期进行估算的技巧。   估算是软件开发中很重要的一个环节...

cnpm89348的博客 667

项目周期方案模板

项目开发周期方案模板,可直接参考,复制使用。可附加开发流程

软件开发周期项目

软件产品开发周期一般由:规划,设计,实施,不乱和发布五个阶段构成, 每个阶段又都是重复的相互迭代的过程, 这个过程必要多方的合作找出最佳的实践过程. 第一阶段:规划(plan) 目标:规划软件的整体架构 各部门完成标准:  1.市场开发人员    衡量市场机遇提供市场机遇文件(mod)    定义用户需求提供市场需求文件(mrd)    认定主要用户案例user scenario

682

数字图像处理第九章笔记

目录一、腐蚀与膨胀1、腐蚀2、膨胀3、对偶性4、开操作与闭操作二、一些基本的形态学算法1、边界提取2、孔洞填充3、连通分量提取4、凸壳5、细化6、粗化7、骨架8、形态学重建三、灰度级形态学1、腐蚀和膨胀2、开运算和闭运算3、灰度级形态学算法 一、腐蚀与膨胀 1、腐蚀 腐蚀可以去除图像的某些部分。 2、膨胀 膨胀可以连接裂缝。 3、对偶性 膨胀和腐蚀彼此关于集合求补运算和反射运算是对偶的 4、开操作与闭操作 开操作:B对A先腐蚀,再进行膨胀 可以平滑物体轮廓,断开较窄的狭颈并消除较细的突出物。 闭操作

方悔读书迟 1375

TwinCAT 3 实战指南:从系统配置到高级运动控制

本文详细介绍了TwinCAT 3工业自动化控制平台的实战应用,从系统配置、PLC编程到EtherCAT总线配置和高级运动控制。通过倍福(Beckhoff)的TwinCAT 3平台,工程师可以高效实现复杂的工业自动化任务,包括运动控制、PLC编程等。文章还提供了常见问题排查和性能优化技巧,帮助用户提升系统稳定性和实时性。

weixin_30831529的博客 308

项目开发周期和项目管理

本文主要总结阐述目前经历的的开发周期和项目管理, 阅读大概12分钟 适合新手+项目管理新手+有经验进行自我总结 身为前端开发,目前在三家公司做过开发 两家上市公司+一家200人的小公司,这三家公司以下就简单简称A/B/C吧 A公司的开发流程 一个项目的生命周期 1、开发组长和产品商量开发人员(需要哪些人,大概工期) 2、产品建群发需求文档 3、开始需求会议(此时UI基本完成,再次确定难度和事件) 4、根据接口时间开始开发(一般前端在后端完成60%之后才开始) 5、到测试时间开始发布测试环境开始测试 .

qq_16546829的博客 3291

利用ENVI处理TIF文件,把多个tif整合到一个完整的tif,例如2003-2011年的tif整合到一个tif上。

利用ENVI处理TIF文件,把多个tif整合到一个完整的tif,例如2003-2011年的tif整合到一个tif上。

unique_sir的博客 1万+

6.项目人员及开发周期介绍

按照部门进行公司组织架构设计技术开发部项目经理 1人管控整个项目的开发进度进行部门和人员协调业务产品经理 1人负责业务产品设计网站,app产品设计产品的功能及页面布局业务开发 1-3人网站,app前端开发 pc端1人 手机端1人后端开发 1人数据分析师或数据产品经理 1人负责主题需求设计形成主题的指标文档,搭建指标体系数据开发 2-4人有一个架构师多名开发人员进行数仓搭建开发测试开发 1-2人产品测试,检查功能是否完整,计算结果是否正确。

qq_49894233的博客 879

esp32 python开发环境搭建_eclipse esp32开发环境搭建

安装方法基本是按照官网提供的方法来操作https://github.com/espressif/idf-eclipse-plugin#GettingStarted但是官网的方法安装之后还是不能编译成功的,第一次编译会出现一下问题问题1:Building in: E:\eclipse-workspace\helloworlk\buildcmake -G Ninja -DCMAKE_TOOLCHAIN...

weixin_39978276的博客 1264

SerDes学习笔记:接收机CTLE均衡架构示例(USB3.1、PCIe3.0\4.0\5.0)

本文分析了USB3.1和PCIe标准中连续时间线性均衡器(CTLE)的设计演进。USB3.1Gen1采用一阶CTLE,其传递函数在长信道下具有有源滤波器特性;Gen2版本延续类似架构,通过Adc参数调节零点频率。PCIeGen3/4保持一阶结构但调整极点位置,Gen5升级为二阶传递函数,扩展Adc调节范围至-5dB~-15dB。研究表明,CTLE能有效改善信号完整性,通过参数优化可平衡信号衰减与码间干扰抑制。

一只豌豆象的博客 627

PythonStudy——项目开发周期 Project development cycle

项目开发周期 ''' 1.调研 2.需求分析 3.架构师完成项目demo,完成项目架构 4.分工 5.写代码 6.白盒黑盒测试 7.项目审核发布 => 项目 -> 产品 ''' ''' bin: 可执行文件,入口,入口也可以放在项目根目录下 core: 核心代码 db:数据库相关文件 interface:接口 lib:包、模块、第三方文件...

294

46、聚类算法在智能交通数据分析中的应用

本文探讨了聚类算法在智能交通数据分析中的应用,介绍了K-均值算法、K-中心点算法和基于模型的聚类算法的基本原理及特点,并结合实际交通数据讨论了其应用场景与挑战。通过聚类分析,能够从海量交通数据中发现隐藏模式,为交通管理和规划提供科学依据。文章还展示了具体的案例分析和实现流程,为未来智能交通系统的发展提供了参考。

zz67890的博客 134

如何做项目开发周期评估

一般情况下,开发一个产品,可以分解为:①需求确认;②原型设计;③UI设计;④程序开发;⑤测试&验收;⑥上线,这几个步骤。 我目前讨论的项目开发周期,仅仅是站在一枚程序猿的角度,也仅仅只是评估第四步骤(程序开发)。 由于我在公司接手了一个半外包的项目,给xx保险公司做saas系统,这是一个已经运行了两年的系统,但是他们不时就提需求变更,我目前已经做了四五次需求变更。每次需求变更最让我头疼的...

天地炫舞的博客 6574

DDR5中的On-Die Termination(ODT)详解:电阻值支持及其背后的秘密

DDR5支持多档ODT电阻值,范围从40Ω到480Ω,均基于240Ω标准参考电阻RZQR_{ZQ}RZQ​。不同电阻档位对应不同的信号负载和功耗需求。校准电压点关键,常用0.8×VDD进行精准调校。CA信号间ODT匹配必须严格控制,保证命令总线稳定。选择合适的ODT值是高速内存设计中不可忽视的细节。

weixin_43199439的博客 2103

VCAST创建单元测试工程

选择工作目录,后面创建胡UT工程将会生成到这个目录。

qq_42851449的博客 2485

什么是软件测试?5分钟带你快速了解!

软件测试是伴随着软件工程的重要组成部分,是软件质量保证的重要前提。软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品进行验证和确认的活动过程。在开发大型系统的过程中,面对复杂的现实情况,软件生存周期的各个阶段都有可能产生差错。(一)软件测试的目标和原则1.软件测试目标以最少的时间和人力,尽可能多的发现程序中的错误和缺陷。测试还要证明,软件的功能和性能与需求说明相符合。2.软件测试原则测试既不要不充分,也不要过分。

2301_80119579的博客 1053

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

BabyOS:为MCU项目带来高效开发周期的完整开源框架

你是否曾为MCU项目开发中频繁的重复劳动而烦恼?是否在寻找一个能够大幅缩短嵌入式系统开发周期的解决方案?BabyOS正是为你量身打造的高效管理框架!🚀 BabyOS是一套专为MCU项目设计的开源框架,通过模块化架构和驱动管理,帮助开发者快速构建稳定可靠的嵌入式系统。在前80个字内,我们已经明确了BabyOS的核心价值:它是一个为MCU项目提供高效开发周期的完整开源框架,能够显著提升嵌入式开发效

gitblog_00065的博客 587

深度学习工具包 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")

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

3 分钟,带你了解低代码开发

传统软件开发交付链中,需求经过3次传递,用户→业务→架构师→开发,每一层传递都可能使需求失真,导致最终交付的功能返工。

pantouyuchiyu的博客 636

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

5分钟,带你了解低代码开发

在传统的理解中,企业内数字化应用的开发和迭代应该是 IT 部门的工作,但事实并非如此。一方面,激烈的市场竞争和反复出现的疫情给数字化提出了新的要求;另一方面,五花八门的零代码、低代码工具正如雨后春笋一般出现,为各种业务和管理场景提供了零门槛实现数字化的可能。

Z__7Gk的博客 294

7个Agent组成的公司,7分钟完成了一个游戏的开发

来源丨投资实习所(ID:startupboy)作者丨StartupBoy市场对 AI Agent 的期望一直很高,除了各种单向任务的 Agent 外,之前斯坦福大学和 Google 的一项实验已经展示了由 25 个 AI Agent 自行协同运行的虚拟城镇(Virtual Town),它们在这个虚拟城镇里制定每日的日程、约会以及策划一些活动聚会。不过最新的一项研究实验,展示了由 7 个 AI Agent 组建的一个虚拟公司,在 7 分钟内完成了一个的完整开发过程,成本大概就 1 美金左右。

python123456_的博客 1520

敏捷开发项目人力工时评估法则

本文阅读大概3分钟,关注点击星标精彩不错过相信不少测试在需求敲定、宣讲之后会接到项目经理那边的提问,那就是"开发测试评估一下新版本周期需要多久?"" 开发:这个版...

3718

程序汪8万接的共享电动车项目,开发周期3个月

本文章来自程序汪背后的私活小团队,开发共享电动车的小程序,希望把这些真实案例分享出来,大家能学到点东西,比如硬件怎么通过手机蓝牙操控,商业项目怎么推广,软件怎么和硬件配合,电动车技术方案是什么样的等等。B站【我是程序汪】共享电动车项目。

u011091199的博客 1906

1小时开发周期:用Redis快速实现登录会话缓存

虽然用API模板,但为了演示效果,加了个简单的Razor页面显示当前会话状态。通过调用API接口展示Redis中的键值数据,这样不用命令行也能直观看到缓存内容。实现简单的用户登录接口:验证账号密码后生成SessionID,将用户信息序列化存入Redis(设置合理过期时间)。如果你也需要快速验证技术方案,不妨试试这个开发模式,真的能节省大量前期调研时间。最近在做一个需要用户系统的项目,考虑到会话管理的扩展性,决定用Redis做缓存。的部署功能,直接把项目一键发布成了可在线访问的演示环境。这样开发环境就绪了。

NightshadeEagle34的博客 684

使用Azure SDK 1.4.1中的Web Deploy

公告 :本博客为微软云计算中文博客 的镜像博客。 部分文章因为博客兼容性问题 ,会影响阅读体验 。如遇此情况,请访问 原博客。 刚刚更新的Azure SDK v1.4.1通过使用Web Deploy,支持单一运行的Web Role实例就地升级。本文详细介绍了如何使用...

chenqunan3231的博客 66
上一篇: CherryStudio+百度地图MCP为大模型赋能
下一篇: 邮件通知,引发的线上的S级故障
智_永无止境
博客等级 码龄10年 803粉丝 406原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值