首页 文章 精选 留言 我的

精选列表

搜索[栈],共10000篇文章
优秀的个人博客,低调大师

含光800NPU编程模型【芯片与软件栈系列之----含光剑诀】

前言 当我们手拿含光这把神兵利器的时候,首先要了解这把剑的精华。比如杨过用的玄铁重剑,其剑法要诀是“重剑无锋,大巧不工”,其中境界,远胜世上诸般最巧妙的剑招,越是平平无奇的招数,对方越难抗御,如挺剑直刺,劲力强猛,轻重刚柔随心所欲,刚劲柔劲混而为一,威力远比变幻奇妙的剑招更大。又如金蛇剑,形状奇特,却因此比之寻常长剑增添了不少用法,配合“金蛇秘笈”,颇多招式看来绝无用处或者甚不可解的,尽成厉害招术。虽然这是武侠小说中的创意,但金大侠确是有深意:剑不同诀不同,为剑而量身打造剑法心诀,才能发挥剑的威力。 如果由我来理解,含光的精髓在于“利”,如一把削铁如泥的宝剑!使用如此锋利的宝剑,其剑道需要由繁化简,由简而快,达到返璞归真。在芯片领域,特定领域架构(Domain-Specific Architecture, DSA)正是一种由繁化简的思

优秀的个人博客,低调大师

JavaScript(React Native、Node.js等)移动、服务端通吃的全栈语言

作者:李宁老师 东北大学计算机专业硕士。曾任沈阳东软股份项目经理。51CTO学院签约讲师。从事软件研究和开发超过20年。长久以来一直从事Java、Android、iOS、C++、Swift、Objective-C以及跨平台游戏引擎(Cocos2d-x、Unity3D等)的开发和技术指导工作。对国内外相关领域的技术、理论和实践有很深的理解和研究。 主要著作包括《Cocos2d-x实战游戏开发指南》(即将出版)、《Swift权威指南》、《Android深度探索卷1和卷2》、《Android开发权威指南(第二版)》、《Android开发完全讲义(第三版)》、《Android高新之路面试宝典》、《Android深度探索(卷1):HAL与驱动开发》、《Android应用开发实战(第二版)》、《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring》等畅销书。 不管是互联网公司,或是传统的软件公司,以及非IT企业,大多都需要开发各种类型的程序,包括移动App(主要是Android和iOS)、Web程序、服务端程序等。这些程序使用的开发技术都不尽相同,如Android使用Java开发,iOS使用Objective-C或Swift开发、Web程序页面使用JavaScript、HTML5、CSS等技术,而服务端的选择就更多了,如Java EE、PHP、Python、Ruby、Node.js等。理论上,每一类的程序需要不同的开发小组完成,如Android开发小组、iOS开发小组,服务端开发小组等。这对于大公司没什么问题,反正钱多。不过对于大多数创业公司来说,可能是一笔不小的负担。 为了解决这个问题,现在出现了很多跨平台技术,包括基于HTML5的混合开发、C++跨平台解决方案等。不过这些也仅仅是跨平台。顶多解决了Android和iOS之间代码最大限度共享的问题(仍然有一部分无法共享的代码需要单独编写),而服务端仍然要我们使用其他技术开发,如Java EE。不过自从有了Node.js以后,JavaScript就成为了服务端的开发语言,而且有了React.js,系统会将JSX代码(在后面介绍)自动转换Web页面的DOM元素。这样,JavaScript+JSX,连同Web+服务端一起搞定了,不过好像还少了点什么,对,移动端(Android和iOS),这就是本文要讲的主题:React Native,下面会详细介绍一下React Native,以及用于设计UI的JSX。 React Native是Facebook在React.js Conf 2015大会上推出的一个用于开发Android和iOS App的一个框架。主要编程语言是JavaScript,UI使用JSX(一种语法类似于XML的UI描述语言)。 那么ReactNative和React.js有什么区别呢? 任何一种跨平台框架都有两部分:UI和逻辑。对于这两种技术来说,UI都使用的是JSX,而逻辑都是用了JavaScript。 React Native和React.js的主要区别还是JSX。不管是React Native,还是React.js,在UI上都有一种技术:虚拟DOM(Virtual DOM) 那么什么是VirtualDOM呢? 其实JSX只是一种语法糖。Web通过DOM管理Element。而DOM的效率是很低的,为了提高DOM的效率,React.js提供了VirtualDOM,这项技术的工作是完全在内存中完成的,而且是增量修改DOM树,所以效率非常高。 对于Web来说,实际渲染时,仍然需要DOM,所以在最终渲染是,VirtualDOM仍然要转换成实际的DOM。而对于Android和iOS,就没有DOM的概念的,UI完全是本地控件实现的,如Android中的TextView、EditText等。所以React Native就应运而生。如果说React.js在运行时将Virtual DOM映射成了DOM,那么React Native就是在运行时将Virtual DOM映射成Android和iOS的本地控件。 从这一点可以看出,React.js用于Web开发,而ReactNative用于开发Android和iOS App,他们都将UI抽象成了Virtual DOM,只是在实际运行时,前者将Virtual DOM映射成了DOM,后者将Virtual DOM映射成了Android和iOS的本地控件。 由于ReactNative的UI仍然使用Android和iOS的本地控件,所以在UI渲染上已经非常接近Native App了。尽管业务逻辑代码使用JavaScript,但由于JavaScript是即时编译的,也就是第一次运行时会将JavaScript代码编译成二进制,所以JavaScript的运行效率比较高。因此,React Native的运行效率要比基于HTML5、CSS等技术的PhoneGap、AppCan高很多,因为这些技术直接用HTML5进行渲染,而HTML5会大量使用DOM技术,DOM在PC端的Web中也不算快,在移动端就更慢了。 总结:基于ReactNative的App在运行效率上接近Native App,而且还拥有混合开发模式的两个优点:热更新(无需重新编译上传App即可更新,而且还不用通过App Store审核)和跨平台(降低了学习成本,使用同样的技术开发Android和iOS App)。 OK,现在已经了解了React Native,是不是打算学一下呢!移动、Web和服务端使用同一种技术即可解决,尽管都需要进行开发,但技术是通用的,也就是说只要招JavaScript程序员,就可以同时解决移动、Web和服务端的问题,使用一个开发小组即可解决所有问题,也无需再招聘Java、OC、Java EE、PHP程序员了,这样会给创业公司节省了大量的开支。 本文转自 androidguy 51CTO博客,原文链接:http://blog.51cto.com/androidguy/1836109,如需转载请自行联系原作者

