历史上的今天
返回首页

历史上的今天

今天是:2025年05月08日(星期四)

正在发生

2018年05月08日 | AWorks的哲学思想

2018-05-08 来源:ZLG致远电子

作者:周立功  

一、思维差异


苹果之所以成为全球最赚钱的公司,关键在于产品的性能超越了用户的预期,且因为大量可重用的核心领域知识,综合成本做到了极致。Yourdon和Constantine在《结构化设计》一书中,将经济学作为软件设计的底层驱动力,软件设计应该致力于降低整体成本。人们发现软件的维护成本远远高于它的初始成本,因为理解现有代码需要花费时间,而且容易出错。同时改动之后,还要进行测试和部署。由于缺乏科学的软件工程方法,不仅软件难以重用,而且扩展和维护难度很大,从而导致开发成本居高不下。


更多的时候,程序员不是在编码,而是在阅读程序。由于阅读程序需要从细节和概念上理解,因此修改程序的投入会远远大于最初编程的投入。基于这样的共识,让我们操心的一系列事情,需要不断地思考和总结使之可以重用,这就是方法论的源起。


通过财务数据分析,由于早期决策失误和缺乏科学的软件工程方法,我们开发了一些周期长、技术难度大且回报率极低的产品,不仅软件难以重用,而且扩展和维护难度很大,从而导致开发成本居高不下。


由此可见,从软件开发来看,软件工程与计算机科学是完全不同的两个领域的知识,其主要区别在于人,因为软件开发是以人为中心的过程。如果考虑人的因素,软件工程更接近经济学,而非计算机科学。显然,如果我们不改变思维方式,则很难开发出既好卖且成本低的产品。


二、利润模型


产品的BOM成本很低,而毛利又很高,为何很多上市公司的年利润却买不起一套房?房子到底被谁买走了,这个问题值得我们反思!


伟大企业除了愿景、使命和价值观之外,其核心指标就是利润,作为开发人员一个最大的痛苦就是很难精准地开发好卖的产品。因为很多企业普遍都不知道利润是如何来的?所以有必要建立一个利润模型,即“利润=需求-设计”。需求是致力于解决“产品如何好卖”的问题,设计是致力于解决“如何降低成本”的问题。


代码的优劣不仅直接决定了软件的质量,还将直接影响软件成本。软件成本是由开发成本和维护成本组成的,而维护成本却远高于开发成本,蛮力开发的现象比比皆是,大量来之不易的资金被无声无息地吞没,整个社会的资源浪费严重。


为何不将复杂的技术高度抽象呢?如果实现就能做到让专业的人做专业的事,AWorks就是在这样的背景下诞生的。由于其中融入了更多的软件工程技术方法,因此就能做到将程序员彻底从非核心域中释放出来聚焦于核心竞争力。


三、核心域和非核心域


其实一个软件系统封装了若干领域的知识,其中一个领域知识代表了系统的核心竞争

力,这个领域被称为“核心域”,其它领域称为“非核心域”。虽然更通俗的说法是“业务”和“技术”,但使用“核心域”和“非核心域”更严谨。


非核心域就是别人的领域,比如,底层驱动、操作系统和组件,即便你有一些优势,那

也是暂时的,竞争对手也能通过其它渠道获得。虽然非核心域的改进是必要的,但不充分,还是要在核心域上深入挖掘,让竞争对手无法轻易从第三方获得。因为在核心域上深入挖掘,达到基于核心域的复用,这是获得和保持竞争力的根本手段。


要达到基于核心域的复用,有必要将核心域和非核心域分开考虑。因为过早地将各个领

域的知识混杂,会增加不必要的负担,从而导致开发人员腾不出脑力思考核心域中更深刻的问题。由于待解决的问题的规模一旦变大,而人脑的容量和运算能力有限,因此必须分而治之,因为核心域与非核心域的知识都是独立的。


四、共性与差异性


如果没有ARM公司的IP授权模式,则在设计MCU时势必消耗大量来之不易的财富。虽然ARM公司的规模相对来说不大,但毫不影响ARM成为一个伟大的企业,其为人类做出的贡献是有目共睹的。


尽管如此,没有软件的支持,那么硬件就是一坨废铁。由于需求五花八门,尽管人们也做出了巨大的努力,期望最大限度地降低开发成本,似乎人们期望实现美好的心愿遥遥无期,无法做到高度地重用人类通过艰苦努力积累的知识。由于商业利益的驱使,伟大企业的不伟大之处,企图将客户绑在他们的战车上,让竞争对手绝望,大凡成功的企业无不如此。


有没有破解的办法呢?那就是“共性与差异性分析”抽象工具。实际上,不管是基于何种内核的MCU,也不管是哪家公司的OS,其设计原理是一样,只是实现方法和实体(硬件和程序)不一样,但只要将其共性抽象为统一接口,差异性用特殊的接口应对即可。


