2024
双向语序
December 07, 2024什么是双向语序? 双向语序(Bidirectional Text)是指在同一文本段落中混合存在两种书写方向的现象: RTL(Right-to-Left):从右向左书写的语言(如阿拉伯语、希伯来语) LTR(Left-to-Right…
国际化-RTL
December 07, 2024什么是RTL? RTL是”Right-to-Left”的缩写,指的是从右向左的书写和阅读方向。与世界上大多数语言(如英语、中文等)采用的LTR(Left-to-Right,从左到右)方向不同,RTL语言有着独特的展示和交互方式。 典型的RTL语言包括: 阿拉伯语(Arabic…
国际化(i18n)和本地化(l10n)区别与联系
December 06, 2024国际化(Internationalization,i18n) 和 本地化(Localization,l10n) 是软件开发中支持多语言、多地区的两个关键概念 1. 定义 国际化(i18n…
国际化项目中 ICU 是什么
December 06, 2024在 国际化(i18n)和本地化(l10n) 开发中,ICU(International Components for Unicode) 是一个由 Unicode…
i18n要素
December 05, 2024一、货币本地化 1. 货币符号 不同地区使用不同货币符号(如:¥/$/€/£) 示例:人民币(¥)、美元($)、欧元(€) 2. 货币精度 小数位数规范(日本円通常取整,人民币常用2位小数) 示例:100 JPY vs 100.00 CNY 3. 货币符号位置 前置或后置(€…
2023
精读 Out of the Tar Pi(上)
June 04, 2023原文地址:http://curtclifton.net/papers/MoseleyMarks06a.pdf 共12个章节,讨论复杂度性对编程的影响,论文包含66页,分三篇文章进行精读 1 Introduction…
longChain 学习
March 31, 2023最近了解 Open AI 的过程中发现这个框架,把中文文档整理如下 LangChain 是一个使用语言模型驱动应用程序开发的框架。最强大、最具差异化的应用程序不仅仅通过 API…
2021
如何给予有效的反馈意见
November 02, 2021…
如何分析问题
October 01, 2021…
系统可维护到底指 的是什么
January 01, 2021在美团一些大型业务开发中,经常会出现大家觉得系统维护不下去了,一个反复被提及的词就是代码复杂度高。但是后台业务确很少有类似的声音,其实后台业务的复杂度也不低,但是为什么会有类似的情况发生呢,其实我认为对是否可维护不完全是客观的,比如考虑以下几个 case…
2020
小程序工程化思考
December 25, 2020和传统工程化对比 先看下传统前端工程化关注的事情 (from umi) image.png image.png 小程序可做的就相对很少,源于技术本身的约束性,我们做一个对比: 框架角度:目前市面上有 kbone,taro,remax/r2m,mpvue,mpx…
使用TS 开发 JS 虚拟机
July 21, 2020背景 在我们的小程序&低代码平台中,有需要执行动态下发代码的诉求。世面上已知的一些 vm 没有完整通过 es5 或 es2015 测试用例的,无法在生产环境使用。因此需要自研一个 JSVM 引擎。 目前已放到 github 上 :jsvm…
关于基建工作的思考
June 01, 2020…
关于跨团队沟通与合作
May 04, 2020…
2019
使用 完整react能力 开发小程序
November 22, 2019最近这一年在小象负责移动端相关的架构工作,之前提到我们游戏基于 pixi 自研了一个游戏框架,成功的将 react 桥接到 pixi 上。这给了我很大的信息,开始思考是否能让 react…
前端视角支持游戏开发
November 12, 2019最近实现了一个天天领钱 H5 游戏,一期基础场景如下 image.png 在做果园之前,我们和其他部门专职做游戏的同学充分的进行了沟通,得到很多宝贵的经验: 框架层面:了解到他们使用的是 cocos creator 框架,但是提到 cocos 框架是 c++迁移到 js…
国际化-RTL
May 26, 2019背景 今天看到一个TS的写法 这两个等价么?发现对这两个操作符的认识还是不够,于是做了整理如下 1. 的作用 获取对象类型的键的联合类型: 这常用于限制函数参数必须为对象的有效键:…
推进工作的方法论之PDCA循环
February 13, 2019意义 每一项工作,都是一个pdca循环,都需要计划、实施、检查结果,并进一步进行改进,同时进入下一个循环,只有在日积月累的渐进改善中,才可能会有质的飞跃,才可能取得完善每一项工作 细则 Plan:制定目标与计划; Do:任务展开,组织实施; Check…
RASCI模型
February 13, 2019在快速发展的过程中,会不时的冒出一些之前没有明确界定的事情,往往产生一些看似大家都在负责,事实上无人负责的事情。RACI 模型对快速发展的我们的最重要的启发是:每件事都要尽早确定谁负责,也就是确定主 R。 谁负责(R = Responsible…
MECE-金字塔原理
February 12, 2019image.png 7个问题理解《金字塔原理》: 什么是金字塔原理? 一件事情可归纳出一个中心论点,而这个中心论点可以由3-7个论据进行支撑; 每一个论据本身又可作为一个论点,同样被3-…
SWOT分析法
February 12, 2019SWOT 分析是一种战略规划方法,用于帮助个人或组织识别其优势(Strengths)、劣势(Weaknesses)、机会(Opportunities)和威胁(Threats…
5WHY分析法
February 11, 2019简介 COE复盘时经常会提到5why分析法,又称“5问法”,其实就是对一个问题点连续以5个“为什么”来自问,以追究其根本原因。 虽为5个为什么,但使用时不限定只做“5次为什么的探讨”,主要是必须找到根本原因为止,有时可能只要3次,有时也许要1…
2018
24点
May 07, 2018题目 从 1~13 任取四个数字,通过+,-,* ,/和() 来计算 24 点 其实这个是算法分析里面提到过的一个标准做法,使用的方式是逆波兰表达式,也就是后缀表达式 首先把全部运算情况的逆波兰表达式穷举出来,采用逆波兰表达式是因为不用考虑操作符的优先级. 2…
螺旋化
May 06, 2018原题如下 Your task, is to create a NxN spiral with a given . For example, spiral with size 5 should look like this: and with the size 10: Return…
小程序实时日志
May 01, 2018背景 小程序开发的过程中,我们遇到一个比较麻烦的问题,在真机调试的时候是看不到日志的。本来我们只需要支持美团小程序,这个情况还可以通过VConsole来处理,但是后面我们开始支持美团小程序开发的时候,因为机制问题没有支持service…
DI&IOC基本概念
May 01, 2018DI 和 IOC 的关系 DI(依赖注入)和 IOC(控制反转)是两个相关但不完全相同的概念。 控制反转(IOC)是一种设计原则,它强调将控制权从应用程序代码中转移到外部容器或框架中。根据 IOC…
实时协作文档复盘
March 02, 2018马上要转战 新零售的业务了,大象商业化即将暂停,是要对着半年做的文档事情做一个总结了,凝结了很多的心血在这个业务中 待续…
2017
实时协作-yjs和ShareDB对比
April 30, 2017两个方案都在脑图的协作中尝试了一下,大体总结如下: Yjs (基于 CRDT 算法) 和 ShareDB (基于 OT 算法) 是两种流行的实时协作编辑解决方案,每种都有其优点和缺点。 Yjs (基于 CRDT 算法) 的优点: 离线支持和 冲突解决: CRDT…
实时协作-yjs基本理解4-Ytext
April 12, 2017Yjs 中的 Y.Text 是一种特殊的 CRDT (Conflict-free replicated data types),它是用于处理分布式环境中的实时合作文本编辑的数据结构。Y.Text 允许多个用户同时在文本的任何位置进行插入和删除操作,无需担心冲突或数据不一致。 Y…
实时协作-yjs基本理解3-操作日志
April 12, 2017在 Yjs 中,操作日志(Operation Log)被用于记录对数据的所有修改操作,这包括插入字符、删除字符等。每个操作都包含有关操作的信息,如操作的类型(插入或删除)、操作的位置、操作的内容,以及操作的唯一标识符(包含用户 ID…
实时协作-yjs基本理解2-向量时钟
April 12, 2017向量时钟(Vector Clock)是分布式系统中用于记录和比较事件发生顺序的一种数据结构。每个节点都维护着一个向量时钟,向量时钟是一个列表,每个元素对应一个系统节点的逻辑时钟值。逻辑时钟值是一个非负整数,表示一个节点已经发生的事件的数量。 在 Yjs…
实时协作-yjs基本理解
April 11, 2017Yjs 是一个开源的 JavaScript 库,它实现了一种称为 CRDT(Conflict-free Replicated Data Type)的数据类型,这是一种可以在多个副本之间无冲突地复制和合并的数据类型。Yjs…
实时协作-CRDT基本理解(2)
April 10, 2017在现实中,CRDT 的实现需要考虑更多的细节,比如并发操作和网络延迟。为了处理这些问题,一种常见的 CRDT 用于协作编辑的类型是 LSEQ tree。然而,这个类型的数据结构非常复杂,因此在这里,我们将使用一种简化的数据类型——列表 CRDT…
实时协作-CRDT基本理解
April 10, 2017CRDT(Conflict-free Replicated Data Types)通过合并策略和操作转换来保证两个端之间的实时协作最终一致性。下面使用一个简单的文本编辑器的例子来建立一下体感: 假设我们有两个端 A 和端 B,它们同时编辑同一个文本。现在我们进行如下操作: 端 A…
摘录 林彪
January 10, 2017杨成武回忆:1936年1…
没事刷刷题之-数组列表中的最大距离
January 01, 2017题目 给定 m 个数组,每个数组都已经按照升序排好序了。现在你需要从两个不同的数组中选择两个整数(每个数组选一个)并且计算它们的距离。两个整数 a 和 b 之间的距离定义为它们差的绝对值 |a-b| 。你的任务就是去找到最大距离 代码
2016
2016总结
December 24, 2016201…
德州牌型概率
August 10, 2016结论 德州扑克的牌型,从高到低排序如下: 皇家同花顺(Royal Flush)概率是 ,约每649,739次有一次。 同花顺(Straight Flush)概率是 ,约每72,193次有一次 四条(Four of a Kind)概率是 ,约每4,165次有一次。 葫芦(Full…
IM 消息文件实现
July 23, 2016背景: 之前负责的云盘业务和 内部使用的大象 IM 融合,云盘需要负责大象日常 im…
轻OA 的一些思考
July 11, 2016任何信息化系统,从技术角度看过去,都是流程,表单和角色。 从业务的角度看过去,会有所不同,比如 ERP 关注的物质资产,HR 系统关注的是人力资产,CRM 关注的是外部客户资源等等。 轻 OA 来讲的话,关注的应该是事务性的工作,比如周报,日程,TODO…
nodejs addon 结合 libuv 使用经验
April 20, 2016最近在基于 electron 做客户端相关工作,需要写 nodejs 的 addon 以便拓展 electron 相关功能,涉及到一些高级东西,写下相关经验。 一:asynchronous addons 在开发过程中,我们一定会遇到需要在 c…
2015
2015总结
December 31, 2015总的来说,这世界是个好地方,值得为它奋斗。
云盘点击热点图
November 12, 2015最近在云盘中实现了热点上报系统,方便 UED 同学进行针对性的设计,最后成品如下: image.png 实现 采集上报 实现思路很简单,因为云盘使用 react 框架,常规的业务事件都由 react 合成事件代理。所以热点 sdk 可以直接将 在 document…
云盘服务端从nodejs 专项 java 相关复盘
September 24, 2015说明 这里是对云盘 node.js 转向 java 做的一个客观总结,个人平时也会经常使用 nodejs,go,python,C#,java 进行开发,比较熟悉各个工具链,所以也并没有语言,框架上面的歧视。 云盘 web 前后端,服务端开发是我在…
spring aop 权限拦截
September 23, 2015在云盘服务端 java 化的进程中,我们选择使用了在 header 中添加认证头信息的方式进行权限校验,这样就触发了一个问题,spring mvc 中如何完成这个认证过程。里面有一个难点就是如果请求 body…
dozer使用
September 23, 2015在进行云盘项目开发的时候,经常会遇到将领域模型转化为业务模型,或者将业务模型转化为符合要求的JSON格式,这里面就涉及到大量的 Java Bean to Java Bean…
使用v8与js做交互,理解node基本原理
April 28, 2015前阶段刚说到全栈的问题,到底要多深,多后期才能算是全栈每个人心中都有自己的看法,我自己感觉多学一些总不是坏事。 最近用 node 遇到了一些 障碍,在看 node 的源码了解一下,然后想到网上现在还没有相关的分析,大多数都是开发 addons,而且中途 v…