javascript
文章平均质量分 85
sundial dreams
C => C++ => Java => PHP => JavaScript => Python => Dart => Go
展开
-
Nodejs插件引入第三方动/静态链接库(Libtorch)的踩坑记录
从简单的需求说起最近用Electron做一个App,碰到了一个很简单的需求,就是将Python环境下训练的Pytorch深度学习模型加载到Electron中去执行。开始想的也比较简单,本身Pytorch官方提供了libtorch库,Pytorch的C++端,所以可以将Pytorch模型保存为.pt,然后用libtorch加载。然后再利用node-gyp将其编译成动态链接文件.node,让Nodejs加载。libtorch介绍官网地址:https://pytorch.org/cppdocs/front原创 2021-06-30 13:54:37 · 3163 阅读 · 2 评论 -
100行代码教你实现类Webpack的JS打包器
前言 早期JavaScript只需要实现简单的页面交互,几行代码即可搞定。随着浏览器性能的提升以及前端技术的不断发展,JavaScript代码日益膨胀,此时就需要一个完善的模块化机制来解决这个问题。因此诞生了CommonJS(NodeJS), AMD(sea.js), ES6 Module(ES6, Webpack), CMD(require.js)等模块化规范。什么是模块化?模块化是一...原创 2020-01-04 16:37:07 · 390 阅读 · 0 评论 -
JSBridge原理浅析与实践
在字节跳动实习了一段时间,JSBridge使用的比较频繁,之前只是看了些简单的JSBridge概念,一直没有时间去了解从客户端到JavaScript的一个通信原理(JSBridge)。最近花了点时间学习了从Android端到JavaScript的通信-JSBridge(主要是太闲了),对JSBridge有了更深入的理解,特地写下了这篇文章分享一下。JSBridge是什么 顾名思义:就...原创 2019-12-21 20:12:16 · 848 阅读 · 0 评论 -
从设计模式角度分析Promise:手写Promise并不难
前言Promise作为异步编程的一种解决方案,比传统的回调和事件更加强大,也是学习前端所必须要掌握的。作为一个有追求的前端,不仅要熟练掌握Promise的用法,而且要对其实现原理有一定的理解(说白了,就是面试装逼必备)。虽然网上有很多Promise的实现代码,几百行的,但个人觉得,不对异步编程和Promise有一定的理解,那些代码也就是一个板子而已(面试可不能敲板子)。首先默认读者都对Pr...原创 2019-05-01 23:53:44 · 1013 阅读 · 0 评论 -
如何在create-react-app里使用@装饰器
问题描述:由于create-react-app目前还没有添加装饰器,直接用的话会报错,但项目中不得不使用装饰器,比如引入MobX。解决方法:我们可以根据奥卡姆剃刀原理以及鸵鸟算法 => 不使用装饰器@observer class A {}//等价于const A = observer(class A {});@action function f () {}// ...原创 2019-05-24 10:34:41 · 2157 阅读 · 0 评论 -
Redis 主从集群以及对等节点集群搭建以及连接
Redis 主从集群以及对等节点集群搭建以及连接前言 Redis是开源的,内存数据结构存储的健值数据库。用于数据存储,缓存和消息代理。支持的数据结构有字符串,Hash,List,Set,有序集合等等。除此之外,Redis还使用集群来提供高可用性。本文就介绍如何搭建Redis主从集群和Redis对等节点集群。关于Redis的安装部分,可以查看Redis在Window上的几种安装方法(包含l...原创 2019-06-11 22:38:14 · 1976 阅读 · 0 评论 -
在NodeJS下实现简单的ORM框架
前言 ORM即Object Relational Mapping,中文翻译过来就是对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。在nodejs中也有比较好用的ORM框架,比如TypeORM,Sequelize等等,但基本上都是重量级的,如果自己先实现一个简...原创 2019-06-12 11:41:25 · 2714 阅读 · 0 评论 -
GraphQL 极速入门
前言 之前在自己的Blog项目 Blog++ 中使用了GraphQL,发现确实不错,所以写一篇关于GraphQL的入门文章。What is GraphQL? GraphQL是一种API查询语言,对API中的数据提供一套描述,使客户端能够准确地获得需要地数据。举个例子,在传统的RESTful API中,如果不对API做出声明,难以知道该API的用途,而且前端无法控制API返回...原创 2019-06-21 20:16:47 · 410 阅读 · 0 评论 -
作业车间调度与遗传算法Python/Java实现及应用:BitMES,基于Electron的作业车间调度系统
作业车间调度问题描述 作业车间调度(Job shop scheduling problem, JSP) 是车间调度中最常见的调度类型,是最难的组合优化问题之一,应用领域极其广泛,涉及航母调度,机场飞机调度,港口码头货船调度,汽车加工流水线等,因此对其研究具有重大的现实意义。科学有效的生产调度不但可以提高生产加工过程中工人、设备资源的高效利用,还可缩短生产周期,降低生产成本。...原创 2019-08-03 23:58:57 · 20739 阅读 · 25 评论 -
如何用Echart正确的绘制甘特图(适用于React)
前言之前实现作业车间调度问题甘特图绘制,搜索过如何用Echart绘制甘特图,发现绘制方法都一毛一样,都是通过叠加series来实现,但这样绘制出来的甘特图,不仅够丑,而且数据也难以描述,如果要在react这种mvvm中绘制的话,也没法对甘特图做数据管理,所以经过自己的思考,发现可以有更好的绘制甘特图的方法。首先先看绘制出来的甘特图效果(项目GitHub地址:https://github.com...原创 2019-08-04 15:14:44 · 7434 阅读 · 1 评论 -
字符串匹配,KMP了解一下
如何判断一个字符串是不是另一个字符串的子串,我们第一反应就是indexOf或includes或者用正则,虽然没有什么不对,但是还是需要了解一下字符串匹配是怎么匹配的。在计算机科学中,Knuth-Morris-Pratt字符串查找算法(简称为KMP算法)可在一个主文本字符串S内查找一个词W的出现位置。此算法通过运用对这个词在不匹配时本身就包含足够的信息来确定下一个匹配将在哪里开始的发现,从而...原创 2019-09-05 15:24:41 · 217 阅读 · 0 评论 -
深入理解Redux:简单实现一个Redux以及React-Redux
前言redux相信都不陌生(陌生的看中文文档:https://www.redux.org.cn/),它是 JavaScript 状态容器,提供可预测化的状态管理,你可以在React, Vue, Angular,服务端等地方使用。redux由三部分组成:Action, Reducer, Store,你需要编写的是Action和Reducer,比如最简单的计数器例子Action 部分//...原创 2019-04-08 08:52:21 · 717 阅读 · 2 评论 -
你真的会用map和reduce吗?
相信熟悉js的人都知道map和reduce方法,它是js数组最有用的两个方法,同时也是函数式编程中的重要函数,但你真的会用它们吗?本篇文章将介绍map和reduce的基本思想,并举几个用法例子,以及在不同语言中的实现。map这个单词的中文直译就是映射,将一组值映射成另一组值,其中映射方法自己定义,其在js中API定义如下map<U>(callbackfn: (valu...原创 2019-03-11 17:11:08 · 694 阅读 · 0 评论 -
原生JS拖拽从原理到实现
拖拽在js中挺常用的,不过目前有很多做拖拽的插件,H5也以及支持了拖拽事件,不过了解一下拖拽的原理也是有必要的,其实用原生js实现拖拽并不难。首先讲一下拖拽的原理,假设浏览器上有一个元素(元素已经绝对定位了),起始位置为(mx, my),即距浏览器上方mypx,左方mxpx,如下图拖拽元素的过程无非就是改变该元素的left值和top值,那么left和top值设为多少才对呢,其实这个...原创 2019-02-27 13:50:32 · 1683 阅读 · 0 评论 -
javascript 异步编程的5种方式
前言javascript是单线程的一门语言,所以在执行任务的时候,所有任务必须排队,然后一个一个的执行,在javascript中有分同步代码,和异步代码,顾名思义,同步代码,就是依此执行的代码,异步代码可能不会立即执行,得等到某一特定事件触发时才会执行,javascript有个任务队列,用来存放异步代码,任务队列中的任务又有优先级之分,微任务(microtask)的优先级大于宏任务(macr...原创 2018-10-17 13:13:02 · 6564 阅读 · 0 评论 -
使用webpack4从零构建React + React-router + Redux + Scss/Css开发环境
前言 最近这几年,前端变化非常大,各种新框架应接不暇,从最开始几个html,css,js文件就搞定了前端,到现在前端的模块化,工程化,旨在构建出易于维护的前端系统。目前为止,前端三大框架Vue/React/Angular(Vue官网:https://cn.vuejs.org/index.html,React官网:https://reactjs.org/,Angular官网:h...原创 2018-11-09 00:12:21 · 1546 阅读 · 1 评论 -
原生nodejs编写个web框架
接触nodejs挺久了,之前一直用nodejs的一些web框架做开发,如koa,express等,现在想自己写个简易的nodejs web框架,我使用es6和es2017的async/await实现个类似于Koa的web框架,文章中的代码将会存放到我的github上,欢迎下载学习。github地址:https://github.com/sundial-dreams/nodeSe...原创 2018-10-28 16:48:03 · 383 阅读 · 0 评论 -
JavaScript函数式编程之偏函数(Partial Function)
之前的博客有介绍JavaScript函数式编程的curry化,今天就介绍一个跟curry化有点像的偏函数(partial function)先介绍一下什么叫偏函数,其实指的是将给定的函数的部分参数固定化,然后返回新的函数举个例子比如 这是数学里...原创 2018-11-06 21:42:13 · 4175 阅读 · 0 评论 -
javascript函数式编程之curry化
函数式编程是一种编程范式(编程思想,不要以为有啥模板),主要思想是将运算过程尽量写成一系列嵌套的函数。举个例子//声明式let d = a + b + c * d;//函数式let d = add(a,add(b,mul(c,d)))例子没有啥难度吧,那么函数式编程的函数和数学的函数有什么关系呢,其实函数式编程的函数就是数学里的函数 ...原创 2018-11-04 21:03:24 · 1622 阅读 · 0 评论 -
浅谈javaScript(ES5)继承
JavaScript是一门基于原型的语言(不同于类),但并不意味着它不能写面向对象的代码,这篇文章将讲述JavaScript面向对象继承的内容如何使用JavaScript写一个类呢,ES5中没有class关键字,如果要实现一个类,需要使用function来模拟比如function Person(name,age,sex) { this.name = name; th...原创 2018-11-07 21:30:30 · 916 阅读 · 2 评论 -
一行代码实现curry化
之前写过curry化的原理和实现,详情请看这里https://blog.csdn.net/daydream13580130043/article/details/83718978里面提到了用es6一行写curry化const curry = (fn, n = fn.length, args = []) => n === 0 ? fn(...args) : (...args...原创 2018-11-29 10:45:31 · 633 阅读 · 0 评论 -
使用Parcel构建React应用
在之前的一篇博客中,使用了Webpack4来构建一个React+Redux开发环境(详情请看这里:https://blog.csdn.net/daydream13580130043/article/details/83480222),整个构建过程还是挺费劲的,所以在本篇博客中将使用令一种构建工具Parcel来重新构建React开发环境。 Parcel是啥,跟webpack,gru...原创 2018-12-03 23:09:47 · 694 阅读 · 0 评论 -
Ajax的原生js封装
身为一个前端开发者,对ajax这一块需要非常的熟悉,而且现在一直在提的前后端分离,ajax起着非常重要的作用,本文将简单介绍一下ajax,并附上原生js的封装 what is Ajax? Ajax即 Asynchronous JavaScript and XML ,翻译过来就是异步的JavaScript和XML,个人的理解即是一种与后端交互且不需要刷新整个页面的技术,...原创 2018-12-15 18:14:50 · 277 阅读 · 0 评论 -
JSONP从原理到实现
相信AJAX大家都熟悉,以前使用AJAX做前后端交互经常会碰到请求跨域,关于什么是跨域可以自行百度(不是很难),所以引入本文的主角JSONP,一个有效的跨域解决方案。本文尽量以最简单的方式解释什么是JSONP,以及JS代码的实现。什么是JSONP 首先跟JSON没有半毛钱关系,它与AJAX一样都是客户端向服务器发送请求,然后获取数据的方式。AJAX属于同源策略,JSO...原创 2019-02-27 22:31:47 · 191 阅读 · 0 评论