基于此,我们不妨做一个大胆的假设。虽然PCF85063、RX8025T和DS1302来自不同的半导体的公司,但其共性都是RTC实时日历时钟芯片,即可高度抽象共用相同的驱动接口,其差异性用特殊的驱动接口应对。虽然FreeRTOS或μC/OS-II或sysBIOS、Linux、Windows各不相同,但它们都是OS,多线程、信号量、消息、邮箱、队列等是其特有的共性,显然QT和emWin同样可以高度抽象为GUI框架。也就是说,不管什么MCU,也不管是否使用操作系统,只要修改相应的头文件,即可复用应用代码。


由此可见,无论选择何种MCU和OS,只要AWorks支持它,就可以在目标板上实现跨平台运行。因为无论何种OS,它只是AWorks的一个组件,针对不同的OS,AWorks都会提供相应的适配器,那么所有的组件都可以根据需要互换。


由于AWorks制定了统一的接口规范,并对各种MCU内置的功能部件与外围器件进行了高度的抽象,因此无论你选用的是ARM还是DSP,以高度复用的软件设计原则和只针对接口编程的思想为前提,则应用软件均可实现“一次编程、终生使用、跨平台”,显然AWorks给你带来的最大价值就是不需要重新发明轮子。


五. 生态系统


如果仅有OS和应用软件框架就构成了生态系统,这是远远不够的。在万物互联的时代,一个完整的IoT系统还包括传感器、信号调理电路、算法和接入云端的技术,可以说异常复杂包罗万象,这不是一个公司拿到需求就可以在几个月之内完成的,需要长时间的大量积累。


ZLG在成立之初就做了长期的布局,我们并没有将自己定位于芯片代理或设计,也没有将自己定位于仪器制造,更没有将自己定位于方案供应商,但随着时间的推移和时代的发展,经过艰苦的努力自然而然地成为“工业互联网生态系统”领导品牌。这不是刻意而为的,而是通过长期的奋斗顺理成章的结果。


ZLG通过“芯片+AWorks”设计了高附加值的模块、板卡和高端测量仪器,通过有线和无线通信接口接入ZWS(ZLG Web Services) IoT云端处理系统,,实现大数据处理,构成工业互联网生态系统。


其商业模式既可以销售硬件,也可以销售平台,还可以针对某个有针对性的行业提供系统服务于终端用户。与此同时ZLG将在全国50所大学建立工业互联网生态系统联合实验室,通过产学研的模式培养人才服务于工业界,还可以通过天使投资打造ZLG系,帮助更多的人取得更大的成功,推动“中国智造2025”计划的高速发展。


五. 专家与通才


任何一个组织和系统的成功都离不开专家和通才的鼎力配合与奋斗,这12年一路走来很不容易,但欣慰的是AWorks生态系统的开发,培养了一些专家和核心骨干人才。我深深地体会到卓越人才的价值,怎么形容都不为过,所以今后我的主要工作就是寻找和发现卓越人才,为他们提供一个衣食无忧的,可以静下心创新的平台,大家共同努力改变这世界某一小部分,欢迎自我推荐或读者向我推荐有理想有抱负的人才。如果你有心,你一定能找到我。


六、丛书简介


这套丛书命名为《嵌入式软件工程方法与实践丛书》,其最新动态详见www.zlg.cn(周立功旗下企业:广州致远电子有限公司)和www.zlgmcu.com(广州周立功单片机科技有限公司),全部以电子版的形式发布。


目前已经完成《程序设计与数据结构》、《面向AMetal框架与接口的编程》和《面向AWorks框架与接口的编程》(上),后续还将推出《面向AWPI框架和接口的编程》、《面向AWUI框架和接口的编程》和《面向ZWS IoT框架和接口的编程》系列图书。


封面图:

image.png?imageView2/2/w/550


推荐阅读

史海拾趣

Aleph America Corporation公司的发展小趣事

Aleph America Corporation 是一家专注于光电传感器和光电开关解决方案的公司。以下是关于该公司发展的5个相关故事:

  1. 公司成立及发展: Aleph America Corporation 成立于1986年,总部位于美国新泽西州。公司专注于光电传感器技术的研发和生产,并提供广泛的光电开关产品线,包括光电接近传感器、光电开关、光电耦合器等。随着市场对自动化和安全系统需求的增长,Aleph 在行业内逐渐建立了良好的声誉。

  2. 技术创新与产品质量: Aleph America Corporation 致力于技术创新和产品质量的提升。公司拥有一支专业的研发团队,不断引入先进的光电传感技术,并且注重产品的生产工艺和质量控制,确保产品具有稳定的性能和可靠的品质。

  3. 应用领域广泛: Aleph 的产品广泛应用于各种工业和商业应用领域。光电传感器和光电开关被广泛应用于自动门、电梯、安防系统、自动化生产线等领域,为客户提供了安全可靠的解决方案。

  4. 全球市场拓展: 随着全球市场的不断扩大,Aleph 在海外市场的拓展也逐渐加强。除了在美国设立总部和生产基地外,公司还在欧洲、亚洲等地设立了销售办事处和代理商网络,以便更好地满足全球客户的需求。

  5. 参与行业标准和认证: Aleph America Corporation 积极参与行业标准的制定和产品认证工作。公司的产品符合国际标准和认证要求,如CE认证、UL认证等,确保产品在全球范围内的市场准入和使用安全。

