• 如何创建一个易维护可扩展的java工程
    我们在项目中经常会遇到一个困扰,为什么写着写着,代码越来越臃肿,越来越难维护?归根结底是因为没有良好的工程规范,没有根据业务的变化,适时的进行同步调整。 1.问题 项目中我们经常会遇到几个误区(借口) 1.之前代码不要动,会影响稳定性。 这个是经常听到的,说到底,这么说的主要原因是项目好好的,我碰了,出了事就得自己背锅,这个是可以理解的,毕竟国内公司甩锅成风,遇到问题第一不是想着去解决问题,而是先把责任甩出去。多做多错,不做不错,也是可以理解的。 2.不要搞那么复杂,先上线再说。 如果只是做个demo,问题不大,但是,以大多土老板的尿性,他能区分的了什么是demo什么是可用级别?另外就是,大部...
    落雁沙2021-06-05
     38 1 2
  • winform海康摄像头NET_DVR_GetLastError=5 怎么解决
    海康摄像头现在用.net winform实现了预览的功能 现在窗体上有2*2 4个picturebox分别叫p1 p2 p3 p4 有6个摄像头,p1p2p3p4分别预览了1 2 3 4号摄像头,5,6已登陆 现在需要在每个picturebox上加2个按钮分别是上一路和下一路,在6个摄像头中来回切换 请问每次切换摄像头必须先关闭当前预览,再重新new下面这段话吗,前几次执行这段话还没问题,执行的多了会出现NET_DVR_GetLastError=5 ,显示连接数超出上限,有没有大神知道这个问题怎么解决,求助 预览方法 比如现在P1P2P3P4显示的是1234号摄像头,我在P1中点击按钮下一路此...
    Taurus2021-05-30
     53 0 0
  • 基于react-router-dom的登录认证状态控制
    在react-router-dom中,没有像vue-router的路由守卫,所以这个功能如果要用,就需要自己来实现了。 官方提供了一个简单的demo来实现身份认证的路由,https://reactrouter.com/web/example/auth-workflow 官方的demo是基于context来实现的。我们工程使用的是mobex,所以这里以mobx为例来实现。 首先,我们要对route进行一下封装 auth-route.jsx import {inject, observer} from "mobx-react"; import {Redirect, Route} from "rea...
    落雁沙2021-05-29
     45 1 0
  • ERP已死,中台已凉,低代码称王
    业界有个说法,认为 ERP 经过了 20 多年的发展,理念已经不行了、跟不上时代了;而后起之秀“中台”,经历了兴起、火爆、被唱衰等阶段,也已经凉凉了。 再加上,最近一年“低代码”、“零代码”的迅速崛起,似乎企业数字化领域又要“改朝换代”了。难道 ERP“死”了,“中台”凉了,“低代码”要称王了? 其实,企业数字化领域从来都不缺新概念,每隔几年就来一波。但是,在企业里搞数字化转型的朋友就懵圈了,这么多新概念出来,你们倒是很“敏捷”,可是企业消化不了呀。 企业里的 MRP2 报表数字还没对齐,中台就来了,说是要“去烟囱”化,花了几千万上“中台”。 刚把“数据孤岛”打通,又说要搞“低代码”了,要干掉...
    lhxs2021-05-26
     45 0 0
  • lens用token去访问k8s集群
    在使用lens管理k8s集群的时候,我们会需要创建一个admin的用户,用token去进行授权校验。 创建这个用户,并绑定角色 admin-role.yaml kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: admin annotations: rbac.authorization.kubernetes.io/autoupdate: "true" roleRef: kind: ClusterRole name: cluster-admin apiGro...
    落雁沙2021-05-25
     54 0 0
  • 扁平数组和树形结构的相互转换
    1、ArrayToTree // 有时候叫fatherId,有时候叫parentId,为了写成通用的,把父节点ID写成一个变量,用的时候直接传进来,ES6支持Object的key为变量 function arrToTree(list, parentKey) { let map = {}; let tree = []; for (let i = 0; i < list.length; i++) { map[list[i].id] = list[i]; list[i].children = []; } for (let i = 0; i < list.len...
    zhyim2021-05-12
     95 0 2
  • 关于JS中一些重要的api实现
    一、用ES5实现数组的map方法 核心要点: 1.回调函数的参数有哪些,返回值如何处理。 2.不修改原来的数组。 Array.prototype.MyMap = function(fn, context){ var arr = Array.prototype.slice.call(this);//由于是ES5所以就不用...展开符了 var mappedArr = []; for (var i = 0; i < arr.length; i++ ){ mappedArr.push(fn.call(context, arr[i], i, this)); } return...
    void2021-05-10
     93 0 0
  • 二分查找实力分析
    二分查找可以说是所有算法中最基础、最容易理解的算法之一了,但事实上也是挂科率最高的考题之一,在各个大厂的应届生面试中,这样的评价屡见不鲜: 谈项目的时候来聊的好好的,叫他写个二分搜索却写不出来。对此我不做评论,就二分查找而言,我觉得它并没有大家想象那样容易,用“思路很简单,细节是魔鬼”来形容最贴切不过了,不信咱们来一步步瞧一瞧。 难点一: 边界判断 二分查找代码大致如下: let binarySearch = (arr, target) => { let begin = 0; let end = ???; while(???) { int mid = b...
    void2021-05-10
     107 0 0
  • V8 引擎垃圾内存回收原理
    V8 内存限制 在其他的后端语言中,如Java/Go, 对于内存的使用没有什么限制,但是JS不一样,V8只能使用系统的一部分内存,具体来说,在64位系统下, V8最多只能分配1.4G, 在 32 位系统中,最多只能分配0.7G。你想想在前端这样的大内存需求其实并不大,但对于后端而言,nodejs如果遇到 一个2G多的文件,那么将无法全部将其读入内存进行各种操作了。 我们知道对于栈内存而言,当ESP指针下移,也就是上下文切换之后,栈顶的空间会自动被回收。但对于堆内存而言就比较复杂了,我们下面着重分析 堆内存的垃圾回收。 所有的对象类型的数据在JS中都是通过堆进行空间分配的。当我们构造一个对象进行...
    void2021-05-10
     84 0 0
  • nginx 部署 vue 项目找不到js css文件的解决方法
    Vue项目,npm run build 之后生成dist文件夹,包括index.html和webpack 自动插入的 js 文件 css 文件,部署到Nginx后,打开网页不报错,打开调试工具会显示js和css文件404,Nginx配置如下: server { listen 80; server_name my.server.name; include /etc/nginx/default.d/*.conf; location / { root /var/www/html/xxx/admin/dist/;...
    zhyim2021-05-10
     170 0 0