聚合文章列表
0 浏览

webpack的学习之路~~

第01节:认识WebPack的作用:学习的一原因:现在的前端网页功能丰富,特别是SPA(singlepagewebapplication单页应用)技术流行后,JavaScript的复杂度增加和需要一大堆依赖包,还需要解决SCSS,Less……新增样式的扩展写法的编译工作。所以现代化的前端已经完全依赖于WebPack的辅助了。现在最流行的三个前端框架,可以说和webpack已经紧密相连,框架官方都推出了和自身框架依赖的webpack构建工具。React.js+WebPackVue.js+WebPackAngluarJS+WebPack从此可以看出,无论你前端走那条线,你都要有很强的Webpack知识,才能祝你成为这个框架领域的大牛。2.对webpack的理解:WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Sass,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。在3.0出现后,Webpack还肩负起了优化项目的责任。

visual-studio 2018-05-07 发布
0 浏览

旅行青蛙(旅かえる)逆向笔记

温馨提示:阅读本文你的电脑需要安装好apktool、signapk、.NETReflector、dnSpy。他们都可以在github或吾爱云盘上获取。一、APK结构旅行青蛙是个Unity的游戏。简单说下Unity:Unity是一个用于制作3D游戏的C#框架,可以跨平台。也就是说旅行青蛙的核心游戏逻辑在Android和iOS上面是一样的代码。显然Android更容易让我们分析,本文先从APK的结构开始。使用apktool反编译APK,发现Unity游戏的smali代码并没有太多的信息,基本都是调用Google的Ad接口之类的,或者是GooglePlay的应用内购买,就不需要太关心了。lib文件夹中主要都是Unity、Mono等的支持动态库so文件,也不是我们关心的对象。经查阅资料可以得知,Unity游戏的主要逻辑代码存放于assets/bin/Data/Managed下的Assembly-CSharp.dll动态库文件中,C#的dll文件不难分析,我们使用.NETReflector和dnSpy进行分析和修改。二、Assembl

c# 2018-05-05 发布
1 浏览

iOS程序员一用就上瘾的跑马灯视图,怎么可以这么优秀

前言:相信大家在工作中,都会遇到这样一个情况。一个UILabel仅显示一行,在小屏手机中显示不完整出现...但是这些信息又比较重要,不能省略且没有充足的空间换行显示。那么问题来了?这该怎么办呢?这个时候,聪明的产品经理摸了摸双下巴,突然双眼放光“用跑马灯啊”好吧,既然产品经理都给出了精妙绝伦的方案,程序员的使命就是义无反顾地完成它。原理原理很简单,就是用CADisplayLink,根据刷新频率,不停的调整视图的位置就行。为了达到循环显示,需要添加两个一样的视图。为了扩大跑马灯的使用范围,我进行了抽象化处理,并没有写死用UILabel来实现,而是暴露了一个属性contentView:UIView。只要是UIView及其子类,都可以用来进行跑马灯显示。对于复杂的视图,需要自己重写contentView的sizeThatFits方法,返回正确的size即可。具体细节可以看源码了解,这里分享两个骚操作:1、如何实现UIView的拷贝?2、如何断开CADisplayLink的循环引用?大家知道CADisplayLink和NSTi

visual-studio 2018-05-04 发布
AD 友情赞助
0 浏览

用 Visual Studio 开发 Arduino

Arduino官方的IDE虽然不断进步,修复了各种bug。有着简洁明了的界面,让新手可以快速熟悉并专注于开发。但对于一个老司机,缺少代码提示、没有自动补全、没有好用资源管理,这些缺点让人头疼不已。好在已经有大神做了各种各样的插件,让我们可以在更加专业成熟的IDE上进行Arduino开发。其中eclipse和visualstudio就是典型代表。!!特别提示:使用其他IDE之前也必须先安装Arduino官方IDE才可以。Eclipseeclipse作为老牌开源IDE,其启动速度、内存占用,特别是安装插件后,一直饱受诟病。在谷歌官方转到AndroidStudio后,eclipse在我计算机上就此长眠。所以这里也不着重介绍,想用的朋友,这里有热心网友打包好的环境,直接下载解压就可以用啦~传送门:http://eclipse.baeyens.it/VisualStudio然后来重点介绍下VS的配置。根据网友反馈,从vs2015开始即可支持,我用的是2017.1、安装插件安装打开vs后,点击菜单栏的工具-扩展和更新,在打开的窗口点击左

