人生第一次私活就这样不期而遇

一位程序员分享了他首次承接私活的经历,为一家企业开发网站,从需求沟通到产品设计、前端原型开发直至测试和上线,全程一人完成,历经半个月。

程序员接私活,你有经历过吗?

程序员接私活,往往在程序员的圈子是很常见的事情。可是参加工作十年了,我真真意义上就这么一次。虽然之前有帮忙做过一些零散的事情,但是都不够体系化。这一次才是真正意义上第一次接私活。话不多说,直接入正题。

2020-06-21 当天中午,接到老家一个亲戚的电话,告知他们企业想做一个网站(绝对是膜拜的人物,年纪轻轻在老家已经开了好几家公司,手下有近百号人),深思熟虑了一番还是答应了。于是当天我的私活微信对接群成立了。

他们企业算是老家发展的比较好的中小型公司,不过和IT不是同一个领域,可以说是搭不上一丁点关系。这次是他们其中一个公司要做一个网站项目,网站主题名称’卧龙月季花海‘,主要展示他们打造的月季花海、月季旅游生态、月季娱乐餐饮、月季产品+技术深加工、月季销售等一系列的生态。(大家也可以百度搜索一下’卧龙月季花海‘,看看他们投身三农领域,是如何发展企业的)。

由于他们没有任何IT公司的概念,最大的问题是不知道要做成什么样,这就成了整个项目最致命的一点。以至于整个项目过程中我差点泪崩了。不过,作为一个资深程序员老兵,我还是把控住了整个项目。

主要执行过程如下所示:

第一步:我让他们给我提供一个业务需求对接人

项目过程中需要提供的素材,例如网站的logo、相关的图片资源、文字描述、功能菜单、首页引导大图、需要定期与他们沟通进一步需求细节问题等等。

第二部:让他们提供几个同类行业的网站地址

主要通过同类行业网站,快速熟悉对应行业的业务知识,了解大体花海基地的核心功能展示,快速制定他们项目的产品原型,缩小沟通范围

第三步:注册个人阿里云账户,购买个人阿里云ECS实例,购买个人域名(也要求他们购买阿里云ECS实例和域名)

1.因为他们的项目需要部署在阿里云上,所以我必须对阿里云有所了解

2.注册阿里云账户是为了了解企业购买阿里云ECS实例选型,同时也是为了购买阿里云实例

3.购买ECS实例和注册域名是为了了解阿里云服务器的环境、了解服务安装、安全组管理、域名解析、域名绑定、熟悉域名工信部ICP备案、公安网备案等流程

4.同时也是为了后期项目预交付阶段可以提供一个测试环境(可以通过域名和公网IP访问)

步:找类似的HTML模板

