《那些年啊,那些事——一个程序员的奋斗史》——35

段伏枥好不容易搞明白窗口创建的流程之后,接下来的事情,倒是让他发愁了。UI界面肯定不止是一个界面那么简单,还有什么背光设置啊,多媒体之类,那这些应该如何组织呢?之前段伏枥的做法,是将所有的函数写在一个文件内,当然那是只有一个窗口的情况下,一切都好控制,但现在是有这么多窗口,应该怎么弄呢?每个窗口都用一个文件,这是必然的。可是,函数要怎么命名呢?比如主窗口的创建函数叫CreateWindow,由于形参什么的都是一样的,设置窗口的函数就不能叫CreateWindow了。难道在前面加个前缀,变为SettingWnd_CreateWindow?虽然是可以,但这也太麻烦了吧?毕竟大家都是窗口,重名的函数会非常多,特别是窗口也多,这么一来,这些函数的命名也太混乱了吧?甚至可以说,让人看了觉得恶心想吐。有没有办法可以让不用改那么多函数的名字呢?
   
    段伏枥想到了类这玩意。他不管三七二十一,每个文件都套上class这个关键字,比如主窗口就叫CMainWnd,设置窗口就是CSettingWnd,然后成员函数无非就是什么CreateWindow之类,也就避免了之前要在函数前加前缀的尴尬。但段伏枥使用这个类,也仅仅是用其形,而不知其神。功能类似的函数,段伏枥的做法是:复制,黏贴,修改,而根本不是什么继承之类。所以段伏枥现在使用类,其实只是批上了一件外衣,没有真正用到C++的精髓。这也无可厚非,试问哪个高手一开始上手就懂得在实际使用中如何很好地使用继承啊,虚函数之类的?这些都是在慢慢的代码书写当中,一点一点领悟的。但如果一开始就惧怕,甚至于拒绝使用这些高级特性,那么也就意味着从来没有踏进这个门槛,谈何来的进步。甚至有些程序员还会想,这些东西我还不会用,等我技术水平高了,回头再来使用;可问题是,隔行如隔山,如果你一直不用,那么面前永远就有一座山,只有开始使用了,才能翻越这座大山,看到胜利的彼岸。
   
    于是,在段伏枥的代码中,第一次出现了类这个玩意。虽然离精髓还差了十万八千里,但在面向对象的实际道路上,迈开了第一步。
   
    这几天老柳也是开始忙了,因为板子已经回来了。一般的车载产品,常见的流程是从原厂获得开发板,配套的资源自然有BSP代码和原理图。然后驱动工程师根据CPU的资料,以及原厂的原理图,和硬件工程师相配合,得出和需求相符合的原理图,这个时间一般在五天左右。之后便是将原理图交给画板工程师进行布局画板,一般也需要两三天。当然,如果器件比较多,那么所花的时间更久。接着便是找相应的工程打板,这也有一些讲究。如果工程管控不佳,也不做相应的飞针测试,那么这板子很可能短路。板子回来后,便是贴片。如果是大批量,这倒不是个什么问题,直接用盘料上贴片机。但对于只有十片左右的样板,这是不切实际的,所以往往采用手贴的方式。正是因为这种需求,深圳有不少手贴的公司,不仅生存没问题,甚至还活得很滋润。
   
    但从利剑公司成立伊始也不过两周左右,如果从时间点来算,短短根本不可能完成从原理到贴片的流程;但事实摆在眼前,板子不到两周已经回来。也就是说,在浩程微的时候,老柳不仅仅是学习了AU1200的相关资料,其实已经偷偷地开始这板子的前期准备了。只不过对于硬件一窍不通的段伏枥来说,暂时是不明白这其中的道理的。
   
    虽然黄华中和老柳在作风上说不上什么正派,但在产品的设计中还是有一定的亮点的。这款手持式产品采用了核心版+主板的方式。核心版主要放置了CPU,内存,FLASH,然后引出所有的引脚;而主板,则是搭载了GPS,蓝牙等外围器件。这样做,其实在很大程度上也起到了降低成本的作用。因为AU1200的引脚不少,所以布板必须要用六层板;而如果像主板这样的大小都采用六层板的话,不仅没有必要,并且也极度浪费。虽然在构思上很取巧,但还是有些小问题,那便是核心版和主板的连接部分,采用的是插座的形式。在汽车颠簸的环境,这插座很容易松动,从而导致接触不良。这个隐患其实和浩程微的A6的微硬盘如出一辙,但刚开始谁都没有放在心上,仅仅觉得A6的问题在于料件不过关而已——只要使用正品的插座,那么一切都会顺利。
   
    一般来说,产品的第一版,因为大多数是参考开发板然后直接按产品的规格进行重新设计的,所以通常会出现不少问题。自然现在打的这一版,也逃脱不了这样的厄运。老柳所能做的,是将程序下载到FLASH,查看系统能否跑起来,也仅仅如此而已。因为板子的LCD显示不正常,嗯,应该说“不正常”已经是算是抬举了,其实是根本无法工作。虽然老柳做驱动,平时少不得和硬件也有所打交道,但其实对硬件也是知之甚少,遇到这种情况也就束手无措,只能等待王健来解决。不过,王健白天因为还有自己的事情要忙,所以一般都是晚上六点之后过来,然后大家一起吃个小饭,大概七点半左右才开始真正开始调试。也许武总本来对黄华中和老柳的技术实力就存在疑问,或是生怕这两人会偷懒,所以他下班后也会赶过来,呆在办公室,什么都不做,就盯着他们在调试板子。
   
    只不过这样一来,段伏枥要陪着受罪了。正常下班是六点,晚上九点下班已经是很晚了,那时候的段伏枥已经非常疲倦,根本就无法集中精力去写代码,对着电脑已经麻木,一片空白。但武总在旁边,想偷懒又不敢打开网页,偶尔也只是上上QQ,和朋友打哈哈几句。除此以外,就是盯着代码,犹如行尸走肉一般。段伏枥已经疲惫到了极点,可又不能走,应该说是不敢走。当板子回来第一天的时候,段伏枥九点下班,武总非常惊讶地说道:“啊?你这就走了哦?不留下来一起奋斗啊?”
   
    结果第二天,段伏枥就不敢九点下班了,只能一直拖到十一点,公交只剩最后一班的时候,才带着愧意回家。可是即使是这个时候,武总也会很惊讶地重复这句话:“啊?你这就走了哦?不留下来一起奋斗啊?”王健是六点之后才到的,肯定不会九点就回去,否则那一两个小时能干得了啥?所以一般都是拖到晚上12点之后。可段伏枥已经干了一天的活,哪里还有那么多精力陪着他们折腾?
   
    呆着,脑子已经疲劳得不听使唤;回家,又要忍受武总的白眼。于是,晚上的段伏枥,就处于一个非常尴尬的状态。可是武总才不管这些,给段伏枥的感觉是,不管晚上在公司能不能做事,或者有没有什么事可做,那都不管,只要呆在公司,那他就觉得舒坦了。虽然这感觉很糟糕,但段伏枥想着,公司刚成立,辛苦一点就辛苦一点吧。
   
    其实黄华中和老柳如此的拼命也是有其原因的。前几天吃饭的时候,黄华中就说了,公司的股份,黄华中和老柳各占30%,武总占40%,段伏枥没有。当时段伏枥听了,也没觉得什么不妥,觉得自己是菜鸟,还有很多东西要去学,现在人家给了这么好的一个机会,还有并不算低的薪水,自己如果还要更多的东西,怎么良心上都觉得过意不去。何况,公司大了,难道还会亏待自己吗?黄华中不是说了么,报酬可是大大的。只不过,股东忙算是给自己打工,段伏枥这忙,也只能是舍命陪君子了。
   
    不仅仅是平时的晚上,周六也搭进去了。也就是说,一周七天,有六天加班,并且这六天还是九点上班,十一点下班。难怪乎做程序员的,单身的为多。可这有什么办法呢?一周只有一天的休息时间,估计大部分的人都选择睡懒觉,这么一来,唯一的一天休息就过了一半了。试问,哪里还有多少机会去接触异性?即使好不容易找了个女朋友,可这三天两头见不着面的,还能维持多久?对于这点,段伏枥深有体会。
   
    话说有一天十点多,武总为了犒劳大家,让段伏枥到下面的肯德基去买个全家桶。在等待食物的时候,看到不远处有个穿得性感的标致女孩,正在搂着一个帅帅的小伙子。因为这女孩子确实长得比较漂亮,所以段伏枥忍不住多看了几眼,但没想到听到的话语,却让他大跌眼镜。只听见那女孩对着小伙子说:“没事的,我们还有的是时间,我老公是做IT的,他现在还在加班呢!”
   
    老公……IT……加班……还有时间……那一刹那,段伏枥凌乱了。以前做IT是一件光荣的事,现在咋成了贬义词了?比如说,骂人可以骂:“你才是做IT的!你全家都是做IT的!”只到此时,段伏枥才觉得做IT有那么点凄凉,不仅为那女孩的老公,同时也为自己;但转眼想到自己还是一个人,不用担心会顶着个绿帽,倒也阿Q精神舒心了一把。只是,现在能有更好的选择吗?除了程序员这行,自己还能做得了什么?喝不了酒,抽不了烟,做销售连个基本的入门资格都没有。哎,还是好好走程序员这条有前途的路吧,让别人七嘴八舌说去~提着买到的全家桶,段伏枥哼着小调往办公室走去……
   
   
   

