使用Sketch Libraries构建组件库/设计体系
昨天降了温,一下子从不温不火的暖湿秋天变成了冬日的样子。
眼看着一年距离结束已不遥远,偶尔翻看年初立下的一些目标,多数已有完成,略感慰藉。这种所谓慰藉之后不久,通常会买些什么大件的东西来犒劳自己一类。多巴胺无时无刻不在寻找着机会为宿主制造一些对于奖励的渴望罢了。
会播放John Coltrane的咖啡店都是好咖啡店。我若开一间自己的咖啡店,怕是会终日放着JC不停歇;与村上春树的原则完全相反。我想我可能付不起足够的薪水去请有名的乐队来表演;不如请一些老伙计过来吧,只要为他们提供足够的啤酒。
本期是一篇很长的译文,Using Sketch Libraries to build better design systems,从理论方法到实践演示,一应俱全;耗掉了两个周末的时间终于完成,期间原文还有过一次更新。其中的流程思路和我在做WireframeKit For iOS(线框稿风格Sketch组件库)以及现在团队内部的组件库时所用的大致相同,个人比较推荐。
另外说,Sketch 48 Beta已经开始提供Colors Management方面的功能,又是一次体系化角度的重要更新。
下面进入译文。
注意:Libraries功能仅在最新的Sketch 47当中提供。
所谓“设计”,就是在一系列约束条件下构建解决方案的过程。
- Adam Morse
从某种程度上讲,设计体系(Design System)便是这样的一种约束 - 诸如配色、图标、按钮等一系列设计语言要素共同构成了标准化的体系,为设计决策提供着指引。
遵从于这样的标准化体系,设计流程能够得到有效加速;同时,设计模式的复用性与一致性也将得到提升,产品设计方案整体更具扩展性,更易于维护。
然而在现实当中,创建和维护标准化设计体系的方式却多种多样。Sketch是我们在设计工作当中的利器,可以帮助我们简化设计体系的创建流程,但其自身在各方面存在的问题也是无法忽视的。
问题所在
在Sketch 47为我们带来Libraries之前,Symbols一直是Sketch当中最为重要的功能之一,同时也是构建设计体系的关键能力。Symbols用于创建可复用的界面元素,有助于维护设计方案的一致性。然而一直以来,这一机制的作用范围仅限于文档内部,除非借助第三方插件的帮助,否则Symbols无法在不同的文件之间保持同步。
这为什么是问题?
对于小项目来说,这没什么大不了。你可以将全部设计方案,甚至包括高保真原型、流程图一类都塞到一个文件当中,Sketch处理起来也不会产生什么问题。
然而,情况会随着项目规模的扩大而有所不同。出于性能效率或协作方面的考虑,我们通常需要将项目打散到不同的Sketch文件当中;这时,Symbols同步共用方面的问题就会暴露出来。
我们的团队有三个产品用到了同一套Symbols,这里的挑战就在于如何确保Symbols在不同项目之间的同步性。这三个产品都是很大的项目,各自的源文件都包含上百个画板(Artboard),因此难以通过单一Sketch文件来承载,否则文件将变得非常庞大。
一个Sketch文件承载了整个组件库
从前的处理方式
我们曾经使用一套Sketch模板(Template)来集中放置所有的Symbols,这种方式参考了原型制作工具Marvel官方的设计规范创建方法。在此基础上,我们进行了一定程度的扩展,例如在不同的Sketch文件当中通过Craft插件统一调用Symbols模板文件。
事实上,我个人并不推荐这种方式。文件尺寸的确得到了控制,Symbols的来源也得到了统一。但问题在于,一旦模板当中的Symbols发生变化,对于那些已经插入到不同文档当中的Symbols,我们无法进行同步性的更新。
Symbols功能的本质目标是使项目更易于创造和维护。然而,强大的复用能力只是其中的一个方面;对于那些已经被插入到不同文档当中的Symbols,你根本无法进行统一管理与更新。
幸运的是,Sketch 47为我们带来了Libraries功能。
解决方案
Libraries功能可以帮助我们创建独立的、能够被多个文件统一调用的Symbols库。这种机制已经有些类似于前端开发者们所熟悉的Sass了。不仅如此,你还可以对Libraries进行嵌套。
大体上讲,如今你可以将不同类型的Symbols分别存放在不同的Sketch文件当中各自作为独立的Library,譬如配色定义、图标、按钮、表单元素等等;其他项目文件则可以统一调用这些源文件当中的Symbols。当你修改了Libraries源文件,相关的变化也会同步更新到所有的项目文件当中。
这种统一管理和调用的机制可以为工作带来诸多益处,包括:
减小文件尺寸
增强Sketch的性能表现
提升界面元素的统一性
提升项目整体的可维护性
Sketch官方团队是这样诠释Libraries功能的:
一个Library本质上就是一个普通的Sketch文件,其中的Symbols可以被其他Sketch文件调用。如果你编辑了Library当中的Symbols,那么调用了该Library的其他Sketch文件便会收到更新通知,你可以对变更进行预览、对比和确认,使这些Sketch文件所调用的Symbols自动更新至最新版本。
- Sketch 47 Libraries功能图文详解
使用Sketch Libraries创建组件库
在本文接下来的部分当中,我将展示如何使用Sketch Libraries功能创建UI组件库。不过在此之前,我们还需要明确一些思路与原则。
像开发人员一样思考
打造设计体系的过程中,设计师们要试着像开发人员一样思考。
D.R.Y - Don’t repeat yourself
组件库的基本概念就是逐层创建可复用的UI元素,保持文件的轻量化以及设计方案的一致性。
从“原始元素”入手
我们所创建的任何一个组件都是由若干“属性”组成的。这些属性就是设计体系当中最为“原始化”的元素。开发人员会在代码当中为这些属性创造各自的变量,以提升代码的复用性;对于设计师来说也是同理,我们可以为各种原始化UI元素创建Libraries,以便逐层构筑更高级别的组件。
原子化设计理论
为了确保组件库的扩展性,我将Brad Frost提出的原子化设计理论(Atomic Design)作为指导。这套理论简单易行,很容易理解。
简而言之,原子化设计的灵感来自于现实世界当中的分子结构。UI当中颗粒度最小的元素,即“原子”,组成了颗粒度较大的控件,即“分子”;而诸多分子又组成了更加复杂的组件与模块,即“有机体”。
将不同类型的Symbols放在各自的Library文件中
当然,如果你愿意,你仍然可以将所有组件都放置在同一个Library文件当中;而我的建议(也是我们现在的做法)则是为每种类型的Symbols各自创建一个独立的Library文档。
类似于开发人员使用Sass partials的方式,调用多个Libraries文档可以使我们的设计体系更为优雅,更易维护。经过合理拆分的Libraries文档将更有利于被不同的项目调用;在需要的时候,也可以更加方便地进行扩展。
参照“原始元素”的思路,我们将从最为基础和核心的UI元素入手,包括颜色、图标等等,这些元素将在整个设计体系范围内被使用到;所有“原子”、“分子”、“有机体”级别的UI元素也正是由这些原始元素所构成的。
我们首先要对全局所用到的各类颜色进行定义。
第一步:创建新的Sketch文档,用于颜色定义
对于团队项目,我会在Sketch文件名当中统一添加“AIN”作为前缀,例如“AIN-colors”等等,以便与其他项目进行区分。当然,命名方式和习惯因人而异,如果你和我一样需要处理很多不同的项目,通过前缀进行区分的方式或许值得考虑。
我会为设计体系当中的每一种颜色生成一个Shared Style,并按照不同的作用进行分类,包括“brand”、“greyscale”、“UI”等等;具体的分类方式就是在Shared Style命名当中通过“/”符号表示层级结构,Sketch会识别到该符号,并自动生成相应的架构。
接下来,我会为每一种颜色制作一个Symbol,并使用Symbol Organizer插件在Symbols页面当中对它们进行组织 - 在层级化命名方式的辅助下,Symbols页面将自动呈现出清晰的架构体系。
第二步:将颜色定义文档添加到Libraries体系
完成了颜色定义之后,我们需要将这份Sketch文档添加到Libraries体系当中。设计体系当中所有原子级元素的定义都需要这一步骤。
在顶部菜单栏选择“Sketch Preferences”,然后进入“Libraries”选项卡,点击“Add Library”按钮,选择我们在上一步里创建的Sketch文档。
如图所示,我将AIN-colors文档添加到了Libraries体系当中,这样我就可以在任何其他Sketch文件里对其进行调用了;这便是Libraries功能的强大之处。
怎样使用这些颜色Symbols呢?在接下来创建图标Library的过程中,我将进行演示。
第三步:创建新的Sketch文档,用于图标定义
类似于我们在第一步当中的做法,这一次我们对图标进行定义。新文档名为“AIN-icons”,与之前的“AIN-colors”文档保存在相同的路径中;之后所有原子级UI元素的Libraries文档也都将被保存在这里。
每个图标都被放置在相同规格的24x24像素的画板当中,下面铺着24x24像素的透明图层以确保规格统一。然后我会从AIN-colors Library当中选择恰当的颜色Symbol插入到图标画板当中,覆盖在图标图层之上,并将其尺寸调整为24x24像素。
接下来,将图标设置为蒙板(按住Control键,点选图标,在菜单中选择“Mask”),如此一来,我们刚刚从AIN-colors Library当中插入的Symbol就能将其颜色附着到图标形状的蒙板上了。
需要注意,在Sketch左侧的图层列表当中,带有连环图标的便是从外部Libraries插入的Symbols。
这里的核心思路在于Libraries的嵌套。通过这种方式,每当我需要修改颜色定义,只需要在AIN-colors文档中进行编辑,然后所有用到了这个颜色的图标或其他UI元素就会自动更新了。
现在,我们就可以将图标画板转换为Symbols了。需要注意的是,对于这些图标画板,要确保在右侧检查器中选中“Adjust content on resize”;此外还要将图标的Resizing选项设置为四边同时吸附,并锁定宽高比例,以确保图标Symbols在实际使用的时候可以被灵活地调整大小。
重复这一过程,直到完成所有图标Symbols的定义。期间同样要注意层级化的命名方式,以便最后可以通过Symbols Organizer插件将它们组织起来。
第四步:将图标定义文档添加到Libraries体系
具体方法与我们在第二步当中描述的相同。
此时,我们已经完成了两个Libraries文档的创建,对于我的情况来说,就是“AIN-colors”和“AIN-icons”。现在我们的图标已经可以通过Libraries的方式被其他文档统一调用了。
第五步:重复以上步骤,对其他元素进行定义
希望前面四步的介绍已经可以帮你了解到流程的主旨。
你可以参考这样的方式继续完善其他基础元素的定义,期间始终保持Libraries的逐层嵌套。
在我们的AIN设计体系当中,同类元素还包括按钮、表单元素等等;这些Libraries文档与“AIN-colors”和“AIN-icons”一起被保存在同一个路径当中,当我开始制作分子或更高级别UI元素的Libraries时,便会进行调用。
Libraries的更新
随着产品的进化,你总会需要对核心Libraries当中的某些元素进行更新。Sketch提供的机制使这件事变得很简单,你只要在Libraries文件当中像操作普通Symbols那样进行修改便可以,然后所有调用过这些Symbols的Sketch文件都会收到更新提示(Sketch界面右上角)。点击提示信息,查看变更并进行确认,所有更新工作就会自动完成。
接下来
完成了所有原子级别UI元素的定义之后,你就要着手整理更为复杂的元素了,例如“分子”,然后是“有机体”,等等。整个过程中,你都可以对之前创建的各级Libraries进行嵌套,通过小颗粒元素组合大颗粒元素。
以此类推,这套基于Sketch Libraries机制逐层构建的设计体系终将越发复杂和完善,并最终有能力帮你实现完整的界面。届时,你便可以在任何项目当中对这套体系进行调用。
在本文的后续部分中,我将带各位一起了解一下创建更为复杂的组件的过程,可能包括页头、导航、卡片视图、页脚等部分;同时也将展示如何在实际当中使用这套设计体系。
需要说明的是,原子化设计理论只是一种指导原则,而非硬性规则,你最终还是需要一边结合理论,一边根据自己产品的特定情况来判断以怎样的方式对UI元素进行层级划分。
此外,关于Libraries在多设备之间的同步使用,我个人目前还没有涉及到这方面的实际运用。正如Sketch在官方文档之中建议的,你可以通过Dropbox、Google Drive或类似的存储服务来实现同步;这对于团队共享和协作将非常有用。
小结
在本文中,我们一同了解了如何使用Sketch Libraries构建模块化的UI组件库/设计体系,希望此时你已经感受到了Libraries功能的巨大潜力。
如果你是设计团队中的一员,或是一名需要更好的方式来管理项目的独立设计师,那么不妨试着将Libraries功能运用到设计流程当中 - 这个自Symbols以来意义最为重大的新功能将能越发有效的帮助我们构建和维护设计体系。
你可以下载我提供的范例项目作为参考(https://dropbox/sh/m63vzakr0oolyvc/AACrJzxtVYpEJoD0IXF14jI2a?dl=0),其中包括了颜色、图标、按钮等元素的定义,以及一个简单的项目案例。希望这套范例能帮你更好的理解本文的内容。需要注意,你需要更新到Sketch 47才能打开这份文档。
国内设计资源素材库
国内设计资源素材库
综合设计资源库
l人人链
以保护版权为核心,集图片、音频、视频、模板等,多元化的分享平台也是全球首个用区块链技术保护作者版权的网站
l站酷
中国最具人气的设计师互动平台,站酷聚集了中国绝大部分的专业设计师、插画师、摄影师、艺术院校师生等设计创意群体,是中国最活跃的原创设计交流平台。
l古田路9号
以品牌为核心,集创意作品分享、活动招聘发布、广告推广、正版字体素材下载等多元化的交流分享平台。也是国内各大设计组织活动的官方媒体,并与国内各大品牌设计公司形成战略合作伙伴。
l视觉ME设计社区
视觉中国设计师社区是一个致力于设计作品分享、发现、售卖的专业平台。这里有寻找灵感的海量资料库,也可以参与精彩纷呈的设计大赛并获得收益和提升。
l中国设计网
中国设计类行业第一批最具人气的网络服务商,服务于设计创意人群的专业在线媒体。内容涉及平面包装、建筑室内、媒体影像、数字动画、工业设计、服装设计、绘画艺术等领域。
l设计之家
一个为设计行业提供高质量的网络交流平台和网络资源共享平台的组织机构,义务服务于中国设计领域的网站。内容涵盖平面设计、工业设计、网页设计、CG、设计教程、环艺设计、艺术、素材等。
l设计帝国
经过五年的努力,设计帝国已经积累了相当一部分年轻的用户访问群体,他们来自各行各业,年龄主要集中在18-35岁左右,包括设计师,设计专业学生,设计爱好者。
l设计青年
网聚集了中国绝大部分的专业设计师、艺术院校师生、潮流艺术家等年轻创意人群,是国内最活跃的原创新锐设计交流平台。
标志字体设计资源库
l人人链
以保护版权为核心,集图片、音频、视频、模板等,多元化的分享平台也是全球首个用区块链技术保护作者版权的网站
lLOGO大师
中国设计行业领域一站式搜索平台设计行业资源
lLOGO圈
是一个以logo设计分享,logo设计欣赏,logo设计评论与交流的标志大全网站平台
lLOGO社
logo设计素材及国外logo设计欣赏为主的标志设计分享网站。
l求字网
可以查找字体的网站
H5 UI WEB设计资源库
l人人链
以保护版权为核心,集图片、音频、视频、模板等,多元化的分享平台也是全球首个用区块链技术保护作者版权的网站
lUI中国
是专业的界面设计师交流、学习、展示平台。同时也是中国最大的UI设计师聚集地,会员均为一线UI设计师,覆盖主流互联网公司。我们希望借助互联网的力量打造国内最专业的UI设计平台,为UI设计师做最好的服务,提高UI设计行业价值!
l黄蜂网
黄蜂网致力于收集国内外优秀网页、UI、平面设计作品,和国内设计师一起学习成长!
lH5DOO
H5DOO是基于HTML5场景应用的聚合商业服务平台,我们致力于汇集全网优质HTML5场景应用作品
l易企秀
免费H5页面微场景制作工具
l秀米
H5页面微场景制作工具
l致设计
中国最大的电商设计师交流平台。最活跃的电商设计师学习交流分享社区
创意资讯文案广告资源库
l人人链
以保护版权为核心,集图片、音频、视频、模板等,多元化的分享平台也是全球首个用区块链技术保护作者版权的网站
lVISION青年视觉
《VISION青年视觉》作为国内领先的艺术时尚杂志,自2002年1月创刊至今一直将国际艺术、时尚、人文以独特视觉传播形式传递给中国的读者,让读者看到生活中不一般的视野,引发对生活新的思考及激发新的生活方式!
lArting365
致力于用设计的角度去解读这个世界的方方面面,创意/商业/科技/生活,都是我们解读的对象,我们将设计从世界中抽离出来,告知所有人设计在人类社会的影响力。
l数英网DIGITALING
这里集结了来自营销、新媒体、电商、互联网及无线互联网等数字领域人才的智慧结晶。
lTOPYS
全球顶尖创意分享平台
l广告门
这里汇聚了中国最核心、最活跃的营销传播产业人才,是一个富有创造力、凝聚力的营销传播资源智库。
图片资源库
l人人链
以保护版权为核心,集图片、音频、视频、模板等,多元化的分享平台也是全球首个用区块链技术保护作者版权的网站
l华盖创意
是国内领先的专注创意类图片、视频内容授权、版权清除和委托拍摄等专业服务的提供商
l全景网络
中国最大的图片库和图片分享网站
l图虫网
最好的摄影师都在这
l美空网MOKO
是中国最早、最大的时尚艺术人才成长平台。网站汇聚了国内最多的专业模特艺人、时尚摄影师、化妆造型师等时尚艺术顶尖人才。
lEput
中国领先的高品质图片分享与售卖平台
本文只作学习分享用途,如侵犯作者权益,请及时联系删除
不一般的营口,建筑建设越来越好!
营口市2008年荣获“中国十大爱心城市”称号,列香港、深圳、北京、杭州、唐山、青岛、宁波、西安后第九名。
营口市荣获“2012年度中国最具投资潜力城市50强”,其实质是利用先进的信息技术,实现城市智慧式管理和运行,进而为城市中的人创造更美好的生活,促进城市的和谐、可持续成长。
营口,作为全国首批沿海开放城市,物产丰盛、交通便利,是东北重要的出海通道,是“一带一路”战略重要的交通节点之一,是环渤海经济圈以及东北亚地区最具发展竞争力的现代化港口城市
营口港是东北地区及内蒙古东部地区最近的出海港,东北地区最大的货物运输港,辽东湾经济区的核心港口。营口港由营口港务股份有限公司(以下简称公司或本公司)经营,下辖营口港区、鲅鱼圈港区、仙人岛港区、盘锦港区、海洋红港区、绥中石河港区和葫芦岛柳条沟港区。
智慧城市就是运用信息和通信技术手段感测、分析、整合城市运行核心系统的各项关键信息,从而对包括民生、环保、公共安全、城市服务、工商业活动在内的各种需求做出智能响应。2013年8月,住建部批准营口市为国家第二批智慧城市试点城市。(作者:暧昧终成伤time)
数据库的设计
齐木楠雄的灾难
当前表
历史表
清单表
流水表
日志表
控制表
工单表
历史表
我们设计一个数据表的时候,常常只设计表本身,最多对请求记录一条日志。导致实际生产过程中出了点什么bug,查数据流查到shi,有任何一点问题,都要一点点翻代码,代价高,效率低。这就是因为我们我们在进行数据表设计的时候,只在乎实现功能,对数据不够重视,对数据的流转过程并没有记录下来。这个时候就需要我们的--历史表--闪亮登场了。
举例:当前表 customers
{ "_id": { "type": "string", "comment": "主键" }, "key1": { "type": "string", "comment": "" }, "key2": { "type": "integer", "comment": "" }, "operator_id": { "type": "string", "comment": "操作员" }, "operate_type": { "type": "integer", "comment": "操作类型, 增:1, 删:2, 改:3" }, "create_time": { "type": "date", "comment": "创建时间" }, "update_time": { "type": "date", "comment": "修改时间" }}
其中_id为主键,key1和key2为表的字段,operator_id, operate_type, create_time, update_time为必须要有的字段内容,对于当前数据的操作员,操作类型,创建时间和修改时间是当前表中重要的内容,对于生产环境中出的操作问题或者是bug可以起到快速追溯的作用。
而一个正常的当前表,必然有历史表,一般在当前表的后缀添加_his(即history的缩写),customers_his,历史表与当前表的字段一模一样,一旦当前表出现增删改操作,历史表中增加一条数据,并且有对应的操作类型(tips: 如果是删出操作,当前表中没有,历史表中有删出的操作类型)。
清单表
当某一个功能,产生重复相似的数据(例如通话记录),那么我们就需要一个清单表,将所有可能产生的数据作保存,清单表只作增加和转移,不作删出和修改。
举例:concact_list
{ "_id": { "type": "string", "comment": "主键" }, "key1": { "type": "string", "comment": "" }, "key2": { "type": "string", "comment": "" }, "operator_id": { "type": "string", "comment": "操作员" }, "create_time": { "type": "date", "comment": "创建时间" }}
清单表中没有操作类型和更新时间,因为清单表只作增加,没有修改操作,也不允许删除(tips:仅在表格数据量压力过大时将数据迁移出清单表)
流水表
当某一数据,经常修改,当并不是以数据列表的形式存在,而是某关联数据的某个状态的时候,这样的数据就不需要采用 当前表 + 历史表 的组合,可以用流水表的形式来体现。
举例: qc_srl
{ "_id": { "type": "string", "comment": "主键" }, "key1": { "type": "string", "comment": "" }, "key2": { "type": "string", "comment": "" }, "operator_id": { "type": "string", "comment": "操作员" }, "create_time": { "type": "date", "comment": "创建时间" }}
流水表也不需要操作类型和更新时间,因为流水表也只作增加。获取状态的时候,只要获取最近的创建时间对应的数据即可,而且不会流失操作过程,具有可查性。
日志表
日志表其实是清单表的另一种体现形式,记录的是操作日志,例如前端每发送一个请求就记录一条日志,含入参,后端每发出一个返回也记录一条日志,含出参。像这种可以概括的形式,应该封装成模块,发送请求和返回时直接调用即可。
除了入参和出参,也可以自由地在程序当中觉得需要记录日志的节点记录日志。而且日志量可能巨大,因此建议日志系统单独做,不与应用系统共同存在,这样可以减少由于日志表过多的数据量拖慢应用系统的性能。
正因为以上原因,日志表于清单表又有一些不一样的字段。
举例: logs
{ "_id": { "type": "string", "comment": "主键" }, "operator_id": { "type": "string", "comment": "操作员" }, "method": { "type": "integer", "comment": "方法:GET:1, POST:2, PATCH:3, DELETE:4, PUT:5" }, "ip": { "type": "string", "comment": "IP" }, "url": { "type": "string", "comment": "url" }, "system": { "type": "string", "comment": "系统" }, "part": { "type": "integer", "comment": "集群化部署时的机器" }, "level": { "type": "integer", "comment": "日志等级,error: 1, warning: 2, info: 3" }, "keyword": { "type": "string", "comment": "关键字" }, "create_time": { "type": "date", "comment": "传输过来的创建时间" }, "system_time": { "type": "date", "comment": "本系统的创建时间" }, "options": { "type": "object", "comment": "日志内容,以json形式储存" }}
system字段表示系统,因为公司可能有多个系统,但是公用一套日志系统,因此采用system字段标识系统。
part机器名称,用数字对应机器名称,采用字典翻译,一个有规模的系统不可能是部署在一台机器上的,基本都是呈多台机器集群化部署,因为日志内容中对机器体现也是非常重要的。
level为日志等级,在不同的情况下记录不同的等级,方便查找生产bug对应的日志的时候筛选。
keyword,在进行不定向日志记录的时候,有些重要且容易反复发生问题的日志可以记录一个关键字,方便查找问题的时候快速筛选出目标日志。
create_time和system_time分别是请求传输过来带的时间和日志系统产生的本地时间,两者的差距可以看出网络传输的速度。
options是最重要的日志的内容,以json格式储存。
控制表
有些时候,某个动能可以要批量的操作到大量的数据,而且有可能多个帐号操作同一批数据,或同一匹数据的关联值,那么当一个操作以不同的操作员同时发生的时候,就有可能会产生重复数据或者是数据流转不准确的问题。这个时候,就可以由我们的--控制表--出场了。
控制表,顾名思义,就是对某个事件进行控制,当某个任务开始执行的时候,在控制表中添加一条数据,在任务进行中的时候,如果再次请求,先查询数据的状态,如果正在进行中则返回进行中不再次进行,当任务结束,则将控制表数据改为运行结束的状态。
工单表
当一匹数据将要被处理的时候,我们总担心,如果其中一条数据因为各种各样的原因被处理失败了怎么办?是全部失败直接报错呢还是部分成功,如果是部分成功,那失败的数据是放置还是再次执行,如果执行一直失败会不会卡在循环里搞崩系统,这一系列的问题到底要怎么处理比较好呢?
下一个闪亮登场--工单表。
首先,将要处理的数据全部存入指定的表中。
然后安排指定程序每秒钟扫描指定的表,如果表中有内容,则执行指定程序。执行成功,将数据搬入工单成功表,执行失败将数据搬入工单失败表并标记失败次数。同时程序也扫描工单失败表,成功则搬入工单成功表,失败则更新失败次数。失败到指定次数之后的数据不再继续执行。
这样,数据便能被安全地、分批次地执行完毕,而且不必担心同功能的多次事件并发所造成的压力。最后还可以在页面展示失败数据。人为地进行核查。
类似的实现方式除了工单表之外,订阅--消息的方式更加值得推重。下次补充。
更多:阿里云部署 nodejs+mongoDB 傻瓜教程(https://jianshu/p/69f15b812c71)
人工智能时代,千库网助设计师守住优势阵地
今年以来,伴随人工智能的发展,不少职业开始受到冲击,其中以受到“鲁班”威胁的设计师行业尤甚。面对“人类设计师将死”的言论,设计师该如何应对?
以阿里1秒生成8000张海报的ai“鲁班”为例,如今的人工智能发展理念,是通过输入大量的专业知识、快速的进行“深度学习”,训练出来的是精通某一类特定技能的“智能工具”,而不是训练出一个能听说读写、拥有情感、可以完成创造性劳动的“人造人”。而工具是没办法“创造”的,它们没有创造力。
而人类设计师的工作按层次分可以分为四个层次:机械模仿;根据主题搭建设计框架进行场景表达;“无中生有”的创意洞见;主导潮流创造趋势。目前“鲁班”最为擅长的就是最基本层次的模仿,而其他三种需要创造性的层次,是人工智能目前还不能取代的。因此,设计师高效、学习性和创意性就显得更为重要。
对于第二层次的设计师,可以利用千库网500万免抠png元素和200万高清背景寻找灵感,利用现有免抠素材和背景作图,提高70%的作图效率,解放出更多时间学习进步。对于更高层次的原创设计师,可在千库网原创商用版块上传作品,实现作品变现和作品展示。进而通过先进的VRF协议,供企业用户下载商用,免去版权烦恼。
面对人工智能的崛起,千库网将继续致力满足设计师的需求,为设计师提供省心省时省力的服务,进而解放出更多时间,提高学习能力和创造力。为原创设计师提供变现和展示平台,助力设计师守住“创造性”这一优势阵地。
地下车库坡道设计
1、 汽车通道和汽车出入口的设置
汽车通道入口数量及其要求
大中型汽车库的库址,车辆出入口不应少于2个;特大型汽车库库址,车辆出入口不应少于3个,并应设置人流专用出入口。
各汽车出入口之间的净距应大于15m。
2、地下汽车库地面出入口的设置
(1)汽车库库址的车辆出入口,距离城市道路的规划红线不应小于7.5m,并在距出入口边线内2m处作视点的120范围内至边线外7.5m以上不应有遮挡视线障碍物。
示例
汽车出入口边线内2m处(0点)120°视角内有遮挡视线障碍物,出口边线至道路红线距离小于7.5m
(2)地下车库出入口与道路垂直时,出入口与道路红线应保持不小于7.50m安全距离;
3、汽车通道和出入口坡道的最小转弯半径
①汽车坡道直线段,曲线段纵坡超过规定;
②设计小型车汽车坡道转弯半径不满足要求,车行环道内半径r2<3.5m;
③坡道纵坡大于10%时坡道两端未设缓坡段;
4、地下车库坡道的设计要素
3.4.1坡道类型
1)坡道的类型从基本形式上可分为直线形坡道和曲线形坡道。
2)在选择车库坡道类型时,并没有固定的模式,由于基地条件的复杂性,往往难于采用单一类型的坡道,常常出现折线形坡道或直线与曲线相结合等坡道
3.4.2坡道位置
坡道在地下车库中的位置基本上有以下三种方式:
1)即坡道在车库主体建筑之内;
2)坡道在车库主体建筑之外;
3)坡道一部分在车库内,一部分在车库外。
3.4.3坡道坡度、宽度及车库层高
1).车库坡道坡度
《汽车库建筑设计规范》规定:直线坡道的允许最大纵坡为15%。当设计中确有困难时可放宽至20%(小轿车最大爬坡能力为18度-24度,中型货车为22度- 28度);若条件允许,则坡度为12%较为合适。
当坡道坡度大于10%时,在坡道上下方变坡位置应设置缓坡段。缓坡段的坡度为坡道坡度的1/2,直线坡道缓坡段水平长度不应小于3.6m,曲线坡道不应小于2.4m。
2)坡道宽度
汽车疏散坡道宽度:单车道应不小于4m,双车道不小于7m。
3)车库层高
车库的层高是车库净高及结构层高度之和,而车库净高为汽车总高加上0.5m的安全距离。停放各种类型的小轿车的地下车库净高在车位处应大于小于2.2m,通道处大于等于2.4m,加上结构高度及设备(消防喷淋管、电线、灯具、风管)高度。因此停入小轿车的地下车库层高一般为4m,若停放中、大型客车,则层高相应增大。
千库网萌宠,设计师之友库宝生日啦,大礼送不停!
是的,就是这么劲爆!
因为
4.25就是咱们千库网的吉祥物
库!宝!一!周!岁!生!日!
为了能过个豪华的生日
4月18日-4月25日
库宝决定持续整整
8天活动!
疯狂送送送送!!!
Iphone X、现金红包、海量礼品、VIP……
该送的一个都不能少!
想要提前做好领奖姿势吗?
第一手攻略跟我走!
1.库宝撒钱第一弹-10元红包,人人有份!
只要手指一点,10元红包立马到账!
就是这么简单!就是这么粗暴
2.库宝撒钱第二弹-5元微信红包
同样只需手指一点
就可以获得5元微信现金红包
而且,是每天都能领!!!
没错,还有重头戏!
3.幸运大转盘-每天抽一抽
Iphone X、wacon手绘板、三只松鼠大礼包、库宝周边、VIP……
而且,重点是
中奖率非常非常滴高!!!
还有,每天抽奖次数上不封顶!!!
最后,你们还可以看到
库宝的各位小仙女,帅小伙同事为库宝精心准备的生日party!
是不是很期待看到库宝的真容?
再次提醒注意
库宝的福利生日周时间
4月18日至4月25日
搜索千库网,参加活动哦
创享智库赴营口市办专题讲座,资本将成为激活民营企业创新的巨大推动力
受辽宁省营口市委统战部、市工商联隆重邀请,创享智库顾问、全国工商联副秘书长王忠明和创享智库创始人、中国中小企业协会副会长梁涛于7月18日下午在营口出席自贸区发展和供给侧改革与资本创新专题讲座。
营口市市委统战部、市工商联、辽宁自贸区营口片区、各县(市)区委统战部、工商联等单位工作人员以及民营企业家代表参加了专题讲座。
王忠明先生曾在国务院生产委员会、国务院生产办公室、国务院经济贸易办公室、国家经贸委、国务院国资委工作,先后任办公厅处长、副主任和培训司司长、经济中心主任等职,现任全国工商业联合会副秘书长、中国民(私)营经济研究会常务副会长兼秘书长。
讲座中,王忠明先生结合自己多年的工作实践,就自贸区相关知识进行了讲解,深刻阐述了自贸区建设发展的重要意义。
他认为,建好自贸区要始终扭住制度创新和经济发展两大板块,解放思想、转变观念,大胆闯、大胆试、大胆探索。要抓好制度创新,按照复制经验、借鉴改进、自主创新三种模式,加快自贸区制度建设。要加快经济发展,研究解决当前自贸区项目落地以及企业注册、长久效益、市场占有率、发展前景等一系列问题,和周边城市,做好协同配合、提供优质服务,推动自贸区经济社会加快发展。
王忠明
创享智库创始人兼CEO、中国中小企业协会副会长梁涛则以自身的创业经历为例,用生动的案例和详实的数据围绕企业转型升级、改革创新等内容发表了见解。
他认为,在新经济时代,随着供给侧改革的深入,中国民营企业在成长中面临着许多新问题、新矛盾,而企业家作为企业的掌舵人,一定要找到方向和方法转型升级,而市场并没有留给企业太多时间,也就是说,形势非常严峻。
在转型升级的过程中,资本市场所蕴含的巨大力量必将成为激活企业创新的推动力。然而,尽管民营企业在国民经济中具有重要地位,但因为规模小、市场信誉度相对较低,从银行等金融机构获得资金困难,这必然导致中小企业在竞争中处于弱势。
因此,民营企业一定要学习融资知识,学会借力资本的力量。创享智库旨在帮助民营企业转系型升级,实现“赚钱”、“值钱”两大目标,会不断从民营企业中寻找优质企业或项目进行孵化,并从资本角度为其进行商业模式设计和资源匹配,使企业搭上资本快车,帮助企业顺利完成转型升级,推动企业快速成长、做大做强。
另外,梁涛总裁认为,在民营企业发展过程中,敢于创新,颠覆旧格局,更新观念也是非常重要的。
梁涛
为什么传统企业转型一直非常困难?李嘉诚曾经说过,过去你成功的经验正是你今天失败的原因!创享智库发现现在的企业家大多都在做“三个一”工程,一听就懂、一看就会、一做就错!而企业家是企业的灵魂,你不变万事不变,你变则无限可能!
对于企业家而言,眼前的境地既是机遇又是挑战,因为困局往往意味着机遇。一旦找到“转型升级”这把打破困局的钥匙,就必将迎来新一轮的成长。毫无疑问,传统企业有着极强的生命力,发展前景十分广阔,但关键就在于商业模式转型和资本运作的速度和步伐了。
创享智库首创“智本+资本+资源”模式,自始至终以经济转型期的民营企业为中心,为企业配置最优质的市场资源,让企业以最大的价值走进资本市场,实现赚钱和值钱的目标,获得了大量中小企业以及企业家的热烈欢迎和极力认可与支持。
设计师必备-千库网/千图网素材下载插件
软件介绍
一款挺好的浏览器插件,需要chrome内核的浏览器(360安全、360极速、QQ、猎豹、2345及其他chrome内核的浏览器)支持,用得到的朋友们自己拿走。如果侵害了作者的权益,请联系我及时删除!
千图网资源介绍
2013公司成立,930万+共享+原创作品,3900万+注册用户! 千图网是国内领先的设计&办公创意服务平台。2013年3月千图网正式上线运营,隶属于上海品图网络科技有限公司。 经过4年的素材积累和数据沉淀,千图网搭建了一个以创意作品库为核心,围绕着设计人群及泛办公人群提供优质创意服务的共享平台。服务内容涵盖了平面广告、电商淘宝、装饰装修、网页UI、产品工业7大主流设计服务,以及PPT模板、Excel模板、文库模板、高清配图、视频音频5大办公人群常用服务,共计60多项细分服务。
千库网资源介绍
做设计 不抠图!千库网隶属于上海品图网络科技有限公司。千库网成立于2015年9月,是国内首家专注提供免抠PNG图片的素材网站。“做设计 不抠图,终止加班”是千库网的愿景,目前已获得超万条用户的口碑好评。 经过2年的高速发展,目前网站不仅仅拥有500万优质PNG免抠元素,还有200万精品背景素材和700万模板素材。获得930万设计师的喜爱和20000多家企业的信赖,致力于满足全国2000多万设计师素材下载的需求。 千库网自创办以来一直保持着高速下载、绿色无广告、高度口碑认可的特色,我们会一如既往的为设计师提供更好地服务!私信获取下载地址!
地下车库这样设计,1平米省几百万
大多数时候,车库利润较低,且单方成本指标相对地上较高。所以车库停车效率的管控对于项目成本的影响以及对利润的影响至关重要。
01
面积相差1平米,货值相差几百万
正常情况,地库单车位面积指标一般处于30m2/车位-35m2/车位,普通二层地库建安成本约2500元/m2,如果车库售价按照10万元/车位计算;
第一种情况:车库面积一定,停车效率对车库货值的影响;
假设车库面积5万平方米,当单车位面积指标为34m2/车位和33m2/车位时,对货值的影响如下:
第二种情况,车库数量一定,停车效率对地库成本的影响如下:
假设车库数量为1500个车位,当单车位面积指标为34m2/车位和33m2/车位时,成本的影响如下:
从以上AB两种情况得知,停车效率的高低对成本管控及车库货值影响较大,正常同一个项目,不同设计院出品,不同设计师把关,停车效率差一个平方米很正常。
从以上分析得知,一个地产项目(约15万平方米),单车位面积指标变化1m2,影响货值约450万元,影响成本约375万元。
02
停车效率口径如何统计?
停车效率的定义:停车效率简单而言就是单车位的面积。
但是面积的口径如何,不同房企有不同的口径,不同的人有不同的理解。下面对不同停车效率的计算方式进行阐述和说明:
1、按照 “人防车库”和“非人防车库”进行区分停车效率,代表房企:碧桂园
人防车库停车效率指标=人防地库建筑面积/人防车位数量
非人防车库停车效率指标=非人防地库建筑面积/非人防车位数量
为什么要将“人防车位”和“非人防车位”的停车效率指标进行区分呢?因为一般情况下,人防地库相比非人防地库,多了很多人防口部,人防通道,人防设备用房等,导致人防车库停车效率指标相对偏高;
2、按照“纯地库”和“地库全面积”进行区分停车效率,代表房企:中梁地产
纯地库部分停车效率指标=纯地库区域车库面积/地库车位总数
备注:纯地库区域车库面积:含停车区域,含塔楼下可停车部分;
地库全面积停车效率指标=地库总建筑面积/地库车位总数
备注:地库总建筑面积,为报规划的地库总建筑面积,包含:纯地库区域车库面积、塔楼投影面积,塔楼区域不能布置车位的面积等;
3、按照“车库+坡道”和“车库+塔楼+设备+坡道”进行区分停车效率,代表房企:阳光城
“车库+坡道”停车效率指标=(纯地库面积+坡道面积)/地库车位总数
“车库+塔楼+设备+坡道”停车效率指标=(车库面积+塔楼面积+设备面积+坡道面积)/地库车位总数
但是很多特殊情况需要进行备注:
A.非机动车位:建议不要将非机动车位的面积纳入停车效率计算的范畴,因为有些地区有要求,有些地区无要求,这样难以做到集团内部统一平衡。
B.地下物业用房:在某些地区,为了节约成本,部分物业用房放在地库,建议不要将物业用房的面积纳入停车效率的计算范畴,本来是成本优化的措施,如果纳入会导致停车效率指标偏高。
C.别墅赠送地库:很多地方的别墅或者叠墅第一层都是与地库连通,地库面积作为赠送,无产权,但是有使用权,那么此时需要区别对待。
如果地库赠送能够给产品带来较大的溢价空间或者大大加快去化速度,则可以不计入停车效率计算范畴,但是需要附上赠送该部分成本增加与带来的溢价空间的测算报告。
如果地库赠送不能给产品带来明显的溢价空间,则建议将赠送部分纳入停车效率计算范畴,如果在停车效率限额指标范畴之内,可以由区域公司做决定是否赠送。如果超出停车效率限额指标,则务必进行优化。
D.机械车位:项目如果设有机械车位,则建议将机械车位纳入停车效率指标的计算范畴,可以降低单车位的面积指标。
住宅项目设置机械车位一般是成本优化措施,且存在下列情况,可以考虑做机械车位:
一是在现有的地库层数不能满足停车位总数量的情况下,且缺口不大的情况下,采用机械车位进行补足,避免增加地库层数,增加成本。
二是因为一般情况设置机械车位是为了在现有地库层数不能满足停车总数量的情况下,且缺口不大的情况下,采用机械车位进行补足,是一种成本优化的措施。
03
限额设计
单车位面积指标不允许超标
某标杆房企2016年在停车效率实行限额设计之前对全国所有区域的不同阶段的停车效率进行了统计分析,结果如下:
从以上数据可以清晰的看出一下几个现象:
A、各个区域之间停车效率管控水平差距较大:最高和最低相差巨大,部分区域停车效率管控水平优秀,部分区域停车效率基本失控。可以说停车效率对于项目经营和成本管控水平有巨大的挖掘空间;
B、投资版测算、方案版、施工图版,三个版本的停车效率指标偏差较大:能够明显的反应出在做强排方案的时候,停车效率指标使用不合理。单车位面积指标预估过高,导致项目成本增加,投资测算利润下降,有可能在拿地的时候不具有竞争力。单车位面积指标预估过低,导致,如果后期实际无法落实,则导致后期无法实现投资版的预期净利润。
该项指标从放任阶段—成本关注此项指标—进行限额设计—持续不断优化,该公司停车效率指标持续平稳降低,效果明显;
停车效率实行限额设计以后,全国的新项目停车效率平均指标基本回归正常。但是限额设计只有一个平均值,对于单个的项目,在满足限额设计条件下,还可以进行持续的优化;
所以在房地产开发的各个阶段停车效率的指标管控要注意以下几个要点:
投资测算阶段:合理预估单车位面积指标,使得投资测算中的地库面积合理偏低,且可实现;
总图方案阶段:实行限额设计,正常情况要求单车位面积指标低于投资测算阶段,且低于公司的停车效率限额指标;
施工图阶段:车位排布在总图的基础上,进一步进行深化和优化;
停车划线阶段:让专业停车划线单位介入此工程进行深化设计,此阶段为停车效率指标真正的落地阶段。
04
优化从车库轮廓线开始
在公司实行限额设计的情况下,公司的单车位面积指标基本上可以达到正常水平,但是要达到一个优秀的状态,则需要继续持续的优化。本节阐述持续优化的第一个方向:车库轮廓线的优化;
优化原则:正常情况车库轮廓线越方正,停车效率就越高,单车位面积指标就越小;
案例一、地库轮廓的方正对单车位面积指标的影响
项目一和二为紧挨的两个地块,且地块都很方正。
项目一在地库设计时,公司还没有限额设计的要求,可见地库轮廓线非常不规则,单车位面积指标为34m2/车位。
项目二为公司实行限额设计指标,且成本介入总图方案设计阶段后,要求地库尽量按照方正来设计,项目二的单车位面积指标为28.8m2/车位;
尽管两个地块的总图有所不同,但是同此案例可以看出,地库轮廓线的方正对停车效率指标的影响较大;
案例二、最大化利用转角空间
如果轮廓线不可避免出现不方正的情况,则尽量避免转角处出现不可利用的面积。如果出现不可利用的面积部分,则想办法修改轮廓线用于排布车位或者该部分空间改做其他用途;
案例三、地库面积不变,轮廓线进行加减法的调整
图一:由于主楼地下剪力墙位置无法布置车位,排除在地下室面积之外,减少了地下室面积;
图二:将地下室轮廓线进行拉直后,增加6个车位,货值增加60万元。
05
车位排布:你不可忽略的事情
车位排布的四大黄金法则:
车位排布黄金法则一:车道沿两边停车,沿长边布置车道,垂直长边布置停车,尽量不出现水平或者斜向停车。
车位排布黄金法则二:合理使用微型车位,对不能布置标准车位的地方,尝试布置微型车位;
车位排布黄金法则三:尽量不要出现靠墙边平行布置车位,车道靠墙边行走
车位排布黄金法则四:设备用房尽量不要布置在车道两侧,尽量布置在塔楼下不能布置车位的位置,因为车道两侧是排布车位的黄金位置。
车位排布优化的典型案例:
车位排布优化案例一:墙体移动100mm,三个微型车位变为三个标准车位
优化前方案:墙体位于结构柱中间,上面下面均为三个微型车位;
优化后方案:相比优化前方案墙体下移100mm,适当加大车位面积,上面修改成了三个正常车位,收益增加。
车位排布优化案例二:柱子尺寸调整,六个微型车位变为六个标准车位
优化前方案:地下室所有结构柱都采用500mm*500mm,因为布局限制导致有6个车位只能排布成微型车位;
优化后方案:将微型车位两排的结构柱由500mm*500mm更改成400mm*600mm,微型车位变正常车位
备注:柱子截面尺寸变化需要重新进行结构计算。
车位排布优化案例三:对背靠背标准车位规范尺寸的理解有所偏差
实际案例矛盾:不同项目,出现两种背靠背标准车位设计尺寸,原因何在???
主要原因之一:当地规范对标准车位尺寸有明文规定;
主要原因之二:设计师对于规范的理解有误,设计时按照头脑中常规经验值进行设计,而不是依据规范;
接下来,我们对车库建筑设计规范进行解读:
如果是背靠背的车位:根据车库建筑设计规范JGJ100-2015,按垂直停车考虑:
1、小型车尺寸为:4.8米*1.8米
2、对于背靠背小型车位:横向净距0.6米,纵向净距0.5米
则小型车位尺寸为(4.8+0.5/2)米*(1.8+0.3+0.3)米=5.05米 *2.4米,根据规范此时背靠背的标准车位最小尺寸应为5.05*2.4米,但在做这种标准车位的时候,需要事先跟规划部门沟通,是否存在当地规范高于行业规范的情况。
标准车位5.04*2.4米,相比5.3*2.4米,一个车位面积减少:(5.3-5.05)*2.4=0.6m2
示意图如下:
总结
成本对于停车效率的管控:
第一要:清楚停车效率计算口径;
第二要:一定要对停车效率实行限额设计;
第三要:项目不同阶段,管控的侧重点应有不同;
第四要:以上三点的基础上,停车效率要进行持续性的优化;
声明:
本页内容为企业、个人自主上传或来源网络,所有资料仅供用户参考;我单位不对其版权负责、不保证亦不表示本网的资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。