自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张驰Terry

汗水浇灌灵感,千里之行始于足下

  • 博客(700)
  • 资源 (9)
  • 收藏
  • 关注

原创 快速创建自己的第一个 Typescript 项目

1.基于脚手架项目创建你的项目git clone <https://github.com/alexjoverm/typescript-library-starter.git> ${yourProjectName}cd ${yourProjectName}2.安装依赖npm install3.启动开发指令npm run start4.在实例网页中引入构建的产物<!DOCTYPE html><html lang="en">&

2021-01-17 10:31:21 2019 8

原创 “SOLID“五大原则

开闭原则说到面向对象设计,大部分人脑海中闪过的恐怕都是“23种设计模式”。设计模式代表的是业务场景中总结出的最佳实现方式,属于实践的范畴,在其之上是更为重要的“SOLID”五大原则:Single Responsibility Principle 单一责任原则 The Open Closed Principle 开放封闭原则 The Liskov Substitution Principle 里氏替换原则 The Dependency Inversion Principle 依赖倒置原则 Th

2021-01-15 09:52:41 934

原创 AST 入门必知必会

1. AST简介AST ( Abstract syntax tree ) 是编译原理中的一个概念,即源代码语法结构的一种抽象表示。它以树的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。 例如这样的一段 js 代码,可以表示为下面的结构:function abs(number) { if (number >= 0) return number else return -number}有了 AST,我们面对的就不再是一坨各种符号混杂空格...

2021-01-13 06:54:07 947

原创 Web产品国际化经验总结

1. 业务背景国际化前提:有服务非中文用户的场景需求 国际化根据业务定位确定实现策略,即实现标准的国际化产品或专业的国际化产品2. 普通国际化与专业国际化3. 技术原理3.1 工程化compiler —— 编译时生成不同语种版本的代码 —— docs editor xtb文件runtime —— 词条(读取词条文件, 国际化平台拉取)3.2 经验总结翻译 —— 专业团队 UI调整 复数|模板 —— 词条嵌套 避免硬翻译 避免空返回 —— 无对应语种词条返回默认值

2021-01-13 06:52:28 242

原创 详解大型前端项目知识点

目标解决实际问题 成本与产出(效率) 可度量,可定义 ,数据驱动 快速可复制,降低边际成本内容:前端基础架构 项目管理 代码管理 版本管理 CI/CD 缺陷管理 外包管理 开发环境 预发布环境 测试环境 本地开发环境 公有云、私有云环境 规范 代码风格 性能,可用性,可访问性 技术文档 培训分享 统一脚手架 前后端分离 软件安全 Mock服务 BFF GraphQ

2021-01-12 08:36:49 1876 4

原创 一行代码实现网站移动化的原理与实现

阅读时间10分钟前言在2013年,智能手机才刚刚开始进入千元机时代,手机硬件和手机 App 开发成本远远高于2020年现在的市场平均价,并且企业网站移动化还是一个新概念。企业和政府开始重视门户网站在移动端浏览器的体验,例如中国政府网,联想,微软,w3c,csdn, 探路者等等,他们在寻找企业网站移动化解决方案的过程中,在经过预算,技术,产品体验以及服务质量的综合对比,最后选择云适配 (Allmobilize )方案,而这个方案的特点是在原有的 pc 前端工程中引入"一行代码实现网站移动化",这行

2021-01-08 12:01:53 2728 13

原创 JavaScript的DOM操作(节点操作)

创建节点createElement()var node = document.createElement(“div”);没什么可说的,创建一个元素节点,但注意,这个节点不会被自动添加到文档(document)里。2、创建文本节点createTextNode()var value = document.createTextNode(“text”);创建一个文本节点,常

2013-01-11 08:54:04 16025 1

原创 Event Loop 和 JS 引擎、渲染引擎的关系

本文转载自公众号《神光的编程秘籍》本文会讲 JS 引擎的编译流水线、渲染引擎的渲染流程,然后引入为什么需要 event loop。希望能解答你以下疑惑: JS 引擎的编译流水线是什么 渲染流程都做了什么 为什么需要 event loop 不同的 JS 宿主环境有哪些不同 micro task 和 check 都解决了什么问题 requestAnimationFrame 是宏任务还是微任务 requestIdleCallback 是什么

2021-05-13 13:47:05 2

原创 surrogate pair 是什么?

Surrogate Pair是UTF-16中用于扩展字符而使用的编码方式,是一种采用四个字节(两个UTF-16编码)来表示一个字符。例如 "????"就需要四个字节来表示