visual-studio 2018-04-20 发布
0 浏览

如何避免 async/await 地狱

简评:async/await写着很爽,不过要注意这些问题。async/await让我们摆脱了回调地狱,但是这又引入了async/await地狱的问题。什么是async/await地狱在Javascript中进行异步编程的时候,人们总是使用很多await语句,很多时候我们的语句并不需要依赖于之前的语句,这样就会导致性能问题。async/await地狱的例子我们试着写一个购买披萨和饮料的程序:(async()=>{constpizzaData=awaitgetPizzaData()//asynccallconstdrinkData=awaitgetDrinkData()//asynccallconstchosenPizza=choosePizza()//synccallconstchosenDrink=chooseDrink()//synccallawaitaddPizzaToCart(chose

asp.net 2018-04-25 发布
0 浏览

Qone 正式开源,使 javascript 支持 .NET LINQ

Qone下一代Web查询语言,使javascript支持LINQGithub:https://github.com/dntzhang/qone缘由最近刚好修改了腾讯文档Excel表格公式的一些bug,主要是修改公式的parser。比如下面的脚本怎么转成javascript运行?=IF(SUM(J6:J7)+SUM(J6:J7)>10,"A2是foo","A2不是foo")公式或一些脚本语言的实现包含几个主要步骤:scanner>lexer>parser>ast>codestring得到codestring之后可以动态运行,比如js里使用eval,eval能保留上下文信息,缺点是执行代码包含编译器代码,eval的安全性等。得到codestring之后也可直接使用生成的codestring运行,缺点是依赖构建工具或者编辑器插件去动态替换源代码。比如wind同时支持JIT和AOT,qone的思

.net 2018-04-25 发布
AD 友情赞助
0 浏览

C语言中关于指针等相关理解和使用事宜

作者:心叶时间:2018-04-2117:24定义指针是一个变量,其值是另一个变量的地址,地址代表的是在内存中的位置。需要记住的是,数组变量本身就是一个指针。地址的类型地址是存在类型的,是不是感觉好奇怪,指针不是代表一个地址的吗,地址还有类型吗?看一个例子:int*ip;/*一个整型的指针*/double*dp;/*一个double型的指针*/float*fp;/*一个浮点型的指针*/char*ch;/*一个字符型的指针*/其实指针永远都只是一个代表一个地址的十六进制数,所谓的类型,指的是指针指向的变量的类型。使用指针如何定义一个指针,前面的例子应该知道了,那么如何打印那个十六进制的地址是多少和或者指针指向的数据是多少://通过&运算符获取了i的地址并保存到intP中去int*intP;=&i;printf("intP存储的地址为:%p,存储的地址指向的数据为:%d\n",intP,*intP);指针可以

c# 2018-04-21 发布
0 浏览

一种国际化Qt应用程序的方法

Qt是一个很方便的C++应用开发框架(或许现在要加上QtQuick开发框架?),不仅仅是程序编写方便面,它提供了很多方便的类库,而且它也提供了很方便的国际化方案(也就是翻译成各国语言的方案)。基本流程编写代码阶段我们先来说说在Qt中实现多国语言翻译需要使用的基本流程。首先我们需要在编写代码的时候就要使用Qt提供的翻译相关的函数来"包裹"住所有的需要翻译的字符串。你说哪些才是需要翻译的字符串呢?就是任何会在用户界面上显示的字符串,如果不会显示自然就不需要翻译了。如果你使用的是C++代码,那么翻译用的函数就是QObject::tr函数。大多数时候,我们看到用到这个函数的时候可能都只是一个tr,因为都是在一个继承自QObject的类中,所以可以直接调用父类的成员函数了。如果是在自由函数中想使用的话就要把完整的函数名QObject::tr写全了。如果你写的是QtQuick的程序,这个函数就变成了qsTr或者是qsTranslate、qsTranslateNoOp...代码写完之后,需要在工程文件

c# 2018-04-25 发布
2 浏览

.Net 全功能控件套包 ComponentOne 2018V1 如约而至,新增多选输入控件和项目模板,加快项目创建速度

ComponentOne2018V1如约而至,新增多选输入控件和项目模板,加快项目创建速度全球最大的控件提供商葡萄城宣布,ComponentOne2018年第一个大版本的正式发布,新版本除了新增多选输入控件MultiSelect,还在Winform、WPF、Mvc框架下,添加了多种项目模板,加快项目创建速度,并使ComponentOne的控件比以往更容易使用。本次主要更新特性:新控件:多选输入控件项目模板全新的Demo演示示例程序新控件:多选输入控件(MultiSelect).Net平台下的MultiSelect是一个下拉控件,它扩展了ComboBox并在下拉列表中的每个项目旁边添加了复选框,允许用户从列表中选择多个项目。新添加Winform、WPF、Mvc框架下的项目模板大大提高了项目启动效率。当用户使用该模板创建新项目时,用户可以为该项目选择一个主题并使用所选主题对所有控件进行样式设置,此外,项目模板同样支持Office2016主题。点击了解更多关于项目模板的新特性。Componen

c# 2018-04-25 发布
AD 友情赞助
14 浏览

Pro ASP.NET Core MVC 2翻译计划:第一章

ASP.NETCOREMVC2介绍对于Microsoft平台上的Web开发人员来说,使用ASP.NETCoreMVC是一次彻底的转变。它强调整洁的架构,设计模式和可测试性,并且不会试图隐藏Web的工作方式。ASP.NETCoreMVCisaradicalshiftforwebdevelopersusingtheMicrosoftplatform.Itemphasizescleanarchitecture,designpatterns,andtestability,anditdoesn’ttrytoconcealhowtheWebworks.本书的第一部分旨在帮助你广泛理解MVC开发,包括ASP.NETCoreMVC中的新功能,以及在实践中体验框架的使用方式。ThefirstpartofthisbookisdesignedtohelpyouunderstandbroadlythefoundationalideasofMVC

c# 2018-04-19 发布
2 浏览

.net core项目实战汇总

最近公司的一个小项目尝试使用.netcore作为服务端进行开发,并顺利上线运行了一段时间,整体效果还是比较满意的。这里记录下整体开发过程,用于备忘和分享背景项目需求其实很简单,类似于一个简单的审批+简单的任务管理系统,但需要同时有PC端和APP端。由于项目规模不大,时间也比较宽裕,组内商量下来干脆全采用新技术来踩踩坑。这么一提,大家积极性比较高,既完成了任务同时也能学到新的知识。前后端大家做了一个分工,前端讨论下来采用React+AntDesign(不是我所关注的),后端我们决定下来用.netcore开发并部署在docker下,这对我们来说还是有一定挑战的,一来是没底,毕竟周边没有一个成熟的项目使用,二来我们也不是很了解。但经过调研发现,还是有很多成熟案例的,所以最终拍板下来就这样做了。但从后面的开发经历来看,踩的坑真的不少。项目架构讨论这里只说后端部分,我们在讨论后端架构的同时,前端小伙伴已经着手开始搭建框架和设计原型了。在架构方面其实大家基本观点一致的,虽然项目小,但五脏俱全,前端不仅有PC,还有APP。对后端来

c# 2018-04-17 发布
6 浏览

Unity中利用Editor显示中文属性

如何在Unity中显示中文属性,汉化你的脚本,更方便的修改脚本属性?这里利用Editor来实现。先上效果图:用法:1.在Unity中新建一个Editor文件夹2.在Editor文件夹下新建一个RenameEditor.cs脚本,把以下代码复制到脚本里。Editor文件夹是Unity中的特殊文件夹,可以放在任意目录下,Editor下的所有文件包括脚本都不会被打包进发布版里usingUnityEngine;usingUnityEditor;///<summary>///重命名属性编辑器///<para>ZhangYu2018-04-18</para>///</summary>publicclassRenameEditor:Editor{//需要重命名的键值对儿protectedstring[]renameKeyValues;protectedstring[]renameKeys;protectedstring

c# 2018-04-18 发布
AD 友情赞助
2 浏览

利用angular4和nodejs-express构建一个简单的网站(十)—好友模块

上一章讲解了用户登录的相关代码。用户登录成功后,就会进入好友模块,在好友模块中会根据不同的用户ID显示相应的好友列表,点击好友列表中的单个好友就会进入编辑单个好友页面,对好友信息进行编辑。点击列表页面的添加按钮,就会添加新的好友。我们从这一章开始分析这个好友模块。模块代码分析模块基本代码如下:import{NgModule}from'@angular/core';import{CommonModule}from'@angular/common';import{ReactiveFormsModule}from'@angular/forms';import{HTTP_INTERCEPTORS}from'@angular/common/http';import{BirthdaysComponent}from'./birthdays/birthdays.component';import{BirthdayListComponent}from'./birthday-list/bir

visual-studio 2018-04-09 发布
2 浏览

[效率] HHKB键盘 + Autohotkey 配置秘籍

由于已经厌倦了机械键盘,又实在无法抵挡HHKB的颜值,入手了一枚hhkbpro2。入手之后立刻傻眼,方向键不仅需要按Fn键才能触发,那憋屈的键位让我这用方向键与Ctrl+C一样多的程序猿情何以堪!好在我是程序猿,天生不怕折腾,在经过设置SW开关、使用Autohotkey改键、设置Win10系统权限等一系列的折腾之后,终于可以舒服的使用这款HHKB写代码了,效率更超之前的机械键盘。设置SW开关SW1on、SW2off=Liteext模式,既◇键为Win键。SW3on=Delete键改为退格键。SW4on=左侧◇键为Fn键。SW5off=不交换◇与Alt键。SW6on=启用唤醒功能。使用Autohotkey改键首先要解决方向键问题。我并不是Emacs/Vim党,想来想去还是把“上下左右”的快捷键设置成Ctrl+I、K、J、L比较直观。另外,编代码时跳到行首、行尾的操作也很多,所以可以再加上Ctrl+H跳到行首,Ctrl+'跳到行

c# 2018-04-08 发布
3 浏览

【资源】我的电子书仓库

可能是有点强迫症、囤书症。在我看来电子书是必须得有目录的,我不可能记住知识点的页数,但是一般在网上下载到的基本都是没有书签的,有书签的相对而言太少了,每次找都非常痛苦。写代码也差不多有两年,也有小小的自己的“财富库”了,但懒一直没机会整理,今天下定决心终于好好收拾了一番,把囤货全贡献给CSDN,里面几乎每本都是有完整书签的,覆盖面比较广种类比较杂,Java、C#、JavaScript、设计模式、数据库等..,大家自行挑选吧。大概如下所示:最后欢迎大家下载了,我也会不定时更新的...感谢!下载地址:https://download.csdn.net/use...

c# 2018-04-06 发布
3 浏览

C#使用CefSharp页面空白的解决办法

按照CefSharp官方教程部署并编写第一个应用,你可能会碰到两个坑:1、无法编译,提示找不到文件Microsoft.Cpp.Default.props解决办法:安装以下组件原因是About30%ofthebindingsarewritteninC++/CLIwiththemajorityofcodehereisC#2、窗口一片空白,无法显示网页解决办法:在解决方案属性——配置——平台新增并选择x86

c# 2018-04-06 发布
2 浏览

Visual Studio中Solution与Project的划分原则

VisualStudio中Solution与Project的划分原则最近由于工作需要重新在Windows环境下进行开发,突然发现自己已经完全不习惯号称“宇宙第一IDE”的VisualStudio2017了。最早使用VS要追溯到VS2005,用来完成C语言的课程设计(一个烟花动画)。因此,把遇到的坑总结一下,供大家分享。遇到的坑:不同的应用程序/服务放在不同的Solution中做了一个不大不小的物联网应用平台,一开始提供的是RestfulWebAPI接口,所以建立了第一个Solution,自上而下,简单说包含接口层、业务逻辑层、数据库接口层以及数据库。后来,因为业务需要,又要基于同一个数据源提供一些WebService服务。于是,我们一拍脑袋,两个独立的应用程序嘛,建立Solution2,这时候代码结构就如下所示(是不是看上去还挺和谐的?)。然后熟悉的场景发生了,使用WebAPI的客户说要增加xxx功能,我们不得不修改数据库设计,增加了几个表,修改了几个表,然后修改了Solution1的一些代码,测试通过后就发布使用了

asp.net 2018-03-04 发布
2 浏览

非专业游戏CPU多核性能研究

作为一个专业web后端开发,非常业余游戏爱好者,普通硬件退烧者,虽然对游戏研发一窍不通,想对游戏性能的问题探讨下。游戏性能与多核CPU的疑问第一个问题,近几年为什么游戏主旋律都在GPU的选择上,而往往都是CPU能力过剩,难道CPU就没有压榨的空间?先拿吃鸡游戏举例,引用一张评测文章里的CPU与显卡不同组合配置的大逃杀benchmark图:可以看到搭载了GTX1080+i57500(4核4线程3.4GHz)的配置跑分比GTX1070+i77700k(4核8线程4.2GHz)高,说明此配置中显卡仍是决定因素。而使用的CPU与显卡的详细参数如下游戏引擎为什么会这样?先了解下常见的游戏引擎,有助于了解其中的原因。我对游戏引擎不太了解,先找公开的资料。两大游戏引擎之一的Unity,代码开源,文档齐全,先从文档了解他涉及的功能。2DGraphicsPhysicsScriptingMultiplayerandNetworkingAudioAnimationTimelineUINavigationa

c# 2018-02-19 发布
3 浏览

.NET多线程和异步总结(一)

前言本文源于笔者在公司内部的一个分享。几月前为了搞懂这些知识花费了大量的时间调查研究,最终的理解算是全面而透彻了。而现在学习其他技术时,间或会遇到与此类似的话题,于是把先前的总结记录下来,以作备忘,并启发自己触类旁通。文中图片都取自当时的Slides。为何要关注多线程和异步服务器的计算分为IO计算和CPU计算。IO计算指计算任务中以IO为主的计算模型,比如文件服务器、邮件服务器等,混合了大量的网络IO和文件IO;CPU计算指计算任务中没有或很少有IO,比如加密/解密,编码/解码,数学计算等等。需要关心的是IO计算,一般的网络服务器程序往往伴随着大量的IO计算。提高性能的途径在于要避免等待IO的结束,造成CPU空闲,要尽量利用硬件能力,让一个或多个IO设备与CPU并发执行。另一方面,CPU密集的计算是我们无法控制的。如果是CPU计算出现了瓶颈,那只能给服务器增加CPU,或者增加服务器。而IO操作,实际上是空等别的硬件,这里面的优化就大有可为。大部分Web服务的大部分操作都是IO密集型的。无非是读磁盘、查数据库、访问网络调用别的API,

c# 2018-02-22 发布
3 浏览

NET多线程和异步总结(二)

承接上文。线程池线程池主要有两个好处:避免线程创建和销毁的开销。自动缩放:可以按需增减线程的数量。总之,Windows系统自带了线程池的功能,通常情况下,你不可能有更好的实现。所以只需了解如何使用。Windows的线程池有两种,分别是非托管线程池和托管线程池(即.NET线程池)。下面分别来介绍。非托管线程池每个进程都有一个线程池,线程池有个IOCP。其中的线程分为IO线程和工作者线程(或非IO线程)。其中工作者线程监听线程池的IOCP。IO线程专门执行APC的异步完成例程。在空闲时一直是可唤醒状态。调用WindowsAPIQueueUserWorkItem会让一个监听在IOCP上的工作者线程醒来,并执行例程。调用BindIOCompletionCallback把一个文件句柄绑定到线程池的IOCP上。当此文件有关的IO操作完成时,一个工作者线程会被唤醒来执行后面的操作。调用QueueUserWorkItem并传入WT_EXECUTEINPERSISTENTTHREAD标识时,会将一个APC回调放入IO线

c# 2018-02-22 发布
AD 友情赞助