2016-02-22 王延炯 聊聊架构

所谓架构,就是解决「人所遇到的问题」(简称问题)的办法。采用什么办法解决问题,和客观的条件有关,也和当事人有关。因此,办法会有很多种,背后所体现的理念会有不同,折射出的是不同的价值观。

什么是「好」架构

「好」架构,应当是对架构使用人「简单」并且「通用性强」,可以解决「很多」人的类似问题。

「好」架构,应当因地制宜,不要求额外的增加使用人的负担(比如额外采购设备,学习新的知识),增加使用人的使用成本。

老一辈交代的煮汤圆方法(传统架构)

正好今天是正月十五,汤圆节,所以我们就从煮汤圆中来看看我上面的几个论述。这里所描述的煮汤圆的方法,可能只是传统煮汤圆的方法之一,大致过程描述如下:

  1. 取一锅干净的冷水

  2. 把冷水煮开

  3. 把适量的汤圆放入锅中

  4. 等水再次烧开

  5. 加入冷水,以保持汤圆不被煮破

  6. 重复第4/5步若干次

  7. 汤圆变熟,捞出享用

一定还有更多方法,因为煮汤圆的过程,和锅有关,和水有关,和火力有关,和被煮的汤圆数量和大小有关,不可避免的煮汤圆的人有关,等等等等。

煮汤圆的传统架构好不好

好。理由是:

  1. 对于汤圆怎么被熟的质变过程不需要了解(不需要了解物理原理)

  2. 可视化的温度,水煮沸了,就说明温度到达100摄氏度(一个标准的大气压条件下)

  3. 对于煮汤圆的设备不需要额外添置(常见的水、锅、煤气灶就可以)

  4. 整体过程容易理解,实际操作性强(烧开加水的重复过程,三岁小孩也许都会)

煮汤圆的目标(好吃有卖相)

一、直接目标是煮熟(基本前提)

问题是,熟是一个定性非定量的修饰词。熟,需要能够被量化,量化之后才能被管理。

于是熟的量化标准之一常常会被提及:汤圆至少要浮于水面之上。可问题又来了,浮在水面之上的汤圆不一定能保证在咬开之后,里面的馅料也是熟的。于是前辈们,还会告诉我们,等待汤圆略微发胖,这是提高汤圆馅料变熟的有效量化标准之一。因为胖,是肉眼可见,是可被量化管理的对象。

二、间接目标是不煮破不煮糊(还得有卖相)

由于汤圆的外部材料主要是糯米,糯米遇到水之后,尤其是沸水,会发生结构分解(是不是分子,因为作者不是食品和高分子学专家,不能细讲,也不能乱讲),其最终结果就是煮糊了,也就是糯米和水完全融合了在一起,汤圆已经没有了型。

因为怕煮烂,所以老一辈会特别强调,加入反复加入冷水,让水保持在似开非开的状态。

这种方法,一方面是保持煮汤圆所需要的温度,一方面是降低沸水所造成的汤圆不必要的翻动,避免加速汤圆煮烂。

根据现象看本质,架构识别

把煮熟汤圆「好吃」的关键要素

一、热能

热能,是使汤圆从生到熟发生变化的核心、必要条件。没有变熟所需要的热能,并保持在合理的温度,汤圆静静的放在那里,永远不会变熟(但可能会变质)。

二、时间

时间,是控制汤圆发生质变的必要条件。时间需要和温度配合,才能达到让汤圆变熟的目的。

三、潜意识的基本假设

不管多少类型的汤圆,大小基本固定,一般条件下,手工汤圆的大小,要比速冻机械制作的汤圆大一圈。

四、被忽视的核心要素

汤圆在被煮前的基本物理条件,是直接从冷冻室内取出,还是常温。

需要注意的是,沸水和汤圆糯米外皮的物理接触,是热能的第一道传导方式。汤圆的糯米外皮和馅料,是第二道传导方式。