以上故事展示了 Aleph America Corporation 在光电传感器和光电开关领域的发展历程和成就,突出了其在技术创新、产品质量、市场拓展和行业认证方面的重要贡献。

DURACELL公司的发展小趣事

为了进一步扩大市场份额和品牌影响力,DURACELL公司积极寻求品牌授权合作。通过在全球范围内与相关企业进行合作开发,DURACELL公司成功将品牌延伸到更多领域和地区。这种合作模式不仅为DURACELL公司带来了更多的市场机会,也推动了整个电池行业的发展。

AUREL公司的发展小趣事

在追求经济效益的同时,AUREL公司也积极履行社会责任。公司注重环保和可持续发展,在生产过程中采用环保材料和节能技术,努力降低对环境的影响。此外,公司还积极参与社会公益事业,为当地社区的发展做出了积极贡献。这些举措不仅提升了AUREL公司的社会形象,也增强了公司的凝聚力和向心力。

请注意,以上故事是基于虚构的,旨在展示一个电子行业公司可能的发展路径和成就。如果您需要关于AUREL公司的具体信息或发展故事,建议直接查阅该公司的官方网站或相关新闻报道。

GREEGOO公司的发展小趣事
时钟信号线应远离一般信号线,避免并行走线以减少耦合干扰。
Advantech公司的发展小趣事
引入高精度的时钟源,以确保系统各模块间时钟信号的一致性。
达方(DARFON)公司的发展小趣事

为了进一步拓展市场份额,达方电子开始在全球范围内布局生产基地和研发中心。同时,公司加强了对供应链的管理,确保原材料的稳定供应和产品质量的持续提升。这一阶段的努力,使达方电子在全球电子行业中的地位得到了进一步提升。

问答坊 | AI 解惑

调试伺服系统心得2

    今天特意留意下机台配电电盘的硬件构造,终于弄清隔离地与模拟地的差异。而且在工控产品好多会涉及到隔离地的问题。我前天看了电路原理图,也问了我部门老大,但是我没太在意。在测试前准备工作中,我因隔离地问题,将一块USB转 ...…

查看全部问答>

没搞明白,取补是如何实现双字节减法的

(PIC18F248) NEG_A                                        ;ACCA取补子程序       &nbs ...…

查看全部问答>

3.3V和5V混合逻辑系统设计

写得不错,转过来保留 3.3V和5V混合逻辑系统设计     2009/01/05  asdjf@163.com  www.armecos.com 5V TTL器件可以和3.3V TTL器件直接相连,没有任何问题。 5V CMOS器件输出可以直接正确驱动3.3V TTL器件输入, ...…

查看全部问答>

地址编址的问题

我在FPGA中建了个FIFO,16位输出数据,片选了ARM的nRCS2,EBI总线连接到FPGA中FIFO的16位输出端,请问物理地址0x10000000中的数据是否就是FIFO中的首个的数据呢?这两个芯片中的地址是怎么对应的呢?…

查看全部问答>

输入捕获测量频率有误差怎么办

试着用输入捕获模式来测量输入信号的频率。。结果算出来和实际值相差很大,请大家帮忙分析一下原因吧,谢谢啊 程序: EXTI_InitStructure.EXTI_Line = EXTI_Line3; ??EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; ??EXTI_InitStr ...…

查看全部问答>

请教STM32高级定时器PWM输出极性问题

TIM1_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;   //配置输出极性(TIM 输出比较极为低) 下载 (23.24 KB) 2010-10-5 22:13 …

查看全部问答>

请问自定义数组到底放到程序page0,还是1中,再问这句话,是否说:变量溢出

error: can\\\'t allocate .text (sz: 00002cc0 page: 0) in PRAMH0 (avail:             00000ffe) 我应该怎么修改,谢谢…

查看全部问答>

谁来支援我一下...SDIO和RTC的中断套嵌该怎么处理?

RT.现在在做一个小模块.RTC生成时间作为日志的一部分保存在SD卡上.可是...中断好像冲突了.不能1s生成一个文件.1s中断不执行..咋办呢 具体如下: 主函数中 void InterruptConfig(void) {   /* Deinitializes the NVIC */  &nb ...…

查看全部问答>

msp430与PC机远程通信

我用msp430f149与PC机进行远程通信,用max487转换为485接口,单片机发送到PC机的数据,PC机能正确收到,但PC机发送到单片机的数据,单片机收不到,哪位大侠知道为什么?帮帮忙,我着急啊!…

查看全部问答>

晶振的峰值电压问题

我用的一个16MHZ的高速晶振源,它的峰值电压在1V左右,在2131上测试了结果跑不起来,是根本不能用还是别的原因?…

查看全部问答>