2021-05-12 14:50:16 2

原创 Typescript 中泛型是什么

在TypeScript中,泛型是一种创建可复用代码组件的工具。 这种组件不只能被一种类型使用,而是能被多种类型复用。 类似于参数的作用,泛型是一种用以增强类(classes)、类型(types)和接口(interfaces)能力的非常可靠的手段。function identity<T>(arg: T): T { return arg;}let output = identity<string>("myString"); // type of output wi

2021-05-11 15:49:42 2

原创 软件基础架构介绍

其一,基础平台。包括:冯·诺依曼体系、编程语言、操作系统。其二,桌面开发平台。包括:窗口系统、GDI 系统、浏览器与小程序。当然我们也要理解桌面开发背后的架构逻辑,MVC 架构。其三,服务端开发平台。包括:负载均衡、各类存储中间件。服务端业务开发的业务逻辑比桌面要简单得多。服务端难在如何形成有效的基础架构,其中大部分是存储中间件。其四,服务治理平台。主要是以容器技术为核心的 DCOS(数据中心操作系统),以及围绕它形成的整个服务治理生态。这一块还在高速发展过程中,最终它将让服务端开发变得极其简单

2021-05-08 09:28:17 884 6

原创 gPRC基本介绍

1.说明gRPC英文全名为Google Remote Procedure Call,即Google远程过程调用,是Google发布的一个高性能、通用的开源RPC框架,2.gRPC定义gRPC是一个现代的开源高性能RPC框架,可以在任何环境中运行。它可以高效地连接数据中心内和跨数据中心的服务,支持可插拔的负载平衡、跟踪、运行状况检查和身份验证。它也适用于分布式计算的最后一英里连接设备,移动应用程序和浏览器后端服务。gRPC提供了一种简单的方法来精确地定义服务,使用Protocol Buffer

2021-05-08 09:27:47 11

原创 CAP中的P代表含义

P简单来说,就是网络出现分区(变成两个相互独立的集群)时,是不是还可以正常提供服务。如果可以正常服务,说明分区容忍度高。

2021-05-08 09:27:05 5

原创 webpack系列-externals配置使用(CDN方式引入JS)

文章目录方式一:使用html-webpack-externals-plugin 方式二:直接配置externals如果需要引用一个库,但是又不想让webpack打包(减少打包的时间),并且又不影响我们在程序中以CMD、AMD或者window/global全局等方式进行使用(一般都以import方式引用使用),那就可以通过配置externals。这样做的目的就是将不怎么需要更新的第三方库脱离webpack打包,不被打入bundle中,从而减少打包时间,但又不影响运用第三方库的方式,例如import

2021-05-08 09:26:31 3

原创 什么是超集?

定义:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集,反过来,S2是S1的子集。 S1是S2的超集,若S1中一定有S2中没有的元素,则S1是S2的真超集,反过来S2是S1的真子集。...

2021-05-08 09:26:01 4

原创 Unicode 和 UTF-8 有什么区别?

Unicode 是「字符集」 UTF-8 是「编码规则」其中:字符集:为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point) 编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)广义的 Unicode 是一个标准,定义了一个字符集以及一系列的编码规则,即 Unicode 字符集和 UTF-8、UTF-16、UTF-32 等等编码……Unicode 字符集为每一个字符分配一个码位,例如「知」的码位是 30693,记作 U+77E

2021-05-01 08:39:59 25

原创 TC委员会是什么?

TC专业委员会(英文:Technical Committee,缩写TC),在一定专业领域内建立的从事标准化工作的技术工作机构。

2021-05-01 08:39:28 25

原创 什么是稀疏数组以及一个小例子

为什么要用稀疏数组?比如说以下这种情况,只有两位有效数字其他全是0,很多0值无疑是很浪费空间的,这时我们就会使用稀疏数组来存入他的有效信息0 0 0 0 0 0 0 6 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 8 0 0将以上数组转为稀疏数组为: row column value 4 9 2 0 7 6 3 6 8第一行 4 9 2 代表的是 4行 7列 2个有效数字 第二行为 第一个有效数字在原数组的第0行 第7列 有效值为

2021-04-28 16:04:39 1

原创 日志级别如何划分?

