开发一定要做(准备)的几件事情

做自动化测试之前你需要知道的几件事情 !如果下面这些资料用得到的话可以直接拿走:1、自学开发或者测试必备的完整项目源码与环境2、测试工作中所有模板(测试计划、测试用例、测试报告等)3、软件测试经典面试题4、Python/Java自动化测试实战.pdf5、Jmeter/postman接口测试全套视频获取6、Python学习路线图重点:配套学习资料和视频教学那么在这里我也精心准备了上述大纲的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如下,需要的评论区留言或者私信我。 阅读详情

开发过程中,无论你在什么阶段,无论你的项目或者产品有多小,把没做的补上,现在都不晚

1. 需求文档,电子的/纸质的,人不行,要是那种没有达成一致前改不了的媒介

2. 功能列表,如上

3. 版本控制工具,如SVN或某人,你真的相信人可以作为版本控制的工具吗?

4. 一台可以编译的机器,这个机器配置了客户环境所拥用的库 ,如果这台编译机没有编译过,那就发回去改

5. 基础库

1) 文件处理工具 包括所有对文件(如xml,ini等)操作的工具

2) 日志工具 包括日志输出工具和分析工具 - 调试用的

6. 单元测试工具


功能模块提测前要做的几件事 在项目管理流程中,有几个关键阶段: 需求阶段、开发阶段、测试阶段、上线阶段 其中的需求阶段和开发阶段是最为重要的,一个是设计,定义这个功能如何运作,一个是执行与实现,这两个阶段把控好了,往下走就会顺利很多。下面重点讲一下开发阶段中的提测步骤,在提测前应该准备什么东西,以保证提测的质量。 首先关于提测这个动作,我自己是这么理解的: 提测了,就说明开发人员认为功能就长这样了,已经完全按照产品PRD完整的实现了,是个严谨、负责、认真的动作。 理论上,研发人员一旦提测,就可以开始处理其他需求任务了 阅读详情

相关推荐

功能测试提测前必 做的几件事!

概述 在项目管理流程中,有几个关键阶段: 需求阶段、开发阶段、测试阶段、上线阶段 其中的需求阶段和开发阶段是最为重要的,一个是设计,定义这个功能如何运作,一个是执行与实现,这两个阶段把控好了,往下走就会顺利很多。下面重点讲一下开发阶段中的提测步骤,在提测前应该准备什么东西,以保证提测的质量。 首先关于提测这个动作,我自己是这么理解的: 提测了,就说明开发人员认为功能就长这样了,已经完全按照产品PRD完整的实现了,是个严谨、负责、认真的动作。 理论上,研发人员一旦提测,就可以开始处理其他需求任务了的。 为啥要

tidaoyu的博客 2932

写给即将入职的你-软件工程之需求开发流程

前言 在这个春风得意马蹄疾,金三银四跳槽季的日子里,相信很多小伙伴都拿到了心仪的offer了吧,其中不乏有初入职场的同学。那么今天,我就从服务端的角度来给大家分享一些关于工作中开发流程的经验,希望初入职场的同学尽量少踩坑不背锅,能够顺利通过考核期。 进入公司你会发现,一般正规点的公司都会分很多部门,如开发部(科技部或研发部)、产品部(业务部)等,这两个部门是相互对等的,也就是说后者负责产品功能的创...

weixin_34258782的博客 1095

面试前需要知道的几件事

面试前需要知道的几件事(1) 文章目录面试前需要知道的几件事(1)前言一、做好自己的职业规划1.1做好自己职业生涯第一步1.2确定符合自己的人生目标1.3紧跟社会发展的步伐1.4为职业生涯画上圆满的句号总结 前言 一次次的面试求职面试,就像一场场无形的战役一样,决定着不同的人生和不同的人饿命运。如果想在战役中取得胜利,就必须做到知己知彼,才能百战百胜。想要做众多对手中脱颖而出,靠的不在是健硕的体魄,而是有灵敏的思维和充分的准备,在战斗打响之际,你准备好了吗? 一、做好自己的职业规划 一个人的职业生涯会贯

