关于sass:APISIX-Ingress-控制器的安装及原理

简介APISIX 是动静、实时、高性能的 API 网关。它提供丰盛的流量治理性能,比方负载平衡、动静上游、金丝雀公布、熔断、认证、可观测性等。既能够应用 APISIX API 网关解决传统的南北向流量,也能够应用它解决服务间的东西向流量。同时,它也可被用作 Kubernetes Ingress 控制器。APISIX Ingress 控制器提供 Helm 装置形式,然而应用原生 YAML 装置,更加有助于了解其原理。应用原生 YAML 装置 APISIX 和 APISIX Ingress 控制器在本教程中,咱们将应用原生 YAML 在 Kubernetes 中装置 APISIX 和 APISIX Ingress 控制器。先决条件如果没有 Kubernetes 集群应用,倡议应用 kind 创立本地 Kubernetes 集群。kubectl create ns apisix在本教程中,咱们的所有操作都将在命名空间 apisix 中执行。ETCD 装置在这里,咱们将在 Kubernetes 集群外部部署不带认证的单节点 ETCD 集群。在本例中,咱们假如你领有存储部署器。如果你正在应用 Kind,那么将主动创立本地门路部署器。如果没有存储部署器或不想应用长久化存储卷,那么能够应用 emptyDir 作为存储卷。# etcd-headless.yamlapiVersion: v1kind: Servicemetadata: name: etcd-headless namespace: apisix labels: app.kubernetes.io/name: etcdannotations: service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"spec: type: ClusterIP clusterIP: None ports: - name: "client" port: 2379 targetPort: client- name: "peer" port: 2380 targetPort: peerselector: ...

June 9, 2023 · 7 min · jiezi

关于sass:项目初始化启动Sass报错

报错:Cannot find module 'sass' 解决办法: npm install sass-loader@10.2.0 --save-devnpm install node-sass@5.0.0 --save-dev

May 15, 2023 · 1 min · jiezi

关于sass:Sass-常用功能

Sass 罕用性能原文链接:https://note.noxussj.top/?source=sifo Sass 性能有很多,这边只列举一些比拟罕用的。 嵌套规定 (Nested Rules)Sass 容许将一套 CSS 款式嵌套进另一套款式中,内层的款式将它外层的选择器作为父选择器。 编译前 .box { .box1 { background-color: red; } .box2 { background-color: blueviolet; } }编译后 .box .box1 { background-color: red; } .box .box2 { background-color: blueviolet; } .box .box3 { background-color: blue; }父选择器 & (Referencing Parent Selectors: &)在嵌套 CSS 规定时,有时也须要间接应用嵌套外层的父选择器。 编译前 button { width: 100px; height: 30px; &:hover { background-color: red; } }编译后 button { width: 100px; height: 30px; } button:hover { background-color: red; }属性嵌套 (Nested Properties)有些 CSS 属性遵循雷同的命名空间 ( namespace ),比方 font-family , font-size , font-weight 都以 font 作为属性的命名空间。为了便于管理这样的属性,同时也为了防止了反复输出,Sass 容许将属性嵌套在命名空间中。 ...

May 2, 2023 · 5 min · jiezi

关于sass:什么是-Sass

Sass 介绍原文链接:https://note.noxussj.top/?source=sifo 什么是 Sass?官网标语世界上最成熟、最稳固、最弱小的专业级 CSS 扩大语言。怎么了解这句话呢?咱们平时写的 CSS 代码能够了解为动态款式语言,而 Scss 就是动静款式语言,何为动静?就是让你写 CSS 跟写 JS 一样,能够在 CSS 外面定义变量,函数。 最大的作用就是缩小你的 CSS 代码量,用更少的代码实现更多的性能。其次就是使得 CSS 代码更加的规范化,放弃 HTML 构造的格调去编写 CSS 。 官网文档地址 https://www.sass.hk Less、Sass、Scss 三者区别?Scss 是 Sass 的升级版, Sass 语法编写的代码不须要写大括号 "{}" 、也不须要写分号 ";" 使的代码不易浏览。 Scss 和 Less 大抵上的性能都是一样的,只是实现的代码的语法有些不同。 所以咱们只须要学习其中一款即可,另外一款也是大同小异。 兼容性目前没有一款浏览器是反对它们的,必须要应用插件进行把 Scss 代码转化为 CSS 。当初临时先不教如何应用工程化的插件去转换(下一个阶段会介绍),而是应用 Koala 这一款软件去主动转换。 原文链接:https://note.noxussj.top/?source=sifo

April 30, 2023 · 1 min · jiezi

关于sass:RASP技术进阶系列一与WAF的相爱相杀