转载于:https://www.cnblogs.com/wuwuwu/archive/2011/10/01/6162898.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php如果字符串有1 3 5,PHP常用字符串函数小结

PHP常用字符串函数小结来源:程序员人生 发布时间:2015-01-22 09:02:32 阅读次数:1594次1、判断类型的函数is_bool() //判断是不是为布尔型is_float() //判断是不是为浮点型is_real() //同上is_int() //判断是不是为整型is_integer() //同上…

使用zipKin构建NetCore分布式链路跟踪

本文主要讲解使用ZipKin构建NetCore分布式链路跟踪场景因为最近公司业务量增加,而项目也需要增大部署数量,K8S中Pod基本都扩容了一倍,新增了若干物理机,部分物理机网络通信存在问题,导致部分请求打入有问题的物理机时总…

micropython 网络驱动_network_网卡驱动

# network _视频 (import network)network 用于初始化各种网卡驱动*****## **构造函数:*** [ ] **播录视频**class network.ESP8285(uart)>初始化ESP8285,构造一个ESP8285网卡对象,使用需要传入一个uart对象*参数:** uart: 与A…

工作心得

各位朋友大家好:今天很高兴可以和大家对于工作的经验方面发表一些自己的看法,希望能对大家有所帮助,也希望和大家多交流交流,对此说一下这7年来参加工作后的一些体会,如有不对之处,还请大家指出&#xff0c…

