admin 发布于 01月28, 2022

2022,每个 Leaper 都会有好未来

我是郑庆鑫,前好未来励步事业部的前端负责人,LeapFE是我们团队的简称,曾几何时,我们团队的共同愿景是成为业界知名的前端团队。而今年由于政策对公司毁灭性打击,这个愿景要搁置了,但对于我们绝大多数人,已经或者即将会有更好的开始。

最近这三年,每年春节假期前一天我都会写个团队纬度的年终总结在公司内以周报的形式发出。虽说今年有些不同,但却是最值得总结的,无论是对于团队还是对于我个人来说。

LeapFE从最开始的 5 人,到后来近 35 人,再到今天的在职人数0,大概经历了三年半的时间,这是段美好的经历,很多个精彩瞬间历历在目,是我成长最快的阶段。

阅读全文 »

admin 发布于 07月22, 2021

新励步课件体系介绍

前言

想必很多“投身于教育行业”的前端工程师们都绕不过“课件”这个话题,对于前端来说,课件项目是教育公司相比互联网公司特有的需求之一,对于公司来说也是及其重要的。目前教育行业我了解到的生产 h5 课件的方式大致分为以下三种,每种方式也是各有优劣,下面是我的理解:

  1. ppt 制作,通过三方或者自研平台转换成 h5
    这种方式可能更适合初创团队或者是开发资源较少的团队,而且一般配合着其他教学服务一起使用(比如直播),这样几乎可以完全不需要技术人员的支持,当然劣势也是明显的,首先这一般要依托于三方平台,其次是编辑端一般需要在 ppt 上完成,文件易丢失和泄漏。

  2. 研发手写课件,比如用 cocos creator 根据教研老师提供的 ppt 生产课件
    这种”流水线“是比较主流的方式之一,往往通过研发手动编写出的课件更加灵活,效果更好更生动,能够完成更复杂的课件。缺点想必很多伙伴也是深有体会,这种方式人力成本巨大,要有一支固定的游戏开发团队,需要教研、设计、研发、测试共同协作才能完成一讲课件。

  3. 提供编辑平台,教研在此平台直接制作并输出 h5 课件
    第三种方式也是比较主流的方式之一,据我所知目前也有很多团队在从第二种方式转到这种方式。这种方式一般是由开发提供课件平台,教研老师自己在平台上制作课件,这样一定程度的释放了开发人员,降低了协作成本,开发课件效率更高,周期更短。当然它也是有劣势的,一般这种编辑平台的开发难度比较高,其次就是前期教研老师对于这个平台的学习成本也不小。

有时候对于团队来说,三种方式不是互斥的,大部分情况三种方式是并行的,会根据内容的类型、复杂度等方面去折中选择。对于我们团队来说,其实也是三种共存的,不过大部分内容生产使用第三种方式,下面我来给大家介绍一下励步课件的技术体系。

阅读全文 »

admin 发布于 01月07, 2020

如何实现一个翻页笔插件

前言

2020 年的第一篇文章,技术源于生活,作为码农,我觉得最得意的事情大概就是解决一个真实可见的问题了。前段时间我在团队做分享的时候,订了一个比较大的培训室,电脑里的远,所以就需要翻页笔了,而奈何年关将近,口袋吃紧,不舍得买,所以决定自己开发一个。

因为我当时的 ppt 写在了slides.com上,最先想到的就是搞个 Chrome 插件吧。所以,这篇文章会记录“翻页笔”插件的实现,及 Chrome 插件的简单介绍。

阅读全文 »

admin 发布于 05月03, 2019

我从 fabric.js 中学到了什么

前言

熟悉 canvas 的朋友想必都使用或者听说过 Fabric.js,Fabric 算是一个元老级的 canvas 库了,从第一个版本发布到现在,已经有 8 年时间了。我近一年时间也在项目中使用,作为用户简单说说感受:

  1. 方便,只有想不到,没有做不到
  2. 源码写的真好,代码规范,注释清晰
  3. 社区真匮乏,国内资源尤其少
  4. 看文档不如看源码

优缺点都很鲜明,但总的来说,如果你要做一个在线编辑类的项目,比如在线 PPT,在线制图等应用,fabric 绝对是个很好的选择。

