- 博客(69)
- 收藏
- 关注
原创 anluar--如何使用controller
controller使用的时候的注意点:不要复用controller,一个controller就只负责一个视图就好了(因为一般controller都写的是业务的逻辑,而业务的逻辑又不是框架咯,哪需要什么复用。)不要在controller中操作DOM,这不是控制器的职责(ng里面有专门操作的DOM比如指令)不要在controller里面做数据格式化,ng有很好用的表单控件不要在controll
2016-08-23 10:23:21
496
原创 angular--初印象之认识MVC
angular的强大早有耳闻,自带MVC架构,而创建的js脚本语言mvc:很多人并不能分清为什么mvc不是23种模式中的一种,在学习angular之后,才清晰的认识到,mvc是一种架构,而一种架构往往包含了多种模式。之所以要用到mvc,有三点原因:代码量太大,切分职责很多逻辑会产生重复,所以需要采用复用方便后期维护 mvc只是手段,终极目标是模块化和复用前端MVC的困难:操作dom的代码
2016-08-23 09:40:59
601
转载 使用 JSHint 减少 JavaScript 错误
JSHint 是一个开源工具,用于分析和验证JavaScript代码是否符合您的编码规则。这个强大的工具可以帮助发现您代码中错误和问题T,它强制你的团队保持一定的编码惯例和风格,使得代码可靠和更容易阅读.在这篇文章中,我将向您展示如何安装、配置和使用JSHint。 还包括一个例子,列出了一些我最喜欢的能使用JSHint的编辑器。安装 JSHint安装JSHint非常容易,你可以使用
2016-08-23 09:02:27
3939
转载 程序员使用Node的十个技巧
从问世到现在将近20年,JavaScript一直缺乏其它有吸引力的编程语言,比如Python和Ruby,的很多优点:命令行界面,REPL,包管理器,以及组织良好的开源社区。感谢Node.js和npm,现如今的JavaScript鸟枪换炮了。Web开发者有了强大的新工具,接下来就看他们的想象力了。 下面这个提示和技巧清单,能让你和你的node程序保持快乐。 1. 用npm
2016-07-28 05:29:48
1326
原创 nodejs--Express
Express是最流行的基于Node.js的Web开发框架,可以快速的搭建一个完整功能的网站最常用的莫过于启动脚本的app.get方法,在app.get方法里的第一个参数指定路径,另一个参数接受一个函数用来渲染页面之类的功能,例如: var express = require('express'); var app = express(); app.get('/', function (req
2016-07-26 00:18:44
384
原创 nodejs--http
Htto模块主要是用来创建Web服务器来用的,使用Node进行创建服务器是相当简单的,现在简单的来写一个服务器 `var http = require(‘http’)http.createServer(function(req,res){ res.writeHead(200), res.end(‘hello-world’) }) .listen(8080)console.log(web i
2016-07-25 23:00:39
289
原创 Event对象
1.概述 Events模块是对node“发布”/“订阅”的实现(虽然我具体不太懂…但是大致知道怎么用,日后再来分析这句话吧) 先来一段代码试试水: var EventEmitter = require('events').EventEmitter; var ee = new EventEmitter(); ee.on('someEvent', function () { consol
2016-07-22 17:19:13
314
原创 nodejs--process
在之前的Nodejs概述中有提到,process指的是当前的进程,是个全局的变量,在任何地方都可以调用它,而不需要ruqire来加载 1.退出码 当进程结束的时候,会返回一个整数值,表示退出时的状态。一下是常用的退出码:0,正常退出1,发生未捕获错误5,V8执行错误8,不正确的参数128 + 信号值,如果Node接受到退出信号(比如SIGKILL或SIGHUP),它的退出码就是1
2016-07-22 15:35:57
624
原创 nodejs--path
1.path.join path.join的方法顾名思义,是连接路径的方法,当需要使用正确的路径分割符的时候,会调用该模块的该方法,Unix系统是”/“,Windows系统是”\“。举例: var path = require('path') path.join(mydir,'foo') 所以在Unix系统下,得到的结果是mydir/foo,在Windows系统下,结果是mydir\foo2
2016-07-21 16:59:39
333
原创 nodejs--fs模块
简述:fs是filesystem的简写,也就是提供本地文件读写来用的。常用的有以下十个命令 1.readFileSync(): 同步读取文件,返回一个字符串 var text = fs.readFileSync('path','utf-8') 一般会将文件按行拆分成数组 text.split(/\r?\n/).forEach(function (line) { // ... });2
2016-07-21 16:19:09
468
原创 nodejs-- npm模块管理器
简述: npm默认的含义是模块管理器,用来安装和管理模块的,另一层含义是node的开放式模块的登记和管理系统罗列一些查看信息的命令: 查看 npm 命令列表 npm help 查看各个命令的简单用法 npm -l 查看 npm 的版本 npm -v 查看 npm 的配置 npm config list -l因为Npm的使用较为简单,命令一搜一大堆,这里就不占篇幅,只是罗列一些常用
2016-07-21 14:14:33
392
原创 nodejs--package
1.概述 packane.json包含了该项目的所有的模块,所以我们在下载了一个Nodejs的源码的时候,直接利用npm install会自动下载packane.json的所有模块 packane.json内部文件是一个json对象,比如name就是项目名称,version是版本2.script字段 指定了运行脚本命令的缩写"scripts": { "start": "node bi
2016-07-21 13:38:29
383
原创 nodejs概述
1.简介 node是javascript的服务器运行环境,这里面的运行环境需要从两个方面进行理解javascript是在Node上运行的,这有类似于虚拟机的意思Node提供了大量的工具(功能模块化),javascript因此拥有了读写文件,新建子进程….的功能2.REPL环境 在命令行中输入node,即进入到node的repl环境中,在这里可以执行各种javascript的命令,类似 >
2016-07-21 11:09:56
346
转载 Gulp自动管理工具的入门和技巧
前端构建工具gulpjs的使用介绍及技巧gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学习起来很容易,而且gulpjs使用的是nodejs中stream来读取和操作数据,其速度更快。如果你还没有使用过前端构建工具,或者觉得gruntjs太难用的话,那就尝试一下gulp吧。本文导航:gulp的安装开始使用gulpg
2016-07-20 08:15:01
921
原创 标准库
Objet对象1.概述 : var o1 = {a:1} var o2 = new Object(o1) o1===o2 //true Object作为构造函数使用时,可以接受一个参数。如果该参数是一个对象,则直接返回这个对象;如果是一个原始类型的值,则返回该值对应的包装对象。 Array实例的方法valueOf方法,toString方法 valueOf方法返回数组本身。var a =
2016-07-19 22:51:23
308
转载 Mongoose学习参考文档——基础篇
Mongoose学习参考文档前言:本学习参考文档仅供参考,如有问题,师请雅正##一、快速通道###1.1 名词解释Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力Model : 由Schema发布生成的模型,具有抽象属性和行为的数据库操作对Entity : 由Model创建的实体,他的操作也会影响数据库
2016-07-18 16:02:13
415
转载 3分钟,9个Q&A让你快速知道Docker到底是什么
摘要:Google、Amazon、Microsoft、VMware都纷纷加入Docker和Container所掀起的新时代云端虚拟化行列,很多人还不知道Docker和Container到底是什么,下面的9个Q&A让你快速了解这一切。【编者按】不论是Google、Amazon、Microsoft、VMware都纷纷拥戴,加入Docker和Container所掀起的新时代云端虚拟化行列,这两项技术
2016-07-16 08:34:38
1236
转载 在Visual Studio 2015中使用Git
1. VS2015在对Git的支持VS2015是微软IDE集成开发环境的重量级升级,微软除了将触角延伸至iOS和Android平台以及Unity,Unreal和Cocos等游戏开发领域中。而且在进一步集成Git。可以说在不需要第三方插件的前提下,就可以使用Git来进行团队开发。2. 在VS2015中使用Git下面介绍如何在VS2015中使用Git进行团队开发。2.1 在Git服
2016-07-12 08:42:19
25900
3
原创 Docker简介
docker简介:我们简单的举个例子:很古老的托运方式,是将大大小小品种不一的货物压在一起放在一艘大船上统一托运,这会造成什么后果?显然钢材和香蕉放在一起会压坏香蕉,当大船到岸海运改为汽运,那一大堆的装卸又何尝不是一种折磨。这个时候Docker就出现了,它做到能既能够组合当前的最佳服务又能跨越多种运行环境带来的困扰,它就好像集装箱的概念一样,方便的打包应用,隔离他们之间的影响(显然虚拟机在这方面做的
2016-07-07 09:19:01
392
原创 程序集加载和反射
程序集的加载JIT编译器器将IL代码编译成本地代码时, 会查看IL代码中引用了哪些类型。在运行过程中,JIT编译器利用程序集的TypeRef和AssemblyRef元数据表来确定哪一个程序集定义了所引用的类型,然后JIT编译器将对应程序集加载到AppDomain中,在内部,CLR使用System.Reflection.Assembly类的静态方法Load来尝试加载一个程序集。然而如果我们想动态加载一
2016-07-02 08:24:17
559
原创 CLR寄宿和APPDomain
我的妈呀,终于看到这了!!!!!寄宿寄宿(hosting)使任何程序都能利用CLR的功能。特别要指出的是,它使现有的应用程序至少能部分使用托管代码编写(这句话暂时不太理解)。所以可以总结出一点:寄宿可以让代码具有可拓展性,但是一旦将第三方DLL加载到进程中一定以为着有一定的风险,毕竟DLL代码很容易破坏应用程序的数据结构和代码(DLL总会想尽一切办法去访问它没有权利访问的资源)AppD
2016-06-28 13:01:43
1068
原创 异常和状态管理
事实上,许多面向对象的构造——构造器,获取和设置属性,添加和删除事件,调用操作符重载和调用转换操作等等(我们在写代码的时候总是想当然的写一大串,但是要知道很多代码只是在理想状态下没有任何操作失败才可能执行) 由于异常基础部分已经十分明了,所以这里就不一一赘述,只是简单阐述一些之前没有注意到的地方####**:**catch()的这个圆括号中的表达式称为捕捉类型。C#要求它必须是System.Exce
2016-06-24 15:18:46
346
原创 可空值类型
C#对可空类型的支持Int32?等价于Nullable< Int32 > 不仅如此,C#在此基础上为可空实例上还允许执行类型转化: Int32? a = 5; Int32? b = null; Int32 c = (Int32)a; //将可空类型的a强制转换成非可空类型 Double? d = 5; //将Int32类型的值5转型成double,这个时候的d = 5.0 Doubl
2016-06-23 17:18:06
399
转载 Lambda表达式详解(例子详解)
前言 1、天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西。 2、夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅。据说它是微软自c#1.0后新增的最重要的功能之一。lambda简介 lambda运算符:所有的lambda表达式都是用新的lambda运算符 " => ",可以叫他,“转到”或者
2016-06-22 15:32:02
2131
原创 枚举类型和位标志
Internal enum Color{ white, //赋值0 Red, //赋值1 Green, ... Blue, ... Orange ... } 使用枚举理由:使程序荣易读,程序员就不用时常念叨white是0之类的,有了枚举类型,一步了然。枚举是强类型,简单点:假设你在c#代码中,你定义了一个整型变量后,就不能赋一个字符型数据给这个变量 (除非你用
2016-06-21 17:12:05
667
原创 字符、字符串和文本处理
在.NET Framework中,字符总是表示成16位的Unicode代码值,System.Char类型提供了两个只读常量字段:MinValue(定义成’\0’)和MaxValue(定义成’\uffff’)转型(张志类型转化):最简单,效率最高的 char c =(char)65使用Convert:提供静态方法来实现Char和数值类型的相互转换 char c = Convert.tochar
2016-06-21 16:07:58
563
原创 接口
接口可以认识成一种缩水版的继承机制,它是对一组方法签名进行来统一命名(不提供任何实现)。类继承的重要特点:只要是有基类实例的地方,都能使用派生类型的对象,都能使用派生类型的对象
2016-06-21 10:26:04
285
原创 泛型
泛型是CLR提供的一种特别的机制,它支持算法重用 Public class List,< T > : IList< T >,ICollection< T >,IEnumerable< T > 泛型的几大优势:类型安全:不符合兼容类型的对象会造成编译时错误性能:没有泛型的识货,一般所有的成员都要定义成操作Object数据类型吗。当用算法来操作值类型的实例的时候,肯定就要对值类型进行封装操作(我
2016-06-21 09:48:16
346
原创 属性
C#将有参属性称为索引器 无参属性是平常大家口里叫的属性无参属性面向对象设计和编程的重要原则之一就是数据封装,意味着类型的字段永远不应该公开(public),否则很容易因为不恰当使用字段而破坏对象的状态**声明属性而不提供get/set方法,C#会自动为你声明一个私有字段 **属性不能作为OUT,Ref参数传给方法,而字段可以 **一定要记住属性是个方法对象初始化器String s = new
2016-06-21 09:09:11
328
原创 参数
可选参数和命名参数 class Program { private static int s_n = 0; private static void M(int x = 9, string s = "A", DateTime dt = default(DateTime), Guid guid = new Guid()) {
2016-06-17 17:26:01
396
原创 方法
实例构造器和类(引用类型)构造器: 初始化对象。创建引用类型的对象时,首先为实例的数据字段分配内存,然后进行初始化。 构造引用类型的对象的时候,在调用类的构造函数的时候,为对象的内存总是先归零,没有被构造器显示重写的都会办证获得0或者null值**我们可以知道由于是本类的构造函数,当然不可以被其他类继承(类名都不一样),所以会禁止使用以下修饰符:virtual,new,override,seal
2016-06-17 15:51:00
296
原创 常量和字段
常量是值不会变化的符号,定义在常量符号的时候,它的值是需要一开始就定义的。因为编译器是将常量会保存到元数据中去,所以编译器只能识别基元类型的常量,假如你要设定非基元类型的常量变量,要先将其设置成为Nullpublic const SomeTyoe Empty = null;因为常量值从来不变化,所以常量值是作为类型的一部分的。换一种角度,常量总是被视为静态成员,一旦定义常量值就会产生元数据。由于常量
2016-06-16 16:16:41
1105
原创 类型和成员基础
常量:数据值恒定不变的符号 字段:可读也可写的数据值 属性:用简单的字段风格设置或查询对象的逻辑状态 无论什么编程语言,编译器都能将源代码解析成元数据和IL语言,所有生成元数据的格式都是一样的,这就是为什么CLR成为“公共语言进行时”的原因,因为元数据是所有语言都生成和是使用的公共信息。所以正是有来元数据,我们才能无缝的在写一种语言的同时接壤另一种语言。 · class 类型演示
2016-06-16 14:46:24
350
原创 什么是WCF
WCF是基于Windows开发和部署服务的SDK.WCF为服务提供了运行环境,而且允许你使用CLR类型调用其他服务。WCF是微软对一系列行业标准规范的框架实现,这个规范包括服务交互、类型转换、封装、以及各种协议的管理的定义。WCF的绝大部分功能功能都包含在一个单独的程序集里面System.ServiceModel中,命名空间是System.ServiceModel在WCF中,每一个服务都有唯一的一
2016-06-14 14:35:00
334
原创 WCF
面向服务(SOA)SOA是一个组件模型,它将应用程序的不同程序的不同功能单元(称为服务。例如留言板…),通过定义良好的接口和契约联系起来,应用于架构 。 面向对象只是为了实现功能而少有模块之间的联系,应用于编程什么是WCFWCF是对现有Windows平台下分布式通信技术的整合 (是一种服务平台)WCF可使用WEB进行通信,因此同样支持SOAP的其他的平台间的互操作性就变得简单明了。对WCF进行
2016-06-14 13:40:40
344
原创 参数
可选参数(也可以称作默认参数),当你在定义参数的时候声明来默认值,这样在使用该函数的时候,如果没有给其实参,它会默认使用它的默认参数: ` class Program { static void Main(string[] args) { var troy = new Troy(); troy.He
2016-06-10 09:36:11
660
原创 方法
实例构造器(构造函数)和类(引用类型)构造器是将实例初始化为良好状态的特殊方法。比如:创建引用类型的对象的时候,首先为对象会分配内存地址,/然后初始化对象的附加字段(类型对象指针和同步块索引)/,然后调用实例构造器来设置对象的初始化状态。 要注意的是在调用构造函数之前,引用类型的变量的初始值总为0或为Null值如果父类没有提供无参的构造函数,那么子类必须显示调用一个父类的构造函数`inter
2016-06-04 16:35:11
342
原创 类型基础
CLR要求每个类型最终都是从System.Object类型派生,所以每个类型的每个对象都保证拥有Object的最基本的方法:Equals,GetHashCode,ToString(this.GetType().FullName),GetType(可以指出调用该方法的对象是什么类型,是非虚方法,防止类重写该方法,隐瞒真实类型),MemberwiseClone(相当于镜像,返回对新实例的引用),Fina
2016-06-03 16:13:31
280
原创 PE文件,程序集,托管模块,元数据
CLR实际是和程序集工作,程序集(assembly)是抽象概念 程序集:一个或多个模块/资源文件的逻辑性分组,是重用安全性和版本控制的最小单元。 编译器会默认将生成的托管模块生成程序集 程序集既可以是EXE,也可以是DLL(其中也含有可执行的文件)元数据是由几个表构成的二进制块,有三种元数据表:定义表,引用表和清单表。所谓定义表,主要就是对本模块内部的一些属性,方法什么的
2016-06-03 15:45:11
1003
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人