日志级别如何划分?日志记录是软件开发的一个概念,几乎所有(可能并不是所有)软件都能从日志记录中获得很多好处。在开始一个大项目时,日志记录通常是我第一个要搭建的子系统。关于它的好处,我可以说出一大堆,但我想把这个机会留给其他人(或者哪一天我想说了再说)。现在,我想说一说日志级别。日志级别是对基本的“滚动文本”式日志记录的一个重要补充。每条日志消息都会基于其重要性或严重程度分配到一个日志级别。例如,“你的电脑着火了”是一个非常重要的消息,而“无法找到配置文件”的重要等级可能就低一些。很多应用程序和库

2021-04-28 16:04:01 24

原创 Go语言能否取代JAVA,成为下一个王者?

Go 是 Google 开发的一种编程语言,在过去的几年里取得了很大的成功。现代的云端、网络和 DevOps 软件的很大一部分都是用 Go 编写的,例如 Docker、Kubernetes、Terraform、etcd、Istio 等项目。许多公司也将它用于通用场景下的开发工作。藉由 Go 所支持的功能,这些项目得以吸引大量用户,而 Go 的易用性也让越来越多人都能迅速成为贡献者。Go 的优势在于能够将简单的和经过验证的想法结合起来,同时避免了其他语言中出现的许多问题。本文概述了 Go 背后的一些设计原

2021-04-28 16:03:38 15

原创 FFmpeg是什么?

什么是FFmpeg?FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。FFmpeg官网:https://ffmpeg.org。强大的功能FFmpeg有非常强大的功能包括:视频采集、视频格式转化、视频截图、视频添加水印、视频切片(m3u8、ts)、视频录制、视频推流、更改音视频参数(编码方式、分辨率、码率、比特率等)功能,等等...FFmpeg主要构成FuncNamesFeatu

2021-04-28 16:02:45 31

原创 JS 移位操作符

1.左移运算<<在右边补0,数字变大2、右移运算>>数字变小/*获取数字 num 二进制形式第 bit 位的值。注意:1、bit 从 1 开始2、返回 0 或 13、举例:2 的二进制为 10,第 1 位为 0,第 2 位为 1 */function valueAtBit(num, bit) { return (num >> (bit -1)) & 1;}valueAtBit(128, 8)//和1按位与, 如10000

2021-04-28 16:02:11 5

原创 JS &、|、^和~(逻辑位运算符)

位运算就是对二进制数执行计算,是整数的逐位运算。例如,1+1=2,在十进制计算中是正确的,但是在二进制计算中,1+1=10;对于二进制数 100取反,等于 001,而不是 -100。位运算符有 7个,分为两类:逻辑位运算符:位与(&)、位或(|)、位异或(^)、非位(~) 移位运算符:左移(<<)、右移(>>)、无符号右移(>>>)逻辑位运算符与逻辑运算符的运算方式是相同的,但是针对的对象不同。逻辑位运算符针对的是二进制的整数值,而逻辑运算符..

2021-04-28 16:01:22 12

原创 Git工作流应该如何选择

单主干 - 小步快跑,简单清晰双主干 - 周期发版, 并且产品业务发展为单一应用的多个重大特性并行迭代

2021-04-24 15:13:47 8

原创 租户之间的数据隔离

与租户相关的数据存储,都需要有唯一的租户标识,因为租户加入多个组织团队工作, 租户标识由三要素组成:企业ID,用户ID,以及是否为沙箱企业

2021-04-24 15:11:46 15

原创 SaaS数据埋点模型设计

企业企业ID企业名称用户用户ID用户姓名浏览器厂商版本设备尺寸操作系统厂商版本号应用应用市场版本号应用内部版本号设备设备型号渠道号事件事件ID事件类型页面访问点击页面停留业务大类crmimcalendardocs...模块模块名称模块数据子模块子模块名称操作操作id页面页面数据页面地址页面版本数据数据版本自定义指标met...

2021-04-24 15:10:42 16

原创 数据采集&监控(架构)

2021-04-24 15:09:09 5

原创 构建部署(架构)

2021-04-24 15:08:15 5

原创 企业级物料库设计

2021-04-24 15:07:44 5

原创 FE-CLI 本地工程套件(架构)

2021-04-24 15:07:00 4

原创 SaaS前端规范架构

规范架构UI协作规范协作规范前后端协作规范新建项目规范流程规范技术选型规范Git规范包管理规范代码风格规范代码提交规范项目结构规范兼容规范灰度规范发布规范Oncall规范开发规范安全规范图片规范开源规范开源源码规范埋点规范监控规范性能监控规范异常监控规范私有化规范组件规范...

2021-04-24 15:06:01 12

原创 SAAS研发体系方向

2021-04-23 11:41:52 9

原创 SAAS团队研发流程