穿越清华 2万+

开发一个项目前应该要做的那些事

很多前端新手在开发的时候总是显得效率不高,其实很大程度上是准备工作不到位,大部分新手一拿到设计稿就开始上手,等到快完工的时候才发现这没做好那没做好,常常导致返工不断,因此在正式开发敲第一行代码前不妨静下来好好思考下整个项目的逻辑以及项目开发会遇到什么,根据本人开发经验,总结以下开发前要准备的工作,希望能帮助到新手 在项目开始前要做的工作: 一、统览所有的设计稿,找出共同元素...

weixin_41421227的博客 3090

jaka+realsense+aruco+手眼标定(python)

第二次重建了项目的手眼标定部分……有很多第一次记录遗漏的地方,在此补充。

drivenzyw的博客 2122

MiniMax H3本地部署实战:ComfyUI整合包安装与提速插件验证指南

在AIGC工具链快速演进的当下,本地部署内容生成模型成为许多创作者和开发者的关注焦点。本地部署意味着数据不出本机、可按需定制工作流,还能规避云端排队与外部依赖,其核心价值在于为内容生产提供可控、私密且可编程的生成环境。ComfyUI作为模块化节点式AI绘画工具,凭借灵活的工作流编排和API接口能力,成为承载这类模型的热门平台。MiniMax H3作为支持文本、参考图等多种输入的内容生成模型,与ComfyUI结合后,既适合个人进行概念验证,也能用于团队私有化流程搭建。实际落地过程中,中文整合包显著降低了环境配

weixin_29042035的博客 296

初学开发的人应该知道的 10 件事情

http://www.php100.com/html/itnews/it/2011/1229/9572.html

luguo0816的专栏 531

Keil5调试遇坑记:手把手解决J-Link驱动与固件版本冲突(附老版本驱动包)

本文详细解析了Keil5与J-Link调试器版本冲突问题,特别是当出现'The connected J-Link is defective'警告时的解决方案。通过对比升级固件与降级驱动的优缺点,提供了详细的J-Link驱动降级操作指南,包括获取老版本驱动、替换步骤及常见问题排查,帮助开发者高效解决这一常见调试障碍。

metaverse5vr的博客 107

11条编程建议

1. 使用Twitter - 如果你是一名程序员,如果你还没有使用Twitter,你就out了。不是说你有多少粉丝,而是在Twitter上你可以更快的得到问题的答案,获取你关注的话题的最新资讯。 -----------------------------------------------------------------------------------...

lvwenwen 182

保姆级教程:从OrthoFinder到CAFE5,手把手搞定基因家族收缩扩张分析(附完整代码与避坑指南)

本文提供从OrthoFinder到CAFE5的基因家族收缩扩张分析全流程教程,涵盖数据预处理、系统发育树准备、CAFE5运行与参数优化等关键步骤。通过详细代码示例和避坑指南,帮助研究者高效完成基因家族进化分析,特别适合生物信息学初学者。

dianshu1593的博客 393

STM32 LwIP协议栈优化:从TCP延迟10ms降至1ms的内存配置手册

摘要: 本文针对STM32嵌入式开发中LwIP TCP通信的高延迟问题(默认配置下延迟达10~20ms),提出纯软件优化方案,通过调整内存配置与TCP参数将延迟降至1ms。核心问题包括内存池不足、pbuf分配低效及Nagle算法拖累,优化步骤包括: 内存池扩容:增大MEMP_NUM_TCP_PCB至10、PBUF_POOL_SIZE至32,避免资源竞争; pbuf静态池分配:采用2048字节大块缓冲区匹配DMA传输,减少分块与拷贝; 关闭Nagle算法:设置TCP_NODELAY=1,禁用延迟确认以加速小包

weixin_42212753的博客 1710

功能提测阶段,开发测试必做的几件事儿

大家好,我是陈老三!前期我们分享了 认知测试 |认识软件测试,认知自己!测试相关培训 |高额的软件测试培训费都教什么?面试 |软件测试人员如何安稳度过企业试用期 测试如何进行需...