糯米外皮与馅料的热传导方式相比把水煮沸是缓慢的,换句话说,糯米皮和馅料,是热的不良导体,导热性能比水差。

同时,冰冻的馅料变熟所需要的热能要比常温馅料的多,但热传导的效率基本不变。

在冰冻的状态下进行直接加热,势必造成加热的时间变长,这样一来,汤圆的糯米更容易发生煮烂,如果还采用翻滚的沸水煮,很难避免汤圆煮烂、馅刚熟的情况发生。

所以,在煮汤圆之前,最好把冰冻的汤圆从冰箱取出,在室温下放置一段时间。

到底要如何煮汤圆过程(重新架构煮汤圆)

一、煮汤圆的基本概念

汤圆本身、一次煮汤圆的总体数量、锅的容量、热源功率、热源功率的可条件范围。

二、煮汤圆的领域分解

  • 原材料供应商(汤圆)

  • 煮汤圆平台-热能供应商(天然气灶、煤气灶、电磁炉、电陶炉、煤球炉、煤油炉、烧柴火的灶等等)

    需要注意的是:这些热提供商的性能指标并不相同。比如,热功率(单位时间所提供的热能)提供热能可调节的范围。

    作者直观感受是:现代化的天然气灶、煤气灶、电磁炉,热功率可调节范围要大于煤球炉和烧柴火的灶。

  • 煮汤圆平台-恒温水容器供应商(水和锅)

    高中物理,告诉我们,水的比热容是很高的。所谓比热容,说的通俗一点,就是温度升高一度,所需要的(热)能量。

    所以,一个大锅里盛满的沸水,要比一个小锅盛满的沸水,所储藏的(热)能量多。

  • 煮汤圆平台-熟汤圆交付集成商(煮汤圆的人)

    煮汤圆的人,首先要评估要煮的汤圆有多少,热能的获得方式是什么、可调节性有多强,锅有多大、里面可以放多少水。

三、煮汤圆的基本流程

  1. 用锅把水烧开

  2. 下生汤圆,以最快的速度把水加热并接近沸点(接近水的沸点)

  3. 在一段时间,保持一定的水温(接近沸点,避免沸水翻滚以保持汤圆卖相),直至变熟(汤圆上浮和变胖)

又快又好把汤圆煮熟(最佳实践)

一、找尽可能大的锅

大锅,意味着可以放更多的水。在把一批汤圆放入到沸水中之后,由于汤圆和水会直接发生热交换,导致水温降低,水的温度直接从沸点下降。

举个极端的例子,在正在煮沸的一锅沸水中加入一滴常温的水,那么整个锅里的水,还将是煮沸的状态。原因是:

一滴常温水,变成沸水的所需要的热量,热能提供商(比如煤气灶)可以快速提供。

沸水的流动性,使得沸水和常温水的物理接触面增多,热交换速度变快。
这个极端的例子告诉我们,由于一滴水加热至沸点的能量,远小于蒸锅沸水的能量,所以蒸锅水在此过程中,水温基本不变。

回到煮汤圆的场景,大锅意味着加入常温的汤圆水温下降会变少。

持续的高水温,有利于提高热传导的进行(势能差越大,能量交换越快),有利于缩短煮熟汤圆的时间,保持汤圆的卖相。

二、把热源的功率发挥到最大

快速提供热能,使放入生冷汤圆的之后水温迅速提高,需要两方面的配合:

  1. 把热源开到最大(例如,把煤气灶开大火)

  2. 增加火和锅的接触面积(选择平底锅和煤气灶,并把锅底放在煤气灶的火焰温度最高的外焰位置)

三、保持准沸水的水温

保持略接近于沸水的水温,获得最高效率的热传递同时,避免水的翻动导致汤圆解体。

  1. 煮汤圆的锅,自身是具备一定散热功能的(在没有热源加热的情况下,水会停止沸腾和逐渐冷却至常温)

  2. 在热源最小输出热能的情况下,需要加入冷水,才能保持水温在沸点以下,避免不必要的水沸腾动能释放,引起汤圆破相。