那么这一系列文章要写什么?这里不会主要介绍如何使用 fabric,主要写的内容是把在阅读源码过程中,把涉及到原理相关的知识总结出来,比如相关图形学知识、canvas 相关、fabric 中的设计思想等的相关知识。所以,如果你现在还对 fabric 不是很了解,建议先去官网找几个 demo 试一下。

下面我们进入这次的正题,这篇文章主要介绍 fabric.canvas 涉及到的部分内容。

阅读全文 »

admin 发布于 01月31, 2018

Redux 相关概念及源码分析

划重点:

  • 三个概念:(state, action) => state
    • store
    • action,例如:{type: 'COMPLETE_TODO',index: 1}
    • reducer,只是一些纯函数,它接收先前的 state 和 action,并返回新的 state。
  • 三个原则:单一数据源,State 是只读的,使用纯函数执行修改

阅读全文 »

admin 发布于 06月27, 2017

【译】Express中的 Session 是怎样工作的?

Express中的 Session 是怎样工作的?

本文转载自:众成翻译 译者:郑 farmer 链接:http://www.zcfy.cc/article/3342 原文:http://nodewebapps.com/2017/06/18/how-do-nodejs-sessions-work/

每个 Web 应用都会维护 Session,作为开发人员,我们需要知道怎么合理的使用它们。

本文将会介绍以下几个方面:

  • 什么是一个会话(Session)?

  • Session 是怎样存储数据的?

  • 如何选择存储 Session 数据的方式?

  • 使用 Session 时需要避免哪些安全隐患?

想获取更多代码示例,可以参考 session npm module,这可能是最通用的 Session 库。

阅读全文 »

admin 发布于 06月27, 2017

【译】Node.js 8 中的重要新特性及优化

Node.js 8 中的重要新特性及优化

本文转载自:众成翻译 译者:郑 farmer 链接:http://www.zcfy.cc/article/3321 原文:https://blog.risingstack.com/important-features-fixes-node-js-version-8/

随着 Node.js 8.0 版本的发布(5月30日下午12点发布),我们得到了最新的 LTS 版本,具有一系列新功能和性能改进。

本文我们将介绍 Node.js 8.0 版本中重要的功能和修复。

与以前的 Node.js 版本相比,8.0.0相当强大。虽然这其中有些还正在进行,很多正在商榷。但基本上是稳定和可测试的

  • James M Snell(@jasnell)2017年5月30日

新版本的代号是 Carbon。Node 8 将从2017年10月起成为现行的 LTS 版本,并将保持到2019年12月31日。这也意味着 Node.js 6.x 版本将在 2018 年 4 月进入维护模式,并在 2019 年 4 月废弃。

你可以在这里获取 8.0 release文档

阅读全文 »

admin 发布于 12月30, 2016

Bye,2016—life.pop(2016)

2016 匆匆而过,你 2010 年的愿望实现了吗?每年的这个时候都想写一份惊世骇俗的年终总结,但每次都提笔忘事,想不起一年都做了什么,最近沉思数日,终于想起了今年的一些可以记录的事情。

2016 不平凡,多庸俗的话,2014 不平凡的一年,2015不平凡,2017 注定不平凡的一年。年终回想自己的一年,都会想到各种精彩,而其实一年最主要的还是在柴米油盐。所以看似不平凡,却又年年如此。

alt

阅读全文 »

admin 发布于 12月04, 2016

井字游戏判断结果

井字游戏大家应该都听说过,就是一个九宫格两人一次下棋,谁先排成一排谁赢。这个题目中给出一个数组,我们来判断游戏结果,双方分别代表1,2,1 赢返回1,2 赢返回 2,平局返回 0。

其实赢的情况只有横,纵,斜排成一排,我们第一反应可以是通过数组坐标来判断,而其实这个问题用正则来解决可以非常简单,代码如下:

function isSolved(board) {
   board = board.join("-").replace(/,/g,"");
   if(/222|2...2...2|2....2....2/.test(board)) return 2;
   if(/111|1...1...1|1....1....1/.test(board)) return 1;
   if(/0/.test(board)) return -1;
   return 0;
}

阅读全文 »