3390

【Android 11】使用Android Studio调试系统应用之Settings移植(三):构建Settings、SettingsLib项目文件

基于android 11,本系列文章力争实用,讲解使用AS调试系统app的方法,并提供了配套源下载,供学习调试。上一篇文章[Android 11]使用Android Studio调试系统应用(二):依赖分析、android.bp、静态和动态依赖,讲解了如何搭建编译服务器,如何下载AOSP源码,如何切换到AOSP的指定分支(android-11-r39),以及如何编译、解决编译错误、运行模拟器,本文将开始讲解如何构建Settings的AS工程文件! 走过、路过,有用过的同学,记得给个赞O(∩_∩)O哈!

上周的博客 2682

软件开发人员必须要做的几件事

程序员以计算机编程为职业,工作就是使用各种计算机语言(C++,JAVA,Python,PHP等)编写计算机程序,有互联网应用软件开发类,嵌入式,手机应用程序开发等等,网络流行语称之为码农,每天为function,ifelse,for绞尽脑汁,属于高强度脑力劳动职业 缺少运动,年轻崇拜,技术体系更新快,缺少社交机会是这个行业最明显的特征,特别是年轻崇拜,随着年龄增大忧虑和恐惧与日俱增。那么程序员必须做好这几件事情。 一.坚持做运动 程序员每天的工作是分析需求,编写代码,面对这电脑屏幕一座就是一天

844

告别 DIFY 构建卡顿 / 失败!巧用 Makefile 一键构建本地 WEB 镜像,附核心避坑指南

本文详细介绍了DIFY本地源码构建WEB镜像的完整流程,重点解决因官方npm源不稳定导致的构建失败问题。通过修改web/Dockerfile文件启用国内npmmirror镜像源,可大幅提升依赖下载速度和稳定性。在DIFY根目录执行封装好的make build-web命令即可一键完成构建,无需手动编写复杂docker命令。文章还提供了前置环境准备、构建结果验证等实用指导,帮助开发者高效完成DIFY前端二次开发后的镜像构建验证。

2501_93651177的博客 182

WPF+MVVM案例实战(二十三)- 阴影效果详解

通过附加属性实现阴影效果,通过改变不同的阴影属性值达到不同阴影效果

lingshuangcanxue 561

[碎碎念]总结一下最近在做的事情

最近更新频率特别低,我能感受到.因为技术方面的输入比较少了,所以不知道该输出什么有干货的内容给大家. 那我就说一下最近在做的几件事情吧,希望这其中的碎碎念,也能给你一些启发. 1 ,转到项目管理. 项目管理对于当下的我来说,挑战特别大. 刚被提拔上来的时候,我是很懵逼的,我不知道这件事情到底是不是该我负责,这件事情到底需不需要我去做,不像以前只管开发就行了,上面分配什么我就去做什么就 OK 了.很...

自由而不独立,仍是奴隶。 575

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

webpack和vite究竟做了什么事情?

想象一下,你正在准备一个大型晚宴,而这个晚宴的准备过程就像是使用Webpack处理你的项目。你的食材(JavaScript文件、CSS样式表、图片等资源)散落在整个厨房(项目文件夹)中。为了准备出一顿成功的晚餐(最终的应用程序),你需要按照食谱(项目的依赖关系)将这些食材组合起来,并且可能还需要对食材进行一些处理(比如切片、腌制等),这个过程就是Webpack做的事情。

WZX2399的博客 1316

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

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

技术经理成长复盘-功能模块提测前要做的几件事

概述 在项目管理流程中,有几个关键阶段: 需求阶段、开发阶段、测试阶段、上线阶段 每个阶段都非常重要,且越前面的阶段

Sam_Deep_Thinking 4623

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

回顾2019我做的几件大事【成长】