猜测大部分平安从业者都会答复:“WAF(Web Application Firewall, 应用程序防火墙)。”不过RASP(Runtime Application Self-Protection,利用运行时自我爱护)横空出世,仿佛有取而代之的象征。长期以来,防火墙始终是大家公认的抵挡内部攻打的要害措施。而WAF作为防火墙中的“偏科生”,更擅长于剖析利用流量。简略而言,WAF是一种专门用于剖析HTTP/HTTPS流量的专用防火墙,能够深刻到每一次 HTTP/HTTPS申请和详情中去查看是否蕴含敏感字段,而后放行失常行为,拦挡歹意行为,就像自来水过滤器一样,把“杂质”从宏大的流量中剔除进来,这样应用程序就只会响应失常的申请,从而达到爱护应用程序的目标。 图1 WAF的工作地位WAF的窘境WAF粗看起来像是一个繁难且成熟的解决方案,但在理论真正应用时,可能会面临很多挑战。1. 规定与业务场景无奈对应WAF实际上是以一种简略粗犷的形式来爱护利用的。WAF在剖析流量时,只会针对一条流量进行剖析,不会关联上下文。例如某个申请参数为: 1+AND+321%3D6+AND+388%3D388这种流量在WAF解析时可能会面临以下两种状况。这个参数尽管看起来像是 SQL注入的模式,然而背地的逻辑可能和SQL解决没有关系,比方在SPEL等表达式中,也可能会有相似的写法。如果严格依照该逻辑去剖析流量,就有可能造成误报。另外一种状况是,如果解决这条申请背地的利用的确进行了SQL操作,然而曾经应用了预编译等形式对传入数据进行了荡涤,那么这个申请实际上并不会对业务自身造成危害,所以也会产生误报。因而,在设置WAF规定的时候,如果过于严格,就会造成误报;过于宽松,又会导致真正具备危险的流量被放过。这便须要专家针对企业的业务场景进行调整,这个工作并不是一劳永逸,随着工夫的推移、利用的更迭,WAF策略也须要一直调整。2. 能够被轻松绕过绕过 WAF进攻的次要形式是对流量进行加密和混同。WAF在解密流量时,因为无奈深刻到利用外部,因而只能对HTTPS流量进行解密,再深一层就无能为力了,比方将数据通过Base64加密,甚至只需简略切换字母的大小写就能够绕过WAF的进攻。例如Shiro RememberMe字段是应用AES加密的Base64编码,然而其AES加密密钥却是硬编码的,因而能够应用如下流程进行WAF绕过: 图2 WAF绕过示例流程当Shiro服务器接管到歹意结构的RememberMe Cookie后,将会对其进行Base64解码、AES解密,最终将会反序列化结构好的歹意命令,最终导致被攻打。针对此类攻打,所有的通信数据都是通过加密的,WAF从流量侧无奈了解这样的流量,也就无奈进行无效的拦挡。3. 无奈进攻0day破绽因为本身工作机制,WAF能够在进攻已知破绽方面起到成果,然而无奈进攻0day破绽。攻击者能够在厂商公布策略更新前就开始利用0day破绽,而WAF通常在破绽暴发的数小时后能力实现策略更新。4. 保护老本高WAF的保护不仅限于上述防护策略的保护,还体现在对于利用的适配上。目前很多WAF产品都提供了“虚构补丁”性能,能够用来修复应用程序的缺点,而不须要批改源代码。但这实际上给WAF保护人员带来了微小的挑战,因为平安经营人员须要同时对业务逻辑和WAF配置参数具备深刻理解后,能力写出精准且高效的策略。RASP真能取代WAF吗?就像WAF是防火墙的演进版本一样,大家喜爱把RASP称为下一代WAF。WAF次要解决了防火墙不能依据流量内容进行拦挡的问题,而RASP尽管解决了WAF所不能解决的上下文关联的问题,然而它的呈现其实并不是为了取代WAF。 图3 RASP工作原理示意图从原理上来看,RASP是从利用外部对要害函数操作的数据进行剖析,即便原始申请通过加密和混同,然而它在利用内流传到最终的底层函数时将会以明文形式被RASP截获,因而相比WAF能缩小大量的误报和漏报问题。基于此个性,RASP还能为平安人员和开发人员提供更为详尽的攻打链路,包含攻打原始 Payload、代码调用堆栈等信息,不便他们进行破绽定位、复现以及修复。尽管RASP较为敌对地解决了WAF的不足之处,能够截获真正具备危险的操作,然而它因为构建在应用程序外部,并且只对危险操作进行拦挡,这样绝对 WAF缺失了从宏观上对流量的监控,对于例如CC攻打、爬虫、歹意扫描等攻击行为短少无效的进攻伎俩。 另外,RASP因为和运行时环境耦合,在理论利用时,会更关注性能和兼容性影响:01 性能影响RASP工作在利用运行时环境,不可避免会占用利用的计算资源。例如对于XSS(跨站脚本攻打)类攻打,须要在用户申请和服务器响应中剖析有无歹意脚本,目前业界采纳的方法是应用正则表达式进行匹配。然而在一些应用宏大表单的利用中,XSS的正则匹配将会耗费大量的资源。对于这种状况,能够依据业务场景,管制匹配精度(正则匹配范畴)来调整检测精度和检测速度。02 兼容性RASP尽管能够关联应用程序上下文,然而对于业务的实在利用场景的了解依然不能做到精准。例如对于一些有运维属性的利用,须要管理员从Web间接编辑命令进行执行,然而探针并不能了解相似这样的业务场景,导致命令执行被拦挡。对于此类情况,能够通过配置白名单等形式来解决。另外一点,因为 RASP 探针须要工作在利用运行时环境,这就对探针的语言反对和框架反对提出了较高要求。悬镜通过“单探针”策略,在探针兼容性层面曾经失去金融电商、泛互联网、车联网、电信运营商、能源电力等行业的宽泛验证。 合则两利,分则两败当独自应用WAF或者RASP的时候,它们都因为本身的短板,在一些问题上显得力不从心。但当两者联合时,它们都将在本人善于的畛域大放异彩。1. WAF的劣势(1)攻打前流量预警:攻击者在施行真正的攻打前,会产生大量的异样流量,这些流量包含揣测服务器环境信息、可注入点尝试等。这些流量通常不会间接造成危害,因而RASP可能无奈获悉全量的攻打流量(只会解决可能有危害的流量),而WAF能够残缺记录异样流量。(2)对于CC攻打、爬虫、歹意扫描和脚本小子(script kiddie)这些大流量的攻打或者有显著攻打特色的流量,如果让其间接打到装有RASP插桩的利用上,会造成不必要的性能占用;另外因为RASP会占用应用程序的计算资源,因而也不适宜进行过于简单的计算。所以对于此类攻打,最好的方法就是应用WAF从流量侧对其剖析和拦挡。 2. RASP的劣势(1)拦挡混同和加密的流量:如前文所述,RASP并不需要对流量进行解密,能够依据场景对歹意行为进行剖析,无效拦挡被精心设计的攻打流量。(2)针对业务场景进行优化:基于RASP函数Hook的个性,不仅能够对通用类、框架类的函数进行插桩,也能够对自研代码局部进行插桩。例如对于利用在交付前来不及修补的破绽,能够通过函数级别的虚构补丁提供防护,保障利用按时交付。(3)极低的保护老本:除了依据须要配置虚构补丁外,因为RASP从底层函数进行爱护,所以基本上不须要对RASP的规定做任何调整即可实现利用的平安内建。(4)兼顾东西向流量平安:RASP工作在应用程序外部,不仅能够剖析南北向流量的危险,也能够剖析企业外部,利用之间东西向流量的危险。例如微服务架构中波及多个模块间的调用,它们之间通常会应用rpc等非http协定来进行数据交换,传统的 WAF 通常对其无能为力。而 RASP 则能够很好的解决这样的问题。(5)进攻0day破绽:RASP能够爱护利用运行时环境中的所有代码,包含自研代码、第三方组件、Web利用容器(Tomcat、Django、Flask等)。例如最近几个波及范畴较广的0day破绽:Log4j2 RCE(CVE-2021-44228)、Spring4Shell(CVE-2022-22965)、Fastjson反序列化破绽(https://github.com/alibaba/fastjson/wiki/security_update_20220523),尽管攻击方式有变动,然而最终施行攻打总是须要调用一些底层的办法/函数。无论攻打入口如何变动、攻打伎俩如何荫蔽,都无奈绕开最终要害函数的执行过程,因而RASP肯定能对其进行无效拦挡。3. RASP + WAF 图4 WAF与RASP组成纵深进攻体系(1)WAF提供实在的攻打起源:企业的利用通常都是在网关或者反向代理之后的,当流量进入利用时,RASP探针在大多数状况下其实只能拿到反向代理或者网关的IP地址,这对于分析攻击起源十分不利。能够借助WAF对所有进入的流量增加Headers(例如 X-Forwarded-For),标记实在起源IP,不便对RASP拦挡的攻打事件进行溯源。 (2)通过RASP拦挡信息生成WAF黑名单:攻击者如果能绕过WAF进行攻打,将会给利用带来累赘。通过自动化流程将RASP拦挡的攻击者起源IP生成WAF IP黑名单,将会大大减慢攻击者的攻打过程,给平安人员争取应急响应的工夫。 (3)依据RASP拦挡信息生成WAF策略:例如RASP将异样的SQL执行上报后,平安人员能够通过剖析得出那些敏感参数,并在WAF中进行标记,这既能够大大降低RASP给利用带来的性能耗费,同时也能让WAF警报更加精确。 (4)WAF与RASP联动,能够扩充利用平安防护范畴:近期攻防演练流动中,红方越来越喜爱应用 0day、内存马这样的伎俩进行攻打,RASP能够无效进行进攻。 图5 WAF+RASP部署架构示意图总结RASP和WAF最大的区别是:WAF的目标是发现可疑的流量,RASP则是发现具备威逼的行为。因为近期几次大的0day破绽事件,RASP因其特点,在防护未知攻打方面,施展了重要的作用。然而RASP并不是要取代WAF,两者是齐全不同的技术,各有各的劣势,也各有各的有余。WAF作为恪尽职守的哨兵,监督来自内部的可疑入侵;RASP则作为利用的贴身保镖,进攻来自外部和内部的致命攻打。 云鲨RASP基于运行时情境感知技术的新一代利用威逼免疫平台.悬镜云鲨RASP自适应威逼免疫平台作为悬镜第三代DevSecOps智适应威逼管理体系中经营环节的继续检测响应平台,通过专利级AI检测引擎、利用破绽攻打免疫算法、运行时平安切面调度算法及纵深流量学习算法等关键技术,将主动防御能力“注入”到业务利用中,借助弱小的利用上下文情景剖析能力,可捕获并进攻各种绕过流量检测的攻击方式,提供兼具业务透视和性能解耦的内生被动平安免疫能力,为业务利用出厂默认平安免疫迎来变革倒退。云鲨RASP 点击应用

April 11, 2023 · 1 min · jiezi

关于sass:怎么选择浏览器想天浏览器用户体验报告

对于浏览器这一主题,从来为人所器重,简直每一年都有这样一个问题:您用的是什么样的浏览器?浏览器这款软件始终处于开发阶段,每一年都有许多新浏览器问世,而且许多一般浏览器都在优化和降级。 当初人们对浏览器性能的要求越来越高了,为了可能给用户带来更好的用户体验,明天咱们就为大家介绍一款新的浏览器——基于内容的浏览器——"想天浏览器",心愿能给大家提供一些帮忙。上面就与您浅谈这个浏览器的特点。 1.零广告体验和广告过滤性能 不拘一格的小广告堪称强占了许多浏览器的网页内容,许多人并不看好浏览器上呈现的广告,这款浏览器是一个无广告浏览器,其广告拦挡性能能使浏览器网页放弃简略。 2.快捷的操作和页面快捷键快捷键在浏览器页面中可算是实现了很多操作,想天浏览器在浏览器中有各种快捷键来解放您的鼠标使您很容易地实现对页面的操作。 3、网络收藏夹性能。 想天浏览器心愿可能打造这样一款网络收藏夹,可能给你完满的资源收集、整顿、分享体验。不仅如此,想天浏览器可能通过提供的网络服务与团队顺手共享资源。 4.网页弹幕。 网页上也能发弹幕?想天浏览器破天荒地把「弹幕」性能搬到了网页上 5.更加丰盛的体验和亮暗的主题设定 不同环境中,大家对于浏览器的亮度要求都会有所不同,这个浏览器可能使大家调整亮度和含糊水平,大家应用时,可能依据须要调整背景。 想天浏览器是一款新的浏览器,它领有的实用功能也有很多,并且它还领有一个独特的搜寻栏,能够让用户在应用的时候,缩小搜寻步骤,间接进入本人想要进入的页面,这样在应用的时候就会更加的方便快捷。此外,这款浏览器还有好用的书签性能和插件性能。从实用性上而言,也是一款很很值得去体验的一款浏览器

September 22, 2022 · 1 min · jiezi

关于sass:用友BIP升级数智底座iuap能否代表中国PaaS平台的最高实力

最近几年,PaaS成为了云计算畛域越来越重要的变量。IaaS巨头在做PaaS。阿里云的钉钉、产业智能OpenTrek,蕴含一整套操作系统、开发工具、商业剖析等PaaS平台的能力;腾讯云在2021年财报中也指出,腾讯to B业务被动调整支出构造,将在视频云、网络安全等PaaS畛域加大资源投入。 SaaS公司也在做PaaS。无论是国外的Salesforce、Workday等SaaS巨头,还是国内的北森、销售易、商越等各畛域SaaS公司,都不谋而合地发力PaaS平台。 中国信通院公布的《云计算白皮书2021》显示,从2018年开始,在中国的私有云市场中,PaaS的增速曾经超过IaaS与SaaS,成为增速最快的细分畛域。 这其中,用友是最早研发PaaS平台的企业之一。2014年,用友公布iuap平台,并称之为中国最早推出的纯云原生PaaS平台。 2016年,用友减速云转型,并在2020年推出云转型策略级产品用友商业翻新平台——用友BIP,往年最新降级的用友BIP 3将会在2022寰球商业大会上公布。其中,iuap作为用友BIP的“数智底座”,为企业数智化转型提供技术平台、业务中台、数据中台、智能中台、连贯集成、低代码开发平台等服务与解决方案。 近日,「甲子光年」与用友围绕iuap平台的倒退历史、产品定位与外围亮点进行了交换。作为国内当先的企业云服务与软件提供商,用友的iuap是否代表中国PaaS平台的最高实力? 用友PaaS并非横空出世为了更好了解iuap在用友产品体系中的定位,须要先理解用友的云转型历史。 成立34年的用友,至今经验了三大策略倒退阶段: 1.0期间的财务软件阶段(1988~1997)2.0期间的ERP管理软件阶段(1998~2014)3.0期间的云服务阶段(2015至今)通过7年云转型之后,现在的用友曾经成为一家优良的企业云服务公司。2016年,用友的软件业务收入比例依然高达92.9%,到2021年云服务业务的支出首次超过软件业务,达到59.57%。 2020年推出的用友BIP,是一个集工具、能力和资源服务为一体的云服务集群。 其中,iuap就是用友BIP的云原生PaaS平台。 PaaS平台是将复用性高的底层技术进行积淀与封装,通过“平台化”的模式来升高开发SaaS服务的门槛,以及进行产品多元化的定制服务,从而大幅提高软件的交付效率。此外,从商业价值上来说,PaaS平台还能够吸引更多的独立开发软件商(ISV)成为平台的客户,打造软件生态。 用友在2014年向市场正式推出iuap,但实际上这种平台化的思维用友从ERP时代就开始实际了,这能够看做iuap的前身。 用友网络副总裁、iuap利用平台总经理刘剑通知「甲子光年」:“在过来,业内做企业软件根本都是下层的利用接入底层的数据库,财务就是财务,供应链就是供应链,彼此独立开发。但在2000年,用友研发第一代高端ERP产品NC系列之时,就采纳了平台架构,数据库下面先有平台,平台下面才是利用。” 到2020 年,随着用友推出了商业翻新平台——用友BIP,iuap通过多年的市场培养和架构降级,成为了用友 BIP的技术底座,用友行业及畛域云都对立构建在iuap之上。在往年4月19日2022用友BIP技术大会上,iuap平台公布多项独创技术,通过“三中台+三平台”打造了新期间企业数智化新底座: 三平台:技术平台、YonBuilder低代码开发平台、YonLinker 连贯集成平台;三中台:业务中台、数据中台、智能中台。 实际上,三平台次要解决开发问题,从NC期间就有了,再加上业务中台,都是天然的积攒与积淀;而数据中台与智能中台,偏向于前瞻性的定义。 在用友看来,在数据层面,当初to C端的数据驱动,比方用户行为剖析、广告举荐等都很成熟了,但在to B端的数据利用整个业务都还在摸索阶段;在智能层面,往年咱们成立了研发的一级部门智能中台,继续加大VBA机器人、RPA机器人等智能技术的研发。iuap会在这两个方向继续投入。 一个“能力更大、降级更快”的PaaS放眼整个云计算市场,用友尽管布局PaaS较早,但也并非专做这一块,无论是IaaS厂商还是SaaS厂商,也都在推出本人的PaaS平台。在七嘴八舌的PaaS市场,用友iuap作为用友BIP 3的“数智底座”,如何定义本人的生态位?对此,刘剑示意“不是同一类”。 首先,国内的SaaS厂商多为守业公司,通常是从某个细分畛域切入做深做精,其推出的PaaS平台因而也带有相应的垂直属性,比方钉钉属于协同PaaS,北森属于人力PaaS,纷享销客属于销售PaaS,商越属于洽购PaaS等等。 相比之下,用友BIP 3基于iuap的平台化技术能力,已笼罩财务、人力、供应链、洽购、制作、营销、研发、我的项目、资产及协同等外围畛域,是一个综合性的云服务平台。 值得一提的是,去年业内低代码平台爆火,iuap中的YonBuilder低代码平台就是此类工具。刘剑示意,YonBuilder定位有两个,一类是业余开发,提供工程管理工具;一类是疾速开发(专制开发)工具,提供低代码与无代码的能力。为了疾速欠缺YonBuilder平台的能力,用友在去年1.5亿元收买了低代码公司APICloud。 其次,不同公司的PaaS平台,复杂度与面向的用户群体也不一样。「甲子光年」在2019年的文章中曾依据复杂程度将PaaS分为四层,金字塔尖的第四层能凋谢给ISV做SaaS产品研发,第三层能让客户、集成商做开发,第二层只能提供给SaaS厂商外部开发人员开发,第一层则只是凋谢一些API接口和高可配置个性(如自定义对象、BI报表、BPM流程引擎以及大量配置参数等)。 用友iuap的能力曾经位于第四层。据介绍,iuap的大部分用户为大型企业客户,买回去本人做研发;但也有一些客户基于iuap做供销系统的开发,本人建租户,再售卖给他们本人的客户。 比照来看,国内大部分SaaS厂商推出的PaaS平台依然停留在第三层或者第二层。比方,北森的PaaS平台鲁班向客户凋谢,满足个性化的人力资源零碎扩大;商越的洽购PaaS平台千机阁,在2021年推出时并不对外,只供SaaS厂商内部人员定制化开发。 复杂度越高,凋谢的水平越高,越有利于构建本人的软件生态。 而与IaaS厂商推出的PaaS相比,用友iuap定位“云中台”,是一朵中立的PaaS。 2021年6月,iuap 实现了新一轮的降级优化,从基础设施层面动手,进行了全面的产品升级和微服务革新。降级之后,iuap技术平台底层实现了多云适配,目前反对的云厂商包含华为云、阿里云、腾讯云、亚马逊AWS及企业自建IDC。 在多云适配的根底上,iuap做的另一项重要工作,就是撑持用友BIP版本的统一性,让客户在尽可能快的工夫内体验到最新的产品性能。 过来ERP时代软件的降级是十分慢的,甚至一套架构能用十几年。随着互联网衰亡,企业的软件开发谋求疾速迭代,但技术的复杂性、企业的多云治理使得企业级的软件降级变得比过来更难。 刘剑通知「甲子光年」:“作为云中台,iuap须要向下对接几大云厂商、国内的上百个数据库,甚至同一家云厂商的私有云、公有云都是齐全不同的版本。” 用友iuap是如何解决的呢? 一是推出YMS(Yon Middleware Service)云中间件,对立微服务的技术标准,将具体业务与底层技术进行解耦,对业务屏蔽不同的云计算厂商,不同数据库的差别,让下层业务不用一一适配。 第二件事是工程治理,要把所有利用的模型全副梳理进去,整个用友BIP的几千名研发人员要依照同样的流程标准来研发产品,这是一个非常复杂的软件工程治理问题。 现在,iuap已实现寰球独创的云上云下一体化极速交付。当云转型曾经被宽泛证实是一个确定性方向,剩下的就只剩投入与保持的较量。 以“成为数智企业”为主题,2022寰球商业翻新大会将于8月26日-27日举办,并全程直播。届时,用友BIP3将迎来重磅首发,以交融服务群赋能企业数智化、产业互联网,铸就数字经济时代的大国重器!

August 16, 2022 · 1 min · jiezi

关于sass:SassScssLess-是什么

Sass (Syntactically Awesome Stylesheets) 是一种动静款式语言,Sass 语法属于缩排语法,比 css 比多出好些性能 (如变量、嵌套、运算,混入 (Mixin)、继承、色彩解决,函数等),更容易浏览。 Sass 的缩排语法,对于写惯 css 前端的 web 开发者来说很不直观,也不能将 css 代码退出到 Sass 外面,因而 Sass 语法进行了改进,Sass 3 就变成了 Scss (Sassy CSS)。SCSS (Sassy CSS) 是 CSS 语法的扩大。这意味着每一个无效的 CSS 也是一个无效的 SCSS 语句,与原来的语法兼容,只是用 {} 取代了原来的缩进。 Less 也是一种动静款式语言。对 CSS 赋予了动静语言的个性,如变量,继承,运算, 函数. Less 既能够在客户端上运行 (反对 IE 6+, Webkit, Firefox),也可在服务端运行 (借助 Node.js)。 Sass 与 Less 区别 应用:Less: https://less.bootcss.com/usage/ Sass: https://www.sass.hk/docs/ 不同之处1、Less 在 JS 上运行,Sass 在 Ruby 上应用。Sass 有工具库 Compass, 简略说,Sass 和 Compass 的关系相似于像 Javascript 和 jQuery 的关系,Compass 在 Sass 的根底上,封装了一系列有用的模块和模板,补充强化了 Sass 的性能。 ...

August 2, 2022 · 2 min · jiezi

关于sass:vue引入sass

sass世界上最成熟、最稳固、最弱小的专业级CSS扩大语言! vue-cli 装置sassnpm install -D sass-loader@10.1.1 sass详见官网 装置谬误如果你应用 npm install -D sass-loader sass默认装置了高版本的sass-loader,可能会呈现上面的谬误: TypeError: this.getOptions is not a function Similar to what @KostDM said, in my case it seems like sass-loader@11.0.0 doesn't work with vue@2.6.12. I installed sass-loader@10.1.1 and it worked like a charm again. vue3 也不能应用更高版本的sass-loader. 解决办法只有装置sass-loader@10.1.1就能够了。

June 10, 2022 · 1 min · jiezi

关于sass:Sass-使用

sass应用一、sass环境1.sass简述Sass是最早的Css预处理语言,采纳Ruby语言编写,Sass从第三代开始,放弃了缩进式格调,并且齐全向下兼容一般的Css代码,这一代的Sass也被称为Scss 2.sass特点不能间接在页面中解析,须要应用ruby事后翻译成css文件Sass性能更加弱小,领有流控语句等齐全兼容 CSS3,在 CSS 语言根底上增加了扩大性能,比方变量、嵌套 (nesting)、混合 (mixin) 3.Sass & ScssSass和Scss平时都称之为Sass,是同一个货色。区别有两点: 文件后缀 (扩展名) 不同: Sass 以“.sasss”为扩展名,Scss 以“.scss”为扩展名;书写形式 (语法) 不同: Sass 以严格的缩进式语法规定来书写,不带大括号和分号; Scss 的书写形式和 Css 语法十分相似(越来越受欢迎起因之一)。4.解析Sass办法一:应用第三方编译工具koala,官网:http://koala-app.com/办法二:应用vscode插件:easysass,插件配置参考:https://marketplace.visualstu... 二、sass语法1.变量Sass 应用美元符号“$”来申明变量。Sass的默认变量个别是用来设置默认值,而后依据需要来笼罩的,笼罩的形式也很简略,只须要在默认变量 之前 从新申明下变量即可。default:升高变量的优先级(备胎)代码中应用: $fontSize:60px;$bgColor:blue !default; //全局变量$bgColor:skyblue;body { font-size: $fontSize; background-color: $bgColor; div{ $bgColor:red; //局部变量 background-color: $bgColor; }}2.@importSass扩大了Css的@import规定,让它可能引入Scss和Sass 文件,合并并输入一个繁多的Css文件。被导入的文件中所定义的变量或 mixins 都能够在主文件中应用。应用: // test.scss$bgColor:skyblue;// index.scss@import "test";body { background-color: $bgColor;}3.嵌套a.选择器嵌套选择器嵌套,默认是叠加后辈选择器 div { h3 { color: red; }}b.属性嵌套div { border: { // 留神body 前面有个英文冒号 top:1px solid red; bottom:10px dotted blue; }}c.伪类嵌套div { &:hover { background-color: red; } &::after{ content: "after"; }}4.代码复用a.混合宏我的项目中有几处小款式相似,能够应用变量来对立解决。须要重复使用大段的款式时,变量就无奈达到目标了。这个时候就须要混合宏来搞定。@mixin 用来申明混合宏@include 用来来调用申明好的混合宏。毛病:混合宏对于复用反复的代码块很不便,但它会生成冗余的代码块,雷同代码块不能智能合并。比方在不同的中央调用一个雷同的混合宏时。应用: ...

May 16, 2022 · 3 min · jiezi

关于sass:vue3vitetselementplus搭建项目三

持续上期我的项目搭建,这期次要是配置环境变量、element-plus援用、跨域设置,整体布局等一、环境变量在理论开发中,开发环境和测试环境、生产环境所应用的域名不同,每次批改url比拟麻烦,依据不同环境配置不同环境变量,能够无效解决此类问题。 1、在根目录创立.env.development和.env.production开发和生产环境,在文件中配置url,如下 VITE_API_BASEURL = https://xxx.com/api/admin2、TypeScript 的智能提醒: 在根目录下找到env.d.ts文件,有的装置的vite版本没有这个文件,则本人创立一个,文件中配置如下: 3、应用 在封装axios接口申请文件中,找到axios.create下baseURL,配置如下: 留神:如果我的项目中须要新增一个测试环境,则须要进行如下配置: vite build --mode test而后在根目录下新建.env.test文件,在此文件中配置测试环境的域名就OK了。 二、跨域1、配置在vite.config.ts文件中配置跨域。 server: { proxy: { // 选项写法 '/admin': { target: 'https://xxx.com/api', // 代理指标地址 changeOrigin: true, // 兼容基于名字的虚拟主机,true 代理服务会把origin批改未指标地址 rewrite: (path) => path.replace(/^\/api/, '') // 门路重写 } } }留神:比如说接口是:https://xxx.com/api/admin/user,https://xxx.com/api/admin/login等的时候,咱们能够应用/admin去配置,将指标地址改成https://xxx.com/api,这样接口申请的残缺地址就会变成https://xxx.com/api/admin,而后页面中的申请门路只有拼接上/user就ok了。 三、element-plus应用 1、装置 npm install element-plus --save2、援用个别援用是间接在main.ts中引入就能够全局应用了,然而这里举荐大家应用插件的形式进行援用,具体操作如下:在src新建plugins/element-plus.ts文件 而后在main.ts中引入即可 import elementPlus from './plugins/element-plus'createApp(App).use(router).use(store).use(elementPlus).mount('#app')四、布局 1、在src目录下创立layout文件,文件夹下新建AppLayout.vue,内容如下。 <template> <div class="common-layout"> <el-container> <el-aside width="200px"> Aside </el-aside> <el-container> <el-header>Header</el-header> <el-main> <router-view /> </el-main> </el-container> </el-container> </div></template><script lang="ts" setup></script><style scoped lang="scss">.el-header { background: #b3c0d1; color: #333;}.el-aside { background: #d3dce6; color: #333;}.el-main { background: #e9eef3; color: #333;}.el-container { height: 100vh;}</style>留神:页面布局高度要撑起来,之前的解决形式是给html、body、#app设置height:100%,在这块间接给el-container设置height:100vh,能够达到同样的成果。 ...

April 26, 2022 · 1 min · jiezi

关于sass:如何用less和sass生成paddingmargin的四个方向多个值

前端工夫搭建前端框架时,遇到的一个小问题记录下: 之前针对页面中的padding和margin设置不同值都会在公共款式文件下进行独自设置,如下图,想到less和sass都反对函数操作,对代码进行优化。 sass代码: /* * 动静生成padding和margin值 * $position 四个地位的简写设置 * $type padding个margin的简写设置 * form 1 throught 6 是循坏1-6的值,设置进去的边距最大间隔是30,如果须要其余的能够持续增加 * $val: $i*5 是设置间隔步长是5的倍数 */ $position:("t":"top", "b":"bottom", "l":"left", "r":"right"); $type:("p":"padding", "m":"margin"); @each $item in $type { @each $list in $position { @for $i from 1 through 6 { $val: $i * 5; .#{nth($item,1)}#{nth($list,1)}#{$val} { #{nth($item,2)}-#{nth($list,2)}: #{$val}px; } } } }less 边距设置 // 边距@arr: 5, 10, 15, 20, 25, 30, 35, 40, 45, 50;each(@arr, { @num:extract(@arr, @index); .mt@{value} { margin-top:~"@{num}px"; } .mr@{value} { margin-right:~"@{num}px"; } .mb@{value} { margin-bottom:~"@{num}px"; } .ml@{value} { margin-left:~"@{num}px"; } .pt@{value} { padding-top:~"@{num}px"; } .pr@{value} { padding-right:~"@{num}px"; } .pb@{value} { padding-bottom:~"@{num}px"; } .pl@{value} { padding-left:~"@{num}px"; }});

March 25, 2022 · 1 min · jiezi

关于sass:在线时代先进文档编辑器设计探索

本文想借语雀编辑器 4.0 版本公布,交换一下,在无纸化办公的在线时代,语雀在文档编辑上的思考和摸索。 在2016年,蚂蚁的一群工程师厌弃公司外部的文档工具太难用了,于是他们开始捣鼓一套本人的 Markdown 产品,于是语雀就这么诞生了。 语雀经验了十分屡次的改革和倒退。始终到往年咱们推出了文档编辑器 4.0,明天想和大家交换的也是这么多年来,语雀是怎么一步步摸索过去的,以及将来咱们要去往何方。 在线文档的倒退 前段时间看到一个网友吐槽:“当初的在线文档产品还是在照搬 Word 的那套体验。” 而 Word 的设计初衷其实是围绕着桌面出版。这套零碎的设计,是为了在线上还原与印刷统一的成果,所以会有很多印刷相干的设计和逻辑。 这套零碎设计得切实太过于优良和深入人心了,以至于当初很多在线文档产品仍旧解脱不了它的影子。 然而随着时代的倒退,尤其是疫情,让最最传统的企业都曾经实现了无纸化转型。所以咱们畅想,以文档为核心的沟通协同是不是能够更加地高效和简略呢? 这是咱们所畅想的在线时代先进文档的特色:无边界、可交互、多样化。 多样化咱们所了解的文档多样化是指,创作内容从文本转向了更多样的表达形式。 咱们认为人类写作的实质是为了表白,而表白素来不止于文字。图形、表格、表情、视觉的、听觉的...所有能够辅助你的表白的都能够成为你的文档之一。目前语雀曾经反对了 43 种各种各样能够插入的卡片。但这同样也带来了一些问题。 应用老本 设计师经常会面临一个很悲伤的事实就是,当用户想要的性能越多,它的应用老本也会逐步回升。 心理学上有一个乏味的实践:Hick's Law,就解释了这样一个景象:当用户面临的抉择数量越多,他所须要的反馈时长也会逐步减少。 指令交互在过来,咱们将大多数性能都平铺在工具栏上,就不可避免地会面临这种状况。即使起初微软推出了 Ribbon 工具栏,但操作门路也随之变长,并没有完满地解决这一问题。 但指令交互呈现了。在语雀的新版编辑器中,在任意地位输出Command+/,都能够唤起一个斜杠面板,再联合一些特定指令,你甚至不须要来到键盘便能够实现整个输出。 在人机交互的最晚期,用户须要记住一些特定的指令来实现输出。这种输出形式学习老本很高但十分地高效。直到 1973 年,施乐公司设计了最早的 GUI 界面,人机交互才被一般公众所承受。但随着电脑的性能越来越多,应用老本也在逐步回升。指令交互就联合了这两种交互的长处,既高效又直观。在将来咱们甚至能够凋谢定制指令。 无边界随着时代的倒退,内容载体逐步从纸质媒介转到了电子屏幕上。你的创作不再受限于物理限度,整个宽度由屏幕所决定。你能够让读者像看网页一样去设计你的文档。 而传统文档就有各种各样的边界。比方须要在文档里设置纸张尺寸,抉择页眉页脚...这些印刷相干的性能照样搬迁过去之后,反而会减少产品的复杂度,同时也限度了用户的内容展现。 咱们心愿将来文档更加的自在、舒服。于是咱们去除了纸张北京,让整个内容齐全由用户的屏幕所决定。但这时设计师便会面临新的问题:适配。 外围适配策略 当初的屏幕尺寸越来越多样化,既有 24 寸 2K 高清屏,也有 16 寸笔记本,甚至越来越多人开始尝试分屏工作。 那怎么让用户在各个尺寸下都用的很舒服呢? 前者是比拟常见的适配问题,而上图则是文档非凡的适配问题。语雀文档的构造非常灵活,用户能够在多种页面构造下随时切换。因而适配时还需思考到以上六种文档构造场景。 这就让咱们的适配问题变成五种常见的容器尺寸乘以六种文档构造,十分地简单。为了解决这种简单的状况,咱们制订了三条外围的适配策略:● 优先保障重要模块● 始终保障注释可读性● 始终保障注释屏幕居中 策略1:优先保障重要模块 当屏幕无限时,让所有内容齐全展现是不事实的。于是咱们设定了模块优先级,当检测到容器宽度达到临界值时,逐级去收起次级模块。 这里有四条临界值,每一条都是咱们认为该文档构造最合适的浏览宽度。 策略2:始终保障注释的可读性 注释的可读性是最重要的。因而咱们做了一些细节的适配策略。比方右侧面板在不同宽度下关上时,展现策略则齐全不同。当宽度足够时,右侧面板会挤压注释,从而进步屏效比。而当宽度有余时,右侧面板关上则变成悬浮式,从而保障注释始终有肯定宽度。 策略3:始终保障注释屏幕居中 为什么会有这样一条策略呢?其实一开始咱们采纳的是最传统的分栏式布局。这种布局的益处就是规定非常简单,而且大多数产品都是这么做的。 但上线之后,咱们收到了十分多用户的吐槽。因为在应用大屏时,用户须要转动头部能力看到注释。于是咱们调整了适配策略,优先保障注释是居于屏幕居中的,而后再实时地计算两侧的宽度,最终决定另外两栏(目录与纲要)的布局策略。 这导致了咱们的适配规定十分的简单,每次用户关上网页咱们都在背地拼命地动静计算布局。但这简单的规定的确让咱们播种了更加舒服的浏览体验。 卡片级别的适配规定除了文档级别的适配规定,咱们还将适配规定细化到了卡片级别。为什么这么做呢?举个例子大家应该就有所领会。当注释的宽度变得十分长的时候,其实是非常容易看串行的。这就意味着其实不同的内容类型是有不同的适配规定的。 比方文本类,咱们会采纳这种定宽布局,图片类则采纳等比缩放的形式,而表格则采纳拓展布局。在新版编辑器中,在表格上点击←→按钮即可开展表格,并且不影响注释的宽度。 ...

February 18, 2022 · 1 min · jiezi

关于sass:对话摩乐吉红杉投资服务OPPOvivo的3C数码生态链公司如何攻下-12-万亿市场

10 月底,第 10000 家小米之家在深圳落成。 自 2021 年以来,小米之家迅速扩张,并以每个月 1000 家的规模迅速增长至当初行将冲破 10000 家。 但你可能不晓得的是,小米的次要竞争对手 OPPO 以及 vivo,虽未颁布具体的门店数量,但业内认为他们的门店别离维持在 20 万家以上。 试想一下,当数以百万计的消费者涌入全国 600 个城市的 40 万家门店的时候,品牌商该当如何让消费者称心?在 MUJI、网易严选、故宫文创等品牌的背地,厂商和供应链怎么能力做到互相协调和失常运行? 所有严厉的问题,都能够由一家公司给出答案,它就是——摩乐吉。 摩乐吉的服务案例中,您和您的团队最称心的产品 or 产品线是什么? 摩乐吉:咱们有很多大家相熟的客户,OPPO vivo 呀、MUJI、网易严选、故宫文创等等,对了 8848 也是咱们的客户之一。 比起独自的产品和产品线来说,咱们最引以为傲的是「摩乐吉专有的生态链产品整合服务」 最引以为傲的?看来这是摩乐吉的拳头业务,能开展讲讲吗? 摩乐吉:给你看一张摩乐吉生态链模式的图,能感触到这三方之间的业务断层;品牌方大多都是生产互联网公司,而渠道方和生产方还没有进入产业互联网经营,合作起来很艰难。 这就像让你当初去乡里卫生所瞧病,想用小程序挂号,在线上付检查费;护士却给你三张单据,填罢,还反跟你要了一块钱凑整找零。 为了加重信息差给上下游企业带来的苦楚,咱们拿下了国内最大的 3C 生态链整合工作,品牌方在摩乐吉能够找到单个品类最优质的产品、咱们会用最优质的供应商为客户生产智能硬件、甚至渠道助销和供应链金融都能够在摩乐吉实现。 咱们关注到从 2016 年成立后,到年营收冲破 3 亿、实现融资,摩乐吉只用了 3 年工夫。是什么带来了历史进程的拐点? 摩乐吉:从 2017 年至今,咱们陆续拿到了网易、步步高团体、阿里、小蠢才智能儿童系列的固定订单,这对一个不到 5 岁的企业来说,是很不错的问题。如果要把它归总到一点的话,我认为是因为咱们做了智能生态链产品整合的高速公路,从这里走就是又快又舒服。 超高响应度的 ODM,品牌用得舒心,工厂卖得省心。这就像你用了第一台 iPhone 之后,就回不去了。 摩乐吉团队是从什么时候开始接入维格表的?为什么想要接入维格表? 摩乐吉:往年二月份吧,咱们老大开始接触维格表,用了一段时间很合乎咱们过后急需解决的三个大问题,从四月份开始就正式接入全公司应用了。 三个大问题? 摩乐吉:对,首先是外部选品,过来选品材料是放在选品部共事的共享盘里,如果人到职了没有齐全交接,那被脱漏的未选品就隐没了。 为客户及时提供大量优质产品是很重要的,所以咱们把选品材料全副转移到维格表在线保护了,有权限不拍丢,分类、筛选、查找都十分好用。 第二就是产品材料,以前是手工录入,当初只须要渠道共事把收集表链接给供应商,他们填好之后咱们审核一遍就搞定了,接入维格表之后渠道共事加班申请都少了三分之二。 第三是曾经上架的产品,咱们用维格表 API 跟内部多路买通去保护,比方产品数据在线下门店的 ERP 零碎或是 B 端 C 端的商城须要保护的时候啦,不必一个个去改,间接维格表里批改其余平台就主动改好了。 ...

December 16, 2021 · 1 min · jiezi

关于sass:让财务开心到飞起vika维格表-x-腾讯千帆场景连接器实现发票信息自动录入

上次介绍了vika维格表 x 腾讯千帆场景连接器可解决人员考核后果主动收集以及一些自动化案例,行政考核问题解决了一部分,那财务问题呢? 这次,vika维格表 x 腾讯千帆场景连接器带来了:发票信息录入的自动化解决方案——让你意识的财务,立即笑出声、高兴到飞起的那种。(不信,你转发给他们看,中国人不骗不中国人) 很多人对财务的印象就是:庄重、谨严、认真。还有,加班…… 能够说,财务是整个公司内最「易燃易爆」的低压地带,试想一下:如果你每天加班就为了录入没完没了的发票,还不能出错,换谁都感觉压力山大。 发票录入繁琐发票报销看似简略,但发票的类型有很多种,每种发票须要录入的信息也有差异。再加上公司内通用的各类型报销零碎,要求生产明细账单与发票一一对应,录入难、核查难。 发票核查难再加上公司内通用的各类型报销零碎,生产明细账单须要与发票一一对应。高频率的信息录入公司财务每开进来一张增值税专用发票,或是每拿到一张专用发票都要去表格里做注销。审计压力大这还不算琐碎,等到要按不同维度进行审计的时候,须要将发票号码、金额一张张填写下来。 税金计算不能出错审计实现了,一张电子发票的使命还没有完结:增值税专用发票上的信息,须要上报给税务局来做税金抵扣。归档量级大且难这就须要一个增值税发票注销账,往往须要和电子发票一起入档,这就减少了财务的工作量。 小小的发票却带来了微小的工作量,但最可怕的是:耳濡目染中,所有人都默认财务的工作就是这些干燥的录入与审计工作。 但为什么会这样?财务就应该一辈子围绕 Excel 填表吗? 当然不是。试试用全新的多维表格:vika维格表,用自动化、数字化的形式解决「发票录入与归档」的问题! 没有人回到工作的一开始,解决「发票录入」问题。 vika 维格表 x 腾讯千帆场景连接器,这次带来了新的「发票录入与归档」自动化解决方案,搭配财务管理场景模板,让财务人员再也不必手动录入发票信息了。 同时,vika 维格表齐全的财务解决场景,让发票、税金一次主动录入后,其余表可间接援用,全方位的缩小工作量。 vika 维格表 x 腾讯千帆场景连接器 x OCR 增值税发票辨认实现 发票信息智能辨认,并主动整顿归档 实现成果在 vika 维格表中,新建一个发票专用表,维格列依照须要的数据信息设定匹配(你也能够通过智能公式,设定你须要的数据),预留一个「附件」维格列。 上传电子发票到附件列。 发票信息(发票号码、开票日期、开票金额等)主动录入。 如何实现?每当维格表有发票文件上传时,会通过场景连接器的【OCR- 增值税发票辨认】性能,对发票信息内容进行辨认,同时将发票中的重要信息:发票号码、开票日期、开票金额等等信息自动更新到维格表。 什么是 OCR?OCR 全称为:Optical Character Recognition,光学文字辨认。指对文本材料进行扫描,而后对图像文件进行剖析解决,获取文字及版面信息的过程。vika 维格表 x 腾讯千帆场景连接器应用的 OCR 技术是基于腾讯研发世界领先的人工智能深度学习技术,将图片上的文字内容,智能辨认成为可编辑的文本。反对发票、名片等卡证类和票据类的印刷体辨认,能够无效地代替人工录入信息。 扫描下方二维码,退出群聊,获取手把手教学~ 更减负的是:不仅是发票辨认,你能够在维格表中,任何须要发票信息的表格内,间接援用发票信息。无需二次录入,轻松制表,不用再为审计头疼,数据与发票归档可随时溯源。 在应用该场景解决方案前,国内某企业财务人员须要:日常报销:分别发票的真伪、是否重复使用征税抵税:提取发票信息、制作增值税专用发票台账审计环节:校对发票信息、凭证归类每日都要对当天的发票进行归档和整顿,发票数量繁多,且都须要相干人员(有时甚至须要多人协同)进行归档、信息录入和校对。 在应用该场景解决方案后,该企业财务人员只需: 上传电子发票到 vika 维格表中在其余维格表中,援用数据,轻松实现报表在人工校对中常常会呈现的信息录入谬误、效率低下、手工复制耗时耗力等状况,也失去无效解决。vika 维格表 x 腾讯千帆场景搭建的自动化工作流程,大幅缩小人力老本并进步工作效率,同时 OCR 智能辨认的错误率更低。 陆续更新除此之外,腾讯千帆场景连接器更多 AI 能力和相干模板正逐渐凋谢,借助人工智能 NLP 技术进行情绪辨认、应用 OCR 文字辨认技术智能提取名片内容等相干模板行将上线,退出 vika 维格表 x 腾讯千帆场景连接器群聊,领先体验更多功能: ...

December 16, 2021 · 1 min · jiezi

关于sass:语雀新表格数据表

1 分钟意识语雀数据表戳链接理解数据表 如果看完视频还不太分明,能够接着往下看语雀数据表到底是什么? 语雀数据表是一种全新的表格类型,它与传统的 excel 或者语雀表格最大的不同之处在于,数据表的每一个字段的数据格式是固定的。 目前,语雀数据表曾经反对了单行文本、多行文本、数字、图片等 14 种内容类型。 那么有了确定的数据类型,又有什么用呢? 1、数据录入更标准excel 不限定输出类型,存在录入不标准问题(存在7月1日/07-01等多个同义输出内容);数据表每列输出的内容类型固定(如日期类型,只能从组件中抉择日期),保障信息录入的标准。 2、数据结构化能力通过“分组”“行高设置”等性能,数据表能够出现更加清晰、结构化的的数据。这个性能有点像 excel 里的数据透视表,但用起来比数据透视表简略很多。 3、领有表单收集能力用 excel 收集信息,只能来回发送文件,而且数据信息无奈隔离,容易在填写过程中造成误改删,而语雀数据表则能够作为「表单」派发,通过表单性能收集信息,数据能够齐全隔离,还能让录入的数据更加标准。 戳链接理解「表单」 4、视图展现能力传统表格只有单元格视图,语雀数据表目前已反对卡片视图、表格视图、看板视图,将来还将反对更多视图。 理解完这些信息再回头看一下文章结尾的视频,是不是对数据表是什么更分明了呢? 如何疾速上手数据表为了帮忙大家疾速上手这个新鲜的小工具,咱们筹备了几个模板,你能够通过【新建】-【从模板新建】-【数据表】找到它们

December 1, 2021 · 1 min · jiezi

关于sass:语雀小记初长成碎片化信息记录工具

前言:碎片化信息是什么?“这是一个碎片化的时代,信息碎片化、受众碎片化、媒体碎片化”,阿尔文·托夫勒在《第三次浪潮》一书中这样形容。 从字面意思上而言,碎片化信息是残缺信息的一部分:信息被拆分成多个片段,被简化或者被高度概括。它们可能是讲座中的一段发人深省的对话,也有可能是通勤路上突然刷到的一篇博客文章。一方面,这些通过提炼加工过的信息,可能短期内疾速裁减咱们信息的广度;另一方面,咱们也放心这些切割后再通过高度加工的信息不足肯定的严谨性和可靠性。 与传统的了解不同,国内学术出版社 IGI Global 对碎片化信息的定义是:须要通过大量的致力能力依照肯定的意义组织起来的孤立数据或者信息(Separate sources of data and information that require significant effort and skill to combine in a meaningful way)。 这段释义令人印象最粗浅的中央在于,它并没有强调碎片化信息自身的个性,而是强调了信息之间的逻辑关系。这一点启发了咱们:尽管信息的收集过程可能是碎片化的,非间断的;然而对于信息的认知和再组织应该是趋向于整体的,有逻辑的。 语雀小记:从碎片化到结构化的信息记录工具始终以来,语雀因为看重常识的条理性和结构性,取得了很多用户的青睐,咱们也惊喜地发现,语雀清晰的目录构造就如同造成了咱们外接大脑中的思维宫殿,信息点之间的逻辑关系越明确,咱们对于这个信息点的记忆就越粗浅,对于信息的调用也会更疾速。 基于对碎片化信息价值的认可,咱们心愿可能利用语雀特有的结构化记录的个性,帮忙将孤零零到处散落的信息点,变成一个相互之间有分割甚至是造成谨严逻辑关系的信息网络,让这个网络自身成为一个坚韧的牢靠的外接信息大脑。 因而,咱们设计了语雀小记这个碎片化记录工具,内容以系统的模式记录下来之后,可能以一个较为整体的模式输入到语雀的知识结构中去。为此,咱们总结了一个碎片化信息记录「来-理-去」的三步走策略: ● 来:营造疾速,无烦扰的信息录入环境,激励记录原创或者通过思考的想法;● 理:信息记录之后,须要对其整顿和组织,将具备长效价值的信息筛选进去;● 去:筛选进去的信息须要进一步整合,信息和信息之间须要建立联系,服务于某个特定的知识结构或主题。 来:随时随地疾速记录小记能够帮忙你疾速捕获信息和灵感,尤其是在灵感乍现的霎时,“记下来”,要比“记哪里”,要重要得多。为了可能做到随时随地疾速记录,小记在语雀网页端和桌面端均有入口。在语雀的桌面端上,用户还能够通过「Cmd / Ctrl + Shift + Y」疾速唤起小记记录窗口: 在小记外面记录,不须要放心内容保留到哪里,不须要放心内容的格局和排版,也不须要思考题目怎么定。你能够自在地记录文字,上传图片或者多种格局的附件。 小记也针对局部高频场景做了体验强化,譬如如果你习惯用小记来记录日常的待办事项,你能够通过工具栏中的 Checkbox 性能,疾速创立和筛选每日的待办事项。当一项工作实现时,你能够间接在列表中点击 Checkbox 并批改事项实现状态。 理:信息的整顿在大量不间断的记录过程中,咱们发现小记上的记录类型很繁冗:工作,情感,家庭,旅行,美食等内容盘根错节交错在一起,搅成一坨信息大杂烩。同时,不同的信息也具备不同的生命周期,譬如长期的待办记录,事项实现后就能够删除。因而,为了筛选出真正有价值的信息,无累赘地革除生效内容,小记有如下的信息整顿策略: 分类通过标签能力将不同的信息类型进行大抵的分类,目标是打消信息混放、缩小过错,同时进步后续步骤的效率。 清理小记反对批量删除性能,不便对价值生效的小记进行清理。 降噪然而,即便是“长生命周期”的内容,也不须要每天都看到,只须要将来须要的时候可能找到,能够调用,便足够了,这部分信息被称之为“低活跃度信息”。 这一类信息不能太多,否则会对以后的关注事项产生信息乐音。因而,为了让用户可能聚焦于以后最沉闷的内容,小记设计了归档性能,将“短期内不须要应用然而依然有存储价值”的信息进行冷贮存,放弃罕用小记列表的清新和聚焦。 去:碎片信息的结构化输入语雀小记最有特点的中央,就是其反对将碎片化信息转化为整体知识结构的一部分。 举个例子:读到好书的时候,咱们往往会做一些摘抄。然而浏览并不是一个间断的事件,一本书经常须要分好几天读完,记录的摘抄也是不间断的。如果应用语雀小记去做记录的话,当这本书最终读完的时候,就能够通过语雀小记的「生成文档」性能,将这本书之前做的所有摘抄笔记导出为一篇残缺的文档。 具体操作形式如下: 第一步:选中特定分类下的小记并批量抉择,点击“生成文档”,将小记内容合并到语雀知识库文档中。 第二步:内容以文档的模式输入后,保留在一个相似「文件夹」的知识库中。碎片化内容进入知识库之后,能够通过灵便的目录构造去整顿不同碎片化信息之间的构造关系。 当然,如果自身就是在写较长文档的过程中,如果想要浏览一下当初记录的内容寻找灵感,或者间接进行援用。也能够间接在文档工具栏的素材库中唤起小记侧边栏,在以后页面查看小记内容,或者将小记内容一键插入文档。 点此解锁更多小记用法 总结小记是一款宁静敌对的碎片化记录工具,心愿不仅能够帮忙用户真正做到顺手疾速记录,也能够反对碎片化内容往结构化内容的积淀。小记的将来,心愿能够造成一个稳固的碎片化信息的承接入口,帮忙咱们丰盛和欠缺现有的常识体系,甚至是激励咱们的内容再创作并积攒肯定的内容身份资产。 目前来看,小记的疾速记录局部还不够欠缺,「来-理-去」的应用门路也还有很大的优化空间。然而小记的团队会持续打磨产品体验,也会将这些迭代过程中的碎片化反思和输出记录下来。小记心愿通过每一次的记录和迭代,和大家一起成长为本人喜爱的样子。 ...

December 1, 2021 · 1 min · jiezi

关于sass:语雀编辑器自研之路

本文为蚂蚁团体语雀自研编辑器技术负责人遇春在语雀大会上的演讲。 大家好,我我叫遇春,接下来由我给大家分享语雀自主研发的编辑器。 在这之前组委会跟我说要分享一下编辑器外面一些技术先进的中央,我就认真思考这个问题,到底语雀编辑器中什么技术是先进的。在我看来。技术自身其实不存在所谓的先进技术或者是落后的技术。技术的目标就是为了解决问题,可能会有新旧之分,然而语雀团队又不是一个特地谋求新技术的一个团队,所以可能接下来我的分享中次要是针对咱们所遇到的具体问题,而后怎么样找解决方案。从问题自身来说,每一个产品他遇到的问题都不一样,所以很难比照说咱们的技术就很先进。所以接下来的分享,咱们来看看咱们语雀编辑器遇到了什么样的问题以及技术上的思考。 先从这一句话开始。文有汝心出,笔墨语雀来。这一句是语雀最早的 slogan。 咱们心愿当你关上语雀编辑器的时候,可能沉迷在一种平静而又愉悦的创作心流当中。不论你是要写一个周报或者是写个小说,或者游览回来写一篇游记。咱们都心愿这个过程是一种享受。当你想要插入一个流程图或者是插一个数据报表,或者想要插一个视频,咱们都心愿在语雀编辑器当中都可能顺手拈来,零打碎敲。这就是语雀编辑器所要谋求的一个方向。 接下来,我的分享会蕴含这几个局部 Part 1. 语雀编辑器的家族介绍 七兄弟先给大家放一张全家福,这是语雀所有编辑器的一个全家福,咱们依据工夫给大家做了一个排行,老大、老二、老三、老四、老五、老六、老七。 文档编辑器 先从老大文档编辑器开始,能力比拟强,人比拟诚实,而后也肯吃苦,里里外外全靠他,脏活累活全包。能够说有内容输出的中央就有他的身影。咱们能够看到包含语雀小记,各种评论区都是他来负责的,基本上能够说没有他就没有这个家。 目录编辑器 老二目录编辑器,可能大家比拟诧异,这也是个编辑器吗?对的,这是一个如假包换的编辑器。因为早年进来读书,而后长年在外不怎么回家,所以大家都不意识他。大学的时候,在图书馆里做过勤工俭学,在分类整理这一块,可是一个一等一的高手。所以这几年回家来打理家务,家里的材料、文件,经他这么一手,把你整顿的东倒西歪。 工作表/数据表 老三工作表,这个哥们天生喜爱数学。家里所有的水费、电费、煤气费,各种吃穿用度,所有的支出开销交给他,保障给你治理的妥妥的。起初他发现自己忙不过来,又有了老七, 老七是咱们的数据表,数据表就和当初的小孩子一样,天生的互联网的原住民,他比拟喜爱收集数据,他在收集数据这块也是有一手,凭着这一手绝活,未来定是前途无量的。所以和数据无关的事件交给他们,稳! 思维图,流程图和演示文稿 老四老五老六,思维图,流程图和演示文稿,他们是个三胞胎,出世的时候日子过得比拟好,养分跟得上,牛奶、鸡蛋每天服侍着,身板硬了心气儿就高,对吧?在图形畛域可真是没有怕过谁,不是明天要干翻这个,就是今天要放平那个,正堪称是初生牛犊不怕虎,立志闯出一片天。 七个编辑器,七兄弟群策群力为大家服务。那么重点来了 所有的语雀编辑器的所有性能,对所有的用户,不论你是付费的还是收费的,厚此薄彼,所有的性能都向大家收费凋谢。 四版本好的,这么多编辑器必定说不完。咱们接下来挑一些有故事的说,先从文档编辑器说起。 一句话介绍,简洁而不简略,无所不包,普惠公众,语雀文档编辑器经验了四个版本,每一个版本也都给咱们留下了一些十分贵重的个性。 1.0从 1.0 开始,咱们是一个 Markdown 编辑器,相熟 Markdown 语法的同学都晓得。咱们能够通过输出一些非常简单的字符,而后实现一些清晰的文档构造。题目,列表,援用等等,十分有利于浏览。这也让咱们意识到文档的美,美在构造。而这种快捷输出的能力在咱们 1.0 的时候就曾经具备并且连续了下来。 2.02.0 咱们进入了富文本时代,富文本时代给咱们带来了更加丰盛的款式,让咱们能够更纵情的施展。而且富文本编辑器还给咱们带来了一个新的编辑模式,叫做“所见即所得”。你所编辑的就是你看到的,不再须要你重复去预览,这样能够大大的晋升了你的编辑效率。 3.03.0 时代,咱们齐全进入自研的时代,也就是大家近2年多始终在应用的编辑器,咱们发现咱们还须要在文档里插入一些非凡格局的数据,比如说一个日历,比如说一个投票,比如说一个代码块,这样的一个简单的数据格式,咱们须要可能满足,咱们引入了卡片模型,卡片模型让语雀整个编辑器变得更加凋谢,更加具备连贯能力。借助这个能力,咱们能够连贯互联网,比如说你插入一个网页进来也是能够的,咱们也能够在语雀外部去做一些连贯,不同的文档之间也能够互相引入,原文档编辑后,引入的文档也会自动更新。而后,3.0 还给咱们带来一个另一个能力,就是多人协同,多人协同让咱们语雀编辑器真正的实现了多人同时编辑,成为常识合作的一个工具。 4.0明天,咱们进入 4.0 时代,4.0 编辑器刚刚公布上线,大家可可能直观感触到就是咱们的文档表格曾经能够多人同时编辑了。通过了半年的研发,咱们底层做了一个很大的降级,在架构上也具备更好的灵活性和拓展性。大家晓得咱们的评论区外面有很多用户给咱们提的倡议,还有一些问题。尽管不是每个倡议咱们都可能驳回,然而 4.0 时代咱们会给大家出现更多的精彩,让咱们敬请期待。 当然刚刚上线难免会有一些问题,一些用户在讨论区外面说咱们的有一些交互变了。尽管这些交互的变动也是通过了咱们的一些思考的,但总有不到的中央,咱们心愿大家一直的给咱们提意见。鲜花和鸡蛋我感觉都会让咱们变得更好。 Part2. 编辑器成长故事接下来我给大家介绍一下语雀编辑器的成长故事。 就像方才所说,其实语雀就是在用户给咱们一直的吐槽,给咱们一直提倡议的一个环境下长大的。那接下来的三个故事,让咱们缓缓来看。 故事1. 实时协同先从第一个故事:实时协同。 在咱们语雀商业化第一年的时候,其实咱们是不具备这样的一个能力的,咱们过后是从咱们本人的工作场景中察看,发现多集体同时编辑一篇文档的场景很少,偶然会用到,频率也很低。然而过后整个市场上对于这个性能是十分关注的,没有这个性能,如同都不好意思跟他人打招呼,是不是这样呢?咱们要不要破费微小的研发老本来实现一个低频的能力呢?咱们从来不是一个喜爱去跟风的一个产品,然而咱们还是会反思的。咱们在想这样的一个性能,这样一个低频的性能,为什么大家如此关注? 咱们起初认真想一想,原来咱们对待问题的形式可能有一些问题。 那就是应用频率和重要性。它其实并不可能划等号。我举个例子,一个商场它的消防设施可能并不是常常应用,对吧?咱们也心愿它始终不要应用,那消防设施其实它很重要。重要性决定咱们要不要做这个性能,而应用频率只是决定咱们要把它做到什么样子,放在什么地位。 当咱们想通了这一点当前,咱们感觉咱们之前的顾虑和犹豫其实是有问题的。作为一个提倡常识合作的产品,多人同时编辑会在关键时刻晋升用户的合作效率。于是咱们决定要做实时协同。 实时协同咱们怎么设计呢? 咱们在实时协同之前,语雀的编辑是一种锁模式,就是一个人在编辑的时候,他人是不可能同时编辑的。这也是基于内容的平安思考,避免内容和版本变乱,那锁模式它也有锁模式的益处,比如说锁模式比较简单,比较稳定,它的离线也比拟敌对。咱们心愿这些个性也可能在在持续连续下来,所以咱们额定减少了一个协同模式。 协同模式在团队下,在协同的知识库上面默认开启,你的集体知识库如果加了协作者也会帮你默认开启合作模式。合作模式的益处,就是多集体同时能够同时编辑了,内容实时同步到多个编辑端。然而它也有它的毛病,比方协同模式对网络的要求比拟高,有些用户他可能网络比较慢,或者是常常会断,或者是他设置了代理,有可能连不到咱们的协同服务器上。这时候咱们又减少了一个叫做智能切换的能力,咱们能够将你从协同模式切回到锁模式,让你更加稳固的去编辑,这就是语雀编辑器在协同这一块的设计。 实时协同上线了1年多,咱们也遇到很多问题。 ...

December 1, 2021 · 1 min · jiezi

关于sass:ONES-Talk-我们为什么选择最难走的软件之路

软件研发有多难? 从中国人致力研发自主操作系统的过程可见一斑。在二十多年工夫里,是你方唱罢我退场的「前仆后继」:红旗 Linux、深度 Linux、中标麒麟、优麒麟、中科方德、普华、StartOS、阿里云 OS……许多名字先后呈现,但很快被人们淡忘。 2021 年 7 月底,华为示意,鸿蒙系统升级用户已冲破 4000 万。现在,不少人都在期待着鸿蒙的胜利。 说起操作系统,有人这样提问:中国是手机 APP 开发大国,也是寰球摩天大楼总量最多的国家,还领有全世界最长的跨海大桥——可是为什么中国这么久都没有属于本人的软件操作系统呢? 因为相比传统工程而言,软件的研发切实太难、太简单了。尽管如此,中国的泛滥软件公司「义无反顾」地走上攻坚之路,其中包含研发管理工具头部企业 ONES。 01 早在 1950 年代,就曾经有公司专门以开发软件为主营业务。 但软件业从一开始就是一个磕磕碰碰的行业:我的项目总是一再延期,好不容易交付了,软件卖出去之后又总是被人发现各种故障和谬误。如果客户不称心,要求公司提供售后服务,那么,现场去给人解决问题是老本极高的事件。此外,软件开发者还要应酬黑客攻击、网络病毒等。 直到 2000 年前后,美国政府统计署的数据显示:寰球最大的软件生产商(美国军方)每年要花费数十亿美元购买软件,而在其所购软件中,可间接应用的只占 2%,另外 3%须要做一些批改,其余 95%都成了垃圾。 以至于,一度流传这样一个故事:一个软件工程师讥笑一个汽车工程师说:“如果汽车行业像计算机行业一样倒退,当初汽车应该一毛钱一辆。”然而汽车工程师不以为然,回应说:“可是谁会要一辆动不动就抛锚的汽车呢?” 从事过软件开发的人都晓得,程序代码太容易出错了。代码越写越长,出错的频率不成比例地减少。可能你明天费了很大力量好不容易运行通过了,过了几天、遇到一个没想到的状况,发现还有一个暗藏的谬误。 就算 Windows,Mac 和 Linux 并列为古代三大支流操作系统,各自都有约一亿行代码——即便它们能够称为最成熟的软件系统,至今其中依然还会呈现不少故障。 因而,晚期的软件公司,都会尽量去找那些经验丰富、头脑聪慧的高水平程序员,同时还会在销售软件时附带一个免责申明:“如果因为这个软件的问题给您造成了损失,咱们概不负责。” 可见,软件工程的复杂度远高于建筑工程。例如,在盖楼的过程中,假使犯个小谬误,那么后果是让楼房的品质有所降级,但只有不是极重大的失误,这房子还是能住的。 但软件就不同了,程序中的一个小谬误很可能就会导致整个零碎的解体。因为软件各处的关联十分密集,随时触一发而动全身。例如,在发射火箭时,相干操作是由软件管制的,一旦软件呈现 Bug,火箭随即失控。 因而,软件开发不仅是一种工程,而且是比传统工程简单得多的工程。而软件工程的问题不在于有多少高水平的工程师,而是一个复杂性问题。 02 早年的软件开发是集体英雄主义时代,一个程序员便能够发明一个经典程序,求伯君的 WPS、王永民的王码、王江民的 KV 杀毒、鲍岳桥的 UCDOS 等等——他们和他们的软件无疑是那个时代的代名词。 自从进入 21 世纪,软件需要及其自身的开发越来越简单,集体英雄主义时代退出了历史舞台,因为当初要想一个人单打独斗实现一个中型软件我的项目,已是「不可能的工作」。 以前的软件是给一个人用,当初是多个用户独特应用一个软件;以前的软件是一个人或者几个人开发的,当初则是大型团队一起开发;软件工程师的定义不仅仅专指程序员,而是囊括产品经理、设计师、架构师等多方相干人士——能够说,软件工程是工程治理和综合治理伎俩的极限。 在 1960 年代,计算机思想家弗瑞德里克·布鲁克斯(Fred Brooks)带领 IBM 公司 300 人的团队开发操作系统。基于此次研发经验的总结,他写了一本名为《人月神话》的书,至今仍为经典之作。 《人月神话》有两个外围观点: 其一是:1 集体干 12 个月的活,相对不是 12 集体在 1 个月内能实现的。我的项目波及的软件工程师越多,均匀每个人出活的速度就越慢。所以,布局我的项目的时候计算“人月”是没意义的。 其二是:团队做进去的软件的构造,往往和团队的人员组织治理构造高度类似。所以,软件工程岂但要管我的项目,还要管人。 到了 1987 年,布鲁克斯写了一篇名为《没有银弹》的文章,将此前的观点进行降级:软件工程的基本问题,是人的问题——主导软件开发的人,必须得可能了解高度简单的货色才行。 ...

November 30, 2021 · 1 min · jiezi

关于sass:CSS权重算法覆盖Sass的用法

CSS优先级介绍: !impotr(正无穷大InfinitY) > 行内款式(1000) > ID选择器(100) > class选择器|伪类(10) > 标签选择器|伪元素(1) > 通配符选择器(0)留神:以上的权重值1位256进制权值计算:依照以上规定相加,权值高的优先级高权值雷同,遵循后增加的为准笼罩和深度笼罩deep 场景: scoped状况下须要笼罩掉其余UI组件中的款式利用:原生:>>>(深度作用选择器) 预处理器:/deep/ 或者 ::v-deepSass的根本用法 1.申明变量 用法:以$结尾定义变量,在应用时间接调用$变量名2.拼接字符串 用法:#{$变量}3.计算性能 用法:间接应用变量或者+-*/4.嵌套写法 用法:&为间接父元素5.继承 用法: 选择器 { @extend 选择器 }6.复用 mixin 用法:申明: @mixin XX(参数){/**/} 应用: @include XX7.条件判断语句 条件判断、循环可自行查问8.自定义函数 用法: @function (par){ @return par }

November 16, 2021 · 1 min · jiezi

关于sass:插件打包时禁止静态样式文件内容打包到js中

1.打包时的动态地址改为/static/advanced,动态css文件的规定如下: 2.插件内援用形式: 3.我的项目中的配置如下: *备注:自己应用的sass,需提前装置node-sass@4.13.1,sass-loader@7.3.1

October 26, 2021 · 1 min · jiezi

关于sass:Sass将Unicode编译成文字字符导致icon乱码问题

发现问题最近在应用公司组件库中的穿梭框组件时发现icon图标全都乱码了 剖析问题经排查发现,组件款式文件(scss)引入的iconfont矢量图标字体,构建时,\e601这类Unicode字符在通过sass编译后就变成了文字字符(双字节字符),导致呈现乱码 .icon-ok:before { content: "\e601";}Sass编译后 .icon-ok:before { content: "";}解决问题(1)降级sass版本 在Sass@1.38.0版本中对这个问题做了修复,能够将我的项目中应用的版本下级到1.38.0+,详情查看Sass更新日志 // index.scss.icon-ok:before { content: "\e601";}执行npx sass@1.38.0 index.scss index.css // index.css.icon-ok:before { content: "\e601";}/*# sourceMappingURL=index.css.map */(2)自定义webpack loader 下面剖析问题时说到构建时Sass将Unicode字符编译成文字字符,那么咱们能不能在loader队列中sass-loader后退出咱们自定义的loader,将CSS中的文字字符转译成Unicode字符呢?当然是能够的 const CONTENT_MATCH_REG = /(?<!-)content\s*:\s*([^;\}]+)/g; // 找出伪元素里content那块内容const UNICODE_MATCH_REG = /[^\x00-\xff]/g; // 找出非单字节符function fun(source) { this.cacheable(); // 利用缓存来进步编译效率 source = source.replace(CONTENT_MATCH_REG, function (m, p1) { return m.replace(UNICODE_MATCH_REG, function (m) { return "\\" + m.charCodeAt(0).toString(16); // m.charCodeAt(0)返回字符串第一个字符的 Unicode 编码,前面再转16进制,后面加一斜杠 }); }); return source;}测试 ...

October 17, 2021 · 2 min · jiezi

关于sass:从-Sass-Breaking-Change-Slash-as-Division-说起

最近在批改一个我的项目的时候,发现了一系列的 Sass 的告警——由除号引起的告警: 目录什么告警?如何解决告警? 降级 sass 模块更新业务语法应用 sass-migratorDart Sass Vs Node Sass Dart Sass on Dart-VM 与 Dart Sass on NPM什么告警?告警的内容很简略,用 / 作为除法曾经在 Dart Sass 2.0.0 中被弃用了,作为一个 Sass 的根底语法,这次弃用属于 breaking change 了,因而目前编译时只是会抛出 warning 而不是 error,否则大量我的项目都无奈失常运行。 钻研了一下能够看到,Sass 官网特定用了一整个篇幅的文章,来论述为何要作出这个批改,次要的起因在于,/ 在 Sass 中同时承当除号以及 CSS 分隔符的作用,例如: Sass 代码 // 作为除号应用.test_division { border-radius: ceil(28px / 2);}// 作为 CSS 分隔符应用.test_operator { font: 12px/1.5 -apple-system, "SF UI Text", "PingFang SC", "Lucida Grande", "Microsoft YaHei", sans-serif;}理论编译出的 CSS 代码 ...

September 30, 2021 · 2 min · jiezi

关于sass:全网最全解决nodesass安装失败总结

问题形容?执行 npm i node-sass -D关键词形容: tunneling socket could not be established, cause=getaddrinfo ENOTFOUND 49402 // 这个端口号每个人呈现的可能不一样Error: Could not find any Python installation to use ...图形容 如果遇到这些问题,那么在这里应该就能找到答案 最终报的错误信息 为什么有Python的提醒报错起因:提醒没有装置python、build失败,如果拉取binding.node失败,node-sass会尝试在本地编译binding.node,过程就须要用到python为什么会下载失败在执行npm install node-sass的时候,控制台会看到正在从github下载一个win32-x64-72_binding.node的文件,这是一个二进制文件,并不存在npm仓库,而是间接从github下载,下载十分慢,如果本地没有墙过,失败的几率会比拟大解决下载慢5种办法所有的依赖都设置淘宝镜像 npm config set registry https://registry.npm.taobao.org/只对node-sass设置拉取地址 npm install node-sass --sass-binary-site=https://npm.taobao.org/mirrors/node-sass3.在npm config设置 npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass4.在package.json "nodeSassConfig": { "binarySite": "https://npm.taobao.org/mirrors/node-sass"},5.在我的项目目录下新建.npmrc文件 registry=https://registry.npm.taobao.org/# 设置公有服@pm:registry=http://192.168.1.200:8081/repository/npm/# 比方装置npm install @pm/axios -Snpm install @pm/vue -S以上没有解决,解决端口号问题我的电脑所报的是:49402 查看npm配置npm config list -l // 查看npm所有配置查看外面是否代理字段,如有删除 npm config delete proxynpm config delete https-proxy查看环境变量在这里发现了一个49402端口,把它删掉 ...

September 22, 2021 · 1 min · jiezi

关于sass:线程池有什么优点谁知道吗

咱们应用线程的时候就去创立一个线程,这样实现起来十分简便,然而就会有一个问题:如果并发的线程数量很多,星池云服务器并且每个线程都是执行一个工夫很短的工作就完结了,这样频繁创立线程就会大大降低零碎的效率,因为频繁创立线程和销毁线程须要工夫。所以咱们在在Java中能够通过线程池来防止这些问题:线程池:其实就是一个包容多个线程的容器,其中的线程能够重复应用,省去了频繁创立线程对象的操作,无需重复创立线程而耗费过多资源。 当工作达到时,工作能够不须要的等到线程创立就能立刻执行。进步线程的可管理性。能够依据零碎的承受能力,调整线程池中工作线线程的数目,星池云服务器避免因为耗费过多的内存,而把服务器累趴下(每个线程须要大概1MB内存,线程开的越多,耗费的内存也就越大,最初死机)。 办法执行的内存模型:每个办法在执行的同时都会创立一个栈帧用于贮存局部变量表、操作数栈、动静链接、办法进口等信息。https://www.starpool.cn 每个办法从调用直至实现的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。

August 23, 2021 · 1 min · jiezi

关于sass:行业前瞻丨中国SaaS市场将快速增长或形成小而美林立格局

工具与资源核心帮忙开发者更加高效的工作,提供围绕开发者全生命周期的工具与资源 https://developer.aliyun.com/... 简介: 比照5年前,中国SaaS市场的这一次热潮有怎么的不同?中国SaaS市场的倒退空间,以美国为“锚点”是否适合?中国SaaS市场的发展前景到底如何,可能走向怎么的生态格局?本钻研将尝试答复这些问题,抛砖引玉以供读者探讨。 导语020年,一场从天而降的新冠疫情在给人们日常生活带来重大冲击的同时,也极大地减速了整个社会的数字化过程,数字经济成为疫情中指引方向的灯塔。在这样的背景下,中国的SaaS市场迎来了倒退时机:一方面,在业绩增长的推动下,诸多SaaS厂商的市值屡翻新高;另一方面,SaaS融资市场一片炽热:2020年国内SaaS共产生134起投融资事件,融资总金额超157.45亿元(数据起源:B2B内参)。而最让人兴奋的是,GDP已达美国70%的中国,SaaS市场规模却有余美国的1/20,市场倒退空间显得极为广大。 对中国SaaS市场有所关注的人们,或者会回想到5年前,所有似曾相识:同样的概念炽热、融资市场火爆,泛滥守业企业立志成为中国的Salesforce……然而,彼时的SaaS市场并没有因为供应侧的炽热迎来爆发式增长。这一次的SaaS市场热潮,与5年前有什么样的不同?中国SaaS市场的倒退空间,以美国为“锚点”是否适合?中国SaaS市场的发展前景到底如何,可能走向怎么的生态格局?本钻研将尝试答复这些问题,抛砖引玉以供读者探讨。 中美SaaS市场比照中国SaaS市场规模仅为美国的4.1% 近年来差距逐步放大2020年,中国SaaS市场规模达到49.5亿美元(数据起源:IDC,下同);同年美国SaaS市场规模为1198.7亿美元,中国SaaS市场规模仅为美国的4.1%。而在2016年,中国SaaS市场规模为13.2亿美元,同年美国SaaS市场规模为604.0亿美元,中国SaaS市场规模为美国的2.2%,近5年来中美SaaS市场规模差距逐步放大。 图1 2016—2020年中美SaaS市场规模比照 SaaS在私有云中占比一直降落 2020年仅为25.5%2020年,SaaS在中国私有云中的占比仅为25.5%,远低于SaaS在美国私有云中的占比67.1%。只管近5年SaaS市场规模的年复合增长率高达39.1%,但仍是中国私有云市场中增长最慢的局部,低于私有云整体市场的年复合增长率61.1%,这间接导致SaaS在私有云中占比一直升高——相比2016年,SaaS在中国私有云中的占比近5年降落了20.4个百分点。 图2 2016—2020年中国私有云市场构造变动 应用软件中SaaS占比连年晋升 但仍显著低于美国2020年,以市场规模计算,SaaS在中国应用软件市场中的占比为34.9%(SaaS以应用软件为主,如2020年中国SaaS市场开销中85.2%为应用软件,本钻研计算SaaS在应用软件中占比时,应用的SaaS市场规模数据为应用软件局部),相比2016年晋升了21.4个百分点,如图3所示;作为比照,2020年SaaS在美国应用软件市场中的占比为50.4%,相比2016年晋升了12.8个百分点。2020年,中国应用软件市场中SaaS占比仍低于美国15.5个百分点,但该差距近年来已继续放大。 图3 2016—2020年中美应用软件中SaaS占比变动 中美SaaS市场差别起因剖析造成中美SaaS市场差别的起因,大多与中美云计算市场差别的起因雷同,次要有:中国企业的均匀生命周期较短,对数字技术的投入优先级低;中国的劳动力成本低,企业更偏向应用人力而非技术解决问题;三次产业结构中服务业的云计算渗透率最高,美国的服务业占比高于中国等(具体起因剖析,可参考《2025年私有云或将服务中国过半数字经济》)。除上述因素外,导致中美SaaS市场差别的起因还包含: 中国产业门类齐全、个性化需要多 SaaS倒退难度大中国的产业门类最为齐全,是全世界惟一领有联合国产业分类中所列全副工业门类的国家。在经济总量不迭美国的状况下,产业门类多意味着各产业的均匀市场规模小于美国,这会导致中国行业利用类SaaS的边际老本更高。而据报道,中国的企业数量为4100万家(另有个体工商户逾8000万户),美国的企业数量为2500万家,只管更多的企业数量蕴含着更大的市场需求,但同时也意味着市场需求更加多元化——每减少一家企业就代表着SaaS服务商须要多面对一例个性化需要,这对SaaS服务商的产品能力和服务水平提出了更高的要求,使得SaaS在中国的倒退难度远大于美国。 中国大型企业偏向自建利用 而中小企业付费能力无限中国的大型企业大多领有较为成熟的IT零碎和团队,在面对业务需要时,要么通过外部自主研发,要么抉择供应商定制开发,且多以私有化形式进行部署,只有多数创新型业务才会思考SaaS;而中小企业通常本身IT能力无限,SaaS这种按需订阅的模式人造满足其需要,但中小企业的付费能力较弱——依据T媒体钻研,2018年中国企业对SaaS的年均收入为11.15万元,而美国企业对SaaS的年均收入为34.3万美元,中国企业在SaaS上的投入有余美国企业的1/20。大型企业偏向定制化,中小企业付费能力有余,导致SaaS在中国的市场浸透程度不高。 中国市场倒退阶段绝对滞后生态体系不如美国欠缺从本世纪初至今,美国的SaaS市场已经验了20年的倒退,特地近10年来,利用市场逐步承受SaaS状态,大量细分畛域的SaaS厂商呈现,SaaS生态日趋完善。而中国的SaaS市场倒退滞后美国10年左右, 2010年后开始起步,并随着云计算的倒退在2015年后步入疾速成长期,但至今生态能力仍不成熟:一方面,产品服务不齐全,SaaS厂商大多集中在OA、IM、CRM、ERP等畛域,没有造成残缺的SaaS幅员,整个产品矩阵存在割裂景象,难以齐全施展SaaS价值;另一方面,产业链条不清晰,特地是SaaS的营销、部署等环节,中国市场整体上仍处于线上还是线下、自建抑或外包的模式摸索阶段;更重要的是,10年的倒退差距,使得中国的SaaS人才根底落后于美国,特地是SaaS以企业服务为主的个性,要求从业人员对客户所处行业有深刻了解,这些能力须要长期的行业浸润积攒而短时间内难以迅速补齐,这间接导致中国SaaS从产品能力到服务水平与美国均存在显著差距。 除上述因素外,我国从信息化期间就凸显的IT收入“重硬轻软”问题,只管近年来有所改善但仍旧存在;大多数SaaS企业和技术人员没有经验过信息化期间,不足产品标准化教训……诸多因素的独特作用,使得中国SaaS市场规模显著小于美国。 中国SaaS市场倒退瞻望市场规模放弃快速增长 对应用软件的浸透程度继续晋升与2016年相比,以后SaaS市场面临的市场环境更加成熟,这次要得益于数字基础设施笼罩能力的加强和用户对SaaS承受志愿的晋升。 相比5年前,网络的笼罩程度和IT基础设施的云化比率都有了显著晋升。2015年,中国网民数量为6.88亿,占全国人口的50.3%;2020年,中国网民数量增长至9.89亿,占全国人口的70.4%。挪动互联网更是获得长足发展,2020年挪动互联网接入流量达1656亿GB,是2015年的40倍。而从2015年到2020年,IT基础设施开销中的云计算占比从33%晋升至56%。网络、云等数字基础设施笼罩能力的晋升,能够扩充SaaS的服务范畴并带来更好的用户体验。 更大的扭转来自社会对SaaS接受度的晋升。一方面,购买服务模式被宽泛承受:近年来以88VIP为代表的集体付费会员数量快速增长,人们日渐养成购买服务的生产行为习惯;同时,在政策推动下,越来越多的政府需要由传统的我的项目制建设转为向社会力量购买服务。另一方面,构建数字化能力成为企业共识:新冠疫情的暴发主观上减速了社会数字化过程,疫情期间数字经济展现出的弱小韧性,使得数字化对于企业而言不再是精益求精的选择题,而是生死存亡的必备能力,特地是与业务需要间隔最近的SaaS,成为大多数企业疾速取得数字化能力的最佳抉择。 除市场倒退环境更加成熟外,在以国内大循环为主体、国内国内双循环相互促进的新倒退格局下,中国的经济增长能源将从“规模红利”深度转向“效率红利”;人口红利消褪,劳动力价格一直上涨,越来越多的企业将应用技术而非人力解决问题;而随着Z世代人群步入职场、80后90后进入管理层,社会面对企业服务的态度一直扭转。在这些因素的驱动下,中国的SaaS市场规模将继续快速增长,依据IDC钻研,预计将来4年的年复合增长率将达到34.0%,到2024年,SaaS市场规模将达到147.4亿美元。SaaS在应用软件市场中占比也将从2020年的34.9%疾速晋升至2024年的58.3%,靠近2024年美国应用软件市场中SaaS的预计占比程度62.7%。 图4 2020—2024年中国SaaS市场规模及在应用软件市场中占比预测 或将造成独特市场构造 构建“小而美”林立的生态成熟且齐备的SaaS生态、丰盛且差异化的解决方案,使得美国企业在利用SaaS时具备“去中心化”特色:据T媒体钻研,均匀每个美国企业应用上百个SaaS产品,均匀每个美国企业员工应用8个SaaS产品。而中国市场用户更加青眼“一站式”计划——这正是近年来C端APP中“小程序”衰亡的起因,但也给SaaS厂商提出了更高的要求,特地是OA、IM、ERP、CRM等通用业务服务商,推动其从SaaS向PaaS延长,拓展平台服务能力以反对尽可能多的业务利用。 构建更加松软的PaaS和更加麻利的SaaS,或者是中国市场的最优解,特地是在面对产业门类、企业数量“双多”现状时,而这要得益于低代码平台能力的晋升。一方面,对于行业通用问题,依然能够通过SaaS解决;另一方面,对于多数企业的个性化问题,SaaS厂商不再须要为标准化和个性化的折衷而懊恼,在功能强大的PaaS上,通过低代码平台以“利落拽”形式即可疾速实现业务性能,甚至局部业务的部署速度并不逊于SaaS的个性化配置。以企业办公与合作平台钉钉为例,截至2021年3月31日,钉钉上的利用总数量高达101万,其中有38万利用是通过低代码平台搭建而成,低代码平台日渐成为企业晋升数字化能力的利器。 “厚PaaS薄SaaS”将推动中国造成与美国截然不同的云计算市场构造,即PaaS占比会更高,而SaaS占比会更低。在市场规模限定的天花板下,中国或者很难培育出相似Salesforce的SaaS市场巨头,但在强力的PaaS能力撑持和丰盛的业务需要推动下,中国SaaS市场无望百花齐放,大量的“小而美”企业破茧成蝶。

July 29, 2021 · 1 min · jiezi

关于sass:SAP-Fiori-Elements-公开课第二单元视频的台词和课程主要内容

课程地址 很多 SAP 从业者反映,open SAP 上的视频,因为网络起因无法访问,所以我会陆续在我的集体微 信 号“汪子熙”下面,把这些视频配上中文字幕并公布进去,敬请关注。 本文是公开课第二单元视频的中文字幕,由自己手动翻译而成,感激大家的反对。 第二单元内容:解说 Fiori Elements Architecture 以下是视频台词的中文翻译。 ==== 欢送大家来到 OpenSAP Fiori Elements 公开课程第一周的第二单元。本单元咱们探讨 Fiori Elements 的架构 SAP Fiori Elements 总的来说分为五大组成部分,独特形成了运行时看到的应用程序: (1)Floorplans; (2)OData 服务; (3)注解; (4)配置; (5)定制代码 下图右边第一个图例代表 Floorplan, 比方 Analytical List 或者 Object Page, 由 Fiori Elements 框架提供 Floorplan 负责应用程序的显示方式及其行为形式的管制 第二,第三局部即 OData 服务和注解,须要利用开发人员保护 二者联合起来,使利用开发人员能够决定利用在屏幕上显示的具体内容,而不须要应用 JavaScript 编程来实现 相同,借助 OData 和 注解,咱们提供的理论是语义和行为的形象形容(abstraction of semantics and behaviors) 这意味着利用开发人员得以专一于业务性能、行为形式以及生产形式的设计中去 当然如果您心愿扭转 Floorplan 的行为或引入额定的逻辑,Fiori Elements 的灵活性也足以胜任 ...

June 29, 2021 · 3 min · jiezi

关于sass:sassscss-对比css的优势

1:@import的区别 二者的性能都是在css文件中 导入其余css款式文件 CSS: css中的@import是为了开发者能将css分解成更小的局部,它的引入会间接发动一个HTTP的申请。SCSS预编译: scss的@import则更加像咱们应用的import等模块化的货色,它是间接将代码蕴含进指标SCSS文件,而不会产生额定的http申请。 2:应用变量 // 申明$blue: #3190e8; $highlight-color: #F90;// 应用:$nav-color: #F90;nav { $width: 100px; width: $width; color: $nav-color;}// 编译后nav { width: 100px; color: #F90;}3: 混合器 如果你的整个网站中有几处小小的款式相似(例如统一的色彩和字体),那么应用变量来对立解决这种状况是十分不错的抉择。然而当你的款式变得越来越简单,你须要大段大段的重用款式的代码,独立的变量就没方法应酬这种状况了。你能够通过sass的混合器实现大段款式的重用。 混合器应用@mixin定义,这个标识符给 一大段款式赋予一个名字。这样你就能够援用这个名字 重用这些款式例子A: // mixin.scss文件@mixin cl { display: center; align-items: center; justify-content: center;}// 而后就能够在你的样式表用@include 来应用这个混合器。<style lang="scss" scoped>@import 'src/style/mixin'; .button{ @include cl; } //scss最终生成 .button{ display: center; align-items: center; justify-content: center;}</style>例子B: 给混合器传参数 // 字体大小,色彩@mixin sc($size, $color){ font-size: $size; color: $color;}@mixin wh($width, $height){ width: $width; height: $height;}.list{ @include sc(0.5rem, #999); @include wh(100px, 100px);} 例子C: 混合器默认参数 ...

June 25, 2021 · 1 min · jiezi

关于sass:vscode中-sass-生成-css

明天在看一个css3动画的视频,博主应用的款式是sass语言,本着好奇心,查看了下根本应用,尝试了下在vscode中将环境装好,嗯~还是很不便的 1、首先第一步,须要全局装置sass,有好几种形式,我这里应用的npm 本着不便的准则~ npm i sass -g2、查看一下装置后的版本 sass --version3、执行转换语句,留神我这里应用的是文件夹外面所有文件转换 将 sass 文件夹外面所有文件都转换到 css文件夹中 sass --watch sass --watch ./sass:./css4、将上述语句增加到 package.json中 附上转换后的截图 哈哈哈~每日学习一个小常识,1年后就是把握365个常识。加油!!!

June 18, 2021 · 1 min · jiezi

关于sass:vuecli-3中dartsass替换nodesass

如果你应用过 sass ,应该理解多年来 node-sass 始终是 JavaScript 社区里的支流抉择,它实际上只是 libsass 在 node 环境下的一个 wrapper, 编译 sass 文件的理论工作是 libsass 实现的。 在应用 node-sass 过程中遇到的很多问题实际上也是 libsass 引发的,libsass 是用 C/C++ 实现的,常见的问题是,在装置 node-sass 的过程中常常会呈现装置失败的状况,又或者切换了 Node.js 版本发现 node-sass 须要重新安装能力用,如果你在 docker 中装置 node-sass 还会遇到因为短少各种依赖导致 node-sass build 失败的状况,又或者在国内因为网络起因导致 node-sass 须要的二进制文件下载不下来而 build 失败。 当初,sass 官网曾经应用 dart-sass 作为 sass 的次要实现: Dart Sass is the primary implementation of Sass, which means it gets new features before any other implementation. It’s fast, easy to install, and it compiles to pure JavaScript which makes it easy to integrate into modern web development workflows.替换过程: ...

April 9, 2021 · 1 min · jiezi

关于vue.js:Vue报错-thisgetOptions-is-not-a-function

问题Vue版本为2.6.11, sass-loader版本为11.0.0时,报错: Syntax Error: TypeError: this.getOptions is not a function 起因该sass-loader版本过高,不实用与Vue2.6.11 解决方案装置10.1.1的sass-loader

March 26, 2021 · 1 min · jiezi

关于sass:createreactapp中使用sass

环境: react:^17.0.2create-react-app:4.0.3首先,装置sass yarn add -dev node-sass  ||yarn add --dev node-sass@npm:dart-sass@1.25.0  //* 留神,在create-react-app不能应用dart-sass,想应用的话须要让它认为是node-sass装置好当前就能够应用sass了,比方新建test.scss进行应用* 留神,这里新建的文件为.scss后缀,而不是.sass也能够应用module.css,新建.module.scss文件应用

March 24, 2021 · 1 min · jiezi

关于sass:在vue各个组件中应用全局scss变量

1.开发环境 vue+sass2.电脑系统 windows10专业版3.在应用vue+sass开发的过程中,咱们常常应用到sass,上面我来分享一下在应用sass的时候遇到的问题,心愿对你有所帮忙。4.首先装置 sass-loader npm install sass-loader --save --dev5.装置 sass-resources-loader npm install sass-resources-loader --save --dev6.应用 sass-resources-loader官网配置 如果你应用vue-cli 3+ 或 4+ ,你须要在工程文件根目录下新建vue.config.js文件,也就是在packge.json同级目录下。并增加以下代码。// vue.config.jsmodule.exports = {/******************上面是我本人的代码*************************次要是配置门路别名或其余的loader的,不必增加*******/ configureWebpack: { resolve: { alias: {//门路别名 'assets': '@/assets', 'common': '@/common', 'network': '@/network', 'components': '@/components', 'views': '@/views', } }, },/***********************上面是须要增加的***********************/ chainWebpack: config => { const oneOfsMap = config.module.rule('scss').oneOfs.store oneOfsMap.forEach(item => { item .use('sass-resources-loader') .loader('sass-resources-loader') .options({ // 全局变量文件门路,只有一个时可将数组省去 resources: ['./src/assets/chenGolbal/chenGolbalcss.scss'] }) .end() }) }}7.应用vue-cli官网配置: // vue.config.jsmodule.exports = { css: { loaderOptions: { // 给 sass-loader 传递选项 sass: { // @/ 是 src/ 的别名 // 所以这里假如你有 `src/assets/chenGolbal/chenGolbalcss.scss` 这个文件 // 留神:在 sass-loader v7 中,这个选项名是 "data" prependData: `@import "~@/assets/chenGolbal/chenGolbalcss.scss"` }, // 默认状况下 `sass` 选项会同时对 `sass` 和 `scss` 语法同时失效 // 因为 `scss` 语法在外部也是由 sass-loader 解决的 // 然而在配置 `data` 选项的时候 // `scss` 语法会要求语句结尾必须有分号,`sass` 则要求必须没有分号 // 在这种状况下,咱们能够应用 `scss` 选项,对 `scss` 语法进行独自配置 scss: { prependData: `@import "~@/assets/chenGolbal/chenGolbalcss.scss";` }, // 给 less-loader 传递 Less.js 相干选项 less:{ // http://lesscss.org/usage/#less-options-strict-units `Global Variables` // `primary` is global variables fields name globalVars: { primary: '#fff' } } } }}这种配置看上去更加清晰8.在chenGolbalcss.scss中增加代码: ...

January 13, 2021 · 1 min · jiezi

关于sass:关于数据抓取很多新人的误区

一.为什么我解析数据明明就是这个地位为什么拿不到博问:https://q.cnblogs.com/q/132792/ 谬误寻找内容办法:在Element中定位寻找到参数(很多页面能用然而会他并不是真正寻找数据的办法) 正确寻找内容办法:咱们应该在network页面response寻找咱们须要找的内容 起因Element中是最终渲染后的内容,不肯定是咱们get网页url拿到的数据,期间会有些js或者其余数据接口会扭转他原始的界面 简略代码import requestsfrom lxml.html import etreeurl = 'https://www.cosme.net/product/product_id/10189603/top'res =requests.get(url) #为什么不加申请头呢,人家没校验申请头就不必加了,不过多过程多线程爬取时候请务必和实在申请截然不同res_demo = etree.HTML(res.text)meta_content = res_demo.xpath("//*[@property='og:title']/@content")[0].split('|')[2]print(meta_content) 二.抓不到包状况一证书地位本地校验 解决办法adb命令将抓包工具证书从用户目录挪动至系统目录,解决反爬对于本地证书认证(点击跳转) 状况二对于抓包工具的监测 解决办法如果是页面:应用network界面抓取 如果是app:python爬虫用drony转发进行抓包转发(点击跳转),ProxyDroid+wifi设置抓xx点评抓不到的包(点击跳转) 状况三对于协定进行判断 解决办法VirtualXposed联合justTrustMe 模块傻瓜式破解app没法抓包问题(点击跳转) 状况四证书双向认证 解决办法找到app中证书所在的地位,或者查看他的校验规定 三.对于乱码 起因:人家是用二进制进行传输常见的是用谷歌传输协定进行传输,大公司可能会本人写一套算法进行加密解析 python谷歌序列化传输(点击跳转) 四.对于加密(现在比拟常见的加密)RSA加密咱们解析页面或者app反编译后找他公钥的时候找不到他公钥,这时候他加密可能就是通过模和指数进行加密的 AES加密对于ASE加密有填充和无填充的识别方法其实很简略加密通一条加密数据间断2次加密加密内容,key,iv不变的状况,最初输入参数不变就是无填充.变就是填充 加密模板间接拿取用就好了(python模板)(点击跳转) 五.对于app逆向

December 31, 2020 · 1 min · jiezi

关于sass:Solon-特性简集相较于-Springboot-有什么区别

Solon 是一个相似Springboot的微型开发框架,也是一个不基于Servlet的开发框架。我的项目从2018年启动以来,参考过大量前人作品;历时两年,3500屡次的commit;内核放弃0.1m的身材,超高的Web跑分,良好的应用体验。 Solon 强调:克服 + 简洁 + 凋谢的准则;力求:更小、更快、更自在的体验。 所谓更小:内核0.1m,最小Web开发单位0.2m(相比Springboot我的项目包,小到能够乎略不计了)。 具用户反映,某些我的项目切换到Solon后,能够缩减到原来10%的包大小。 所谓更快:本机helloworld测试,启动最快可达0.09s,Qps可达12万之多。可参考:《helloworld_wrk_test》。 所谓更自在:代码操控自在:// 除了注入模式之外,还能够按需手动////手动获取配置String userName = Solon.cfg().get("user.name");Properties dbcfg = Solon.cfg().getProp("db");//手动获取容器里的BeanUserService userService = Aop.get(UserService.class);//手动监听http post申请Solon.global().post("/user/update", x-> userService.updateById(x.paramMap())); 框架抉择自在:能够用solon-web这样的疾速开发集成包。也能够按我的项目须要抉择不同的插件组装,比方:为非Solon我的项目增加solon.boot.jlhttp,0.2m即可让我的项目实现http+rpc开发;还能够用MVC开发Socket利用。 个性简集:1、与Springboot的罕用注解比拟Solon 1.2.12 Springboot 2.3.3 阐明 @Inject * @Autowired 注入Bean(by type) @Inject("name") @Qualifier+@Autowired 注入Bean(by name) @Inject("${name}") @Value("${name}") 注入配置 @Component @Component 托管组件 @Singleton @Scope(“singleton”) 单例(Solon 默认是单例) @Singleton(false) @Scope(“prototype”) 非单例 @Init * @PostConstruct 结构实现并注入后的初始化 @Configuration @Configuration 配置类 @Bean @Bean 配置组件 @Mapping @RequestMapping,@GetMapping... 映射 @Param @RequestParam ...

December 28, 2020 · 1 min · jiezi

关于sass:TSPRTP协议直播推送库EasyPusher推RTSP流至EasyDarwin开源平台实现自定义Stre

基于EasyPusher sdk库工程(即library module)实现一个推送客户端非常简单便捷,因为sdk端曾经将各种烦人的状态保护谬误查看权限断定UI同步等性能都实现了,开发者仅仅只须要实现若干接口即可。 明天遇到一个客户须要用EasyPusher推RTSP流至EasyDarwin流媒体服务,而后须要用Kurento服务拉EasyDarwin散发的RTSP流做其它利用,然而默认EasyPusher的流在EasyDarwin是有.sdp后缀的,然而Kurento服务不反对,须要咱们技术进行帮助。 咱们先看下失常的成果,如下图,红色标注的为视频流的后缀名.sdp。 这个是由推流端决定的流名称,须要批改EasyPusher代码模块,StartPush函数中定义参数sPushName为流名称,函数定义如下: int CSourceManager::StartPush(char* ServerIp, int nPushPort, char* sPushName, int nPushBufSize, bool bPushRtmp) m_sPushInfo.pusherHandle = EasyPusher_Create(); strcpy(m_sPushInfo.pushServerAddr, ServerIp); m_sPushInfo.pushServerPort = nPushPort; strcpy(m_sPushInfo.sdpName, sPushName); Easy_U32 nRet = 0; if (NULL != m_sPushInfo.pusherHandle ) { EasyPusher_SetEventCallback(m_sPushInfo.pusherHandle, __EasyPusher_Callback, 0, NULL); nRet = EasyPusher_StartStream(m_sPushInfo.pusherHandle , ServerIp, nPushPort, sPushName, EASY_RTP_OVER_TCP, "", "", (EASY_MEDIA_INFO_T*)&m_mediainfo, nPushBufSize, 0);//512-2048 } else { nRet = -1; } m_bPushRtmp = bPushRtmp; if (bPushRtmp) { if (!m_pEasyrtmp) { m_pEasyrtmp=new EasyRtmp(); } char szURL[MAX_PATH]; memset(szURL, 0, sizeof(MAX_PATH)); sprintf(szURL, "rtmp://%s:1935/live/%s", ServerIp, sPushName); nRet = m_pEasyrtmp->Link(szURL,1280); } 其中sPushName 为传入的Stream名称,咱们强制定义sPushName=”2” ...

December 26, 2020 · 1 min · jiezi

关于sass:前端面试每日-31-第617天

明天的知识点 (2020.12.23) —— 第617天 (我也要出题)[html] 你是怎么检测网页是否遵循W3C规范的?[css] Sass的色调操作是什么?[js] 请解释下setTimeout的运行机制[软技能] 你认为高级前端工程师应该具备哪些技能?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!!欢送在 Issues 和敌人们一起探讨学习!我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨!心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]取 消

December 23, 2020 · 1 min · jiezi

关于sass:万张图片流畅体验记一次-Vue-列表渲染

简介: ### 背景 团队目前的Web端产品中须要显示两个列表视图:卡片列表和条目列表,并且在点击切换按钮的时候,对两个列表进行切换显示。 ![条目列表](https://ata2-img.oss-cn-zh 背景团队目前的Web端产品中须要显示两个列表视图:卡片列表和条目列表,并且在点击切换按钮的时候,对两个列表进行切换显示。 在开发实现进行简略性能测试时,发现列表数量达到数百条后,切换视图就会造成显著的页面卡顿,用户体验很差。于是着手进行性能优化。 第一次优化:解决已知问题因为我的项目是应用 Vue.js (以下简称 "Vue")来实现,所以首先查看 Vue 是否存在性能瓶颈,如果存在则思考替换 Vue 进行优化。 通过查看官网给出的benchmark后果,咱们能够得悉 Vue 的列表渲染性能在高亮和替换列表元素的时候新能较差,在创立列表和新增列表元素的时候性能都是不错的,执行工夫在毫秒级别。 既然 Vue 并没有给咱们制订太低的性能天花板,那么咱们能够在应用 Vue 的根底上持续进行性能优化。 再来看看代码,点击切换的时候到底产生了什么。 点击事件触发后会引起组件属性 cViewType 变动,而后两个视图的列表会依据 cViewType 的值进行渲染。局部代码如下: <section class="file-card-list" v-if="cViewType == 'card'"> ......</section><section class="file-line-list" v-if="cViewType == 'line'"> ......</section>这里通过 v-if 指令来实现列表切换,每次切换时都会销毁之前的视图列表,而后创立一个新的视图列表。在列表元素十分多时,会造成大量的 DOM 元素创立和销毁,性能开销是很低廉的。 所以进行优化的最简略形式就是缓存曾经渲染的列表。对应到代码也很简略,就是将 v-if 改为 v-show,这样就能够通过 CSS 来管制两个列表的显示/暗藏,从而防止 DOM 元素的反复创立。 改变之后成果的确也非常明显,事件仿佛到此结束,但如果列表数量减少到一两个数量级,比方达到一万,是否仍旧晦涩呢? 第二次优化:排查可能的问题当我将列表元素数量减少到一万之后,卡顿问题果然再次出现了。 而浏览器页面卡顿无外乎两个起因,要么脚本引擎在执行 js 代码,要么渲染引擎在渲染页面。 因为后面曾经对脚本引擎执行 js 代码的问题进行过优化,这一次咱们将优化方向转向渲染引擎。 渲染引擎程序须要借助 CPU 来执行渲染操作,而 CPU 自身并不擅长于解决批量图形渲染,所以能够把这部分的渲染工作交给 GPU。 ...

December 17, 2020 · 1 min · jiezi

关于sass:前端面试每日-31-第609天

明天的知识点 (2020.12.15) —— 第609天 (我也要出题)[html] 你有应用过H5的Web Audio API吗?说说它的用处[css] Sass中的at-root指令有什么作用?[js] 请问typeof typeof 168的后果是什么?[软技能] 给你一个指标网站,你是如何对它进行技术剖析的?都从哪方面剖析?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!!欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨!心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

December 15, 2020 · 1 min · jiezi

关于sass:前端面试每日-31-第605天

明天的知识点 (2020.12.11) —— 第605天 (我也要出题)[html] html中表格的width和height的值为什么没有单位?它的的默认单位是像素吗?[css] 你喜爱Sass还是Less?为什么?[js] 举例说明你对尾递归的了解,它有什么利用场景?[软技能] 你能手画出CSRF的攻打原理图吗?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!!欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨!心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

December 11, 2020 · 1 min · jiezi

关于sass:前端面试每日-31-第604天

明天的知识点 (2020.12.10) —— 第604天 (我也要出题)[html] 如何解决微信浏览器中video标签z-index过高遮挡页面问题?[css] 你最喜爱Sass的起因是什么?[js] 如果应用JSON.stringify进行深拷贝有什么弊病?如何解决?[软技能] 请形容下XSS是如何攻打的?《论语》,曾子曰:“吾日三省吾身”(我每天屡次检查本人)。前端面试每日3+1题,以面试题来驱动学习,每天提高一点!让致力成为一种习惯,让奋斗成为一种享受!置信 保持 的力量!!!欢送在 Issues 和敌人们一起探讨学习! 我的项目地址:前端面试每日3+1【举荐】欢送跟 jsliang 一起折腾前端,零碎整顿前端常识,目前正在折腾 LeetCode,打算买通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个Star, 同时欢送微信扫码关注 前端剑解 公众号,并退出 “前端学习每日3+1” 微信群互相交换(点击公众号的菜单:交换)。 学习不打烊,充电加油只为遇到更好的本人,365天无节假日,每天早上5点纯手工公布面试题(死磕本人,愉悦大家)。心愿大家在这虚夸的前端圈里,放弃沉着,保持每天花20分钟来学习与思考。在这变幻无穷,类库层出不穷的前端,倡议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢送大家到Issues交换,激励PR,感激Star,大家有啥好的倡议能够加我微信一起交换探讨!心愿大家每日去学习与思考,这才达到来这里的目标!!!(不要为了谁而来,要为本人而来!)交换探讨欢送大家前来探讨,如果感觉对你的学习有肯定的帮忙,欢送点个[Star]

December 10, 2020 · 1 min · jiezi

关于sass:微服务最佳实践MSE-微服务引擎

简介: 微服务引擎 MSE(Microservice Engine)是一个面向业界支流开源微服务框架 Spring Cloud 和 Dubbo 的一站式微服务平台。其由四个次要局部组成:微服务治理核心、微服务注册核心、微服务配置核心、微服务网关。 MSE 是什么 微服务引擎 MSE(Microservice Engine)是一个面向业界支流开源微服务框架 Spring Cloud 和 Dubbo 的一站式微服务平台。其由四个次要局部组成:微服务治理核心、微服务注册核心、微服务配置核心、微服务网关。先从一些关键词理解下各个组件的个性:• 微服务治理核心:无侵入加强支流开源微服务框架,丰盛的服务治理性能• 微服务注册核心/配置核心:全托管,高可用,丰盛欠缺的监控报警,丰盛的控制台运维操作,引擎类型丰盛• 微服务网关:全托管,反对支流开源微服务网关作为 MSE 产品族的组件,每个局部都是可插拔的,即可独自应用微服务治理核心,也可独自应用其余组件。当然,如果抉择应用全副的 MSE 组件,你将会取得微服务生态的最佳实际。 MSE 倒退历史MSE 在 2019 年 7 月正式上线,最早仅反对 Zookeeper 微服务注册核心,经验了数月的公测期,在 2020 年 1 月正式商业化,新增反对了两个注册核心类型 Nacos 和 Eureka。商业化之后,MSE 次要的产品演进方向蕴含了以下几个方面:• Region 开服。MSE 先后实现了国内 5 大 Region(杭州、上海、张家口、北京、深圳)以及国外三个 Region (弗吉尼亚、新加坡、俄罗斯)的开服,将来 MSE 将会做到寰球开服。• 产品状态拓宽。2020 年 6 月,MSE 引入微服务治理核心,该组件通过无侵入的形式,为 Spring Cloud 和 Dubbo 等支流微服务框架提供了能力加强,如服务鉴权、无损下线、标签路由、服务测试;2020 年 7 月反对了 Nacos 配置核心,用户只需申请 1.2.1 版本的 Nacos 即可同时取得注册核心和配置核心的能力;2020 年 8 月,MSE 引入微服务网关,提供全托管的 Zuul、Kong、Spring Cloud Gateway。• 产品能力演进。目前 MSE 还处于高速倒退期间,简直每个月份都有较大性能的上线,并对已有个性进行加强,如微服务治理核心现已反对 ECS、ACK 等产品模式的接入,反对 SpringCloud 和 Dubbo 微服务框架类型的治理;MSE Zookeeper 提供开源欠缺的管控能力,提供了可视化编辑能力,节点监控能力。提到微服务,人们最容易联想的词可能有这些:服务发现、服务治理、路由,而这些微服务的概念,凑巧与 MSE 的各个组成部分对应,上面我会对这些组件一一进行介绍。 ...

December 1, 2020 · 1 min · jiezi

关于sass:持续定义Saas模式云数据仓库实时分析

简介: 从实时剖析的价值、场景和数据流程,以及用户对平台能力要求开展,讲述云数据仓库MaxCompute的产品能力劣势 ,面对实时剖析场景的能力演进要求。进而以实时剖析典型场景的全数据流程解决、建模和剖析的最佳实际,解说MaxCopute+Hologres的解决方案,展示强强组合应的能力劣势。 一、云数据仓库概述 数据仓库的定义是面向主题、集成性、稳定性和时变性,用于反对管理决策。 数据仓库的意义在于对企业的所有数据进行归集,为企业各个部门提供对立的, 标准的数据进口。数据仓库(模型)实质是人收集和存储数据,意识数据,组织和治理数据,应用数据决策的最佳实际造成的方法论。 模型自身与在哪、用什么技术无关。 但逻辑模型和物理模型在最终计划中又是紧密结合的。用户须要的是数仓的业务能力和技术能力。 数据仓库的外围能力和价值包含:采集同步、加工、存储、建模、治理、查问。然而为了实现数据仓库的能力和价值必须要具备的根底包含: IDC机房、部署、开明、高可用、平安、日常运 维、扩容。这些形成了数仓总领有老本。从各个角度看,总成本=外围能力老本+根底老本 =产品成本+服务老本 =以后老本+长期老本+演进老本。MaxCompute是SaaS模式企业级云数据仓库。SaaS模式云数据仓库具备如下特点:• 开箱即用 • 大规模高性能 • 免运维、专家优化 • 灵便扩大 • 数据服务 • 丰盛欠缺的数仓能力 • 高可用,容灾备份 • 极致平安 • 低成本 • 能力疾速演进。可能为企业免去领有数据仓库的根底建设老本、保护老本、长期演进老本等非核心能力之外的投入。 SaaS模式云数据仓库可能的利用场景举例如下:• 实时数据入仓和剖析决策• 业务经营场景-交互式业务指标计算、查问• 各行业搭建数据仓库-流批一体、湖仓一体  云上弹性扩大大数据计算和存储。 SaaS模式云数据仓库的产品劣势包含:• 云原生极致弹性:云原生设计,无服务器架构,反对秒级弹性伸缩, 疾速实现大规模弹性负载需要• 简略易用多功能计算:预置多种计算模型和数据通道能力,开明即用• 企业级平台服务:反对凋谢生态,提供企业级平安治理能力。与阿里 云泛滥大数据服务无缝集成• 平安:多租户环境下安全控制能力强• 大规模集群性能强、全链路稳定性高,阿里巴巴双11场景验证。 SaaS模式云数据仓库举荐场景和产品组合例如:• 实时剖析场景-MaxCompute+MC-Hologres+Flink+DataWorks+Quick BI• 机器学习场景-MaxCompute+PAI+DataWorks。等。明天重点解说实时剖析场景。 云数据仓库蕴含的面向用户的性能和数据流程,如下图所示。开明MaxCompute云数仓即可领有如下全副性能和能力。 二、实时剖析场景与价值再提一遍大数据的5V能力 1 容量(Volume) 是指大规模的数据量,并且数据量呈持续增长趋势。目前个别指超过10T规模的数据量,但将来随着技术的提高,合乎大数据规范的数据集大小也会变动。2 速率(Velocity) 即数据生成、流动速率快。数据流动速率指指对数据采集、存储以及剖析具备价值信息的速度。因而也意味着数据的采集和剖析等过程必须迅速及时。3 多样性(Variety) 指是大数据包含多种不同格局和不同类型的数据。数据起源包含人与零碎交互时与机器主动生成,起源的多样性导致数据类型的多样性。依据数据是否具备肯定的模式、 构造和关系,数据可分为三种根本类型:结构化数据、非结构化数据、半结构化数据。4 真实性(Veracity) 指数据的品质和保真性。大数据环境下的数据最好具备较高的信噪比。5 价值(Value) 即低价值密度。随着数据量的增长,数据中有意义的信息却没有成相应比例增长。而价值同时与数据的真实性和数据处理工夫相干,见图。其中最要害的一点是:越靠近数据源,越早进行剖析和决策,越能施展数据价值。 ...

November 3, 2020 · 1 min · jiezi

关于sass:css预编语言

css预编语言1.开发环境 vue+sass2.电脑系统 windows10 专业版3.在应用vue开发的过程中,咱们常常会抉择一门css预编语言,为什么要应用css预编语言呢? 作为前端开发人员,大家都晓得,Js中能够自定义变量,而CSS仅仅是一个标记语言,不是编程语言,因而不能够自定义变量,不能够援用等等。       **CSS有具体以下几个毛病:*** **语法不够弱小,比方无奈嵌套书写,导致模块化开发中须要书写很多反复的选择器;*** **没有变量和正当的款式复用机制,使得逻辑上相干的属性值必须以字面量的模式反复输入,导致难以保护。**       这就导致了咱们在工作中无端减少了许多工作量。而应用CSS预处理器,**提供 CSS 缺失的款式层复用机制、缩小冗余代码,进步款式代码的可维护性。**大大提高了咱们的开发效率。       然而,CSS预处理器也不是万金油,CSS的益处在于简便、随时随地被应用和调试。预编译CSS步骤的退出,让咱们开发工作流中多了一个环节,调试也变得更麻烦了。更大的问题在于,预编译很容易造成后辈选择器的滥用。       所以咱们在理论我的项目中掂量预编译计划时,还是得想想,比起带来的额定保护开销,CSS预处理器有没有解决更大的麻烦。4.css预编语言有sass和less,有什么区别呢? **不同之处****1、Less环境较Sass简略**Cass的装置须要装置Ruby环境,Less基于JavaScript,是须要引入Less.js来解决代码输入css到浏览器,也能够在开发环节应用Less,而后编译成css文件,间接放在我的项目中,有less.app、SimpleLess、CodeKit.app这样的工具,也有在线编辑地址。**2、Less应用较Sass简略**LESS 并没有裁剪 CSS 原有的个性,而是在现有 CSS 语法的根底上,为 CSS 退出程序式语言的个性。只有你理解 CSS 根底就能够很容易上手。**3、从性能登程,Sass较Less略弱小一些**①sass有变量和作用域。- $variable,like php;- #{$variable}like ruby;- 变量有全局和部分之分,并且有优先级。②sass有函数的概念;- @function和@return以及函数参数(还有不定参)能够让你像js开发那样封装你想要的逻辑。-@mixin相似function但短少像function的编程逻辑,更多的是进步css代码段的复用性和模块化,这个用的人也是最多的。-ruby提供了十分丰盛的内置原生api。③过程管制:-条件:@if @else;-循环遍历:@for @each @while-继承:@extend-援用:@import④数据结构:-$list类型=数组;-$map类型=object;其余的也有string、number、function等类型**4、Less与Sass解决机制不一样**前者是通过客户端解决的,后者是通过服务端解决,相比拟之下前者解析会比后者慢一点**5、对于变量在Less和Sass中的惟一区别就是Less用@,Sass用$。** **相同之处**Less和Sass在语法上有些共性,比方上面这些:1、混入(Mixins)——class中的class;2、参数混入——能够传递参数的class,就像函数一样;3、嵌套规定——Class中嵌套class,从而缩小反复的代码;4、运算——CSS中用上数学;5、色彩性能——能够编辑色彩;6、名字空间(namespace)——分组款式,从而能够被调用;7、作用域——部分批改款式;8、JavaScript 赋值——在CSS中应用JavaScript表达式赋值。5.在开发的时候,我抉择的是sass,为什么抉择sass呢? 1、Sass在市面上有一些成熟的框架,比如说Compass,而且有很多框架也在应用Sass,比如说Foundation。2、就国外探讨的热度来说,Sass相对优于LESS。3、就学习教程来说,Sass的教程要优于LESS。在国内LESS集中的教程是LESS中武官网,而Sass的中文教程,缓缓在国内也较为广泛。4、Sass也是成熟的CSS预处理器之一,而且有一个稳固,弱小的团队在保护。5、同时还有Scss对sass语法进行了改进,Sass 3就变成了Scss(sassy css)。与原来的语法兼容,只是用{}取代了原来的缩进。6.本期的教程到了这里就完结啦,让咱们一起致力走向巅峰!

October 20, 2020 · 1 min · jiezi

关于sass:Sass的笔记汇总

装置我以Hbuilder为例,上来间接傻瓜式装置 而在Vue我的项目中装置后看这里,相似于目录里有没有你想学的这节 cnpm install sass sass-loader -S 我在Vue测试是否胜利,前面的再细讲

September 12, 2020 · 1 min · jiezi

关于sass:sass常用方法

一、什么是sassSass 是一款强化 CSS 的辅助工具,它在 CSS 语法的根底上减少了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级性能,提供了许多便当的写法,大大提高的开发效率。上面总结了SASS的次要用法,想要理解更多能够查阅文档 二、装置1、因为sass依赖于Ruby,因而须要先装置Ruby,而后执行gem install sass2、若在vue-cli或react-create-app中应用,在我的项目中装置依赖: npm install node-sass --save-devnpm install sass-loader --save-dev三、根底用法3.1 变量SASS容许应用变量,所有变量以$结尾 $color: #ccc;div { color: $color;}如果变量须要镶嵌在属性中之中,就必须须要写在#{}之中 $side: right;div { border-#{$side}-radius: 10px;}3.2 计算能力SASS容许在代码中应用算式 $var: 10px;div { width:(20px/2); top: 10px + 20px; left: $var * 2}3.3 嵌套能力个别咱们写多个选择器时,个别这样: div h2 { border:1px solid #ccc;}应用sass能够写成: div { h2 { border:1px solid #ccc; }}属性也能够嵌套,比方font-size属性,能够写成 div { font:{ size:18px; }}能够应用&援用父元素 ...

August 27, 2020 · 1 min · jiezi

关于sass:详解JNPFAPP办公系统快速开发方案

挪动办公是不能阻挡的将来办公趋势寰球当先的挪动解决方案供应商西特里克斯零碎公司拜访19个国家和地区共1900名信息技术行业高管,写成《西特里克斯将来工作场合》报告。 报告预计,到2020年大概每10名员工共用7张办公桌,每名员工均匀用6种挪动设施与公司网络相连。届时,29%的员工不必在传统办公室里工作,人们能够在家里或是我的项目现场办公,也能够借用酒店、机场、咖啡店等处的网络挪动办公。 报告说,简直所有拜访对象都认为,将来须要从新设计办公空间,让它变得更有吸引力。将来的办公室将能够激发员工创造力和想象力,激励员工随时随地挪动办公,从而促成合作精力,让工作成为人们做的事,而非去的地点。 JNPF的挪动办公零碎这种全新的办公模式,能够让办公人员解脱工夫和空间的解放。单位信息能够随时随地通顺地进行交互流动,工作将更加轻松无效,整体运作更加协调。利用手机的挪动信息化软件,建设手机与电脑互联互通的企业软件应用零碎,解脱工夫和场合局限。 JNPF的挪动办公(APP版)JNPF.APP基于国产开源的Uni-APP框架开发的,由HBuilder X 编辑器打造而成。 挪动协同高效办公信息实时传播 - 挪动利用的信息反对多终端即时通讯, 改善用户体验、解决智能生存时代信息专递问题; 自定义推送告诉 - 提供自定义告诉、反对多平台终端消 息推送,将信息以多种展示形式即时推送给指标用户; 多种流程策略可依据不同行业需要进行适配,如OA、 ERP零碎等工作流程的发动,审批,入库等多种流程配 置策略; 丰盛的组件反对多种接口JNPF提供丰盛的组件及原生能力,同时提供页面模块,最大水平简化工作量,提供多种接口,反对多种接入形式如Rest API等,不便业务联合本身需要灵便调用。表单、报表均可依据须要,随时调整。操作简略,扩大灵便,保护便捷。 除此之外还有轻便微信小程序,无需下载即可应用,通过简略的操作将本来PC端性能迁徙到手机端实现口袋式轻便办公!

August 19, 2020 · 1 min · jiezi

关于sass:Sass-css预处理器使用

Hbuilder中Sass配置{ "name": "sass", "id": "compile-node-sass", "version": "0.0.4", "displayName": "scss/sass编译", "description": "编译scss/sass为css。uni-app编译或对文件右键-外部命令编译时应用", "engines": { "HBuilderX": "^1.0.0" }, "external": { "type": "node", "programPath": "${pluginPath}", "executable": "/node_modules/.bin/node-sass", "programName": "node-sass-china", "commands": [ { "id": "SASS_COMPILE", "name": "编译scss/sass", "command": [ "${programPath}", "${file}", "../css/${fileBasename}.css" // 批改此处可扭转编译后的文件输入地位 ], "extensions": "scss,sass", "key": "", // 通过key,能够配置快捷键 "showInParentMenu": false, "onDidSaveExecution": true // 配置保留的时候是否触发执行; 默认为false; true: 代表执行,主动将scss文件转化为css文件 } ] }, "dependencies": { "node-sass-china": "^4.7.2" }, "extensionDependencies": [ "npm" ]}sass文件sass文件能够有两种后缀名 ...

August 9, 2020 · 1 min · jiezi

关于sass:Sass-css预处理器使用

Hbuilder中Sass配置{ "name": "sass", "id": "compile-node-sass", "version": "0.0.4", "displayName": "scss/sass编译", "description": "编译scss/sass为css。uni-app编译或对文件右键-外部命令编译时应用", "engines": { "HBuilderX": "^1.0.0" }, "external": { "type": "node", "programPath": "${pluginPath}", "executable": "/node_modules/.bin/node-sass", "programName": "node-sass-china", "commands": [ { "id": "SASS_COMPILE", "name": "编译scss/sass", "command": [ "${programPath}", "${file}", "../css/${fileBasename}.css" // 批改此处可扭转编译后的文件输入地位 ], "extensions": "scss,sass", "key": "", // 通过key,能够配置快捷键 "showInParentMenu": false, "onDidSaveExecution": true // 配置保留的时候是否触发执行; 默认为false; true: 代表执行,主动将scss文件转化为css文件 } ] }, "dependencies": { "node-sass-china": "^4.7.2" }, "extensionDependencies": [ "npm" ]}sass文件sass文件能够有两种后缀名 ...

August 9, 2020 · 1 min · jiezi

从零实现一个Sass预处理器

一、Sass预处理器简介Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目。 // index.scss sass源码$redColor: red;$yellowBg: yellow;nav { height: 100px; border: 1px solid $redColor;}#content { height: 300px; p { margin: 10px; .selected { backgournd: $yellowBg; } }}经过sass编译后,生成的代码结果如下: // sass编译后的输出的css代码nav { height: 100px; border: 1px solid red; }#content { height: 300px; } #content p { margin: 10px; } #content p .selected { backgournd: yellow; }接下来我们将实现一个简单的Sass预处理,其基本功能包括: ...

June 9, 2020 · 7 min · jiezi

一个基于-elementUi-的树形下拉框vue

wl-vue-selectProject setupnpm installCompiles and hot-reloads for developmentnpm run serveCompiles and minifies for productionnpm run buildRun your testsnpm run testLints and fixes filesnpm run lintCustomize configurationSee Configuration Reference. 简介本组件提供全选下拉框和树形下拉框功能。wlVueSelect这是一个基于 elementUi 的 el-select 组件的二次封装的下拉框,提供了全选功能和默认选中功能;wlTreeSelect这是一个基于 elementUi 的 el-tree 组件的二次封装的下拉框,提供了树形数据支持和默认选中功能;因这两个需求非常普遍,所以作为一个独立插件发布。el-select 在线访问快速上手npm i wl-vue-select --save 或 npm i wl-vue-select -S 使用 import wl from "wl-vue-select";`import "wl-vue-select/lib/wl-vue-select.css"Vue.use(wl); <wlVueSelect v-model="value" :props="props" :data="data" multiple default-select ></wlVueSelect> <p>----------分割线------------</p> <wlTreeSelect checkbox width="240" :data="treeData" :selected="selected" ></wlTreeSelect>文档序号参数说明类型可选值默认值1dataoptions 可选列表数据Array--2props配置项:显示名字的 label 字段和绑定值的 value 字段Object-{ label: "label", value: "value" }3showTotal当可选项大于多少个时显示全选选项Number-14defaultSelect是否启用默认选中,如果开启全部时选中全部,无全部时选中第一个。(开启此功能请不要给 v-model 赋初始值)Boolean-false5其他其他 el-select 提供的参数---6nodeKey使用树形下拉框时,必须使用 key 来解析数据String-id7selected使用树形下拉框时,绑定选中数据,未开启checkbox时不可使用Array类型String-Number-Array-Object--8checkbox使用树形下拉框时,是否开启多选Boolean-false9width使用树形下拉框时宽度,默认单位 pxString-Number-24010leaf树形下拉框时,是否只可选叶子节点Boolean-false11trigger树形下拉框时,触发方式Stringclick/focus/hover/manualclick版本记录0.3.3 修复树形下拉框开启多选时无限循环的问题,优化多选时根据leaf字段来确定是否只返回叶子节点0.3.2 优化树形下拉框横向超出不显示问题 ...

October 17, 2019 · 1 min · jiezi

用键盘8个键演奏一首蒲公英的约定送给996的自己或者一首月亮代表我的心给七夕的她

体验地址: https://wscats.github.io/pian...项目地址: https://github.com/Wscats/piano 用键盘8个键演奏一首蒲公英的约定送给996的自己或月亮代表我的心给七夕的她,非常简单~ 这个项目仅仅用了几个简单的前端技术实现,献给每一位挚爱音乐的代码家???? 如果你喜欢或者对你有帮助,给我点个赞支持下吧???? 技术点和目录结构项目中没有使用市面主流的框架(React,Vue 和 Angular )和热门的技术,而用的是Omi框架(JSX+WebComponents),还有 Omil 的单文件组件 SFCs 加载器,组件通讯基于Proxy特性,并结合了 VScode 的插件 Eno-Snippets基于AST和正则实时编译.eno或.omi 后缀组件减轻部分的 Webpack 的局部编译压力,当然其他同学们熟知的技术这里就不提及了。 src assetselement app-piano songs 钢琴简谱目录app-piano.eno 单文件组件app-piano.js 组件编译后的JS文件notes.js 键盘按键和音符的映射index.js 组件根容器,配置Proxy的通信方法public samples/piano 钢琴单音符素材app-piano.eno开发中你需要编写的单文件组件app-piano.js经过Eno-Snippets修改或者保存文件Hello.eno后经过插件转化的js文件如下图,左边的代码是我们编写的 .eno 后缀的单文件组件,右边是经过 Eno Snippets 生成的 .js 后缀文件。 Develop & Installation<!-- <img src="./public/demo.png"> -->开发,构建和运行。 # 获取远程仓库代码git clone https://github.com/Wscats/piano# 进入目录cd piano# 安装依赖npm install# 启动项目npm start# 在浏览器访问 http://localhost:3000使用 npm 包管理器安装。 npm install omi-piano运行或者发布属于自己的演奏版本。 # 进入目录cd omi-piano# 安装依赖npm install# 启动项目npm start# 发布自已的演奏版本npm run build简单乐理知识首先我们先补习点音乐基础,提前收集好最基本的钢琴单音素材,每个音符对应一份.mp3文件,用一个对象记录起来,类似下面这样,举个例子这里的A指的是CDEFGAB音名中A也就是Sol,这是最基本的乐理,有没有让你想起小时候上音乐课,画板上的五线谱。 ...

August 7, 2019 · 7 min · jiezi

css-预处理器-sassscsslessstylus

css 预处理工具,可以将其编译为 css基本介绍sass/scssSASS 2007年诞生,最早也是最成熟的CSS预处理器,拥有ruby社区的支持和compass这一最强大的css框架Sass的缩排语法,对于写惯css前端的web开发者来说很不直观,sass 不兼容 css 代码Sass3 就变成了Scss(sassy css) 与原来的语法兼容,只是用{}取代了原来的缩进sass 的运行 依赖于 ruby 环境(compass 将 sass 编译为 css)现在可用 node-sass 来编译 sass/scss 文件 node-sass 是一套在 node.js 用 LibSass 編 sass/scss 的工具原始的sass 是用 ruby 编写的,所以需要 ruby 环境,libSass 是原始sass引擎的一个 c/c++ 接口,使用它编译sass不依赖于ruby,可以使用其他语言使用libSassnode-sassruby-sass与libsass的区别安装node-sass时,会去GitHub 下载一个 .node的文件而这个文件托管在墙外的服务器上,所以失败了 node-sass安装失败解决方案以 .sass 或 .scss 为文件后缀名称(现在一般都是用 scss)lessless 2009年出现,受sass的影响较大,但又使用CSS的语法,让大部分开发者和设计师更容易上手,在ruby社区之外支持者远超过SASS,其缺点是比起SASS来,可编程功能不够,不过优点是简单和兼容CSS,反过来也影响了sass演变到了scss的时代,著名的Twitter Bootstrap就是采用LESS做底层语言的。less 可以使用 less.js 在浏览器运行时中解析 less 代码也可以在 node环境中 安装 less,提前编译 less 文件 `npm install -g less &lessc styles.less styles.css` (可以加参数控制编译后的css排版及压缩)以 .less 为文件后缀名称stylusStylus,2010年产生,来自Node.js社区,主要用来给Node项目进行CSS预处理支持,由 TJ 大神开发安装及编译 npm install stylus -g & stylus src/ (可以加参数控制编译后的css排版及压缩)以 .styl 为文件后缀使用现状现在一般都是配合webpack使用这几种预处理语言,需要先安装 编译器、对应 loader,然后再 module.rules 配置其具体规则基本语法less 基本语法属于 css 风格,而 sass,stylus 利用缩进,空格,换行来减少需要输入的 字符目前 scss, stylus 也可以支持 css 风格,用大括号 来书写 ...

July 9, 2019 · 2 min · jiezi

龙芯国产域名服务器发布-完全国产不远了

现在一说到服务器处理器,那必然是领先的intel和AMD处理器,基本上处理器还是intel的天下,重新分级的处理器分为铂金、金、银、铜四个等级,对应之前的E3、E7、E5的分类,等级不同价格不同,基本的金牌处理器都是一万美金起步,这个价格会让很多企业望城却步.这些年AMD一直被intel在服务器市场打压,基本没有什么还手之力,但是2019年开始AMD最新的Zen 3架构发布,分别是7nm工艺的Rome罗马、7nm+工艺的Milan米兰,之后会在2020年后则会有新一代HEDT平台,主流处理器代号Vermeer(维梅尔),APU平台代号Renoir雷诺瓦,这些新平台的新核心架构.这就看来大的服务器厂商都在服务器处理器上下功夫,因为他们知道真正赚钱的还是服务器处理器,一个IDC商采购项目的投资,基本上是当地民用市场几年的收益,所以都想强占这个桥头堡.我们中国的龙芯本世纪初开始的”狗剩”到现在的构架服务器处理器,经过了漫长的发展之路.目前新一代龙芯最强的型号为3A3000和3B3000,是四核64位处理器,主频1.35-1.5GHz,一二级缓存64K每个核独享,共享8MB三级缓存,TDP功耗只有30瓦,能够支持DDR3内存,并且支持服务器需要的ECC功能。虽然和国际上intel和AMD无法比较,但是所有构架都是我们自主研发,所有部件我们都能够独立制造.大家都知道,互联网的根域名服务器一直是发达国家掌握,2019年7月,国家工程研究中心联手龙芯发布了基于龙芯处理器的域名服务器,  结束了域名解析被国外“卡脖子”的历史,根域名服务器简单地说,没有他我们就完全上不去网,即使中国网络没事,没有根域名服务器也上不去,现在即使外国全面断网,我们国内还是能使用互联网.现在龙芯处理器能够达到四核64位,由于使用了精简指令集(RISC),所以龙芯的RISC+MIPS非常适合服务器上使用,这要是企业和个人完全使用龙芯服务器,我国每年最大的进口商品将消失,美国对我们信息战也基本结束.这一点还要观众老爷们深思,中华强则技术强.这里推荐国产的服务器管理工具平台,由于很多服务器都是linux系统,代码下操作肯定不便,所以针对linux服务器的特点,国人自己研发了云端化的服务器管理工具,可以实现只要浏览器就可以批量化管理自己的服务器,不管你的服务器在任何厂商和任何IP.这个平台就是旗鱼云梯,不光是linux管理平台,也是一键化建站,批量管理运维的工具,对于服务器的安全防护直接是底层支持,方便管控服务器里的网站实现SEO优化设置.

July 5, 2019 · 1 min · jiezi

看到一个免费送服务器的三丰云大家看看

看到有网站送服务器,我反手就去看了看,还真是,送永久的服务器,大家赶紧用下. 领取地址:https://www.sanfengyun.com/fr... 这里是功能介绍:

July 1, 2019 · 1 min · jiezi

ReactTypeScriptMobxAntDesignMobile进行移动端项目搭建

前言:本文基于React+TypeScript+Mobx+AntDesignMobile技术栈,使用Create-React-App脚手架进行一个移动端项目搭建,主要介绍项目搭建过程和相关配置,以及状态管理工具Mobx的使用,最后实现点击按钮数字+1和一个简单的TodoList小功能,希望能对大家有所帮助。GitHub代码地址 项目搭建具体步骤:安装Create-React-App脚手架工具,已经安装的同学请忽略npm install create-react-app -g 创建初始项目 create-react-app my-app --typescript注意: 如果同学你是参考typescript官方文档进行react项目搭建,里面有用create-react-app my-app --scripts-version=react-scripts-ts命令创建的,千万别用,现在已经过时了, webpack版本有问题,后续配置各种想不到的坑 TypeScript中文官网 引入AntDesignMobile,实现组件按需加载 本步骤官网有比较详细的介绍,我就不一一列举配置过程了,建议大家不要eject暴露所有内建配置,后续版本升级维护可能比较麻烦,推荐使用 react-app-rewired 插件即可配置;AntDesignMobile官网安装React路由,状态管理工具mobx,配置sass npm install history @types/history react-router-dom @types/react-router-dom // 安装react路由 npm install mobx-react mobx // 安装mobx npm install node-sass // 安装sass工具,安装之后无需另外配置sass,脚手架工具已经集成了 基本配置完成,运行项目 npm run startReact状态管理工具Mobx介绍:Mobx是一个功能强大,基于面向对象编程方式的一个状态管理工具,上手相对比较容易。就连Redux的作者也曾经向大家推荐过它,对TypeScript支持比较友好,参考官网一张流程图:Mobx中文官网 下面介绍几个Mobx核心概念Observable state(可观察的状态)MobX 为现有的数据结构(如对象,数组和类实例)添加了可观察的功能。 通过使用 @observable 装饰器(ES.Next)来给你的类属性添加注解就可以简单地完成这一切。import { observable } from "mobx";class Todo { id = Math.random(); @observable title = ""; @observable finished = false;}Computed values(计算值)使用 MobX, 你可以定义在相关数据发生变化时自动更新的值。 通过@computed 装饰器或者利用 (extend)Observable 时调用 的getter / setter 函数来进行使用,下面代码中当queue或者refresh发生变化时,MobX会监听数据变化确保,通过Computed触发fooProps方法自动更新。import React from 'react';import {observable, isArrayLike, computed, action, autorun, when, reaction,runInAction} from "mobx";import {observer} from 'mobx-react';// 定义数据Storeclass Store { @observable queue:number = 1; @action refresh = ():void => { this.queue += 1; console.log('this.queue -> ', this.queue); } @computed get fooProps():any { return { queue: this.queue, refresh: this.refresh }; } }Actions(动作)任何应用都有动作。动作是任何用来修改状态的东西,mobx推荐将修改被观测变量的行为放在action中。action只能影响正在运行的函数,而无法影响当前函数调用的异步操作,参考官方文档用法:action(fn)action(name, fn)@action classMethod() {}@action(name) classMethod () {}@action boundClassMethod = (args) => { body }@action(name) boundClassMethod = (args) => { body }@action.bound classMethod() {}action 装饰器/函数遵循 javascript 中标准的绑定规则。 但是,action.bound 可以用来自动地将动作绑定到目标对象。 注意,与 action 不同的是,(@)action.bound 不需要一个name参数,名称将始终基于动作绑定的属性。class Ticker { @observable tick = 0 @action.bound increment() { this.tick++ // 'this' 永远都是正确的 }}const ticker = new Ticker()setInterval(ticker.increment, 1000)利用Mobx作为状态管理,实现两个小功能点击按钮+1import React from 'react';import {observable, isArrayLike, computed, action, autorun, when, reaction,runInAction} from "mobx";import {observer} from 'mobx-react';import {Button} from 'antd-mobile';import './index.scss';// 定义数据Store,用Mobx作为状态管理工具class Store { @observable queue:number = 1; @action refresh = ():void => { this.queue += 1; console.log('this.queue -> ', this.queue); } @computed get fooProps():any { return { queue: this.queue, refresh: this.refresh }; } }// ts组件接收父组件传递过来的数据必须定义接口类型,否则报错interface BarProps{ queue :number}// @observer修饰类,Bar组件接受Foo组建传过来的queue属性@observer class Bar extends React.Component<BarProps>{ render() { const {queue} = this.props return ( <div className="queue">{queue}</div> ) }}interface FooProps { queue: number, refresh():void}// Foo组件接收来自Add组件的store数据@observerclass Foo extends React.Component<FooProps>{ render() { const {queue,refresh} = this.props; return ( <div> <Button type="primary" onClick = {refresh}>Refresh</Button> <Bar queue = {queue} /> </div> ) }}// 初始化store数据,传递给Foo组件const store = new Store();class Add extends React.Component{ render() { return ( <div> <h2 className="add"> hello react-ts-mobx</h2> <Foo queue = {store.queue} refresh = {store.refresh} /> </div> ) }}export default observer(Add)TodoList功能import React from 'react';import {observable, isArrayLike, computed, action, autorun, when, reaction,runInAction} from "mobx";import {observer} from 'mobx-react';import './index.scss';// 定义Todo数据类型class Todo { id:number = new Date().getTime(); title:string = ''; finished:boolean = false; constructor(title:string) { this.title = title; }}// Store数据方法管理class Store { @observable title:string = ''; @observable todos:Todo[] =[]; // 添加Todo的Title @action createTitle (e:any) { console.log('e',e.target.value); this.title = e.target.value; } // 增加Todo数据 @action createTodo = () => { this.todos.unshift(new Todo(this.title)); this.title = ''; } // 删除Todo @action delTodo (id:number) { this.todos.forEach((item,index) => { if (item.id === id) { this.todos.splice(index,1) } }) } // 监听todos数据变化,显示剩余待办数量 @computed get unfinished () { return this.todos.filter(todo => !todo.finished).length; }}interface TodoItemProps { todo:any; store:any;}// 每一条Todo数据组件@observer class TodoItem extends React.Component<TodoItemProps> { render() { const {todo,store} = this.props return ( <div className="item"> <span>{todo.title}</span> <span onClick={()=> store.delTodo(todo.id)}>X</span> </div> ) }}const store = new Store();@observer class TodoList extends React.Component { render() { return ( <div> <h2>TodoList</h2> <header> <input type="text" placeholder="please input" value={store.title} onChange = {e => store.createTitle(e)} /> <button onClick ={store.createTodo}>add</button> </header> <ul> {store.todos.map((todo)=>{ return <li key={todo.id}> <TodoItem todo={todo} store = {store}/> </li> })} </ul> <footer> {store.unfinished} item(s) unfinished </footer> </div> ) }}export default TodoList总结:本人刚接触TypeScript和Mobx不久,总结学习方法:应该先熟悉一些基本概念后,慢慢的做一些小功能,遇到问题认真思考后再查资料或者请教别人,反复看文档,加强对知识的理解;欢迎大佬们留言交流;GitHub代码地址 ...

July 1, 2019 · 3 min · jiezi

宝塔面板和旗鱼云梯linux面板差距

在建站上很多网站人员和站长都经历过复杂的配置过程,对于老站长来说使用好的工具来操作比较便捷.网站搭建我这里建议使用linux centos7.6以上系统 ,比windows系统好在于不浪费系统资源,因为不加载桌面环境. 不消耗资源的linux系统在使用linux服务器时,一般都会选择安装一个linux运维工具,传统的就是安装一个宝塔面板,安装web环境,LNMP和LAMP,但对于运维服务器,可不是一个单机面板所能够全部解决的.Linux建站靠工具  大家都清楚所有免费的linux面板,除了帮你布一个环境,安全都是裸奔状态。这些你很清楚,免费的东西毕竟不能要求,但你一旦服务器出现问题,被挂黑链接被植入木马,你就在想是不是买个安全类产品,这时候免费的面板不得不升级为专业面板,收费也不多普通的一千多元.一个站长的心声      我近期维护的一个网站,由于只是安装的免费面板和基本收费防护工具,遭遇网站被挂黑链,linux面板崩溃没办法情况下重新安装系统.推荐的旗鱼云梯    我对于新系统不想再使用传统的单机版面板,寻找到一款云端化服务器管理平台,旗鱼云梯采用SAAS化模式,所有页面都在云端,不浪费服务器任何资源,管理探针在不使用后也可以关闭,使用时开启,这点我觉得可是新技术. 对于旗鱼云梯平台我使用后,觉得应该改网站管理者和站长们提示下,做了一个对比文章. 下面给大家列出来,我最后的选择:旗鱼云梯平台的基本几个理由,和传统单机免安装使用的优势: 我比较客观说几点,具体很多功能自有自己使用. 1.安装代码安装服务器探针     宝塔单机linux面板都需要自己复制一串命令,使用第三方工具或VNC安装,复制安装的代码其实就是服务器探针,如果这一点你如果习惯了或感觉都是这样呀,那你就错了。平台导入式     因为linux面板安装已经进步到批量化导入方式了,不用复制什么代码用工具打代码安装.旗鱼云梯这个平台采用直接把服务器添加进控制台,就可以安装探针,无需打代码不使用第三方任何工具. 2.页面 宝塔面板都是把所有页面安装到服务器里,让自己的服务器来运行这些页面,相当于给自己的网站多搭建了一个网站,记住这个网站是没有证书,不舍防护的,这无形间给自己的服务器安全带来隐患。所有密码都记录在服务器里      宝塔都会记录自己服务器的密码,保存到服务器中,我们在查看数据库等列表时,能够查看到密码是因为宝塔他们把密码保存到服务器,这一点很不安全。密码不储存在服务器只能改       旗鱼云梯平台采用页面后台探针分离化,页面都在旗鱼云梯官网,使用都是通过平台连接后端加密探针,这样不保存服务器任何密码,只是通过探针把服务器信息提取到页面中,不浪费服务器任何资源同时安全保证了。  3、安全   安全工具全要钱宝塔面板安全工具,哪怕一个小功能也是狮子大开口,一年一个功能起码上千块.免费的安全防护功能  旗鱼云梯提供免费的安全模式,有大量的安全防护工具,帮助站长防护好服务器安全。 4、易用性只能够实现单机管理       宝塔都是单机管理形式,没有批量运维的能力,我购买服务器都是起码几台,这时候我需要同时兼顾几台服务器的管理运维,一个个复制粘贴他们的登陆地址吗?批量化服务器管理旗鱼云梯能够实现平台化服务器管理,可以批量添加、批量运维管理,这点宝塔WDCP要落后很多,登录平台就可以批量管理。 5、手机运维宝塔手机端收费的对于手机插件服务器信息和管理操作,宝塔采用收费小程序方式,你使用个手机端都要收费,我仿佛看到当年手机话费收费模式.免费的手机端使用旗鱼云梯可以手机直接登录后管理服务器,这点可比其他品牌还处于必须PC管理这个好的不是一点。 6.更符合SEOSEO工具一箩筐相对于SEO方面,宝塔并没有适配,这里不再多说.  旗鱼云梯专门针对网站SEO做了很多设置,帮助站长在底层实现网站优化,404/301/robots/sitmap等等,一键SSL实现https,我相信大家都觉得有,但是自动续费,设置完不管的证书形式,还是免费的现在有几家? 对比总结:这里虽然做了对比,但是我要说的是其实宝塔和旗鱼云梯,是两个不同的产品,他们是两个不同方向的运维工具,一个追求云端化批量化,一个在乎单机管理模式,那个是未来,我相信用户追能够说清楚.

June 28, 2019 · 1 min · jiezi

使用storybook搭建私有组件库

(一)私有组件库搭建汇总既有项目中的通用组件项目地址 为什么搭建私有组件库可复用 跨项目可以使用同一套私有组件库方便维护 如需组件调整 只需要修改组件库 不需要跨项目重复修改添加新组件原则组件应先存在于具体项目中,经过重复验证后再抽象、沉淀到本组件库中不涉及国际化、ajax 请求等业务逻辑项目构建1.新建 package.jsoncd XXX[项目名]npm init2.Storybook for Vue参考文档Storybook for Vue 可以选择自动搭建 storybook 项目也可以使用手动搭建 自动搭建npx -p @storybook/cli sb init --type vue手动搭建安装依赖# 安装storybooknpm install @storybook/vue --save-dev# 安装vue 以及需要的loadernpm install vue --savenpm install vue-loader vue-template-compiler @babel/core babel-loader babel-preset-vue --save-dev在 package.json 添加启动项{ "scripts": { "storybook": "start-storybook" }}创建 storybook 的配置文件import { configure } from '@storybook/vue'function loadStories() { require('../stories/index.js') // You can require as many stories as you need.}configure(loadStories, module)创建测试文件 ./stories/elButton.stories.js// 引入了 element-ui 可以针对 el-button 组件测试项目是否正常import Vue from 'vue'import { storiesOf } from '@storybook/vue'storiesOf('elButton', module) .add('with text', () => '<el-button>with text</el-button>') .add('with emoji', () => '<el-button>???? ???? ???? ????</el-button>') .add('as a component', () => ({ template: '<el-button :disabled="true">rounded</el-button>' }))运行查看效果npm run storybook提取私有组件创建测试文件 ./stories/changeTime.vue<template> <el-dialog :title="title" :visible.sync="show" width="400px" class="change-time-dialog" :close-on-click-modal="false" :before-close="handleClose" > <el-form :model="form" ref="form" style="margin-bottom:30px"> <el-form-item style="margin-bottom:0px !important"> <el-date-picker type="date" size="medium" value-format="yyyy-MM-dd" :placeholder="`请选择${title}`" v-model="form.time" style="width:94%" ></el-date-picker> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <el-button size="small" @click="handleClose">取消</el-button> <el-button size="small" type="primary" @click="handleConfirm('form')" :disabled="disable" >确定</el-button > </div> </el-dialog></template><script>export default { data() { return { show: false, form: { time: '' }, disable: false } }, props: { visible: { type: Boolean, default: false }, time: { type: String, default: '' }, typeTime: { type: String, default: 'start' }, title: { type: String, default: '' }, referTime: { // 参考时间 type: [Date, String], default: '' } }, mounted() { this.show = this.visible this.form.time = this.time }, methods: { handleClose() { this.$refs.form.resetFields() this.show = false this.$emit('update:visible', false) this.$emit('update:time', '') }, handleConfirm() { if (this.typeTime === 'start') { if ( new Date(this.form.time).getTime() > new Date(this.referTime).getTime() ) { this.$message.warning('起租时间必须小于等于退租时间') return } } if (this.typeTime === 'end') { if ( new Date(this.form.time).getTime() < new Date(this.referTime).getTime() ) { this.$message.warning('退租时间必须大于等于起租时间') return } } this.$emit('changeTime', this.typeTime, this.form.time, this.clearData) }, clearData() { this.show = false this.disable = false this.$emit('update:visible', false) } }}</script><style lang="scss" scoped>div.el-form-item__error { top: 80% !important;}.change-time-dialog /deep/ .el-dialog__body { padding-bottom: 0px !important;}</style>创建测试文件 ./stories/changeTime.stories.jsimport Vue from 'vue'import { storiesOf } from '@storybook/vue'import changeTime from './changeTime'storiesOf('changeTime', module).add('修改时间', () => ({ components: { changeTime }, template: `<div> <h4>选择时间:{{ curTime }}</h4> <el-button @click="handleChangeTime">选择起租时间</el-button> <change-time :title="changeTimeTitle" :time.sync="curTime" v-if="changeTimeVisiable" :typeTime="changeTimeType" :referTime="referTime" ref="changeTime" :visible.sync="changeTimeVisiable" @changeTime="changeTime" /> </div>`, data() { return { changeTimeTitle: '起租时间', curTime: '2019-06-25', changeTimeType: 'start', changeTimeVisiable: false, referTime: '' } }, methods: { changeTime(type, time, fn) { this.curTime = time fn() }, handleChangeTime() { this.changeTimeVisiable = true } }}))scss 报错,es6 语法报错解决 css 问题// 安装相关loadernpm i -D node-sass less-loader css-loader style-loader配置 webpack.config.js ...

June 28, 2019 · 3 min · jiezi

你的服务器因网络攻击花过钱吗

看到这个标题的时候,如果你是网站站长肯定有所感悟,如果你即将做一个网站,那么我就说一下现在大环境下网站、服务器、网络安全之间的关系。现在各大IDC服务商阿里云、百度云、腾讯云等这些大型云服务器服务器商,每天遭受的攻击是亿级别的供给量,每个厂商都会利用自己的安全产品拦截一部分,万军冲杀总有漏网之鱼,这些漏网的攻击,就是对你网站有严重威胁的一种存在。国家安全统计表明,来5年,网络攻击可能给网络带来高达2万亿美元的损失。这就说明你可能是下一个遭受攻击的,我身边很多站长都经历过,网站被黑、挂马、恶意跳转,这些还都是小儿科,数据丢失是最可怕的。这些一次次的防护和维护,很多人精疲力尽,不知道用什么方式杜绝或则防护,现在网络攻击方式要产生大的变革,因为5G部署,带宽加大,将会是新一轮大攻击潮来临。 需要强调的是,在不断变化的网络攻击中,我们发现网络攻击的趋势,由于这些变化方式,维护企业或个人网站攻击需要投入成本,传统的方式不够彻底和坚定。对于成本提升任何人也不喜欢,最有效的方式的在底层防守住。如果是linux系统,在建站管理前建议使用旗鱼云梯这款产品。可以实现批量化管理自己的服务器,安全防护有免费的本地防火墙、IP黑名单、WAF防火墙等安全工具,帮助用户用最简单的方式管理自己的服务器和网站安全。总结:不管互联网安全如何紧迫,最先考虑工具是否合适,只有使用最新进的工具平台,采用云端化,才能够实现工具防护共享化,旗鱼云梯平台是这个最先进的。

June 26, 2019 · 1 min · jiezi

CSSSassScss

1、描述CSS 指层叠样式表 (Cascading Style Sheets)Sass (Syntactically Awesome StyleSheets), Sass 是一款强化 CSS 的辅助工具,是对 CSS 的扩展,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、继承(extend)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目。SCSS (Sassy CSS),SCSS 是 Sass 3 引入新的语法,其语法完全兼容 CSS3,并且继承了 Sass 的强大功能。也就是说,任何标准的 CSS3 样式表都是具有相同语义的有效的 SCSS 文件。SCSS 需要使用分号和花括号而不是换行和缩进。SCSS 对空白符号不敏感,其实就和css3语法一样。2、css主要知识点: 1、CSS的书写方式 行内式:将CSS代码书写在HTML标签的style属性中。style是一个通用属性,每一个标签里面都拥有这个属性,规则: <标签名 style=”属性:值;属性:值;”></标签名> 嵌入式:将CSS代码嵌入到HTML文件中,嵌入式是通过HTML中的<style>标签将CSS代码嵌入到HTML网页中,规则: <style type=”text/css”> /*书写CSS代码*/ 选择器{属性:值;属性:值;} </style> 外链式:写以.css扩展名的文件,然后在<head></head>标签中使用<link />标签,将css文件链接到html文件中,规则: <标签名 style=”属性:值;属性:值;”></标签名>2、选择器 元素选择器、id选择器、类选择器、 属性选择器(如为带有 title 属性的所有元素设置样式 [title] {somestyles} )、 属性和值选择器(如为带有 title="W3School" 的所有元素设置样式 [title=W3School] {somestyles} )、 派生选择器(通过依据元素在其位置的上下文关系来定义样式),有三种 后代选择器: 空格隔开; 子元素选择器: >隔开,只能选择作为某元素子元素的元素; 相邻兄弟选择器:选择紧接在一元素后的元素,且二者有相同父元素, 如设置紧接 h1 后出现的 p 的字体颜色:h1 + p {color: red;}; 注1:.a,.b该逗号表示存在其中一个类的元素就设置,多元选择; 注1:.a.b没有空格表示同时拥有两个类的元素。 3、盒子模型 所有HTML元素可以看作盒子,CSS盒模型本质上是一个盒子,封装周围的HTML元素, 它包括:margin(外边距)、border(边框)、padding(内边距)、content(内容) 盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。4、定位 Position属性:规定元素的定位类型。即元素脱离文档流的布局,在页面的任意位置显示 absolute: 绝对定位;脱离文档流的布局,遗留下来的空间由后面的元素填充。 定位的起始位置为最近的父元素(postion不为static),否则为Body文档本身。 relative :相对定位;不脱离文档流的布局,只改变自身的位置,在文档流原先的位置遗留空白区域。 定位的起始位置为此元素原先在文档流的位置。 fixed :固定定位;类似于absolute,但不随着滚动条的移动而改变位置。 static :默认值;默认布局. 辅助属性:position属性只是使元素脱离文档流,要想此元素能按照希望的位置显示, 需要使用下面的属性(position:static不支持这些): ①left : 表示向元素的左边插入多少像素,使元素向右移动多少像素。 ②right :表示向元素的右边插入多少像素,使元素向左移动多少像素。 ③top :表示向元素的上方插入多少像素,使元素向下移动多少像素。 ④bottom :表示向元素的下方插入多少像素,使元素向上移动多少像素。 注:上面属性的值可以为负,单位:px 。 5、布局(省略)3、sass4、scss

June 25, 2019 · 1 min · jiezi

Linux云端面板旗鱼云梯的优势

很多运维服务器的站长和运维工程师,在管理自己网站的时候遇到很多问题,首先是服务器批量化的管理,做SEO的站长都知道独立IP的好处,所以最好一个网站一个独立IP,这样利于优化,百度搜索引擎也认可一个网站一个IP.我在管理自己网站的时候,最大的问题就是我的SEO配置设置了没有,那些CMS做的优化有没有生效,设置会不会干扰我排名,这些隐患和担忧,都在网站运作中存在.一直到我使用了旗鱼云梯平台,我的这几台服务器建设的网站才找到了最简单最有效的运维方式,服务器管理简单便捷,安全方面防护得当,建站基本是一键化,seo运用简单实用.这些优点让我觉得,我该和迷茫中的站长说几点,首先服务器选择上最好用linux centos7.6以上系统,然后使用旗鱼云梯平台,不用再用第三方工具,直接登录网站就可以管理自己的服务器,而且是批量化云端化,不需要再一台台登陆配置设置安装,只需要登陆旗鱼云梯平台,其他都通过云端浏览器就解决了.对于SEO的优化和帮助,旗鱼云梯是我看到最先进的,国内其他linux面板都是单机化,管理需要一台台登陆,不方便最关键就是这些面板类似一个网站形式,耗用我服务器的资源,我在管理自己网站时,还要防护这个网站安全上别出问题,一旦被入侵就是被黑中毒,然而云端化的旗鱼云梯没有这样的后果,所有连接都是加密探针,页面和服务都在云端不在自己的服务器里.我说的不是很直观,但这是一个站长真的感觉,抛弃传统的单机版linux面板,使用云端化linux面板旗鱼云梯,只有这样你的服务器才会安全和简单,最重要建设的网站符合SEO优化.

June 24, 2019 · 1 min · jiezi

常见的CSS预处理器之Sass初体验

SassSass(英文全称:Syntactically Awesome Stylesheets)是一个最初由Hampton Catlin设计并由Natalie Weizenbaum开发的层叠样式表语言。 Sass是一个将脚本解析成CSS的脚本语言,即SassScript,它包括两套语法。最开始的语法叫“缩进语法”,使用缩进来区分代码块并且用回车将不同规则隔开;而较新的语法叫做“SCSS”,使用CSS一样的语法块也就是大括号将不同规则分开,用分号将具体样式分开。通常情况下这两套语法是通过.sass 和 .scss 两个文件扩展名来区分的。 对于Sass的基本使用,我们需要从嵌套、变量、函数、继承和高阶属性这几方面来一一了解。 1 环境的布置安装Ruby环境,在官网http://rubyinstaller.org 上找到最新的安装包,然后按照指示一步一步的操作,安装的过程可能会比较慢。有两点需要注意的是:1 勾选UTF-8的选项,如果忘记了的话也可以在安装完之后来更改Sass的默认编码,方法如下: 到Ruby22\lib\ruby\gems\x.x.x\gems\sass-x.x.xx\lib\sass目录下Encoding.default_external = Encoding.find('utf-8')2 在安装快要完成时,需要把图片中的选项去掉不勾选,如果这一步忘了我们可以直接把安装的过程关闭。 安装Sass安装完之后,我们需要更改Ruby源,更改成淘宝源: gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/查看源 gem sources -l安装Sass gem install sass查看版本 sass -v2 Sass 和 SCSSSCSS是sass的一个升级版本,前者完全兼容后者Sass是靠缩进表示嵌套关系,SCSS是花括号具体语法上面的差异 SCSS语法: $width: 100%;$height: 100px;$color: red;.container{ width: $width; height: $height; background-color: $color; margin-bottom: 5px;}.container2{ width: $width; height: $height; background-color: $color; margin-bottom: 5px;}.container3{ width: $width; height: $height; background-color: $color; margin-bottom: 5px;}Sass 语法: !primary-color= hotpink=border-radius(!radius) -webkit-border-radius= !radius -moz-border-radius= !radius border-radius= !radius.my-element color= !primary-color width= 100% overflow= hidden.my-other-element +border-radius(5px)3 编译 .scss 文件sass main.scss main.cssSass 编译语法和 Less编译语法有一定的相似性;不同的是Sass实际上是支持编译风格的以及文件侦听。 ...

June 18, 2019 · 2 min · jiezi

人家上班996苦不堪言-我上班喜笑颜开

现在随着社会节奏加快,生活成本的提高,加上社会竞争的激烈,现今,随便加班已经成为了常态。前段时间,“996工作制”话题更是几度登上互联网热搜,引发网友大篇幅争论。有的人认为,当代人的幸福指数相当低,白天要996的公司上班,可以说是煎熬,但我觉得,对自己的工作不喜欢不认真不爱好,那这份工作就是煎熬.如果工作的很轻松,让自己在工作中活得,满意感成就感,那么上班也是种休假.对于很多企业或个人站长来说,运维自己的服务器管理自己的网站,确实时间头疼的事,服务器环境搭建如果手动安装,需要方式运用很多工具耗费大量时间.建设网站也是手忙脚乱,很多外行小白觉得一定很难,宁愿去淘宝花钱,也不愿意看一下学一下。建设一个网站其实很简单,有些人觉得是不是要懂服务器,懂建站懂做网站等,其实是你想多了,如果平台工具运用恰当,建设一个站点只需要5分钟,只操作一个平台工具,就完美解决.这里要介绍的是旗鱼云梯这个平台,她可以从服务器管理、服务器环境搭建、建站一条龙,帮助企业和小白站长能够实现云端批量化建站需求,只需要一键就可以完成全部操作,让很小白的入门者也能够实现5分钟建站。旗鱼云梯平台云端化操作,只需要你有浏览器就可以使用,不用下载第三方工具,不要使用含有木马病毒的下载软件,只需要浏览器,注册安装一步到位完成。总结:为何不让复杂的事情简单化,为何还用老传统老方式,试试新平台解决问题,云端化是未来的趋势。对于工作,有人说,是乏味的,是枯燥的,所以我们一定给自己的生活简单化。旗鱼云梯平台建站运维,无论是能力还是性价比方面都竞争力满满的,如果你也想给企业或自己建站简单化,就行动起来,先在旗鱼云梯平台注册账号开始吧。

June 17, 2019 · 1 min · jiezi

华为鸿蒙基于旗鱼OS开发-我还认识一个旗鱼云梯

据了解近期关于华为鸿蒙操作系统的消息越来越多,而且细节也越来越丰富。不过外媒的一则消息却表示华为鸿蒙操作系统并不是从零开始的。俄罗斯一家媒体表示,华为鸿蒙操作系统是基于旗鱼 OS进行开发的,之所以能够兼容安卓,也正是这个原因。 旗鱼 OS是诺基亚放弃MeeGo的继承者,基于MeeGo开发出旗鱼 OS。在华为正式公布鸿蒙操作系统的细节之前,还无法确定鸿蒙操作系统是完全自研还是基于已有成果之上。不过从前段时间的信息来看,鸿蒙完全自研的可能性是比较大的。另一个我知道的旗鱼云梯是建站平台,可以再linux系统上一键建站,帮助企业和站长实现一键建站能力.旗鱼云梯是批量化linux服务器集群管理平台,可以快速搭建web环境,让用户最快的建立网站.都是旗鱼os系统,旗鱼云梯你咋这么优秀呢.作为linux面板建站来说.

June 14, 2019 · 1 min · jiezi

最近正在重构之前开发过的记账本

最近正在重构之前开发过的记账本,之前做得太烂了,现在想重新使用重构一般移动端的记账本,加入了新的功能,主要技术站为 webapp vue.js 后端php,可能原生写。 也可能使用框架写。 也可能使用 node.js写。 也可能使用go语言写。 也可能使用java写小程序版本app安卓版本,还有可能使用IOS版本码云地址 Ken / 记账本,重构 暂时页面的安排,以及目录的排版vueaccountProject setupnpm installCompiles and hot-reloads for developmentnpm run serveCompiles and minifies for productionnpm run buildRun your testsnpm run testLints and fixes filesnpm run lintCustomize configurationSee Configuration Reference. 启动页面|---------loading/ 启动页面 |----component/ 组件模块 |----loading.vue |----common/ 公共模块 |----style/ 样式模块注册页面|---------login/ 注册页面 |--component/ 组件模块 |----login.vue |--common/ 公共模块 |--sytle/ 样式模块首页|---------home/ 首页 |--component/ 组件模块 |----date.vue 日期组件 |----inout.vue 收入支出组件 |----visualize.vue 可视化组件 |----importaccout.vue 导入账单组件 |----voiceaccount.vue 语音账单组件 |--common/ 公共组模块 |--style/ 样式模块账本|---------account/ 账本 |---component/ 组件模块 |-----head.vue 头部组件 |-----account.vue 账本组件 |-----scroll.vue 滚动组件 |---common/ 公共模块 |---style/ 样式模块我的资金|---------usermoney/ 用户资金 |---component/ 组件模块 |---inputmoney.vue 输入资金组件 |---showmoney.vue 展示资金模块 |---common/ 公共模块 |---style/ 样式模块我|---------user/ 用户模块 |---component/ 组件模块 |---head.vue 导航 |---usernote.vue 账号密码修改 |---dailyremind.vue 每日提醒 |---exportbooks.vue 导出账本 |---aboutus.vue 关于我们 |---softwareupdates.vue 软件更新 |---common/ 公共模块 |---style/ 样式模块添加记账页面|---------addaccount/ 添加记账 |-----inaccount 收入页面 |-----component/ |-----head.vue 图表 |-----show.vue 显示各种收入 |-----common/ |-----style/ |-----outaccount 支出页面 |-----component/ |-----head.vue 图标 |-----show.vue 显示各种支出 |-----common/ |-----style/ |------transferaccounts/ 转账页面 |------component/ |----head.vue 图标 |----show.vue 显示转出转入 |------common/ |------style/ |-------blance/ 余额 |------component/ |---inputblance.vue 转入余额 |---showblance.vue 显示余额 |------common/ |------style/ ...

June 13, 2019 · 1 min · jiezi

vwrem移动端自适应布局

本文同步发布于我的个人博客上 - vw+rem移动端自适应布局 不管是面试还是工作过程中,移动端的布局都比较常见,而移动端适配方法也是多种多样。一般来说,主要还是从viewport、rem、百分比几个点下手。 一般来说,开发过程中,我们希望能够直接按照设计图来开发,不管设计图是两倍还是三倍图,能够直接写设计图尺寸而不需要换算,同时有高质的设计图还原度,想想都比较爽。 这里介绍一种使用vw和rem来布局的方案。 该方案思路主要是,设置视口宽度为设备宽度,使用vw来动态设置根元素的font-szie,同时使用sass的css function来实现设计尺寸转rem的功能,从而实现一套不需要js计算而自动设置根元素font-szie的rem布局。 vw不了解vw的同学可以了解一下vw。vw表示当前视口宽度的百分之一。 rem布局过程中依赖于根元素的font-size属性,而如果设置一个固定的font-size,再使用rem来布局,会导致小屏手机视觉上觉得网页被放大,而大屏手机上则显得网页布局稀疏。 所以咱们需要根据收据的屏幕大小等比的设置font-size,从而实现大小屏手机视觉一致的效果。实现这个功能可以使用js在页面载入时,读取屏幕宽度,再根据设计图标准宽度做一些转换。 而使用vw天然就是一个根据屏幕宽度来做计算的长度单位,完美实现以上js计算功能。同时在移动端,vw的兼容性还不错,完全可以直接使用。 计算方法: // 设计图标准根元素字体 / 设计图标准宽度 * 100const vw = 16 / 750 * 100例如,设计图以6s为标准,2倍尺寸,宽度750px,而你设置根元素字体大小为16px,那么计算出的vw就是2.13333vw,直接在css中设置: html { font-size: 2.13333vw;}这个时候,我们在标准宽度下根元素实际字体大小是16px,如果到5s手机上面,则根元素实际字体大小为13.653px。根元素的字体大小变了,页面中使用rem来设置的边距、长度、字体大小都会发现改变,页面看起来像是缩小了一点点,但是所有的布局跟6s都是一样的。 6s显示效果: 5s显示效果: 可以看到效果是一致的,换行、截断都显示一致,视觉效果也是一致的。 横屏显示我们日常使用中,手机都是竖屏显示的,但是也会有横屏显示的时候。如果横屏显示,那么手机的宽度就变成了长度,长度就变成了宽度了,这个时候vw就显示的不对了。看下图,虽然显示没有乱,但是字变的很大了,复杂情况下布局估计也乱了。 还好有应对方法:vmin,这个属性表示视口宽度中最小的那个,竖屏下是vw,横屏下是vh。设置了vim之后显示效果就不错了。 自动转换rem设计图的设计尺寸一般都是2倍或者3倍,如果此时咱们自己转换成一倍的再去根据根元素计算rem那也太累了。 比如2倍设计图上面的56px,那么咱们需要:56 / 2 / 16,心态崩溃~~~ 算是不可能自己算的,找插件呗,这个轮子早就被造好了,postcss-pxtorem就是专门来干这个事情的,配置好设计尺寸,设计倍数,然后css里面直接写56px,插件会自己给你计算成 (56 / 2 / 16)px,是不是很棒。 加载配置一个插件也挺麻烦的,如果你刚好在sass之类的css预处理器,完全可以使用sass function来自动计算。 $rootSize: 16px!default;$designWidth: 750px!default;$designRatio: 2!default;@function rem($px) { @return $px / $rootSize / $designRatio * 1rem;}@function rootVw() { @return $rootSize / $designWidth * $designRatio * 100vmin;}这样就一次性计算好了根元素font-size,也可以使用rem()来自动计算rem了。 ...

June 12, 2019 · 1 min · jiezi

5G改变社会的脚步服务器开始

在华为正在布局5G大发展战略的时候,各行各业对于未来趋势有了初步窥探,都在磨拳擦掌准备大干一场.5G领域拥有绝对发言权的华为在这场盛宴中,扮演的就是先驱者,只有基础建设跟上了,大发展才会来临。 市场面对未来趋势的演变,大家站在自身产业的高度,并结合未来技术发展的趋势,只有打破垂直,让万物互联各行各业才能够发展。     未来硬件生态将以5G为中心,围绕互联网,其中5G是关键也是主入口,而其他设备会尽无限制性的搭上这个发展的顺风车。5G和AI人工智能技术的逐渐成熟,无疑将为未来市场进行赋能。首当其冲的就是服务器厂商,随着硬件价格优势好起来,带宽加大,服务器领域将迎来变革,各个企业的服务器将会经历一波大降价大发展,企业会因为互联网投入减少的加大开发投资。这时候管理服务器,这么多厂商下,比如华为云有几台服务器,阿里云有几台,百度云又有几台这样的不同厂商之间如何才能让服务器互联互通,这时候就需要一个平台,旗鱼云梯诞生了,针对各个IDC厂商之间的多台服务器,通过完善的云端管控,让企业可以通过一个平台就可以管控所有服务器,一劳永逸.未来的大发展,企业是建立在数据化上,只有把自己的根基打好,才能够实现大进步,旗鱼云梯平台能够让企业实现在服务器管控领域的安全管理,让企业发展不受束缚.

June 12, 2019 · 1 min · jiezi

告别单机linux面板的臃肿使用云端轻平台运维

时间进入2019年,linux服务器市场现在使用的还是各个企业或有能力的站长,对于linux服务器很多小白站长是不敢搞的,不懂代码操作,习惯里windows下界面操作,都很担心使用linux系统不会操作可麻烦,这点我要讲一下,window服务器最不好的一点就是界面化,因为会浪费服务器大量的资源,本来服务器安装linux服务器版,没有界面消耗内存等,可以同时让1000个人访问服务器,可你安装了windows系统只能让600人访问网站,再多的人系统吃不消了。针对于windows这个消耗内存大bug,linux系统为啥领导大型服务器市场份额,就是因为把没必要的资源给了界面,这样本来服务器可以干一件事,现在只能干半件事。所以企业和技术站长都采用linux服务器,尤其是centos 7.6 系统,是消耗资源最好,功能最好的linux服务器,像阿里云、华为云、百度云、腾讯云等默认都是centos系统,这是因为程序员都知道哪个好,肯定主动推送。说完服务器系统,都知道要选linux,但对于远端linux服务器如何管理,如何操作这点,很多人想到了linux面板,对于很对站长想用linux系统是都会了解到linux面板。最早的linux面板是为了让不懂代码的小白站长,能够实现一键搭建web环境,建站而来的,多以市场上诞生了很多国内的单机linux面板。慢慢用户发现,不只是使用linux面板,还需要安全,不然服务器就是一层窗户纸,由于插件工具越来越多,linux面板本来是解决服务器轻量级使用的,现在单机版linux面板必须要在服务器上安装一个网站,再安装各种插件工具,一大堆东西,才能够使用,这就违背了当初linux面板的初衷,是轻量级便捷化。完完全全的软件功能了,现在大环境云端下轻量级设计理念,显然单机版linux面板已经可以淘汰了。现在市场上出现了云端版linux面板,旗鱼云梯这个品牌,能够让服务器和云端平台加密链接,所有功能页面插件等都安装在云端,你的服务器只需要和云端平台链接,就可以直接使用这些工具,让运维网站可以实现批量化,而不是只能管理一台主机。由于旗鱼云梯的集群化批量化功能,让云端linux面板变得可能,让个人站长能够使用这种平台化方式来管理自己的服务器。大大减少了站长对于运维价格高,管理难度大,尤其安全防护方面,云端版通过大数据可以拦截攻击,让服务器一直处于防火墙的保护下,避免服务器遭受黑客攻击等事故而宕机。总结:旗鱼云梯是现在linux系统下云服务器最好的管理平台,可以实现同时管理上百条服务器,批量管理批量操作,让运维服务器变得很简单。

June 11, 2019 · 1 min · jiezi

人工智能时代的服务器啥样

2008上映的一部电影鹰眼 Eagle Eye是我们熟知的变形金刚男主角希亚·拉博夫,影片描绘成了未来超级人工智能掌管社会资源,配合军事打击能力,在服务人类同事一旦把权力交给机器人,后果只有是坏处,没有好处,因为人工智障只会一根筋办事.那么未来在有超级计算机的时候,对于制造他们的人类,超级计算机意识觉醒,对生命有了渴望与留恋,人类就此将其定罪并消灭还是引导。有一部改编自科幻小说《机器人是否会梦见电子羊》的电影带着强烈的反思气质和人文精神使之成为了科幻电影史上最有影响力的影片之一,只是可惜原著作者菲利普·迪克先生在影片公映前三个月不幸因病去世。   而当真实世界的时钟走到了2019年,我们对于现在掌管人工智能的服务器,如何管理控制,我们现在能不能做到,能够灵活管理自己的服务器. 人工智能将创造无限可能?   工业革命以来,人类有无数种新技术,本质上都是对我们体力上的扩展;而人工智能是颠覆性、指数性的技术,是对人类智力方面的进一步突破.面对当今世界激烈的商业竞争环境中,企业会竭尽全力的去获取最大的竞争优势,而人工智能作为一种颠覆性的科技力量,这种结合必然会碰撞出无数火花,彻底变革整个商业规则。  创新是人类前进的基石,而今天的人工智能正在改变我们创新的方法。就以我们企业中服务器管理这一条,大厂商都有自己的团队,使用底层命令维护,有人脉和实例,普通企业和个人,在建立网站搭建服务器安全时都是采用安装个小软件,单机版的形式在运行,这样的时代过去了,现在新的云端化SAAS化平台管理服务器时代来了,放弃那些普通管理企业服务器的办法,使用一个平台:旗鱼云梯.][6]旗鱼云梯是SaaS化云平台,集中管理运维取代了重复繁琐单机运维操作,传统的管理模式会给运维人员带来工作压力,旗鱼云梯云平台一个界面,统一管理,针对批量化集群化管理应运而生。1、针对多家云厂商、多种云服务器一站式管理解决方案,可实现批量化添加和管理云服务器。 2、同时对多台云服务器实时监控主机cpu使用率、内存使用率、磁盘用量、网络流量等信息,高达5秒/次的采样频率,最高长达一个月的存储周期,支持pc和手机查询。 3、同时对多台云服务器实现分组功能,指定云服务器名称,对绑定的主机令牌解绑,批量化操作得心应手。 旗鱼云梯可同时管理上百台主机,以云+端的形式提供了一套无缝集成形式,将管理员的操作可靠性、便利性、可运营性做到极致。通过完整的云平台机构化,帮助用户云端化批量运维云服务器。二、可视化管理操作 越来越简化的操作界面,有利于管理员操作,更直观的展示服务器可用资源状态。旗鱼云梯针对云服务器管理细节做了更深的优化。 1、数据库和网站文件支持定时备份,可将数据库备份到本地和远端,让集群重构或恢复数据更加方便。 2、可视化系统信息,系统帐号管理、监控历史信息、当前进程动态、操作日志等常用功能桌面式运维操作。 3、免费一键https证书,一键配置多域名免费https证书,网站启用 https 后,防止传输数据被泄露或篡改,网站访客可以轻松识别网站身份,防止钓鱼网站仿冒。 4、免费本地WAF防火墙,可以有效防御SQL注入、XSS跨站脚本、木马上传、网页篡改等OWASP常见攻击,过滤轻量级DDOS、CC攻击,保障网站的安全性与可用性。 5、文件管理可以实现图标和列表切换模式,主要有:复制、粘贴、剪切、删除、重命名、压缩、刷新、新建文件、新建目录。针对权限设置,每一个文件或目录都包含有访问权限,强大回收站功能默认开启,提供恢复,永久删除和清空回收站等功能。。平台功能细节改良,基于认真分析客户需求以及技术可行性评估的基础上,旗鱼云梯对于功能改良更精细更细节化。 而在今天的现实世界中,我们一直以来都讲求用科技来为科技保驾护航,也就是说我们需要考虑用科技的手段来保证人工智能和其它更高级的技术向善的方向去发展,我们中国生产制造业的企业数量高达220万个,如果有1%或是0.1%的企业用人工智能改变现有商业模式,都会是一个很庞大的数字。   有需求的云服务器管理人员,可以参加旗鱼云梯举办的最新活动,注册免费送令牌活动。旗鱼云梯在行业内提出“批量运维云服务器”理念,让用户就像“使用博客一样简单管理自己的云服务器。

June 6, 2019 · 1 min · jiezi

vuecli配置全局sassless变量

一、全局配置less 1.下载插件**vue add style-resources-loader**vue add pluginName 是vue-cli3提供的。vue add 是用yarn安装插件的, yarn源的问题有可能导致失败。如果上面安装失败的话,就分别安装 style-resources-loader 和 vue-cli-plugin-style-resources-loader(前提是已经安装过 less less-loader) // 没有出错的话,可以无视这里 npm i style-resources-loader vue-cli-plugin-style-resources-loader -D 或 yarn add style-resources-loader vue-cli-plugin-style-resources-loader -D** 第二步配置vue.config.js const path = require("path"); module.exports = { ... pluginOptions: { "style-resources-loader": { preProcessor: "less", patterns: [ //这个是加上自己的路径, //注意:试过不能使用别名路径 path.resolve(__dirname, "./src/assets/variable.less") ] } } ... }或者使用官网的自动导入在chainWebpack中引入https://cli.vuejs.org/zh/guid... 二、全局配置sass(直接配置vue.config.js) 注意:官网独爱sass,这种loader的形式只有sass才合适用,其他的(less、stylus)都会报错。 module.exports = { ... css: { loaderOptions: { sass: { // @是src的别名 data: ` @import "@/assets/variable.scss"; ` } } } ... }

June 5, 2019 · 1 min · jiezi

2019年百度云计算市场突变状况

时间到了2019年六月份,对于云计算市场的变动,企业和站长都敏锐感觉到云服务器市场的变动,我们的企业推广其中最主要的就是百度,可是六月份百度搜索总裁向海龙辞职,下面高管也陆续离职了4个,百度搜索公司带来的盈利占到整个百度的七成以上.去年同时期,百度盈收几十亿元,今年已经负几十亿了,前两年还说BAT,然后现在百度市值不及阿里和腾讯的十分之一了. 百度2019年一过就各种推广自己的云服务器,结果买的人很少,推广还是看之前的三板斧,打电话、竞价、硬推,这些办法已经过时了,当阿里云每年的盈利都在涨幅,腾讯云依托自己新媒体扛把子身份,一步步扩张小程序时,百度还在玩抄袭、垄断、嫁接等忽悠人.百度的辉煌要过去了,云服务器计算领域要迎来新的变革,随着5G时代来临,总带宽变大,相对的我们的云服务器也将享受红利,更大的带宽,随着AMD和intel在服务器处理器市场大战,将来的硬件采购也将会大幅度便宜,这是要爆发的前期呀.对于你同时购买多个厂商的云服务器,那么管理这些云服务器就需要好的方式,采用SAAS化云平台就是最完美的解决方式,旗鱼云梯这个互联网产品.推出后受到了企业和个人站长的欢迎,能够实现多个云服务商主机管理在一个平台下,同时批量实现管理,一键web环境搭建,LAMP和LNMP的免费服务器,一键建立网站,免费的SSL的https服务,各厂商CMS系统支持,安全稳定的WAF防火墙.只有一流的团队,才能够实现这样的革命进步,旗鱼云梯是2019年服务器集群管理的新篇章,是企业和个人站长的最好集群化平台.

June 5, 2019 · 1 min · jiezi

2018年8月所遇知识点整理

*注:本文章是在工作过程中所接触的知识点的整理,涉及的东西比价杂乱,如有错误之处,欢迎纠错与指导一, 页面的锚链接二, WebSocket三, 热更新四, requestAnimationFrame五, 数据埋点

June 4, 2019 · 1 min · jiezi

2018年12月所遇知识点整理

*注:本文章是在工作过程中所接触的知识点的整理,涉及的东西比价杂乱,如有错误之处,欢迎纠错与指导一, get 请求src 含有中文地址请求失败,显示不出来二, vue v-clipboard 剪切板功能三, 树状结构数据四, 前端常见跨域解决方案五, es6新增 set六, 在 JS 对象中使用 . 和 [] 操作属性的区别HTML5 sessionStorage会话存储【整合到前端存贮里面去】 七, vue 使用less全局变量八, vue项目使用阿里巴巴的矢量图标九, 纯JS生成并下载各种文本文件或图片十,JavaScript数据结构和算法

June 4, 2019 · 1 min · jiezi

2018年9月所遇知识点整理

*注:本文章是在工作过程中所接触的知识点的整理,涉及的东西比价杂乱,如有错误之处,欢迎纠错与指导一, px还是rem二, Web性能信息采集指南三, Web性能信息采集指南四, 前端上传文件

June 4, 2019 · 1 min · jiezi

2019年3月所遇知识点整理

*注:本文章是在工作过程中所接触的知识点的整理,涉及的东西比价杂乱,如有错误之处,欢迎纠错与指导一, 前端项目性能优化二, Vuex数据页面刷新丢失问题三, Vue-Router模式、钩子四, mini-css-extract-plugin五, 删除元素所有子节点六, Vue调试器vue-devtools安装七, Vue项目webpack打包部署到Tomcat八, css布局总结(CSS实现,头部高度固定,主体高度铺满剩余高度;主体左侧固定宽度,右侧铺满剩余宽度,八种创建等高列布局)九, webpack开发和生产两个环境的配置详解十, htmlWebpackPlugin的minify各配置项用法说明十一, 前端存储十二, Object判断是否为对象和对象的.length十三, http请求十四,css mix-blend-mode 混合模式十五,JS引擎的执行机制

June 4, 2019 · 1 min · jiezi

旗鱼云梯SaaS化云服务器集群运维管理平台发布

如今互联网正在加速向5G时代迈进,5G网络具有大带宽、泛在网、低时延、低功耗的突出优势,必将在VR虚拟现实、AR增强现实、AI人工智能、无人驾驶、大数据、云计算等诸多新技术领域掀起一场新时代的互联网革命浪潮。然而我们是否忽略了在这一系列的新技术都得建立在“云”上,而“云”的背后始终有一个叫“运维”的东西在默默地做着基础的支撑呢?显然答案是肯定。 随着5G布局的逐步完善,企业、学校、工业、农业、能源、运输、安防等传统行业都想乘着“上云”这股风,插上互联网的翅膀,寻找新的增长点,迈入高速发展的快车道。这时候云计算云服务器作为驱动这些新领域、新行业发展的大脑,如果稍不留神,在运维上出现任何闪失,导致“大脑”出现故障,给个人或企业带来的将是巨大的损失、甚至毁灭性的打击,所以我们决不能忽视运维这一领域,所以新互联网时代传统的服务器管理运维技术同样也必将迎来新的进步、新的技术革新。 自始至终,如何更便捷、更高效、更安全地运维管理服务器,一直是站长、中小企业乃至云计算行业巨头的一个痛点。而针对站长、中小企业通常面临的问题有:1、阿里云、腾讯云、百度云……,服务器分散在各个不同的IaaS厂商如何统一管理?2、有没有更简单的在云服务器上批量化建立网站,管理群站、站群的办法?3、云服务器资源怎样才能够实现一键同步、批量运维?4、从部署应用环境到加固安全防护,有没有简单的一步到位的快捷的方案?5、针对云服务器安全,做到不是裸奔,而是全身“钢铁侠”,在感知、防御、拦截、预警等多方面实现自动化与智能化? 当然肯定不只这里简单罗列的几个问题,而往往这些问题并不是一个一个小功能插件或软件所能一次包揽解决的。那么有没有一种拥有批量化、集中化、统一化的软件能够解决这一系列的难题呢?你能想的到,就能做的到,近来就有国内的一家公司发布了一款叫做“旗鱼云梯”的SaaS化一站式可视化的管理云平台,这个旗鱼云梯平台包含了云服务器运维管理的大部分基础功能,另外还从安全角度输入了多项强大的安全防护技术,下面简单介绍下这个平台。 一、强大的平台化云管能力 旗鱼云梯是SaaS化云平台,集中管理运维取代了重复繁琐单机运维操作,传统的管理模式会给运维人员带来工作压力,旗鱼云梯云平台一个界面,统一管理,针对批量化集群化管理应运而生。1、针对多家云厂商、多种云服务器一站式管理解决方案,可实现批量化添加和管理云服务器。 2、同时对多台云服务器实时监控主机cpu使用率、内存使用率、磁盘用量、网络流量等信息,高达5秒/次的采样频率,最高长达一个月的存储周期,支持pc和手机查询。 3、同时对多台云服务器实现分组功能,指定云服务器名称,对绑定的主机令牌解绑,批量化操作得心应手。 旗鱼云梯可同时管理上百台主机,以云+端的形式提供了一套无缝集成形式,将管理员的操作可靠性、便利性、可运营性做到极致。通过完整的云平台机构化,帮助用户云端化批量运维云服务器。二、可视化管理操作 越来越简化的操作界面,有利于管理员操作,更直观的展示服务器可用资源状态。旗鱼云梯针对云服务器管理细节做了更深的优化。 1、数据库和网站文件支持定时备份,可将数据库备份到本地和远端,让集群重构或恢复数据更加方便。 2、可视化系统信息,系统帐号管理、监控历史信息、当前进程动态、操作日志等常用功能桌面式运维操作。 3、免费一键https证书,一键配置多域名免费https证书,网站启用 https 后,防止传输数据被泄露或篡改,网站访客可以轻松识别网站身份,防止钓鱼网站仿冒。 4、免费本地WAF防火墙,可以有效防御SQL注入、XSS跨站脚本、木马上传、网页篡改等OWASP常见攻击,过滤轻量级DDOS、CC攻击,保障网站的安全性与可用性。 5、文件管理可以实现图标和列表切换模式,主要有:复制、粘贴、剪切、删除、重命名、压缩、刷新、新建文件、新建目录。针对权限设置,每一个文件或目录都包含有访问权限,强大回收站功能默认开启,提供恢复,永久删除和清空回收站等功能。。 平台功能细节改良,基于认真分析客户需求以及技术可行性评估的基础上,旗鱼云梯对于功能改良更精细更细节化。 有需求的云服务器管理人员,可以参加旗鱼云梯举办的最新活动,注册免费送令牌活动。旗鱼云梯在行业内提出“批量运维云服务器”理念,让用户就像“使用博客一样简单”管理自己的云服务器。旗鱼云梯官方网站地址:www.marlinos.com标签:旗鱼云梯 服务器集群 linux面板 SAAS平台

June 4, 2019 · 1 min · jiezi

2019年1月所遇知识点整理

*注:本文章是在工作过程中所接触的知识点的整理,涉及的东西比价杂乱,如有错误之处,欢迎纠错与指导一, webpack之css模块化二, 组件化设计与开发三, webpack打包并将文件加载到指定的位置四, Postcss-salad五, 编写模块化CSS:BEM

June 4, 2019 · 1 min · jiezi

2019年6月所遇知识点整理

*注:本文章是在工作过程中所接触的知识点的整理,涉及的东西比价杂乱,如有错误之处,欢迎纠错与指导一, 前端与网关二, 字符串的处理

June 4, 2019 · 1 min · jiezi

解决koala报错invalid-byte-sequence-in-UTF8

用koala编译scss文件的时候,总是报错 查了很多资料。解决方法如下:(windows系统) 1.可能是路径中文报错:但是我的电脑就是“这台电脑”是中文,于是把“这台电脑”改成了英文,编译,依旧报错; 2.打开电脑的设置,选择区域和语言,管理语言设置,更改系统区域设置,勾选“beta版:使用unicode UTF-8提供全球语言支持”;重启后就可以编译啦~~~

June 4, 2019 · 1 min · jiezi

小站长对抗黑站的心路历程

先说介绍一下,我最早学的是前端技术,自己自学的,会了基本制作静态页面后,就开始学SEO技术,看遍了各个培训机构的教学视频,也花了钱加入了一个培训机构的会员,慢慢通过实践建站,知道了如何做好SEO,如何一步步把网站访问量做起来。 在各个培训机构中,对于建网站过程都说的很简单,尤其管理云服务器,基本就是一笔带过,教你安装使用一个单机版的linux面板,就完事了。就是这个细节不足,给我以后网站被黑埋下了祸根,对于linux服务器安全防护,很多站长,包括SEO培训机构都没怎么重视,都是教给你如何做好SEO技术,其他的一概不管。 学好SEO后搭建个小网站,购买了一个1核1G的百度服务器,因为听各个培训机构说用百度服务器收录好点,所以一直就用百度服务器。因为是小站所以访问量开始每天在几百pv,由于我会前端技术也做了MIP技术,手机移动端打开速度快。慢慢排名爬上去了,权重有了,排名有了,麻烦就来了,基本互联网排名好的小站都受到过黑客攻击,都是些赌博网站,给你加恶意跳转,修改网页内容等手段,到这时很多站长才意识到该做服务器安全了。 我自己的经验之谈,开始寻找很久的解决办法,最后还是自己找到的主要原因,首先是网站本身的CMS程序,我更换了网站程序,服务器里只有静态页面,后来发现还是被黑。然后就发现是服务器安装的linux面板,安全防护上根本就是窗户纸,换了3个单机版linux面板,也购买了他们的收费插件,但还是被黑,这时候就不敢再使用单机版linux面板了,被黑修复后,就一直寻找解决办法。2019年年初,我发现了旗鱼云梯网站,发现是云端平台化的linux运维工具,抱着尝试的心态,购买了一个服务器,通过平台上建站使用了一个月,发现网站很稳定,通过查看平台自带的WAF防火墙和本地安全防护工具,大量的攻击都给拦截了,可视化这点给满分。通过长时间使用,我觉得该和SEO站长推荐这个平台,首先是B/S构架云端操作,通过QQ或微信就能够登录使用,老式的单机版linux面板还需要记一大串地址,然后是可以批量化管理云服务器,我在阿里云、百度云、腾讯云的云服务器都可以同时管理,实现了批量化操作的方式。旗鱼云梯在SEO方面做了大量的适配,错误页面404设置多种风格。网站301跳转,帮助站长实现权重统一性。Sitemap功能,利于蜘蛛抓取,日志查看,可以看到每天的蜘蛛访问量,等等功能,是新手站长和老站的最好工具,这点现在这些单机版linux面板就完全没有。推荐平台化linux面板旗鱼云梯,各位站长可要抓紧入驻,避免自己的网站还是裸奔,免费的安全防护就是旗鱼云梯平台特色,就这点我觉得比较方便实惠好用。

June 1, 2019 · 1 min · jiezi

所谓的智慧云端服务器管理平台

2019年对于云服务器市场来说好消息比较多,首先是AMD针对服务器处理器发布了7nm处理器,这已经把服务器处理器的登记提高到新的阶段,intel服务器处理器还在打磨14nm++,对于大局进攻服务器处理器市场的AMD来说是个好消息,对于大的IDC服务商,采购的价格能够节省大半,变相的我们用户间接会在几年内使用便宜的云服务器. 对于云服务器的采购,普通公司和个人采购都是够用就可,所谓够用,如果公司只是一个简单的企业网站或个人博客,那么这些大型的IDC服务商阿里云、百度云、腾讯云随便哪一家购买一个1核1G的云服务器就可以了,安装上linux centos7.6系统,服务器同时能够承载1千人左右访问网站,不建议使用windows服务器建站,同样的配置windows服务器本身就浪费大量的硬件资源,卖出去的还不够自己吃的,所以建议采用linux系统。 既然采用了linux系统那就要使用linux面板管理自己的服务器,最早管理linux服务器都是安装单机面板,就是把探针命令安装到服务器上,让服务器启动一个网站,用户访问这个网站来管理自己的服务器,弊端很多,毕竟你的服务器需要架设一个没有证书没有防护的网站,比较不安全的。何况如果需要批量化管理服务器,同时十台主机那就要一台台访问配置。 现在流行的都是SAAS化云端管理,直接登录一个平台,就可以使用平台同时批量化添加主机,安装探针管理服务器。不是单机版linux面板所能够比的。推荐现在流行的一个云平台:旗鱼云梯,这个平台能够使用最新的B/S构架,只要有浏览器,你就可以管理服务器,还可以通过手机来查看自己服务器的状态,进行实施管理控制。 旗鱼云梯可以实现批量添加主机,一键安装WEB环境,便捷创建网站,网站的404、301、伪静态、https的SSL证书都是一键化,极大地方便了用户快速建站的需求。

May 31, 2019 · 1 min · jiezi

华为不只有5G-还有专业级服务器

一直以来,我们被华为的发展自豪,国产手机还没有哪一个像华为这样,有自己的处理器、基带、网络服务一条龙的构架服务,对于现在中美越演越烈的5G大战,我感觉对于中国或世界5G发展,华为将是一个领军者。华为不是一直做着一个服务商或手机厂家,华为在芯片开发一直是突飞猛进。国产7nm处理器, 除了自家手机采用的麒麟芯片之外,华为还推出了Ascend系列AI芯片和基于ARM的鲲鹏系列服务器CPU这些僵尸未来AI、大数据、物联网所最为依赖的底层硬件,只有基础构架全是自主研发的,后期的发展进步就不受人牵制。美国就是看到了这点,怕最基础的服务和技术被中国掌握,他们后期的发展没有基础处处受牵制,才会这么强烈的抵制华为。华为在2019年发布了服务器CPU鲲鹏920,7nm工艺,号称服务器AI领域性能最高,华为公司自主设计完成。通过优化分支预测算法、提升运算单元数量、改进内存子系统架构等一系列微架构设计,可提高处理器性能。典型主频下, SPECint Benchmark评分超过930,超出业界标杆25%。同时,能效比优于业界标杆30%。鲲鹏920以更低功耗为数据中心提供更强性能。未来已来 聚焦世纪竞争就是在科技领域,如果基础底层领域走在了前列,那么未来发展谁的主动权就会更大。可以看到,在过去的服务领域,华为已经取得了非常不俗的战绩,对于整个市场发展以及战略布局来说,华为只是好戏刚刚上演而已,随着越来越多的合作伙伴和细分行业领域客户的加入,未来让我们拭目以待华为在基础底层科技上的突破。对于服务器管理,现在集群化云端化最为流行,服务器领域最好的批量化平台就是旗鱼云梯,依托云端互联网高速,能够同时管理多达上百台主机,对于服务器统一管理,批量化建站运维领域旗鱼云梯走在了前列。推荐个人和企业管理多台服务器,可以使用旗鱼云梯平台,一键化web环境搭建,一键建站,服务器安全防护,数据库搭建,备份管理一步到位。总结:好马配好鞍,使用华为服务器必须要使用配套的旗鱼云梯平台管理,才能够达到事半功倍的作用。

May 30, 2019 · 1 min · jiezi

简直如行云流水般-服务器集群管理最简化

对于服务器管理 和操作很多运维人员各有各的方法,现在的人越来越懒,同时管理多个服务器是很多管理人员比较头疼的,使用工具也好或有更好的操作也罢,使用好的方法一劳永逸解决批量管理服务器的难点是很多人想知道的. 如果说原来的单机管理服务器是最原始的方法,那么远端批量集群管理服务器就会让很多人觉得不可思议,因为除了idc厂商自己的服务器集群界面,对于批量管理服务器对服务器进行细致的操作,现在这样的工具平台有了,那就是旗鱼云梯. 想要了解如何管理的方法,那么就要了解原理,首先使用旗鱼云梯平台,最好服务器是linux系统,这样才能调动服务器的全部能力,不建议使用windows系统,因为会浪费很多资源. 添加服务器 注册登陆旗鱼云梯网站后,点击”控制台”进入到”添加主机”功能里,如果你在阿里云同时买了多台主机,可通过默认的”API导入”来吧主机批量添加进去,如果只是单个主机建议使用”ip导入”这样会比较快速. 批量管理添加主机后,需要到网站商城购买一个主机令牌,这样才能安装探针,管理主机,所以买完令牌后就能完全操作主机管理了. 建站运维同时操作多台主机查看监控信息,对单台主机管理应用,旗鱼云梯是比较好的方式,尤其在建站方面,有完善的一键安装,一键添加网站.实现最简化的建站流程. 总结:通过旗鱼云梯的批量服务器集群方式,能够最简化的方式管理多台服务器,让站长或服务器运维人员最简单的操作服务器.

May 29, 2019 · 1 min · jiezi

全新云服务器管理平台重磅登录-全方位助力企业轻松上云

现在购买云服务器,很多个人或企业不知道如何选择?如何管理?怎么方便的管理自己的多个云服务器主机,这需要好的工具平台帮你,最近看到一个平台,感觉在管理服务器方便比较方便,就花时间谢了这篇文章。一、关于服务器的选择,这里说一下,最好选择大的服务器IDC厂商,比如阿里云,比如百度云和腾讯云,选择服务器主要有三要素:CPU核数、内存、价格,牢记三要素,选型就基本不用愁了! 大家会说服务器配置那么多我怎么选?这点用最简单的语言描述,云服务器的产品规格有很多,不过我们只要搞清楚规律就很简单。 其实选择云服务器就好像去咖啡店买咖啡一样: 1核1G云主机是基础性规格,就像咖啡店里的小杯, 2核2G云主机是通用型规格,就像咖啡店里的中杯, 4核4G云主机是进阶型规格,就像咖啡店里的大杯, 8核8G云主机是高性能规格,就像咖啡店里的超大杯你可以根据自己的实际需要,对比价格来选择购买。普通企业网站浏览人数1000人以下就用1核1G就够了,以此类推。那么服务器买了,该怎么管理呢?这里说一下,首先买完服务器后,把系统安装成linux centos7.6系统,因为linux系统相比windows系统,利用服务器资源更好,最关键就是稳定。运维工作做的好一年都不用启动服务器一次,尤其是配置低的服务器,windows主机同样的工作,硬件起码高一倍,最低硬件的买2核2G以上才能运行。购买完主机,安装完linux系统,就需要管理工具了。二、云平台linux运维工具:旗鱼云梯 管理购买的服务器推荐使用云端平台集群化,这样只需要操作一个平台,就能同时管理多个服务器,简单方便。推荐的旗鱼云梯平台,能够通过简单的添加服务器到控制台,可以批量化同时多台服务器使用,安装web环境,网站建立,SEO设置,404页面,301跳转,都可以通过平台管理工具实现。总结:企业上云通过购买合适的服务器,安装linux系统后加入旗鱼云梯的云端控制台,就可以运维建站,帮助企业建站上云最简单的方式。

May 28, 2019 · 1 min · jiezi

有没有专门画流程图软件

亿图流程图制作软件是一款用于绘制各种流程图,同时兼具跨平台,云储存,分享功能的专业流程图制作软件。操作简单,功能强大,非常容易实现可视化、分析和交流复杂信息。软件内置海量精美的流程图模板与图库,帮助你轻松绘制项目管理流程图,程序流程图,工作流程图,过程流程图等。 如何用来绘制一个流程图呢 第一步 选择从模板创建或者创建一个新页面 方法一:创建一个新的页面 点击文件-新建-流程图。 双击模板下的流程图选择需要绘制的种类,进入编辑状态。 方法二:使用模板创建程图 点击文件-新建-流程图。 当找到需要的模板时,双击模板或者点击右上角预览窗口下的创建导按钮,即可成功创建一个含有预设内容的流程图。 第二步 添加图形 方法一:用图形的浮动按钮添加 从左侧模板库中拖出一个流程形状。 点击四周的浮动按钮。 方法二: 从库里拖放添加 从界面左边的符号库里拖动一个图形。 把拖动的图形移动到要吸附的标题旁,松开鼠标会自动链接。 第三步 排版和连接线样式 排版十分灵活,可以智能的调整大小和对齐,还可以根据已经存在图形的位置标出对齐线,其自动性为我们带来便捷。 第四步 添加文本和其他内容 添加文本 双击流程图图形。 输入文本。 点击绘图页面的任意空白区域或者按 ESC 键完成输入文字。 另外流程图制作软件不仅可以添加文件,还可以添加超链接,附件、图释和其他内容以提供上下文信息。 第五步 美化功能 流程图软件不仅在实用性上下足功夫,同时也相当注重美观设计,更改主题形状可以起到美化导图的作用。 ...

May 27, 2019 · 1 min · jiezi

分享一个vue项目脚手架项目

搭建缘由源于公司每次新启动一个由多人协同开发的项目都由负责人初始化项目之后,每个人再去从私服pull一下项目才开始开发。但是每次初始化工程都是一步步的造轮子,一个个依赖去安装,新建一个个不同功能的文件夹,而每个负责人所初始化的项目目录、以及模块引入方式参差不齐,以至于开发中后期因每个人开发风格的不同导致git提交时总会产生各种各样的“冲突”,也会产生后期代码维护成本增加,所以就有必要考虑一下做一个统一的类似“脚手架”的功能了,用来给团队开发带来便捷的、统一的、易扩展的项目基础。 预实现的功能公共样式统一管理,全局sass的友好引入公共js统一管理解决vue脚手架初始化的部分问题路由形式、接口统一管理store模块化管理定义vue前端项目必用的方法修改好统一的config配置全局混入/指令的封装必要的依赖项node-sass sass sass-resources sass-loader sass-recources-loadervuex vuex-persistedstateaxiosbabel-polyfill项目目录如下 配置公共sass目录assets>scss文件形式 mixin.scss内容详见 mixin公共sass函数 common.scss内容如下 @import './mixin.scss'; // 公共函数@import './icomoon.css'; //字体图标@import './wvue-cli.scss'; //项目公共样式修改utils.js引入commom.css,就不用在main.js 或其他项目中的页面引入了 //57行开始function resolveResouce(name) { return path.resolve(__dirname, '../src/assets/scss/' + name); } function generateSassResourceLoader() { var loaders = [ cssLoader, // 'postcss-loader', 'sass-loader', { loader: 'sass-resources-loader', options: { // it need a absolute path resources: [resolveResouce('common.scss')] } } ]; if (options.extract) { return ExtractTextPlugin.extract({ use: loaders, fallback: 'vue-style-loader' }) } else { return ['vue-style-loader'].concat(loaders) } } // 注意这里 return { css: generateLoaders(), postcss: generateLoaders(), less: generateLoaders('less'), sass: generateSassResourceLoader(), scss: generateSassResourceLoader(), stylus: generateLoaders('stylus'), styl: generateLoaders('stylus') }接口统一管理js目录下的urlConfig.js ...

May 26, 2019 · 3 min · jiezi

公务员备考攻略复习经验过程

你是不和我一样,面对公考这条路,在很长一段时间里,纠结和彷徨。 自己到底能不能成功? 公务员是我未来想要的生活吗? 万一没有考上怎么办? 不管过去我们的内心经历了多少次的斗争,但当我们在Timing里将目标定位“公务员”的时候,就要让自己平静下来,接受自己的绝对,义无反顾地向前冲刺。 你要调整好自己的心态,不受到别人的干扰,脚踏实地攻克重重难关。 行测第一轮:专项练习 按照模块将五大题型逐一进行学习,掌握每个模块的基本方法,思考角度,一个模块一个模块的进行专项刷题, 这个阶段要花的时间多一点,因为思维习惯是很难短时间内培养出来的,准确率不高的一定先不要追求速度追求做多少题,要结合学到的做题方法去分析想问题的角度是哪里不对,遇到这类题要换角度分析,有意识的去锻炼,去思考,慢慢的,配合刷题就可以纠正过来。 这一步大概用了1个月左右的时间,每天120题左右,每一题都要弄明白原题,模块宝典那么厚,在进行这一步学习的时候我是硬生生的全本做完了。 行测第二轮:做真题套题 1.先按照考试形式做两套国考套题,然后重点是分析。这两套题请认真对待,分析自己的长处,即易得分点,然后了解自己的弱项,即失分多的点,一定要对自己的能力有个客观正确的认识!!!!这点尤其重要!!!!!!!!!! 2.接着就是分析真题题型出题角度,要知道这道题考的是什么,为什么这么出,还有每个模块各个题型的比例大概是多少,哪些是基础分等。 3.然后就是疯狂地刷套题了,计时计时计时!!!重要的事情说三遍!!!!!没刷完一套题就要认真对答案,这个过程其实很慢,错题一定要认真分析!!!!四个选项的区别是什么,陷阱在哪里,为什么选错!!!一定要动脑子思考!!!!!! 这三点不管你用什么复习方法都要特别注意,我复习的时候因为阿甘上岸说里教的技巧特别注重实际解题速度和正确率的平衡,所以并没有在做题时间上太发愁,套卷做了30套左右的时候解题思路就清晰起来,一眼就能看出来哪些是必定能拿分的容易题哪些是有些麻烦的陷阱题,然后区分对待,以拿分为主,这点大家做题时要注意,并不是所有题做完你就分高,动的取舍也是公考成功的重要因素之一! 四、行测第三轮:重复刷真题 只做真题!!!只做真题!!!!只做真题!!!! 有人会说,那些题都做过了,答案都记住了,那有本事你再重新做一遍考满分啊!!基本上该错的题还是会错,因为在有限的时间内是没有思考的空间的,全凭借的是第一反应,第一思维模式,这个东西很难改变,是你多少年学习积累下来的东西。所以,重复做套题!! 大概隔一两周做之前做过的套题,你要要求自己缩短10分钟的时间,你要要求自己成绩至少达到90分,因为你做过啊!!去试试吧,错的还是之前错的题,所以,踏踏实实做吧,别报侥幸心理,大多数人都是过于自信,以为自己做的够了,用一些没报考好职位啊,运气不好啊,题型出偏了等等烂借口来安慰自己,其实你做的还远远不够,还差很远。 五、关于软件 备考的期间选择一些好用的软件,的确可以帮助我们提高效率!!!我推荐2个我常用的工具。一个是印象笔记,一个是MindMaster思维导图。这2个应用都有电脑版和手机版,并且有免费版。有些时候做过的复习笔记不方便用保存,就用印象笔记的扫描功能保存后,保存到云文件里。它的tag标签分类很强大,可以用来整理某个题型的错题本,通过搜索即可快速找到。 另外就是MindMaster思维导图软件,最早是在知乎里看到的口碑安利,确实适合Timing各位道友们使用。它是一款很轻便的思维导图APP,在手机和电脑都可以使用,用于整理基础的知识内容,解放大脑,协助记忆复杂枯燥的内容。 最后,以上复习经验过程仅供参考,希望大家能结合自己复习节奏进行调整,祝顺利

May 24, 2019 · 1 min · jiezi

从零开始构建自己的vue组件库番外篇

从零开始构建自己的vue组件库番外篇写在前面(这段话只适合新手,高手请绕行)鉴于前两节构建组件用到了很多形如 :class="[prefixCls + '__icon' + '--' + type,iconType]" 这种鬼样子的class,突然想到竟然忘了把这么重要的操作捋一下思路,具体为什么要这样搞,相信各位做前端的大佬一定知道EBM这个概念,如果不知道可参考前端领域的BEM到底是什么这篇文章。 好了开整以上由变量生成的class最终效果形如: wui__message__icon--info icon-info那么我们css就可以这么写: .wui__message__icon--info{ height:200px; width:200px;}emmmmm,那是不可能的,写这么长的类名是不可能的,这辈子都不可能的。如果BEM都用上了还不用sass或less那肯定是疯了,sass版BEM方案如下: //mixin.scss$elementSeparator: '__';$modifierSeparator: '--';@function containsModifier($selector) { $selector: selectorToString($selector); @if str-index($selector, $modifierSeparator) { @return true; } @else { @return false; }}@function selectorToString($selector) { $selector: inspect($selector); $selector: str-slice($selector, 2, -2); @return $selector;}@function getBlock($selector) { $selector: selectorToString($selector); $modifierStart: str-index($selector, $modifierSeparator) - 1; @return str-slice($selector, 0, $modifierStart);}@mixin b($block) { .#{$block} { @content; }}@mixin e($element) { $selector: &; @if containsModifier($selector) { $block: getBlock($selector); @at-root { #{$selector} { #{$block+$elementSeparator+$element} { @content; } } } } @else { @at-root { #{$selector+$elementSeparator+$element} { @content; } } }}@mixin m($modifier) { @at-root { #{&}#{$modifierSeparator+$modifier} { @content; } }}//该sass版BEM方案来自https://www.sass.hk/skill/sass94.html具体参考message组件的样式(传送门)@import 'mixin.scss';@include b(wui){ @include e(message){ position: fixed; width: auto; @include rounded(4px); line-height: 1; left: 50%; top: 20px; height:auto; transform: translateX(-50%); background-color: #edf2fc; transition: opacity .3s,transform .4s; overflow: hidden; padding: 15px 15px 15px 20px; background-color:$lightColor; @include shadow(0,0,3px,#ccc); z-index: 1000; i{ float: left; } @include e(icon--info){ color: $primaryColor; } @include e(icon--success){ color: $successColor } @include e(icon--warning){ color: $warningColor } @include e(icon--error){ color: $errorColor } @include e(content){ float: left; @include e(body){ margin: 0 10px; } } @include e(closeTxt){ float: right; cursor: pointer; color: $primaryColor } @include e(iconbox){ float: right; cursor: pointer; } }}.message-fade-enter-active { animation: bounce-in .5s;}.message-fade-leave-active { animation: bounce-out .5s;}@keyframes bounce-in { 0% { top:0; opacity: 0.2 } 100% { top:20px; width: auto; opacity: 1 }}@keyframes bounce-out { 0% { top:20px; opacity: 1 } 100% { top:0; opacity: 0 }}

May 21, 2019 · 2 min · jiezi

5G时代服务器如何管理

轰轰烈烈的5G时代拉开帷幕了,对于服务器运维人员来说,有新的市场就有新的领域,将因为5G的加入不一样了.所有的大数据,AI智能,工业4.0都建立在云服务器的管理配置下,只有好的一体化容器化的服务器支撑,才有刚需市场和人群,唯有新的设备或软件产生,才有市场和时代的进步.如果现在今天你还在运用古老的方式管理云服务器,有点过时而失去效率了.互联网大趋势就是带宽加大,硬件不断进步,2019年年中由于AMD在服务器处理器上开始布局7nm,服务器硬件将会实现非常便宜现象,不像现在被intel牢牢把控,一家独大,现在市场上一个intel 金牌服务器处理器便宜的一万人民币,贵的一万美金一颗,更不要考虑铂金或更高级的处理器,不过这样的时代将会过去,我们将迎来一个使用云端服务器就像菜市场买菜的时代.硬件一旦便宜,带宽资源加大,软件和服务将迎来新的变革和时代.服务商在这个十字路口就是最直接的受益者,最终的盈利和爆发,将是使用这些新技术的公司和个人.对于管理服务器,现在传统还在一个单机化操作,没有云端概念,被不少站长推上神坛的宝塔和WDCP这两个linux面板,都是属于古老的单机管理模式,而不是云端不是SAAS,只是一个古老的单机服务器软件,运维市场的进步是进步者和先驱者的,对于未来新的取代者来了,依托于平台SAAS化的旗鱼云梯,在这个新旧交替的阶段出生了,她将是运维云服务器市场的一把利剑.唯有新的变革方式,才是进步的标准,移动端下的管理服务器模式,将打破只能够通过传统pc的一种方式,新的设备新的环境,将诞生新的先驱者走上神坛.旗鱼云梯我预言将是新时代linux云端管理面板的领头羊,将是批量化集群化的代表,各种运维新方式和新模式将会诞生,收益的必然是使用者.总结:新的云服务器管理市场变化了,方式的变化将带来变革,旗鱼云梯将是个人和企业管理云服务器的一个极品工具.

May 18, 2019 · 1 min · jiezi

流程图循环画法流程图用什么办公软件

流程图(Flow Chart)是一种常见的工作图表。在企业中,流程图主要用于说明某一个过程,该过程可以是生产线上的工艺流程,也可用于表达完成任务所需的步骤。另外,流程图也常用于表示算法的思路,可以有效解决汇编语言和早期的BASIC语言环境中的逻辑问题。 运用流程图的时候,需要使用一些标准符号代表某些类型的动作。如用菱形框表示判定,用方框表示流程。具体的表示方法整理如下: 流程图的分类 流程图的种类多达10种,归纳整理如下: 但是根据使用的场景不同,大致可划分为7个类别,分别是商业流程图、跨职能流程图、数据流程图、事件管理流程图、IDEF图、工作流程图、SDL图。 商业流程图:又叫做业务流程图,是一种描述系统内部各人员与各单位的业务关系、管理信息以及作业顺序。它是一种物理模型,借助于此,分析人员可以找出业务流程中的不合理流向,方便优化。 跨职能流程图:可显示进程中各个步骤之间的相互关系,也能显示执行它们的职能单位。跨职能流程图按照分布的方向不同,可以分为水平跨职能流程图和垂直跨职能流程图。当跨职能流程图用于UML的时候,又被叫作泳道图。 数据流程图:一种描述系统数据流程的工具,可以将抽象的数据独立出来,通过特定的图形符号来展示信息的来龙去脉和实际流程。这是一种能描绘信息系统逻辑模型的重要工具。 事件管理流程图:这是IT服务管理中重要的流程,当一个事件被输入的时候,服务台的操作人员会依据事件的影响范围和紧急程度,对其进行初步的归类评估。 IDEF图:IDEF,即集成计算机辅助制造,一种用于描述企业内部运作的一套建模方法。IDEF图是用于表达这种建模方法的图示。 工作流程图:通过适当的符号来记录工作事项,能够反映一个组织系统中各项工作之间的逻辑关系。工作流程图可以帮助管理者了解实际工作活动,并去除工作中多余的工作环节,进而提升工作效率。 SDL图:使用说明和规范的语言(SDL)为通信、电信系统以及网络创建图表。 流程图的画法 了解流程图的类别后,那又该如何绘制我们所需的流程图呢?下面我们以亿图图示软件为例,介绍如何快速创建专业的流程图。 第1步:打开软件,“新建”-“流程图”,然后根据自己的需求,选择绘图模板。比如选择基础流程图,双击鼠标即可打开绘图面板。值得一提的是,亿图图示里除了模板,还有对应的例子,如果是新手绘图,可以借鉴流程图例子帮助自己加深认识。 第2步:从左侧符号库里选择所需的图形符号,并拖动至画布中。并依次添加,直至完毕。 第3步:使用连接线符号,对各个图形符号进行连接。亿图图示软件的连线十分便捷,鼠标点击需要连线的两端,即可生成直角连线。如果连线的位置不满意,也可以通过鼠标拖动线条的方式进行修改。 第4步:最后再添加文字和注释,一份完整的流程图即可大功告成。另外,亿图软件还有丰富的背景图案以及标题栏样式可以选择,这将大大提升流程图的颜值。 特别注意: 亿图图示软件拥有一键更换样式的功能,无需自己搭配,方便省事。 绘制完成的作品,可以导出图片、Html、Word、PPT、Excel等多种格式;也可以将作品保存在亿图云,不担心丢失的问题。 软件还有打印功能,即见即所得的打印方式,让流程图的存在不再只是虚拟化。 支持跨平台操作系统,不论是window、Mac还是Linux,都可以安装使用亿图软件。 多类型的图形图表设计软件,不仅可以绘制流程图,还能绘制思维导图、组织架构图、户型图、信息图等260种图示。

May 15, 2019 · 1 min · jiezi

NiceFishReact

NiceFish-React 是React版本的实现,和NiceFish Angular版本保持风格一致。 前端技术栈:ReactHooks v16.8.3 ,React-Router v5,Bootstrap v4.7 SCSS源码定制, Echarts v4.2.1, Ant-Design v.3.15.2组件库以及TypeScript进行开发,没有使用任何的前端脚手架,自己从零开始搭建整个博客系统,最大程度上保证了可扩展和维护性。为了大家更加直观认识,我截了一组运行效果图: 这是阅读页面,不需要登录访问权限 这是统计图表页面,采用UI指定颜色值使用轮询算法实现(需要登录访问权限) 这是文章评论页面,有过滤和排序功能 这是我为NIceFish系列设计的登录效果图 这是阅读页面的详情面(不需要登录访问权限) 好了,这是以上的效果展示图,通过此博客系统: 我的收获如下: 1.对新版本的ReactHooks有了一定的理解和开发经验 2.熟悉了BootStrap SCSS 源码,定制了一套风格,学习了Twitter的优秀的scss源码(想学scss的同志,撸一遍BootstrapSCSS源码,你就能学的很全面) 3.使用全新的ReactRouter v5 ,学习了新路由"动态映射"的哲学思想 4.深入理解和使用Echarts绘图组件库 如果你需要更加全面的代码,请访问:NiceFish-React 这是NiceFish-React 在gitee page 上的在线演示地址:NiceFish-React

May 9, 2019 · 1 min · jiezi

栅格GRID-未来可期-更便捷的布局方式

栅格布局组成: wrapper(父元素)和 items(子元素)。 父 属性设置: display: grid;或display: inline-grid; /*网格模式*/grid-template-columns: 40px auto 50px; /*子元素列的宽度*/grid-template-rows: 25% 100px auto; /*子元素行的高度 设置则定高 不设则自适应*//*他们俩可设置是px 百分比 也可以自动伸缩auto*/grid-gap: 5px; /*网格区域的间距 可设置单一间距 也可以上下一个间距左右一个间距 。 不支持上右下左四个值写法*/子 属性设置:不设置一下值是 默认均分。 更多变化 需要用到⤵️ grid-row-start: 2; /*行 的开始*/grid-row-end: 3; /*行 的结束*//*上面两句可简写成 grid-row: 2 / 3;*/grid-column-start: 1; /*列 的开始*/grid-column-end: 4; /*列 的结束*//*同理上面两句可简写成 grid-column: 1 / 4;*/------------更简洁写法-----------------------grid-row-start: 2; /*行 的开始*/grid-row-end: 3; /*行 的结束*/grid-column-start: 1; /*列 的开始*/grid-column-end: 4; /*列 的结束*//*上面四句可简写成*/grid-area:2/1/3/4; /*顺序grid-row-start,grid-column-start,grid-row-end,grid-column-end。*/ 理解row和columns的排序 基本就理解grid的用法例如:grid-row-start: 2; 指的是从上到下第二条线开始grid-column-start: 1; 指的是从左到右第一条线开始 ...

May 8, 2019 · 2 min · jiezi

SCSS-日常用法

SCSS 日常用法本文是以自己的理解起的结构,要看详细的帮助文档,参阅这里:https://sass-lang.com/documen...你需要了解的less 和 sass 是两种 css 预编译语言,其目的是为了更快、更结构的编写 css 文件,是一种强大的 css 编译语言,都能使用 变量、运算符、判断、方法等等。 scss 与 sass 的区别(这里先不讲 less ): 先有的 sass 后有的 scssscss 需要大括号{}和分号;sass 什么都不用直接裸奔感觉 sass 不如 scss 严谨,裸奔太狂野了,所以我们选用 scss, 看个小例子写一个 .btn 类并支持 :hover :active 样式 css .btn {/* btn 初始样式 */}.btn:hover{/* :hover 样式 */}.btn:active{/* :active 样式 */}scss .btn{// btn 初始样式 &:hover{ // hover 样式 } &:active{ // active 样式 }}在scss, sass, less 中 & 都代指父类上面这个例子中的 & 代指 .btn可以看出 scss 的结构要比 css 清晰,并且写的也要更少。下面的 scss 在使用中就会生成上面的 css。而这还只是皮毛,保证你用过 scss 之后就不会再用 css 写样式了。 ...

May 1, 2019 · 3 min · jiezi

前端面试题总结jshtml小程序ReactES6Vue算法全栈热门视频资源

本文是关注微信小程序的开发和面试问题,由基础到困难循序渐进,适合面试和开发小程序。并总结React html css js 经典面试题 集各种算法和插件、前端视频源码资源于一身的文档,优化项目,在浏览器端的层面上提升速度,帮助初中级前端工程师快速搭建项目。 Vue面试题生命周期函数面试题 1.什么是 vue 生命周期 2.vue生命周期的作用是什么 3.第一次页面加载会触发哪几个钩子 4.简述每个周期具体适合哪些场景 5.created和mounted的区别 6.vue获取数据在哪个周期函数 7.请详细说下你对vue生命周期的理解?vue路由面试题 1.mvvm 框架是什么? 2.vue-router 是什么?它有哪些组件 3.active-class 是哪个组件的属性? 4.怎么定义 vue-router 的动态路由? 怎么获取传过来的值 5.vue-router 有哪几种导航钩子? 6.$route 和 $router 的区别 7.vue-router响应路由参数的变化 8.vue-router传参 9.vue-router的两种模式 10.vue-router实现路由懒加载( 动态加载路由 )vue常见面试题 1.vue优点 2.vue父组件向子组件传递数据? 3.子组件像父组件传递事件 4.v-show和v-if指令的共同点和不同点 5.如何让CSS只在当前组件中起作用 6.<keep-alive></keep-alive>的作用是什么? 7.如何获取dom 8.说出几种vue当中的指令和它的用法? 9. vue-loader是什么?使用它的用途有哪些? 10.为什么使用key 11.axios及安装 12.axios解决跨域 13.v-modal的使用 14.scss的安装以及使用 15. 请说出vue.cli项目中src目录每个文件夹和文件的用法? 16.分别简述computed和watch的使用场景 17.v-on可以监听多个方法吗 18.$nextTick的使用 19.vue组件中data为什么必须是一个函数 20.vue事件对象的使用 21 组件间的通信 22.渐进式框架的理解 23.Vue中双向数据绑定是如何实现的 24.单页面应用和多页面应用区别及优缺点 25.vue中过滤器有什么作用及详解 26.v-if和v-for的优先级 27.assets和static的区别 28.列举常用的指令 29.vue常用的修饰符 30.数组更新检测 31.Vue.set视图更新 32.自定义指令详解 33.vue的两个核心点 34.vue和jQuery的区别 35 引进组件的步骤 36.Vue-cli打包命令是什么?打包后悔导致路径问题,应该在哪里修改 37.三大框架的对比 38. 跨组件双向数据绑定 39.delete和Vue.delete删除数组的区别 40.SPA首屏加载慢如何解决 41.Vue-router跳转和location.href有什么区别 42. vue slot 43.你们vue项目是打包了一个js文件,一个css文件,还是有多个文件? 44.vue遇到的坑,如何解决的? 45.Vue里面router-link在电脑上有用,在安卓上没反应怎么解决? 46.Vue2中注册在router-link上事件无效解决方法 47.RouterLink在IE和Firefox中不起作用(路由不跳转)的问题 48.axios的特点有哪些 49.请说下封装 vue 组件的过程?vuex常见面试题 1.vuex是什么?怎么使用?哪种功能场景使用它? 2.vuex有哪几种属性 3.不使用Vuex会带来什么问题 4.Vue.js中ajax请求代码应该写在组件的methods中还是vuex的actions中? 5.vuex一个例子方法 6.Vuex中如何异步修改状态 7.Vuex中actions和mutations的区别参考答案:https://www.kancloud.cn/lemon-m/js-html-css/1039363 ...

April 28, 2019 · 1 min · jiezi

响应式布局flex

响应式布局【flex】来源于 响应式方法汇总 了解了以上响应式布局,下面重点介绍一下 flex弹性布局 ,非常有用,但是有记忆障碍的我,为了下次还能顺利的记起来,还是总结一下吧,顺便把我看的几个博客内容和大家分享一下,写的非常详细,很好理解。 扩展1.查看css属性兼容性情况 https://caniuse.com/2.盒子模型 box-sizing content-box(标准盒子模型) width = content-width;解析:当盒子内容宽度固定时,设置盒子的padding和border,盒子模型宽高会变大,向外扩展,实际content内容不变(注意:margin始终在盒子外); border-box(IE盒子模型) width = content-width + padding +border;解析:当盒子内容宽度固定时,设置盒子的padding和border,盒子模型宽高不变,向内扩展,实际content内容变小(注意:margin始终在盒子外); 3. 样式兼容(postCss插件) vscode 自动添加 css 兼容代码插件flex弹性布局采用 Flex 布局的元素,称为 Flex 容器(flex container),简称”容器”。它的所有子元素称为 Flex 项目(flex item),简称”项目”。注意,设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。 1.弹性容器 display:flex;2.容器属性 justify-content------------项目在主轴上的对齐方式( 水平或垂直由flex-direction决定 ) flex-start ( 默认 居左 )flex-end ( 居右 )center( 居中 )space-between( 两端对齐项目之间的间隔都相等 )space-around( 每个项目两侧的间隔相等 )align-items------------交叉轴上如何对齐( 水平或垂直由flex-direction决定 ) stretch( 默认 如果项目未设置高度或设为auto,将占满整个容器的高度 )flex-start ( 对齐起点 )flex-end ( 对齐终点 )center( 对齐中点 )baseline( 项目的第一行文字的基线对齐 )flex-direction------------决定主轴的方向 ...

April 26, 2019 · 1 min · jiezi

基于vue的日历APP

calendarcalendarcalendar是一个基于vue的日历APP 预览地址–https://tls1234.github.io/cal…主要功能内置了添加行程,删除行程日期与行程对应的颜色标志,方便查看对应的行程信息按最近行程排序及回复以前顺序还有点击月份回归当前等功能项目地址https://github.com/tls1234/ca…Build Setup# install dependenciesnpm install# serve with hot reload at localhost:8080npm run dev# build for production with minificationnpm run build

April 19, 2019 · 1 min · jiezi

css animation 常用的动画效果

最近项目需要,需要写一些动画效果,然后对animation的知识巩固了一下。animationanimation-name 需要绑定到选择器的 keyframe 名称animation-duration 完成动画所需要的时间animation-delay 设置延长时间animation-timing-function 动画的运动速度linear 动画从头到尾的速度是相同的。 ease 默认。动画以低速开始,然后加快,在结束前变慢。 ease-in 动画以低速开始。ease-out 动画以低速结束。ease-in-out 动画以低速开始和结束。cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中自己的值。可能的值是从 0 到 1 的数值。animation-iteration-count 动画播放的次数infinite 规定动画应该无限次播放。animation-direction 轮流反向播放动画normal 默认值。动画应该正常播放。alternate 动画应该轮流反向播放。— 好吧 这个就介绍到这里吧 如果还有什么疑问可以自己去了解一下1.animation1<div class=“spinner”> <div class=“rect1”></div> <div class=“rect2”></div> <div class=“rect3”></div> <div class=“rect4”></div> <div class=“rect5”></div></div><style>.spinner { margin: 100px auto; width: 50px; height: 60px; text-align: center; font-size: 10px;} .spinner > div { background-color: #67CF22; height: 100%; width: 6px; display: inline-block; -webkit-animation: stretchdelay 1.2s infinite ease-in-out; animation: stretchdelay 1.2s infinite ease-in-out;} .spinner .rect2 { -webkit-animation-delay: -1.1s; animation-delay: -1.1s;} .spinner .rect3 { -webkit-animation-delay: -1.0s; animation-delay: -1.0s;} .spinner .rect4 { -webkit-animation-delay: -0.9s; animation-delay: -0.9s;} .spinner .rect5 { -webkit-animation-delay: -0.8s; animation-delay: -0.8s;} @-webkit-keyframes stretchdelay { 0%, 40%, 100% { -webkit-transform: scaleY(0.4) } 20% { -webkit-transform: scaleY(1.0) }} @keyframes stretchdelay { 0%, 40%, 100% { transform: scaleY(0.4); -webkit-transform: scaleY(0.4); } 20% { transform: scaleY(1.0); -webkit-transform: scaleY(1.0); }}</style>2.animation2<div class=“spinner”></div><style>.spinner { width: 60px; height: 60px; background-color: #67CF22; margin: 100px auto; -webkit-animation: rotateplane 1.2s infinite ease-in-out; animation: rotateplane 1.2s infinite ease-in-out;} @-webkit-keyframes rotateplane { 0% { -webkit-transform: perspective(120px) } 50% { -webkit-transform: perspective(120px) rotateY(180deg) } 100% { -webkit-transform: perspective(120px) rotateY(180deg) rotateX(180deg) }} @keyframes rotateplane { 0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg) } 50% { transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg) } 100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); }}</style>3.animation3<div class=“spinner”> <div class=“double-bounce1”></div> <div class=“double-bounce2”></div></div><style>.spinner { width: 60px; height: 60px; position: relative; margin: 100px auto;} .double-bounce1, .double-bounce2 { width: 100%; height: 100%; border-radius: 50%; background-color: #67CF22; opacity: 0.6; position: absolute; top: 0; left: 0; -webkit-animation: bounce 2.0s infinite ease-in-out; animation: bounce 2.0s infinite ease-in-out;} .double-bounce2 { -webkit-animation-delay: -1.0s; animation-delay: -1.0s;} @-webkit-keyframes bounce { 0%, 100% { -webkit-transform: scale(0.0) } 50% { -webkit-transform: scale(1.0) }} @keyframes bounce { 0%, 100% { transform: scale(0.0); -webkit-transform: scale(0.0); } 50% { transform: scale(1.0); -webkit-transform: scale(1.0); }}</style>4.animation4<div class=“spinner”> <div class=“dot1”></div> <div class=“dot2”></div></div><style>.spinner { margin: 100px auto; width: 90px; height: 90px; position: relative; text-align: center; -webkit-animation: rotate 2.0s infinite linear; animation: rotate 2.0s infinite linear;} .dot1, .dot2 { width: 60%; height: 60%; display: inline-block; position: absolute; top: 0; background-color: #67CF22; border-radius: 100%; -webkit-animation: bounce 2.0s infinite ease-in-out; animation: bounce 2.0s infinite ease-in-out;} .dot2 { top: auto; bottom: 0px; -webkit-animation-delay: -1.0s; animation-delay: -1.0s;} @-webkit-keyframes rotate { 100% { -webkit-transform: rotate(360deg) }}@keyframes rotate { 100% { transform: rotate(360deg); -webkit-transform: rotate(360deg) }} @-webkit-keyframes bounce { 0%, 100% { -webkit-transform: scale(0.0) } 50% { -webkit-transform: scale(1.0) }} @keyframes bounce { 0%, 100% { transform: scale(0.0); -webkit-transform: scale(0.0); } 50% { transform: scale(1.0); -webkit-transform: scale(1.0); }}</style>5.animation5<div class=“spinner”> <div class=“bounce1”></div> <div class=“bounce2”></div> <div class=“bounce3”></div></div><style>.spinner { margin: 100px auto 0; width: 150px; text-align: center;} .spinner > div { width: 30px; height: 30px; background-color: #67CF22; border-radius: 100%; display: inline-block; -webkit-animation: bouncedelay 1.4s infinite ease-in-out; animation: bouncedelay 1.4s infinite ease-in-out; /* Prevent first frame from flickering when animation starts */ -webkit-animation-fill-mode: both; animation-fill-mode: both;} .spinner .bounce1 { -webkit-animation-delay: -0.32s; animation-delay: -0.32s;} .spinner .bounce2 { -webkit-animation-delay: -0.16s; animation-delay: -0.16s;} @-webkit-keyframes bouncedelay { 0%, 80%, 100% { -webkit-transform: scale(0.0) } 40% { -webkit-transform: scale(1.0) }} @keyframes bouncedelay { 0%, 80%, 100% { transform: scale(0.0); -webkit-transform: scale(0.0); } 40% { transform: scale(1.0); -webkit-transform: scale(1.0); }}</style> ...

April 18, 2019 · 3 min · jiezi

CSS语言预处理----SASS一分钟快速入门

1.先安装ruby下载地址https://rubyinstaller.org/2.安装sass和compass gem install sass gem install compass3.创建scss文件@charset “utf-8”;//变量$text-color:#000;//通用样式@mixin el1 { text-overflow:ellipsis; -o-text-overflow:ellipsis; -ms-text-overflow:ellipsis; overflow:hidden; white-space:nowrap;}//方法@mixin border-radius($width){ border-radius:$width; -webkit-border-radius:$width; -moz-border-radius:$width; -o-border-radius:$width; -ms-border-radius:$width;}//继承(缺点:编译后在外面出现该css).commonText { font-size:22px; font-weight:900;}//占位符(与继承的区别是,不会在外面出现该css)%mt15 { margin-top:15px;}body { .box { @extend .commonText; // 继承使用 @extend %mt15; //占位符使用 @include border-radius(5px); // 方法使用 @include el1; // 混合宏使用 color:$text-color; // 变量使用 cursor:pointer; border:1px solid #ccc; width:124px; &:hover { color:red; } } }4.编译监听scss文件sass –watch index.scss:index.css5.愉快的使用css文件吧

April 16, 2019 · 1 min · jiezi

自从用了Sass,我比以前更快了

前言说到css,相信大家都知道,css样式是用来修饰网页页面结构的。对于一名前端来说写好css并不难,但如何写出优雅可复用、易重构的css代码并不容易。 于是css预处理器便出现在大家的视线里,分别是 stylus、less、sass。它们的出现让编写css更加像JavaScript一样具有严谨性、编程性。 由于我工作中常用Scss(Sass3.0版本后更偏向css的原生语法),那就大展身手介绍一下Sass的用法,让更多小伙伴变得跟我一样快(just a kiding ????)。 在此对Stylus、Less就不做多叙述了,如果小伙伴对其他两种感兴趣,可以访问 Stylus官网 、Less官网了解更多哦。Sass背景Sass(Syntactically Awesome Style Sheets),套用sass官网的牛逼介绍:“Sass是世界上最成熟、最稳定、最强大的专业级CSS扩展语言!”。是一个相对新的css预编译框架,为前端开发而生。为什么使用Sass?通过Sass编写css代码,你可以减少冗余的css代码,编写更加语义化的css,它扩展了css的能力,增加变量、嵌套css规则、混合器、继承、函数等新特性。 Write less,Do more。何乐而不为呢?????.sass vs .scss ?早已Sass出现的时候,是没有Scss的,Sass语法跟原生css不尽相同。使用缩进代替括号,没有分号。有些开发者并不适应这种写法,于是在Sass发布的3.0版本后官方提出修改,将文件后缀名以.sass改成了.scss,语法也更贴切原生css,让开发者可以像原来写css一样愉快的写scss。scss对应css就像typescript是JavaScript的超集一样的关系。Sass安装关于Sass安装网上有很多详细教程,推荐几篇典型的安装教程文章。 Sass官网安装教程 慕课网Sass安装Sass在node.js编译环境的安装在 nodejs 的平台下面,我们需要安装node-sass模块,通过这个模块,我们可以将 scss 文件转换成 css 文件$ cnpm install node-sass –save安装完成以后,我们新建一个文件,名为index.scss文件使用 node-sass 的语法来编译index.scss,具体语法如下node-sass –watch src/index.scss dist/index.css如果我们需要监控一个文件夹下面所有的文件,则需要使用如下的语法格式node-sass -w -r <源文件夹> -o <目标文件夹> //它只会跟踪同名文件,没有则新建-w, –watch Watch a directory or file //监听-r, –recursive Recursively watch directories or files //递归地查看目录或文件-o, –output Output directory //输出目录为了能够方法的执行我们的node-sass语法,我们一般会把编译命令写在 package.json的配置文件下面,如下:{ “name”: “sass-demo”, “version”: “1.0.0”, “description”: “sass练习”, “main”: “index.js”, “scripts”: { “test”: “echo "Error: no test specified" && exit 1”, “sass”: “node-sass –watch ./src/index.scss ./src/index.css” }, “keywords”: [], “author”: “luckydong”, “license”: “ISC”, “dependencies”: { “node-sass”: “^4.9.0” }}1、 Sass变量1.1 变量声明与引用sass变量声明和css属性声明很像:$theme-color: #fff;这意味着变量$theme-color现在的值是#fff。$theme-color: #fff;div { $height: 100px; height: $height; color: $theme-color;}//编译后div { height: 100px; color: #fff;}在这段代码中,$theme-color这个变量定义在规则块外边,所以在这个样式表中都可以像 div规则块那样引用它。1.2 默认变量$defaultWidth: 100px; //全局变量$defaultWidth: 200px !default;.div1 { $height: 50px; //定义变量 局部变量 width: $defaultWidth; height: $height; //引用变量}.div2 { width: $defaultWidth;}注意:在Scss语法里面,变量分为全局变量与局部变量,变量加上!default 以后就是默认变量2、 嵌套 CSS 规则css中重复写选择器是非常繁琐无趣的事。如果要写一大串指向页面中同一块样式时,往往需要多次写同一个id或是同一个class类名:#content article h1 { color: #333;}#content article p { margin-bottom: 1.4em;}#content aside { background-color: #eee;}上面的css代码使用scss语法编写后就会变得简单明了、结构清晰,如下所示#content { article { h1 { color: #333; } p { margin-bottom: 1.4em; } } aside { background-color: #eee; }}2.1 父选择器的标识符&在 scss 中,有时候我们需要在子级当中使用父级选择器,此时我们就需要使用&来选取父级选择器.div1 { width: 100px; height: 100px;}.div1 img { width: 100%; height: auto;}.div1:hover { border: 1px solid black;}上面的 css 代码经过 scss 换写后,可以简写为如下.div1 { width: 100px; height: 100px; img { width: 100%; height: auto; } &:hover { border: 1px solid black; }}2.2 子级选择器中的> ~与+’>‘代表是的子级选择器空格代码的是后代选择器’+‘代表的是相邻兄弟选择器‘~’代表兄弟选择器以上的四种用法与 CSS 的选择器保持一致3、 混合器有时候我们在写样式的时候会发现,有些地方有样式,其中有一些是相同的,这个时候,我们会把这些样式提取出来,然后再单独导入进去。例如:假设我们需要写一个 button,这个 button 的大小与边框都一样,唯独在颜色上一样的时候,我们可以使用混合器做如下处理@mixin btn { width: 120px; height: 35px; border: 1px solid lightgray; border-radius: 15px;}.btn-success { @include btn; background-color: green;}说明:在上面的代码当中,不难发现,我们使用了@mixin 来定义一个混合器。在下面的样式当中,我们使用了@include导入混合器,这样 .btn-success 的样式就结合了之前定义的样式了。3.1 混合器的中参数SCSS中的混合器有点类似于js中的方法,定义一个混合器就相当于定义了一个方法,而我们定义方法的时候可以定义参数,在调用方法的时候,我们则可以使用这个参数。同理,在 SCSS 当中,定义混合器也可以使用参数,代码如下所示:@mixin flex-box($direction) { display: flex; flex-direction: $direction;}.item1 { @include flex-box(row); justify-content: center; align-items: center;}上面的代码经过 node-sass 编译后,如下:.item1 { display: flex; flex-direction: row; justify-content: center; align-items: center;}3.2 混合器参数的默认值为了在@include混合器时不必传入所有的参数,给参数指定一个默认值,上面的scss 中,如果希望flex布局中默认的主轴是 column,可以定义如下:@mixin flex-box($direction: column) { display: flex; flex-direction: $direction;}.item1 { @include flex-box; justify-content: center; align-items: center;}在上面的 SCSS 当中,我们在调用的时候没有传递参数给混合器,而是使用了它的默认值4、 选择器继承使用sass的时候,最后一个减少重复的主要特性就是选择器继承。选择器继承指的是一个选择器可以继承另一个选择器定义的所有样式。这个通过@extend语法实现,如下代码://通过选择器继承继承样式.error { border: 1px solid red; background-color: #fdd;}.loading-error { @extend .error; border-width: 3px;}上面的@extend就相当于继承,后面的.error 则是继承的选择器,上面的 scss 经过编译后所呈现的代码如下所示:.error,.loading-error { border: 1px solid red; background-color: #fdd;}.loading-error { border-width: 3px;}说明:我们可以看到,继承的选择器,它在这里使用了分组选择器来完了这个功能,这样我们的.loading-error 的样式则单独的区分开。关于@extend有两个要点你应该知道。跟混合器相比,继承生成的css代码相对更少。因为继承仅仅是重复选择器,而不会重复属性,所以使用继承往往比混合器生成的css体积更小。如果你非常关心你站点的速度,请牢记这一点。 继承遵从css层叠的规则。当两个不同的css规则应用到同一个html元素上时,并且这两个不同的css规则对同一属性的修饰存在不同的值,css层叠规则会决定应用哪个样式。 相当直观:通常权重更高的选择器胜出,如果权重相同,定义在后边的规则胜出。写在最后变量嵌套 CSS 规则混合器继承以上的四种是 Sass 的核心内容,也是最基础内容,通过了解学习后,我们可以快速的编写页面样式,提高开发效率,做到 CSS 代码重复率低,可复用性高。 下一篇我会带来关于Sass的高级用法,敬请期待!???? ...

April 15, 2019 · 2 min · jiezi

腾讯再开源三项技术,提升企业开发及运营效率

(2019年4月11日,深圳)在腾讯内部,工程师文化依然是主流,鼓励用代码、用技术说话——“talk is cheap, show me the code。”而其中优质的技术,也正在越来越多地开源给外部开发者,推进国内开源社区的蓬勃发展的同时,腾讯也从开放、互助、创新的开源生态中获取养分,以更低的成本提升重点战略技术。4月11日,腾讯在OSCAR开源先锋日上宣布开源三大开发工具:腾讯蓝鲸智云社区版“PaaS平台”及其调度编排SaaS“标准运维”、基于TARS框架开发的分布式NoSQL存储系统DCache。腾讯已逐步从开源新兵转变成为一员开源大将。据腾讯开源运营负责人王春雨介绍,2019年1月24日,腾讯在GitHub累计获得Star数突破20万颗,标志着腾讯开源的工作在国际社区获得广泛关注及认可。这也是腾讯向产业互联网转型做出的又一努力。作为产业互联网的核心之一,技术是公司业务发展和产品创新的动力与支撑。腾讯蓝鲸产品中心总监、T4工程师党受辉在会上介绍到,腾讯蓝鲸智云(简称:蓝鲸),是腾讯自研自用的一套用于构建企业研发运营一体化体系的PaaS开发框架,提供了aPaaS(DevOps流水线、运行环境托管、前后台框架)和iPaaS(持续集成、CMDB、作业平台、容器管理、数据平台、AI等原子平台)等模块,帮助企业技术人员快速构建基础运营PaaS,提升企业研发运营效率,助力企业运维团队转型,提供更多增值服务。此前腾讯蓝鲸智云已免费对外开放了支持私有化布署的社区版,得到大量企业运维以及开发人员的使用,帮助一大批企业快速构建运维自动化的能力。为了更好的提升社区用户的参与深度以及助力运维从业人员的转型,腾讯蓝鲸智云将开源社区版的“ PaaS平台”以及调度编排SaaS“标准运维”。此次腾讯蓝鲸新晋开源的PaaS平台承载所有SaaS系统/工具,让用户可以简单、快速地创建、部署和管理应用,提供了完善的前后台开发框架、服务总线(API网关)、调度引擎、公共组件等模块,帮助用户快速、低成本、免运维地构建支撑工具和运营系统。它为一个SaaS应用从创建到部署,再到后续的维护管理提供了完善的自动化和自助化服务,从而使开发者可以集中精力关注SaaS应用的逻辑开发。腾讯蓝鲸开源的另一板块“标准运维(SOPS)”,则是通过可视化的图形界面进行任务流程编排和执行的系统,是一款轻量级的调度编排类SaaS产品。基于腾讯蓝鲸PaaS平台的API网关服务,对接企业内部各个系统API的能力,将在多系统间切换的工作模式整合到一个流程中,实现一键自动化调度。同时屏蔽了底层系统之间的差异,让运维人员可以将业务日常的运维工作交给产品、开发、测试等人员执行,实现业务发布、变更等日常工作的自助化。为降低非运维人员的操作成本,标准运维与蓝鲸PaaS平台深度整合,为用户提供了“轻应用”和“职能化”功能,提高自助率。目前,腾讯蓝鲸PaaS平台、标准运维已在GitHub上开源,后续将会有更多的产品开源。此次开源的第三个技术DCache——一个基于TARS框架开发的分布式NOSQL存储系统。会议上,DCache技术负责人山宝银从核心特点,架构设计,运维平台,应用现状及未来发展规划这几个方面向大家介绍了DCache。DCache主要用于高性能分布式缓存,数据采用内存存储,支持key-value,k-k-row,list,set,zset多种数据结构,通过连接后端DB实现数据持久化。采用集群模式,具有高扩展,高可用的特点,支持异地镜像,就近接入。基于TARS框架支持名字访问、同步、异步、单向RPC调用。同时具有一套可视化高效运维平台,助力开发和运维人员轻松完成服务部署、扩缩容、迁移,以及服务配置,服务调用质量监控。DCache在腾讯内部已有大量业务使用,日访问总量超万亿次,目前已在GitHub上开源。山宝银表示,接下来还会开发出客户端SDK,直连CacheSvr,项目动态会及时更新到GitHub上,欢迎大家提Issues或PR,参与到DCache的开源建设中。腾讯正在发力产业互联网,今年1月,腾讯成立了技术委员会。技术委员会下设“开源协同”和“自研上云”项目组,计划发力内部代码的开源和协同,并推动业务在云上全面整合。王春雨提到,腾讯的外部开源希望以“自下而上”的方式,推动内部开源协同,以减少代码的重复开发,提升项目推进效率。2018年,腾讯成立开源管理办公室,每个开源项目都设立了相应的管理委员会,在开源政策制定、开发人员培训上一直持续投入,确保开源合法、合规,促进和建立开源治理规范,为开源协同打下坚实基础。同时,技术委员会的成立,可以统筹内部研发工作在云端深度整合,加速云上配置一体化。截至2019年4月,腾讯在全球知名的社交编程及代码托管网站GitHub上已发布73个项目,这些项目覆盖人工智能、移动开发、小程序、架构、系统等多个前沿技术领域,均是微信、腾讯云、腾讯游戏、腾讯AI、腾讯安全等腾讯明星业务在经海量数据检验后,对外开放的经验成果。OSCAR开源先锋日是IT界一年一度的开源盛会,由中国信息通信研究院主办,云计算标准与开源推进委员会、云计算开源产业联盟承办,腾讯、滴滴、唯品会、华为、蚂蚁金服等企业分享了最新的开源项目,共同推进国内开源社区的发展。腾讯后台高级工程师山宝银、腾讯蓝鲸产品中心总监、T4工程师党受辉受邀参加了这次峰会,分别以“DCache:基于内存的分布式NOSQL存储系统”、“腾讯游戏研运体系开源计划”为主题进行了分享,受到开发者广泛关注。关于腾讯开源腾讯开源始于2010年。在开放战略背景下,腾讯在内部开始推行“开放、共享、合力开发”的研发模式。如今,腾讯已有超过8000个内部开源的开发项目(组件)在公司跨团队、跨部门、跨业务地运用。从2016年起,腾讯开始将内部优质项目对外发布,以Github为主要阵地进行开源项目经营,腾讯对外开源开始进入了快节奏时代。目前,腾讯已将三个广受社区的认可的开源项目TARS、TSeer和Angel分别捐赠Linux基金会和Linux深度学习基金会长期运作。同时,腾讯已成为Linux 基金会、Apache基金会、Openstack基金会、MariaDB基金会及LF深度学习基金会的白金会员,还加入GPL合作承诺,坚持以专业、合规的方式推进开源工作。DCache项目源码地址:https://github.com/Tencent/DC…

April 15, 2019 · 1 min · jiezi