非常规的花式(架构演变)煮汤圆秘籍

一、在家煮汤圆不反复加水

前文所提到的,保持水温似开非开,是达成快速、不破相煮汤圆的必要条件。

在当煮汤圆的装备得到技术革新之后,我们可以做到把热源功率变小,平衡锅自身散热和热源供给的平衡。

同时,可以把锅容器,替换为玻璃材质,例如采用全玻璃锅,采用热功率无级可变的燃气和电气炉具。

这样整个煮汤圆过程全程关上盖子,水蒸气蒸发所带走的热能,也能看到水是否被煮开。

在实际操作过程中,只要保持水微微有些被煮沸,不对汤圆产生结构性破坏力。温度的用肉眼量化,结合控制火力大小的闭环控制。

这样做的好处是,增加了煮汤圆的机械化可能,减少了过程中,对于加水这一环节的依赖,减少了对水的需求,增加了能源利用率。

二、饭店煮汤圆「生熟混煮」

当然,控制水温的另外一个方法是,把加水,替换为加「生」汤圆。

这种方法,对于执行人的个人素质和能力要求更高,需要相当的实际操作经验。

其实,笔者相信,摄氏99度煮出来的汤圆,也是「熟」的。可以看出,一样的标准流程,对于不同行业,优化方式不一样。

智能煮汤圆产品设计

这里要表达的是,技术其实是可以给业务带来革新。

煮了一辈子汤圆的人(业务方),可能一辈子都不会提出「智能」煮汤圆的技术需求。

1、设计理念: 煮汤圆应该是不需要操心的,我只要「好吃」和「卖相好」的汤圆。

食客(吃汤圆的人)只要买来汤圆,把汤圆投进煮汤圆机里,在汤圆被煮好的情况下会自动提示食客来享用,甚至自动放到碗里。

2、突破技术限制

技术限制: 识别汤圆馅变熟

  • 目前被传承的量化方法是「上浮」和「变胖」

  • 目前需要最佳实践帮助和知道的是:上浮之后再煮多久

技术突破:数字化汤圆馅变熟的技术指标

  • 定位汤圆(因为水和汤圆的混合物,密度不一样)

  • 判断汤圆馅料的温度(在前一步的基础上,采用热感应?超声波频谱?的方式(请原谅作者对于这一领域缺乏了解))

  • 恒温控制,保持水温接近于沸点但未到达沸点,避免由水的沸腾导致破相(笔者相信「99度」也能煮「熟」汤圆,当然这是在一个标准大气压的条件下)

  • 降低数字化成本,以控制产品的整体成品,使其变为消费品而不是概念产品或者奢侈品。

3、口碑营销

消费者惊奇的发现,「智能煮汤圆机」其实还能煮馄饨、煮饺子...