你好,欢迎来到 【程序职场】 ,这里有你需要的技术提升,职场规划,个人成长,副业发展 等文章。 我们一起学习,一起进步。 不知不觉已经步入2020年,首先祝大家新的一年 收获满满。 常听一些前辈大佬们说,回顾就是为了更好的制定下一步计划和目标,2020年的目标就是完成2019年那些原定于2018年完成的任务计划。 2019年过去了,我们到底完成了哪些目标呢?这个需要我们做一个...

838

App 发版前后,运营要做这些事情

本篇是我自己的一点总结,适合刚开始做app运营的同学入门,如果不幸没人带的时候,发版前后不至于两眼一抹黑,运营大神就看看小标题,帮忙补充补充吧。 一、当App是全新产品时,运营需要尽早介入 常常听同行们说到有些产品汪,做产品功能或者什么改动时,运营是最后一个知道的人,甚至比用户还知道的晚,我自己也碰到过。 可以抱怨,但是并没什么卵用,如果...

yimenglin的博客 364

软件开发项目经理开门几件事情-会议技巧(一)

我一直认为项目经理在团队中承担着及其重要的作用,因为项目经理起到承上启下的作用,对上项目经理承担的是对公司战略规划的具体实现,项目经理承担着对项目开发成败的重要职责,对下来说,项目经理面临的是具体的执行层面的工作,是第一战场,对软件公司来说不管多么宏伟的战略规划都需要在程序程序员最终键入代码才能完成的。从这个方面来说,管好项目经理,项目等于成功了一半。但是罗马不是一天就建成的,按照一些体会,记录一

zhangym365的专栏 1326

大学毕业生在找工作之前应该准备好的几件事情

大学毕业生在找工作之前应该准备好的几件事情 今年很多报道都说大学应届毕业生有700多万,找工作非常困难。不过优秀的大学毕业生从来都是不缺好工作的,历来如此。明年的时候有几个认识亲戚要找工作,而是都是和计算机相关的,这里根据我个人的经验列一些我认为在找工作之前应该准备好的几件事情,希望对他们以及明年找工作的学生有所帮助。 1、确定好你的方向,根据你的能力、兴趣、性格来确定你的职业,行业,目标企业...

weixin_30834783的博客 143

装好linux后几件必须先做的事情

今天又把系统重新安装了一遍,由于以前安装的时候没有输入序列号,所以在安装的时候看不到虚拟服务,这次安装前去网上收了一个,在安装服务的时候,就可以安装上虚拟服务了,记得我前一次为了装虚拟服务,不知道找了多少的RPM ,还是不能解决依赖包的问题,这次好了,安装好后,可以看到虚拟管理了,闲话少说,安装好后,firefox还不能看视频和FLASH,马上去ADOBE的网站把插件安装好,...

weixin_33875564的博客 83

想成为优秀的技术人员你必须做到的几件事情

想成为优秀的技术人员你必须做到的几件事情<br />1、保持学习<br />    一个非常重要的观点是:如果你停留在一个地方不前,并不代表你能一直呆在那里,而是代表你正在落后(不进则退)。往前进并不意味着你是就能进步 - 这至少你不会沦落到最后(付出就会有收获) 。程序员为了保持向前发展,就需要不断学习 ,我们需要的不是慢慢的往前走,而是我们要奔跑起来!下面列出这方面的几个观点:<br />    1)、读书<br />    2)、订阅RSS和阅读一些杂志(我觉得msdn的杂志不错)<br />   

lvxiukai的专栏 288

做一个App前需要考虑的几件事

本文转载于文章原文链接,版本归原作者所有!   随着工具链的完善,语言的升级以及各种优质教程的涌现,做一个 App 的成本也越来越低了。尽管如此,有些事情最好前期就做起来,避免当 App 有了一定规模后,再感慨当初为什么没有多留点心。 此处由标哥的技术博客站长点评: 看完本篇文章之后,也让我想起了不少以前做过的蠢事,做过很多重复的工作。之前在项目中使用过cocoalumberjack,个人

gongyuhonglou的博客 529
上一篇: 调试Chromium之记事本
下一篇: 为什么我们不是最优秀?
魔芋
博客等级 码龄26年 37粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值