寻找类似的HTML模板,毕竟我不是专业的前端开发工程师(推荐一个比较好的模板网站http://sc.chinaz.com/),很多HTML网站都做了很好的兼容(兼容主流的浏览器、手机端、ipad等),方便快速开发网站项目

第五步:开始项目开发

开始网站项目主题开发,因为也需要考虑代码管理的问题,我就把代码推到GitHub 上面了(这里我创建的是私有仓库),之前很久没有推代码到我的GitHub上面了,突然搞了一堆公钥私钥认证的问题,不过这对于程序员来讲都不是事。

最头疼的事情还是前端项目,一堆的JS插件 和 兼容的问题,不过都被我一一解决了

第六步:项目测试+环境部署

功能开发过程中基本都穿插的有单元测试,虽说是私活,但是多年来的好习惯不能丢。然后进行整体测试,上测试环境部署项目,做日志定期备份,阿里云ECS实例重启项目服务也自动重启,绑定域名和域名解析,提供公网ip和域名两种访问链接给到他们。

以上就是整个步骤,虽然看的简单,但是也从2020-06-21 一直做到 2020-07-05,历时半个月从早忙到晚。从需求沟通、产品设计、前端原型开发、网站功能开发、测试、上线部署全一个人干,差一点就垮在了前端。现在才理解原来前端的活也是相当艰难,以后要对前端开发的小伙伴好一点。

这里附带几张整个私活过程中整理的资料截图

以上仅供参考,如有不当之处,欢迎指出!!!

更多干货,欢迎大家关注和联系我。期待和大家一起更好的交流、探讨技术!!!

 

 

<think>好的,用户的问题是想用C++读取文件夹中的4个图像文件。我需要先理解他的需求,然后提供合适的解决方案。根据用户提供的引用内容,特别是引用[1]中提到的OpenCV的glob函数,这可能是一个有效的方法。 首先,用户可能已经安装了OpenCV,因为引用[1]中的示例代码使用了OpenCV的库。所以,我应该推荐使用OpenCV的glob函数来遍历文件夹中的图像文件。这样可以方便地获取所有符合条件的文件路径,然后逐个读取。 接下来,我需要确保代码示例的正确性。引用[1]中的示例展示了如何读取所有.jpg文件,但用户只需要读取4个文件。可能需要调整通配符或者对文件列表进行截取。比如,使用通配符匹配所有图像,然后只处理前4个文件。不过,如果用户明确知道文件名的模式,可以更精确地指定通配符,例如"folder/*.png"。 另外,用户可能对C++的文件操作不太熟悉,所以代码需要尽量简洁,并包含必要的头文件和命名空间。例如,使用cv::String和vector来存储文件路径和图像数据。同时,需要注意错误处理,比如检查文件是否存在或是否能被正确读取,但用户的问题中没有提到错误处理的需求,可能暂时可以简化。 还要考虑用户是否希望显示图像,如引用[1]中的示例使用了imshow和waitKey,这可能用于调试。但用户可能只需要读取图像到内存中,是否需要显示这部分可以视情况保留或注释掉。 另外,引用[2]和[4]提到Dynamsoft Barcode Reader,但用户的问题是关于读取图像文件,与条形码识别无关,所以可能不需要涉及这些内容。引用[3]提到训练数据的路径和标签文件,但同样不相关,可以忽略。 总结步骤: 1. 使用OpenCV的glob函数获取所有匹配的图像文件路径。 2. 遍历前4个文件路径,读取图像到vector<Mat>中。 3. 提供示例代码,包含必要的头文件和主函数结构。 4. 提醒用户安装OpenCV并配置项目,以及可能的路径问题。 需要验证代码是否正确,比如glob的参数是否正确,读取循环是否限制为4个文件。同时,是否需要处理不同的图像格式,比如png、jpg等,可能需要调整通配符。 最后,生成相关问题,帮助用户深入理解,比如如何处理不同格式、读取指定数量、异常处理等。</think>以下是通过C++读取文件夹中4个图像文件的解决方案,使用OpenCV库实现: ### 实现步骤 1. **配置OpenCV环境** 安装OpenCV 4.x并配置C++项目(VS/Qt等需设置包含目录和库目录) 2. **使用glob函数遍历文件** ```cpp #include <opencv2/opencv.hpp> #include <vector> using namespace cv; using namespace std; vector<Mat> read_4_images(const String& folder_path) { vector<String> filenames; glob(folder_path, filenames, false); // 遍历文件夹 vector<Mat> images; for(size_t i = 0; i < min(filenames.size(), size_t(4)); ++i) { // 最多取4个 Mat img = imread(filenames[i]); if(!img.empty()) { images.push_back(img); } } return images; } ``` 3. **主函数调用示例** ```cpp int main() { String path = "D:/images/*.png"; // 支持通配符 vector<Mat> result = read_4_images(path); cout << "已读取图像数量: " << result.size() << endl; return 0; } ``` ### 关键点说明 1. **glob函数参数**:第三个参数`false`表示不递归搜索子目录[^1] 2. **图像格式支持**:可识别*.jpg、*.png等OpenCV支持的格式 3. **路径格式**:建议使用正斜杠`/`,例如`"C:/test_img/"` ### 优化建议 - 添加格式验证:`if(filenames[i].find(".jpg") != string::npos)` - 异常处理:使用`try-catch`块捕获`imread`异常 - 内存管理:大图像建议使用`std::shared_ptr<Mat>`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值