从元宵节煮汤圆看架构的识别与设计相关推荐

  1. 架构漫谈(三):如何做好架构之识别问题

    2019独角兽企业重金招聘Python工程师标准>>> 架构漫谈(三):如何做好架构之识别问题 作者: 王概凯  来源: InfoQ  发布时间: 2016-04-17 10:47  ...

  2. 从 Servlet 入手带你看架构和框架设计的套路

    以下代码相信大家都很熟悉,大学时学 Java Web 都写过这样的代码. 从第一次接触 Servlet 到之后的很长一段时间内,我都没理解 Servlet 是个什么玩意? 为什么要有 Servlet ...

  3. 一文看懂人脸识别(4个特点+4个实现步骤+5个难点+算法发展轨迹)

    2020-03-09 20:01:00 人脸识别是身份识别的一种方式,目的就是要判断图片和视频中人脸的身份时什么. 本文将详细介绍人脸识别的4个特点.4个步骤.5个难点及算法的发展轨迹. 什么是人脸识 ...

  4. [批量重命名工具] 批量图片识别文字来命名文件名,很多网友想看批量图片识别成文字,用图片上的文字来修改文件名,今天它来了

    很多网友想看批量图片识别成文字,用图片上的文字来修改文件名,今天他来了 因为不解决就得手动挨个挨个输入然后把文件命名好 今天又一个文件需求是这样的 图上有姓名文字,要识别出来改成每一张图跟这个一样,有 ...

  5. 如何使用ABP框架(2)三层架构与领域驱动设计的对比

    本文来自长沙.NET技术社区,原创:邹溪源.全文共有8500字,读完需耗时10分钟. 题图来自@pixabay 简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项 ...

  6. c/s三层结构信息系统的三个层次_如何使用ABP框架(2)三层架构与领域驱动设计的对比...

    本文来自长沙.NET技术社区,原创:邹溪源.全文共有8500字,读完需耗时10分钟. 题图来自@pixabay 简述 上一篇简述了ABP框架中的一些基础理论,包括ABP前后端项目的分层结构,以及后端项 ...

  7. IT架构师介绍-软件架构设计学习第一天(非原创)

    文章大纲 一.架构师定义 二.架构师分类与具备能力 三.研发人员发展的技术路线 四.架构师知识体系 五.参考文章 一.架构师定义   什么是架构师,这个聊架构话题时永恒的问题.每个公司对架构师的定位也 ...

  8. 【微服务架构】在微服务架构中最小化设计时间耦合

    理查森:我是克里斯·理查森.欢迎来到我关于在微服务架构中最小化设计时耦合的演讲.在这次演讲中,我将回答三个问题.什么是设计时耦合?这会造成什么问题?我们如何设计松散耦合的服务?这些年来我做了一些事情. ...

  9. 领域驱动实践总结(基本理论总结与分析V+架构分析与代码设计+具体应用设计分析)

    目录 领域驱动实践总结一:基本理论总结与分析 一.领域驱动设计两大设计:战略设计和战术设计 (一)战略设计 1.出发角度与目标 2.实现方式:事件风暴与模型确立(用例分析.场景分析和用户旅程分析) 3 ...

最新文章

  1. 机器学习和深度学习视频资料精选(附学习资料)
  2. 论文笔记(3)-Extracting and Composing Robust Features with Denoising Autoencoders
  3. 【转】jmeter响应结果乱码问题
  4. ERROR 1093 解决方法
  5. JAVA多线程和并发
  6. RAID简介与示例演示
  7. 硅谷再不是程序员们的梦想天堂了
  8. Java编程:马踏棋盘算法(骑士周游问题)
  9. 企业系统软件你知道哪些?
  10. Johnson算法寻找图中的所有简单环路
  11. mfc服务器发送信息失败10057,基于MFC的局域网聊天工具.doc
  12. footer的设置绝不只是设置footer:使html高、宽自适应和footer始终在网页最末尾
  13. 商城系统必备营销工具(五)——积分商城
  14. 好像记得有个人喜欢我
  15. 学机器人编程和学钢琴哪个好
  16. 长在火山熔岩石板地上的大米
  17. 【JAVA语言基础】
  18. 《HTTP》hfs快速搭建HTTP文件服务器
  19. 计算机文档库怎么进,Windows电脑注册表怎么进?
  20. HTML5自定义属性对象Dataset简介(data-xxx)

热门文章

  1. pythonget返回值_python 函数返回值
  2. 还原mysql数据库出错_mysql数据库的还原及常见问题解决
  3. Python基础学习笔记——时间单位换算
  4. 在 1G 内存的计算机中能否 malloc(1.2G)
  5. 一款全能的文件恢复软件EasyRecovery,可恢复500种以上被删除文件
  6. linux mysql开远程访问,Linux mysql开启远程访问
  7. 全网惟一面向软件测试人员的Python基础教程-在Python中如何优雅的切西瓜呢?
  8. 手机端背景图片撑满整个屏幕
  9. 安装VMware Workstation虚拟机中文版
  10. 微信能取代对讲机吗?区别在哪?