热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【ExperienceSummary】出差布置产线

前言2017年12月份,完成了RealitySmartSwitch(https:www.amazon.comdpB07K3TRG6Wrefemc_b_5_i)的基本
前言

2017年12月份,完成了Reality SmartSwitch (https://www.amazon.com/dp/B07K3TRG6W/ref=emc_b_5_i)的基本功能,以及生产测试程序的基本功能,开始了漫长的布置产线生涯。
之所以漫长,是因为自己的经验不足,能力不足。错误和不利是我造成的,但我原谅自己,毕竟,那是我入行的第一年,回望这一年,能做到这样,我觉得自己已经超过预期了。何况6月份才放下了ESP8266的开发。
今日,2019年,足够的时间去沉淀这一段”出差+开发“的阶段,写下一些回忆和感悟。要感谢公司给我这个成长历练的机会,也要感谢产品经理和Leader的耐心指导,当然还有生产厂商的大力配合。

出差感悟

出差,对于第一次出差的人来说,总是一个不错的经历,有很多成长的历练,以及将自己做的东西放到真正应用的地方可以发现他的很多不足和理想化不足以成为一个友好的产品。这便是我的第一次出差。

  1. 出差的每一天遇到的事情和解决方法都要及时整理记录,因为每一天的时间不是很能被自己决定,尤其和团队出差,这就要求每天离开产线和应酬后,回到酒店第一件事就是整理当天的收获,没有什么收获也要整理当天做了的事情。产线是一个让人头脑发懵的地方,尤其对于新人,我最开始在产线上调试非常不从容,解决问题经常“瞎猫碰死耗子”,解决了之后自己都不清楚怎么解决的,因为没有时间很细致地思考验证(这是错误的,如果后面不好复现的事情,要及时找到原因,当然要衡量产线停产的影响),以至于一天解决几个问题,但能记住的很少,下次遇到依然要靠蒙。而酒店是一个让人卸下疲惫,忘却烦恼的地方,睡一觉醒来浑浑噩噩就把前一天的事情都忘得一干二净了。而二者之间的衔接,刚到酒店这个时间点就极为重要,要在还没把事情彻底忘记的时候,及时总结回顾,有些当时不能消化的问题,至少要把问题记录下来,可以的话,备份代码,写清问题描述,以便之后消化。初期的我,完全不懂得这个道理,以至于疯狂地解决问题,但没有学到什么东西。
    另外,还有一方面也是每日总结的原因,就是在出差的时候,你面对的电脑不是自己的了,很多问题,平时遇不到,就像我每次装系统后,配置系统,总能有些新的收获一样,我要对共用的新电脑做很多平时自己用的电脑不做的事情,这些都是很好的学习。比如如何关闭错误报告,如何修改开机密码,如何关闭Windows 更新服务等等,因为是产测电脑,给工人用的,必须“傻瓜”,单纯到只有一个功能就好。所以很多额外的事情都能让人学到很多新的有意思的东西,及时整理!
  2. 上面提到了备份代码,这真的很重要。在产线上,懵懂的情况下,一切都瞬息万变,不知道怎么就好了,又不知道怎么就坏了,各种可能性交叉在一起,甚至还有硬件的问题。。。所以,要及时备份代码,首先,Git管理当前Code Base,之后,遇到问题的代码:备份,写清问题是什么。修改,将解决问题的代码备份,写清如何解决(当时产线上,可能没有时间细致探究原因)。回头要去比较每个问题对应的备份的两个代码,有些可能并没有真正解决问题,而是运气好,天气好,硬件接触突然好的“不幸”,这时要深入探究,以决定是否合并代码;有些可能是不必要的,甚至错误的改动,要及时清理。
  3. 产测软件的名字很重要。我TM当时开发完了,觉得起个“Production Test”的名字简直又牛X又上档次,放到产线,经常有人要问我哪个是生产测试软件,开始我觉得告诉他们记住,大家知道就好了,可是发现总是有人问我,我的产品经理提醒我,我是给工人用的这个软件,不是给开发人员,起这个名字不适合。后面就改成了 “智能开关PCBA产测软件”。挺对的,开发任何产品都是这样,要考虑受众,要让它对用户友好,而不是自己一厢情愿,给一个自己喜欢的功能或名字。包括后面的产用性讨论,也是开发了一个“给程序员”自己用的产品。
  4. 关于产测结果的记录。我们当时是租用了一个服务器,在上面开发了一个简单小的查询系统,我在产测软件里面加入了对数据表增删改查的接口,用于将测试结果写入数据库,方便远程调用查询。NaviCat这个小工具还是蛮好用的。以上这些都是正常流程中的。需要提示的有2点,一是,要有本地数据库,尤其是在远程数据库访问错误的时候,这个在最开始设计程序的时候就要考虑到,因为我们确实发生了网络不畅导致丢数据的情况,当时晚上在酒店加班加点学习如何用C++写文件,赶紧补充进去这一重大功能。二是,要在测试一开始的时候产生区分度,并将之增入数据库,区分度就是你要知道你当前测试的是哪一个产品,比如通过SN串码,MAC地址等进行区分,加入增加记录的时间,来更好的追踪。
  5. 关于数据库,有一点,一定要注意,这是我的Leader和产品经理无数次诟病我的事情,就是,增删改查中的“删”和“改”动作一定要小心,不能直接造作数据库进行“删改”,但可以通过稳定的数据接口进行。即使是错误数据,无效数据,也不能直接改数据库,错误也要保留,并尽量给出合理解释。
  6. 关于INI文件。产品经理指出,我的这个程序每次调试都要重新编译,是非常愚蠢的,应该使用ini文件,每次一个程序,需要调试的时候,修改ini文件进行调试,比如切换服务器数据库,由正式切换到测试,就是ini里面修改个参数。听闻此法,连夜兼程学习如何使用ini。。。其实还是“写本地文件”的方法,好在有前面的铺垫,很快加入了这个功能,确实大大提高了产线调试的效率。感谢产品经理!
  7. 关于生产小工具。这里,一定要调动主观能动性,还好我是一个善于动手解决问题的人。生产工具这个事情,我们先要有一个正确的认识,起初我觉得,生产上多花点钱,搞个自动流水线也许是可行的。生产商也说了,这些那些产线站点所做的事情都可以给你搞个气动xx,脚下一踩就压好了、开始了、结束了,再搞个传送带,省着工人来回搬运,但这些的前提不是投入多少钱,而是**你有多大量!**几千几万的就工人多用用,几百几千万的,才会考虑给你加血相对自动化的工具。哎呦我这暴脾气!学自动化的我,非要把这笨拙的流水线给它自动化咯!于是管理流水线,升级流水线,提高生产效率的任务我也担当起来了,先是使用更得心应手的工具,比如螺丝刀不是带磁性的那种,网上查了下,其实后面绑个吸铁石就行,果断动作,工人好评!理线慢,产品经理经验是真的足!来了之后削了个筷子,用筷子将2分钟的任务缩短为45秒!工人好评!哎呦(捂脸)好像也没啥了就。。。。额,牛皮吹大了,一面大旗倒下。。。当然,这里面你还要明白一点,工人也不是傻子,他们有时候觉得生产流程不合理,效率不高的时候也会自己调整,毕竟我们一个4人的产线还给我们分配了个质量员呢,它对质量和效率都有相当高的标准,而且,论生产经验,我们都远不如那些工人的。

以上便是我那一段时间出差的总结。回顾这一段出差经历,学会了很多,不是单纯地只会C语言,还用了C++做了MFC的产测程序,简单学习了C++,系统学习了过时的技术MFC。除了本科做的Visual Basic以外,又可以通过MFC快速搭建一个GUI界面程序。还接触了C#,在官方代码基础上修改出了几个好用的工具,比如OTA工具等,还接触了数据库,mySQL和好用的NaviCat工具。

但这段经历,从我嵌入式的发展和C语言的进步方面,没有太多贡献,以至于这一段时间做了很多很多事情,产品大卖有我很大的功劳(自诩),但却觉得在主要业务上进步不大,以至于工资提升幅度可笑到跟谁说谁都觉得不公平。

也是因为这个原因,公司进行了人事调整,我从原来的Leader下面,转到了产品经理下面,在硬件部门从事嵌入式软件开发,产品经理亲自带我,太幸运了!产品经理对我寄予厚望,并帮我挡掉了很多出差的事情,让我专心在嵌入式开发上面,后期出差的事情就不怎么叫我了。很多产线的事情也稳定下来了。

感谢产品经理!在我出差期间耐心教导,使我大有长进。
感谢产品经理!在我需要提升技能时,及时帮我挡掉出差,让我专心于技术。


推荐阅读
  • Carve库在Visual Studio2015中的编译方法及注意事项
    本文介绍了在Visual Studio2015中编译Carve库的方法及注意事项。首先下载Carve库,并使用Visual Studio2015打开,生成后在bin目录下会生成.lib文件。同时,本文还指出了之前在Visual Studio2017中编译的问题,并提醒需要根据对应的平台进行编译,否则会出现报错。详细的步骤和注意事项请参考原文链接。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
author-avatar
Cynthia番茄际_382
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有