优秀的个人博客,低调大师

基于阿里的Node全栈之路(三)利用阿里云OSS实现前后端分离

嘿嘿,上篇文章因为在火车上写的,偷懒了,心存愧疚,还是补发一篇吧! 这次嘞,我们聊聊开发上老生常谈的话题,前后端分离。在文章第一篇里,我用了一张我的架构图,这里我把关于OSS的这部分抽出来。 可以看到这种图上,我的docker是只有restful api的作用,在web端应用,客户访问我的网站的时候,是跳转到OSS上的。没错,没错,在我这里,没有使用类似jsp、asp、ejs这些动态页面。先不说两者的优劣,我这里使用的方案,其实蛮有趣的,而且非常的高效实用!对于中型项目是完全行得通的,大型项目架构做得好的话,其实也是ok的。 敲黑板!敲黑板! 下面介绍下我的前端技术架构的实现。大家是否还记得我前面说的我的文件结构 -project -api // 项目的api -app // React-Native,移动端 -www // 项目主页 -admin // 项目后端管理系统 -h5 // 宣传H5 -Dockerfile // 部署api使用 好,我们的重点就是www和admin,www和admin的结构基本一致。 先列下我们会使用到的技术: 1. vue //这个不用我介绍了吧 2. vue-cli //vue项目脚手架 3. webpack-template //vue项目脚手架生成的webpack模板 嗯,我的文章前端是围绕着vue来的,react那些其实类似,感兴趣的童鞋可以自己动手试试。 流程 用vue-cli生成一个webpack或者其它什么模板的脚手架(因为我对其它模版没有尝试,这里就指定是webpack模板,这样让大家少走些弯路) 项目构建 yarn #or npm install 生成生产环境代码 yarn build #or npm build 你会在项目中得到类似这样的文件: * -project * -dist //生产环境代码 * -static //静态文件 * -index.html //页面 创建阿里云OSS的bucket,然后把dist里面的文件全部放到bucket的根目录下,类似这样。 在OSS基础设置那里设置默认访问页面 绑定域名(这里给个建议,最好域名和oss都在同个账号下,可以省很多时间,阿里可以自动挂上,如果想让自己网站是https访问的,绑定时勾选开启CDN,也可以自己后期手动开) 给自己的网站挂上https,进到CDN管理界面,点击域名管理,在https设置里面,修改配置,如果是阿里云上下发的证书是可以直接勾选的,不过这里要@阿里云 ,为啥上面没名字的,竟然是"cert-"后面跟着一串码,我怎么记得嘛! 进阶篇-自动上传前端代码到OSS 好啦,到这里,你已经可以直接访问 http://www.xxxxxx.com或https://www.xxxxxx.com 来访问我的主页了。 嗯,这下估计有同学会问了,为什么要这样做,这是静态页面!!! 但还记得文章开头我说的吗?这是一种新的方式。 我其实之前很无聊的为了一个用vue框架写的代码,竟然启动了一个docker来让别人来访问! 然后,我发现我启动一个node竟然只是为了让别人能够访问我的静态页面和文件! 因为本身用vue搭的代码本身就不需要动态网页ejs这些类似的特性的! 所以,如果真的想体验前后端分离的好处,那就不要把鉴权这些繁琐的业务放在动态jsp、asp、ejs这些地方,而更应该是放在api上做好鉴权,说句不好听的话,你就算在动态网页上做了鉴权,权限较低的就不能访问某些页面,但是那样有意义吗? 1. api上还是要做鉴权,这是浪费劳动力 2. 动态构建增加资源的损耗,这个最简单的体现是OSS的流量价格和ECS或者负载均衡的带宽,还有CDN什么的(公司太有钱另说) 要我说,计算和逻辑这些核心的东西,才是最应该放到ECS或Docker上,其它的就应该服务商托管。 今天刚到家,明天看看有没有空,来聊聊前后端分离的请求封装,实际使用效果非常的棒!,另外也想寻有相关经验的高手来一起探讨下应用型公司的技术实践。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册