matlab 抽样判决代码,matlab抽样判决器

低通 滤波器 LPF 用于滤除高频分量,提高信噪比;抽样判决所需的同步时钟需要从...通信原理 MATLAB 仿真实验 基于 MATLAB 的第一类部分响应系统的 基带信号及其眼图...这种方法具体做法是:用一个示波器跨接在抽样判决器的输入端,然后调整示波 器......(经抽样判决器解调信号波形…

微信又添新功能!这个微信群可以学英语,而且全程免费

全世界只有3.14 % 的人关注了爆炸吧知识最近不少网友发现,在微信群里居然可以学英语!而且全程免费!群里面会有免费的英语直播课,免费的课程资料,还有专业的英语老师辅导学习。 更重要的是,不需要集赞&#…

C# winform 窗体接收命令行参数自动登录进行系统,模拟600个WCF客户端的并发压力测试...

我们想要达到的目的是模拟600个客户端的消息提醒功能,当然我们没有600个电脑可以拿来测试,我们只有4-5台电脑可以用来测试,那我们就想…

UpdatePanel的用法

UpdatePanel控件也是Ajax里用得最多的控件之中的一个,UpdatePanel控件是用来局部更新网页上的内容,网页上要局部更新的内容必须放在UpdatePanel控件里,他必须和上一次说的ScriptManager控件一起使用。如今来看UpdatePanel的属性UpdatePanel重…

JMeter压测笔记

每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了。Jmeter 是一款使用Java开发的,开源免费的,测试工具&#…

系统同传软件_如何戴耳机录制自己的同传练习?

在学校上课的话,有同传实验室的模拟会议系统可以完成同传的录制,但是自己的练习的时候就会出现录制的问题。曾经在一次导专课上遇到过这种尴尬,由于需要将自己的同传练习录音分享给老师和同学听,所以就要把源语和译入语都录制下来…

颜宁课题组再发Cell!1个月时间内4篇顶刊!

全世界只有3.14 % 的人关注了爆炸吧知识本文来源:iNature(作者:枫叶)、微博转自:募格学术6月15日晚,颜宁团队和新南威尔士大学杨洪远团队合作,在Cell 《细胞》在线发表了题为“Structural Basis…

C# 中打印、预览、打印机设置和打印属性的方法

private void Form1_Load(object sender, System.EventArgs e){//获取或设置一个值,该值指示是否发送到文件或端口printDocument1.PrinterSettings.PrintToFile true;//设置打印时横向还是纵向printDocument1.DefaultPageSettings.Landscape true;}private void f…

lua传值到php,使用lua实现php的var_dump()函数功能

习惯了php中的var_dump()函数,而如今写lua的时候总习惯使用var_dump()函数,于是就自己动手写了一个类似功能的var_dump()函数。复制代码 代码如下:function var_dump(data, max_level, prefix)if type(prefix) ~ "string" thenprefix "&…

BOOST 线程完全攻略 - 结束语

2019独角兽企业重金招聘Python工程师标准>>> 全文介绍了3个boost::thread的扩展类,希望能给大家书写多线程代码带来便捷。 thread -> controlled_module_ex ->controlled_module 那么我们具体在什么情况下选用不同的扩展类呢? 1.如果你…

.NET Core使用Nlog记录日志

NLog是适用于各种.NET平台(包括.NET标准)的灵活,免费的日志记录平台。NLog使写入多个目标变得容易 。(数据库,文件,控制台)并即时更改日志记录配置。NLog支持结构化 和传统日志记录。NLog的重点…

动态路由协议(RIP)

动态路由协议包括距离矢量路由协议和链路状态路由协议。RIP(Routing InformationProtocols,路由信息协议)是使用最广泛的距离矢量路由协议。RIP 是为小型网络环境设计的,因为这类协议的路由学习及路由更新将产生较大的流量&#x…

python地理空间分析指南pdf邓世超_Python地理空间分析指南(第2版)源代码.zip

【实例简介】Python地理空间分析指南(第2版)的随书源代码,需要的朋友可以下载一下~~【实例截图】【核心代码】Python地理空间分析指南(第2版)源代码└── Python地理空间分析指南(第2版)源代码├── B04606_01_Code│ └── B04606_01_01_SimpleGIS.py├── B…

这几道挑战极限的烧脑题,烧脑到爽爽爽爽爽!

▲ 点击查看 在美国,有一个天才儿童计划,选拔一批“天才”儿童进入天才班。这个计划是为了保证每个人接受平等教育机会的同时,也为精英成长提供合适的土壤。美国所谓的天才和精英是怎样的标准呢?进入天才班的儿童首先要通过一个叫…

转.h和.cpp文件的区别

关于头文件和源文件的分别 首先,我们可以将所有东西都放在一个.cpp文件内. 然后编译器就将这个.cpp编译成.obj,obj是什么东西? 就是编译单元了.一个程序,可以由一个编译单元组成, 也可以有多个编译单元组成. 如果你不想让你的源代码变得很难阅读的话, 就请使用多个编译单元吧.…

WPF 跟随拖动改变的三次贝塞尔曲线思路

代码不多&#xff0c;思路也很简单&#xff0c;先看看效果&#xff1a;简单示例&#xff0c;所有代码都在MainWindow.xaml和MainWindow.xaml.cs内&#xff0c;Xaml代码&#xff1a;<Window x:Class"WPFDemos.MainWindow"xmlns"http://schemas.microsoft.com/…