2021-04-23 11:41:15 10

原创 SAAS前端组织特点

商业SaaS在典型的商业SAAS组织中,通常以 n + m +1组合,n代表工程师围绕多个行业应用, m代表构建多个标准化产品,1 代表基础研发平台(细分到前端组织就是前端架构组或者web平台部门),前端团队通常人数在100人以内,前后端配比 1:3 ,并且前端团队通常具备以下3个特点:业务深耕 (团队成员通常对该领域的业务理解在5年以上) 专注付费业务(前端团队的大部分研发资源投入在于交付付费客户的产品需求) 包含业务定制平台团队,解决客户定制需求对标准产品的侵入工具SaaS在

2021-04-23 11:39:31 829 2

原创 Notion 团队人才画像

Notiton的人才特点:全栈工程师 B端经验 5年以上经验 工程师占比 50%以上工程师团队成员:Simon Last - 联合创始人 有一张长脸,是一个设计开发兼具的全栈工程师 Michael Manapat 工程负责人,来自 Stripe Alicia Liu 15年工程经验,来自Amazon Jaje Teton-Landis 10年工程经验,来自 Airbnb Lauren Oliveri, 9年工程经验 来自 Mail Consider Matt DuVal...

2021-04-23 11:38:42 793 1

原创 SaaS的商业模式

通俗来讲,SaaS产品在拥有了一定数量的客户之后,只要把该产品维护好,并且持续保持良好的用户体验,让客户对产品保持粘性,从而产生良好的客户复购率。最终持续获得年度客户订阅费,并且可以续持向用户推出新的SAAS产品,重复此模式。SaaS的本质是续费率,持续健康发展的SAAS企业能挣钱(LTV > CAC+CSC)的能力,并且持续优化服务成本(低CSC),最终获得极大的商业投资回报。...

2021-04-23 11:34:16 17

原创 SaaS关键指标

1.生命周期LTCustomer Lifetime, 代表客户生命周期,即用户买了几年2.订阅账号数量单个租户在单位时间内购买的账号(License)数量3.生命周期价值LTVLTV(Customer Lifetime Value)又称为 CLTV 或 CLV,代表客户生命周期的财务价值,即单个客户在整个使用期内产生的总收入。4. 单一客户收入ARPUARPU是 "The average revenue per user" 的缩写,描述每用户平均收入或平均每用户收入, 用于衡..

2021-04-23 11:30:24 12

原创 SaaS 发展阶段

在了解SaaS的商业模式(怎么赚钱)前,我们可以看下一个典型的SaaS产品发展过程

2021-04-23 11:29:01 9

原创 2020美国最佳SaaS服务商

SaaS服务商 服务内容 Shopify 一站式电商 SaaS 平台 Zoom 远程会议 SaaS grammarly 英文协作辅助工具 mailChimp 电子邮件订阅RSS 的在线工具 nextiva...

2021-04-23 11:27:57 21

原创 SaaS分类

商业SaaS定义:除了提供一部分“工具”价值外,还能为客户企业增加营收、提供新的营收项目, 例如一个 CRM SaaS 不仅提高对进销存流程与数据管理效率,并且针对使用CRM SaaS的客户结合工商数据进行商机推荐。工具SaaS定义:为客户企业提供了一个提高管理效率的工具。例如腾讯文档,Zoom,Slack,Monday,Airtable,轻雀协作这样工具软件,日常办公,协同协作...

2021-04-23 11:27:12 11

阅读md文件的工具

md工具

2013-09-04

前端架构图-前端未来.png

前端架构图-前端未来.png

2021-01-08

kibana-5.3.1

Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。 Kibana让我们理解大量数据变得很容易。它简单、基于浏览器的接口使你能快速创建和分享实时展现Elasticsearch查询变化的动态仪表盘。安装Kibana非常快,你可以在几分钟之内安装和开始探索你的Elasticsearch索引数据,不需要写任何代码,没有其他基础软件依赖。

2017-09-06

javascript高级编程

javascript高级编程

2012-11-28

apache-maven-3.5.0

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。 Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

2017-09-06

elasticsearch-5.3.1.zip

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题以及可能出现的更多其它问题。

2017-09-06

Angular开发指南

Angular入门书籍,讲的很细,从Angular对dom的编译,数据的双向绑定,服务的注入等等都将的很细,推介大家看一看

2013-09-04

js高级程序设计

JavaScript高级程序设计(中文版 全书)

2012-11-28

java生成json对象

java生成json对象,这是封装好的jar包

2012-11-25

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除