好文章就得分享: 一.SOA 系统设计包括若干个层面.先说顶层的系统设计原则,如 REST.SOA.由于 Uber 之前一直算一个创业公司,所以开发速度至关重要,由于微服务能够极大地促进不同组件的平行开发,SOA 成为了 Uber 的选择. 在这种选择下,我们需要先按功能设计出不同责任的 Service,每一个 Service 作为这个责任的唯一真实信息源.在开发新的功能时,只需要先设计好不同 Service 之间的合约,就可以按照合约平行开发了.在实际工作中,这点被证明非常有效. 二.服务要设…
这是我在 精彩又一年:Microsoft Teams技术社区2018年度回顾和展望 活动上面的主题分享,我用Microsoft Teams技术社区的实践经验,给大家整理和分享了技术架构和一些运营经验.   Microsoft Teams 设计用来作为团队协作的中枢,它不仅能很好地在组织内部工作,也能打破边界,实现与外部用户的无缝协作,而且这一切都是安全可控的.基于这种特性,它可以用来作为协会.技术社区.上下游合作联盟之类的承载.     作为一个社区的创建者和管理者,你需要至少考虑如下几件事情…
koa2+mysql+vue+vant 构建简单版移动端博客 具体内容展示 开始正文 github地址 <br/> 觉得对你有帮助的话,可以star一下^_^必须安装:<br/>mysql <br/>node.jsvue-cli<br/> 目录结构 <br/><br/> 代码步骤 <br/>在 app 目录下 打开 node 运行vue-cli vue init webpack 新建Vue项目<br/>安装以下…
前言 Taro 是一套遵循 React 语法规范的 多端开发 解决方案.现如今市面上端的形态多种多样,Web.React-Native.微信小程序等各种端大行其道,当业务要求同时在不同的端都要求有所表现的时候,针对不同的端去编写多套代码的成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要. 使用 Taro,我们可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信小程序.H5.React-Native 等)运行的代码. 该项目基于Taro,构…
摘要:随着前端技术的飞速发展,越来越多的技术领域开始被前端工程师踏足.从NodeJs问世至今,各种前端工具脚手架.服务端框架层出不穷,“全栈工程师”对于前端开发者来说,再也不只是说说而已.在NodeJs及其衍生技术高速发展的同时,Nw和Electron的问世,更是为前端发展提速不少,依稀记得哪位前辈说过,“能用Js改写的,终将用Js改写”,这不,客户端来了!使用Electron也有一段时间了,各种简单复杂的问题,也都或多或少的遇见过,下决心整理出一套客户端模板出来,一是加深一下自己的理解,二是供…
[导语]:Meteor 是一个用 JS 开发现代 Web 应用程序的平台.它是开源的,在 GitHub 上有 4.2 万 Star. Meteor 是什么? 官方文档是这样描述 Meteor 的:Meteor 是一个用于开发 Web 和移动端应用的全栈 JavaScript 平台.它包含一系列用于实现客户端实时响应的技术和与之配合的一个构建工具,以及来自 Node.js 和常规 JavaScript 社区的精选软件包. 简而言之,用户可以便捷的使用 Meteor 平台搭建一套从前端到移动端再到后…
TVM:一个端到端的用于开发深度学习负载以适应多种硬件平台的IR栈  本文对TVM的论文进行了翻译整理 深度学习如今无处不在且必不可少.这次创新部分得益于可扩展的深度学习系统,比如 TensorFlow.MXNet.Caffe 和 PyTorch.大多数现有系统针对窄范围的服务器级 GPU 进行了优化,并且需要在其他平台(如手机.IoT 设备和专用加速器(FPGA. ASIC))上部署大量工作.随着深度学习框架和硬件后端数量不断增加,我们提出了一个统一的中间表征(IR)堆栈,可以弥补以生产力为中…
大家好,helloworld.net 上线已经有近半年的时间了,转眼过的好快,在这半年的时间里,迭代了近10多个版本,优化了很多的体验,交互上的不足之处,同时也上线了我们的安卓 app, 苹果的因为还在申请开发者账号,所以暂时未上线 在这半年的时间内,网友很给力,也给出了很多的建议和优化,也有不少网友说愿意为 helloworld开发者社区出一份力,在这里我感谢这些支持我们的用户,helloworld开发者社区会一如既往的坚持免费,分享,干货的精神做一个 程序员自己的技术社区 今天我们来聊聊 g…
B端产品为企业提供协同办公的工具,帮助企业解决某类经营管理问题,核心价值在于为企业增加收入.降本提效.管控风险,企业级SaaS产品也是B端产品中的一类. B端产品有以下特点: ​客户是一个群体:B端产品为某个企业组织服务,一项工作通常需要由多名角色完成,例如,门店要货流程,需要门店店员.总部运营.仓储人员.配送人员共同完成,B端产品帮助他们完成分工协作. 功能繁杂:由于B端产品涉及企业经营的方方面面,关联的用户角色.业务流程非常繁多,反应到产品上,菜单.界面.配置项特别多,复杂度远高于C端产品.…
申明:MobileIMSDK目前为个人原创开源工程,投入了大量的时间和精力,希望对需要的人有所帮助.如需与作者交流,见文章底部个人签名处,互相学习.Q群:215891622,欢迎共同志趣者学习和交流. [前言] MobileIMSDK工程的前身开始于2013年10月,起初用作某产品的即时通讯底层实现,完全从零开发. 因为当时市面上类似的东西可供选择的不多,在跟某商业框架的协议谈崩了后,干脆自已开发了一套. 今年正好业余有些时间,就整理了出来,希望对需要的人有所启发和帮助. [工程简介] Mobi…
摘要 虽然ASP.NET的服务器控件一直被大家所诟病,但是用户控件(ACSX)在某些场景下还是非常有用的. 在一些极特珠的情况下,我们会使用JavaScript动态的构建页面中的控件,但假设遇到了我要用JavaScript构建一个服务端控件.用户控件时,该怎么办? 我们常常说,服务端控件运行在服端器上,那么这话是什么意思呢? 服务端控件,其本质是一构建HTML语句的封装,以事先编排好的方式,生成一套HTML并通过Http协议返回给客户端.因此,我们所写的服务端控件,在响应HTTP请求时,早已不存…
1. 前言 Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Server-sent Events).本文将简要介绍这4种技术的原理,并指出各自的异同点.优缺点等. 2. 概述 1996年IETF  HTTP工作组发布了HTTP协议的1.0版本 ,到现在普遍使用的版本1.1,HTTP协议经历了17 年的发展.这种分布式.无状态.基于TCP的请求/响应式.在互联网盛行的今…
前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为流行,而网上关于原生IM(相关文章请参见:<IM架构篇>.<IM综合资料>.<IM/推送的通信格式.协议篇>.<IM心跳保活篇>.<IM安全篇>.<实时音视频开发>).消息推送应用(参见:<推送技术好文>)的通信原理介绍也较多…
前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为流行,而网上关于原生IM(相关文章请参见:<IM架构篇>.<IM综合资料>.<IM/推送的通信格式.协议篇>.<IM心跳保活篇>.<IM安全篇>.<实时音视频开发>).消息推送应用(参见:<推送技术好文>)的通信原理介绍也较多…
最近直播很火,很多朋友对背后的技术比较感兴趣,所以今天我们整理一篇关于移动端视频优化的文章,这篇文章是我朋友在一个技术大会上分享过的,更多内容请关注我们的微信公众号:rtcblacker 视频直播为什么会这么火? 首先,音视频直播.点播的需求一直大量存在,包括各种行业应用,比如视频门户.娱乐直播.游戏直播.在线教育.远程医疗,远程监控,企业协作,社交应用等等.“以前之所以没有全面爆发,是因为硬件条件不满足,比如网络的带宽有限”,目前网速仍在不断提升,光纤普及到小区,有线网络的上下行带宽已经达到要…
Non-blocking(NIO)Server Push and Servlet 3 在我的前一篇文章写道如何期待成熟的使用node.js.假定有一个框架,基于该框架,开发者只需要定义协议及相关的handlers,并把精力放到有用的业务逻辑上,用你之前已在Java EE中熟练使用的方式进行业务.在那该文章中,我开始接触一种称为Comet的技术.曾经,我以为在传统的基于HTTP的web应用中,非阻塞服务(non-blocing server)并不比阻塞服务具有优势,所以设计了自己的协议和一个VOI…
CRNN是OCR领域非常经典且被广泛使用的识别算法,其理论基础可以参考我上一篇文章,本文将着重讲解CRNN代码实现过程以及识别效果. 数据处理 利用图像处理技术我们手工大批量生成文字图像,一共360万张图像样本,效果如下: 我们划分了训练集和测试集(10:1),并单独存储为两个文本文件: 文本文件里的标签格式如下: 我们获取到的是最原始的数据集,在图像深度学习训练中我们一般都会把原始数据集转化为lmdb格式以方便后续的网络训练.因此我们也需要对该数据集进行lmdb格式转化.下面代码就是用于lmd…
在以前的OCR任务中,识别过程分为两步:单字切割和分类任务.我们一般都会讲一连串文字的文本文件先利用投影法切割出单个字体,在送入CNN里进行文字分类.但是此法已经有点过时了,现在更流行的是基于深度学习的端到端的文字识别,即我们不需要显式加入文字切割这个环节,而是将文字识别转化为序列学习问题,虽然输入的图像尺度不同,文本长度不同,但是经过DCNN和RNN后,在输出阶段经过一定的翻译后,就可以对整个文本图像进行识别,也就是说,文字的切割也被融入到深度学习中去了. 现今基于深度学习的端到端OCR技术有…
后面考虑通过netty做一个真正意义的简约版RPC框架,今天先尝试通过正常调用逻辑调用netty构建的nio服务端并同步获得返回信息.为后面做铺垫 服务端实现 我们先完成服务端的逻辑,逻辑很简单,把客户端请求的内容加上服务器时间戳一并返回 public void run() throws InterruptedException { EventLoopGroup bossGroup = new NioEventLoopGroup(1); EventLoopGroup workGroup = ne…
以下我们描述如何使用 Elastic 技术栈来为 Kubernetes 构建监控环境.可观测性的目标是为生产环境提供运维工具来检测服务不可用的情况(比如服务宕机.错误或者响应变慢等),并且保留一些可以排查的信息,以帮助我们定位问题.总的来说主要包括3个方面: 监控指标提供系统各个组件的时间序列数据,比如 CPU.内存.磁盘.网络等信息,通常可以用来显示系统的整体状况以及检测某个时间的异常行为 日志为运维人员提供了一个数据来分析系统的一些错误行为,通常将系统.服务和应用的日志集中收集在同一个数据库…
22.1.23Manacher算法.双端队列.单调栈 1.Manacher算法 1)用途: Manacher算法用于解决类似求某个字符串中最长的回文子串.(回文就是正着读和倒着读一样的结构). 2)算法中的关键变量: 回文半径 r:回文直径的一半: 回文直径 d:整个回文的长度: 之前扩大的所有位置中所到达的回文直径d的最右边界R: 中心点c:取得R的那个点: 回文半径数组:储存遍历字符串所得到的每个点的回文半径: 3)算法的流程: 伪代码: 这里的R与上述提到的概念不太相同,这里是回文最右边界…
Microsoft技术栈最近有大量的变迁,这使得开发人员和领导者都想知道他们到底应该关注哪些技术.Microsoft自己并不想从官方层面上反对Silverlight这样的技术,相对而言他们更喜欢让这种技术慢慢淡出人们的视线,否则局面可能会更加混乱.如果你想了解该问题的答案,那么可以查看“.NET业务应用程序技术指南”这个小有名气的文档.该文档发布于去年早些时候,它深入探讨了Microsoft打算在哪些领域付出努力,我们应该回避哪些技术等内容. 下面这个概要图是我们探索Microsoft及其相关技…
前言 不知何时突然冒出“MEAN技术栈”这个新词,听起来很牛逼的样子,其实就是我们已经熟悉了的近两年在前端比较流行的技术,mongodb.express.angularjs.nodejs,由于这几项技术涵盖了从前端到后端再到数据库,可以用他们完整的开发一个web应用了,所以成了一个非常牛逼的组合,颇有当年LAMP的气势.前端要从切图仔迈向全栈的路上,这几门技术必须得有所涉猎.本系列文章利用自己虚构的一个小项目为例,对“使用MEAN技术栈开发web应用”做一个入门级的介绍.   AngularJs…
前言 本文是自己vue项目实践中的一些总结,针对Vue2及相关技术栈,实践中版本为2.3.3. 开发前须知 vue-cli 在开发前,我们要至少通读一遍vue官方文档和API(看官方文档是最重要的,胜过看五十.一百篇博客),英文阅读能力还行的建议阅读英文文档,中文文档内容会稍落后,还要通读相关的vue-router.axios.vuex等. 一般来说我们都是先利用vue-cli来搭建项目基本架构. vue-cli官方temaplte地址,我们选择webpack版本,建议看看其文档vue-webp…
有很多朋友有的因为兴趣,有的因为生计而走向了.Net中,有很多朋友想学,但是又不知道怎么学,学什么,怎么系统的学,为此我以我微薄之力总结归纳写了一篇.Net web开发技术栈,以此帮助那些想学,却不知从何起的朋友. 本文整理了当前企业web开发中的管理系统,商城等系统的常用开发技术栈. C#运算符 一元运算符(+.-.!.~.++.--) 算术运算符(*./.%.+ . – ) 移位运算符(<< .>> ) 关系和类型测试运算符(==.!=.<.>.<=.>…
前言 Parcel 是什么 Parcel 是一个前端构建工具,Parcel 官网 将它定义为极速零配置的Web应用打包工具.没错,又是一个构建工具,你一定会想,为什么前端的构建工具层出不穷,搞那么多工具又要花时间去学习,真的有意义吗?在 webpack 已经成为前端构建工具主流的今天,一个新的工具能有什么优势来站稳脚跟呢? 为什么要用 Parcel 一个好的打包工具在前端工程中占着比较重要的地位.然,何谓之好?或功能强大,或简单易用,或提高效率,或适合自己.在时代不断发展中,一个个好的工具正在被…
react刚刚推出的时候,讲react优势搜索结果是几十页. 现在,react已经慢慢退火,该用用react技术栈的已经使用上,填过多少坑,加过多少班,血泪控诉也不下千文. 今天,再谈一遍react优势,WTF? React的收益有哪些?React的优势是什么?react和vue.angularJS等其它框架对比优势? 而作为总结回顾.react在工程实践中,带来哪些思想上的质变? virtual dom虚拟DOM概念 它并不直接对DOM进行操作,引入了一个叫做virtual dom的概念,安插…
鄙人星云,今天突然想写这么一篇需要持续更新的文章,主要目的用于总结当前最流行的技术和工具,方便自己也方便他人. 更新时间:2018-10-23 09:26:19 码农职业路径图 码农入门职业路径图 Java后端开发优势图 Java 软件工程师技术栈 JDK: 1.8+ Java 基础:I/O(NIO),  集合,多线程,网络编程,并发,JVM内存模型, 设计模式 Java Web 基础:Spring Java Web框架: Spring Boot 2.0, Spring MVC ,Spring…
Elastic 技术栈之快速入门 概念 ELK 是什么 ELK 是 elastic 公司旗下三款产品 ElasticSearch .Logstash .Kibana 的首字母组合. ElasticSearch 是一个基于 Lucene 构建的开源,分布式,RESTful 搜索引擎. Logstash 传输和处理你的日志.事务或其他数据. Kibana 将 Elasticsearch 的数据分析并渲染为可视化的报表. 为什么使用 ELK ? 对于有一定规模的公司来说,通常会很多个应用,并部署在大量…
以下摘自http://www.tvtv223.com/so/8/default/8.html#36-数据库的分库分表mycat java技术栈 参考了众多资料,这里就不再详细列举了,可以自行去搜索 1 java基础: 1.1 算法 1.1 排序算法:直接插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序 1.2 二叉查找树.红黑树.B树.B+树.LSM树(分别有对应的应用,数据库.HBase) 1.3 BitSet解决数据重复和是否存在等问题 1.2 基本 2.1…