"懒"程序员才是好程序员.复制和粘贴样板代码,一但代码有错误,或代码功能修改,那么程序在修改的时候,程序员需要找到所有相同功能的代码一处处进行修改.这会使人重复发明轮子,而且在别人看代码的时候无法在更高层次都看待问题的解决方案.太容易陷入细节. for循环 js中的for循环在进行一些细微变化时,可以引入不同的行为.编程的时候对于边界条件的判断往往会导致一些简单的错误.下面的一些for循环的细微变化导致边界条件的变化. for(var i=0;i<=n;i++){...} //包…
js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //"number" typeof “s”;//"string" typeof null;//"object":ECMAScript把null描述为独特的类型,但返回值却是对象类型,有点困惑. 可以使用Object.prototype.toString.ca…
js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+1}" 反射获取函数源代码的功能很强大,使用函数对象的toString方法有严重的局限性.toString方法的局限性ECMAScript标准对函数对象的toString方法的返回结果(即该字符串)并没有任何要求.这意味着不同的js引擎将产生不同的字符串,甚至产生的字符串与该函数并不相关. 如果函数…
1.xml文件 activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent…
约定优于配置和RESTful是Ruby on Rails十分推崇的哲学.在一个默认的RESTful的Rails项目中,使用资源和HTTP动词来帮助组织项目. 假如有一个使用scaffold创建的Rails项目,它的创建代码像下面这样: rails new hello_rails cd hello_rails/ rails generate scaffold person name:string 执行之后得到的文件结构如下(原文来自Ruby on Rails 指南): app/ 存放程序的控制器.…
这本书中就像它前言中说的那样,这本书不是给初学者的.需要一定的基础,而且有一定的编码实践,才能很好的理解书里讲到的内容.学习一门编程语言,需要熟悉它的语法.形式和结构,这样才会编写合法的.符合语义的.具有意义和行为正确的程序.此书的目的是加深理解如何有效地使用js构建更可预测的.可靠和可维护的js应用程序和库.所有章节都是围绕着这几块来展开的. 目录 第1章 让自己习惯JavaScript 第1条:了解你使用的js版本 第2条:理解JavaScript的浮点数 第3条:当心隐式的强制转换 第4条…
在这里整理一下,每条对应的提示 第1条:了解使用的js版本 确定应用程序支持的js的版本(浏览器也是应用程序噢) 确保使用的js特性是应用程序支持的(要不写了也运行不了) 总是在严格模式下编写和测试代码(面向未来编程) 合并代码时注意不同声明的严格模式(还是用第二种解决方案吧,省心) 第2条:理解JavaScript的浮点数 js的数字都是双精度的浮点数 js的整数仅仅是双精度浮点数的一个子集,不是单独的一个类型 位运算将数字视为32位的有符号整数 当心浮点运算的精度问题 第3条:当心隐式的强制…
前言 这节里其实一直都在讨论对象这个在js中的万能的数据结构.对象可以表式为多种的形式,表示为字典和数组之间的区别.更多的我觉得这章讨论多的是一些对应实现功能的相关操作,有可能出现的bug以及如何避免来修复这些bug.比如下面会说到的for...in枚举属性的操作,可能因为对原型的一些操作,最终造成数据对象的操作的破坏.对于属性顺序有要求的如何处理,对类数组如何处理等.下面再一起一条一条回顾一下,这章里的主要内容.我觉得没必要讲的会一语带过,相比前面的几章,个人觉得这章的内容重点很少,注意几点就…
今天学习是看到了讲解C++容器的一些细节用法,故记之!参考:http://www.cnblogs.com/answeryi/archive/2011/12/16/2289811.html: 目录 ==================================================== 第一章 容器 第二章 Vector和string 第三章 关联容器 第四章 迭代器 第五章 算法 第六章 函数 第七章 在程序中使用STL =============================…
目录 ==================================================== 第一章 容器 第二章 Vector和string 第三章 关联容器 第四章 迭代器 第五章 算法 第六章 函数 第七章 在程序中使用STL ==================================================== 第1章 容器 第1条:慎重选择容器类型. 标准STL序列容器:vector.string.deque和list. 标准STL关联容器:set.…
一.引言 1.几条基本规则:(清晰性和简洁性最为重要) 模块的用户永远也不应该被模块的行为所迷惑(那样就不清晰了),模块要尽可能小,但又不能太小 代码应该被重用,而不是被拷贝 模块之间的依赖性应该尽可能的降到最小 错误应该尽早的被检测出来,最好是在编译时刻 PS.你不该盲目的遵从这些规则,但是,你应该只在偶尔的情况下,有了充分理由之后采取打破这些规则 学习编程艺术首先要学会基本的规则,然后才能知道什么时候可以打破这些规则 二.创建和销毁对象 第一条:考虑用静态工厂方法代替构造器.它有以下优势:…
第19条:接口只用于定义类型 这一条就举了一个反例,说有些接口中只包含常量.这是对接口的不良使用.要实现相同的功能,应该使用不可实例化的工具类(第4条说过). public class PhysicalConstants { private PhysicalConstants() { } // Prevents instantiation // Avogadro's number (1/mol) public static final double AVOGADROS_NUMBER = 6.02…
目录 ==================================================== 第一章 容器 第二章 Vector和string 第三章 关联容器 第四章 迭代器 第五章 算法 第六章 函数 第七章 在程序中使用STL ==================================================== 第1章 容器 第1条:慎重选择容器类型. 标准STL序列容器:vector.string.deque和list. 标准STL关联容器:set.…
这篇博客是Java经典书籍<Effective Java(第二版)>的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约会持续1个月左右. 第1条:考虑用静态工厂方法代替构造器 通常情况下我们会利用类的构造器对其进行实例化,这似乎毫无疑问.但“静态工厂方法”也需要引起我们的高度注意. 什么是“静态工厂方法”?这不同于设计模式中的工厂方法,我们可以理解它为“在一个类中用一个静态方法来返回这个类的实例”,例如: public st…
<Effective Java(中文第二版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382186 Java(中文第二版)>[PDF]"  TITLE="<Effective Java(中文第二版)>[PDF]" /> 编辑推荐 <Sun 公司核心技术丛书:EffectiveJava中文版(第2版)>内容全面,结构清晰,讲解详细.可作为技术人员的参考用书.编码平添乐…
第二章——创建和销毁对象 第1条:考虑用静态工厂方法替代构造器 第2条:遇到多个构造器参数时要考虑用构建器 第3条:用私有构造器或者枚举类型强化Singleton属性 第4条:通过私有构造器强化不可实例化的能力 第5条:避免创建不必要的对象 第6条:消除过期的对象引用 第7条:避免使用终结方法 第三章——对于所有对象都通用的方法 第8条:覆盖equals时请遵守通用约定 第9条:覆盖equals时总要覆盖hashCode 第10条:始终要覆盖toString 第11条:谨慎地覆盖clone 第1…
前两章我们分享了Spring boot对Restful 的支持,不过Restful的接口通常仅仅返回数据.而做web开发的时候,我们往往会有很多静态资源,如html.图片.css等.那如何向前端返回静态资源呢?以前做过web开发的同学应该知道,我们以前创建的web工程下面会有一个webapp的目录,我们只要把静态资源放在该目录下就可以直接访问.但是,基于Spring boot的工程并没有这个目录,那我们应该怎么处理? 一.最笨的方式 我们首先来分享一种最笨的办法,就是将静态资源通过流直接返回给前…
本来想给App评分,好的开源组件没有Swift版,如是自己写了个简易的.想着既然写了,就写完善点,提供给需要的人使用.这样SwiftyiRate诞生了. 下面主要说下创建pod的步骤: 一.创建github开源项目 这一步我就不细说了. 二.在本地git项目中创建podspec描述文件 1.在当前项目文件目录打开终端并执行 pod spec create YourProject 执行成功后会生成YourProject.podspec文件.该文件描述了pod项目的一些属性. 2.修改podspec…
第45条: 将局部变量的作用域最小化 该条目与第13条(使类和成员的可访问性最小)本质上是类似的.要使局部变量的作用域最小化,最有利的方法就是在第一次使用它的地方声明.在每个局部变量的声明处都应该包含一个初始化表达式.还要使方法小而集中. 第46条: for-each循环优于传统的for循环 传统的for循环的迭代器和索引变量在每个循环中会出现三次,这很容易出错.考虑下面的例子: public class Suits { public static void main(String[] args…
这篇博客是Java经典书籍<Effective Java(第二版)>的读书笔记,此书共有78条关于编写高质量Java代码的建议,我会试着逐一对其进行更为通俗易懂地讲解,故此篇博客的更新大约会持续1个月左右. 第1条:考虑用静态工厂方法代替构造器 通常情况下我们会利用类的构造器对其进行实例化,这似乎毫无疑问.但“静态工厂方法”也需要引起我们的高度注意. 什么是“静态工厂方法”?这不同于设计模式中的工厂方法,我们可以理解它为“在一个类中用一个静态方法来返回这个类的实例”,例如: public st…
metric,自己决定去哪个EBGP邻居 local-pre,影响AS内部IBGP邻居的路由决策 med,影响AS外部EBGP邻居的路由决策   1,BGP属性     公认传递(well-known mandatory ):必须支持,而且必须包含,包括as-path,next-hop,origin     公认非传递(well-known discretionary):必须支持,但是可以不包含,包括local-preference     可选传递(optional transitive ):…
目录 ==================================================== 第一章 容器 第二章 Vector和string 第三章 关联容器 第四章 迭代器 第五章 算法 第六章 函数 第七章 在程序中使用STL ==================================================== 第1章 容器 第1条:慎重选择容器类型. 标准STL序列容器:vector.string.deque和list. 标准STL关联容器:set.…
简介: <Effective JavaScript:编写高质量JavaScript代码的68个有效方法>共分为7章,分别涵盖JavaScript的不同主题.第1章主要讲述最基本的主题,如版本.类型转换要点.运算符注意事项和分号局限等.第2章主要讲解变量作用域,介绍此方面的一些基本概念,以及一些最佳实践经验.第3章主要讲解函数的使用,深刻解析函数.方法和类,并教会读者在不同的环境下高效使用函数.第4章主要讲解原型和对象,分析JavaScript的继承机制以及原型和对象使用的最佳实践和原则.第5章…
一个完整的博客应用不能没有后台管理系统.所以在本节中我们将继续完善博客应用 —— 开发后台管理系统. 1.创建路由 在上一节十分钟创建博客项目中,已经设置过了 app/Http/routes.php,现在,我们要添加后台路由到该文件. 为什么要使用路由? Laravel 5.1 一种机制用来建立 web 请求与处理 web 请求的代码之间的关系,这种机制被称作路由.本项目中所有路由都定义在 app/Http/routes.php 文件中. 只要 web 请求路径在 public 目录下找不到,L…
第一部分:(参考百度百科) 一.STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R Musser在惠普实验室工作时所开发出来 的.现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. STL的代码从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),几乎所有的代码都采用了…
目录 第13条: 使类和成员的可访问性最小化 第14条:在公有类中使用访问方法而非公有域 第15条:使可变性最小化 第16条:复合优先于继承 第17条:要么为继承而设计,并提供文档说明,要么就禁止继承 第18条:接口优先于抽象类 第19条:接口只用于定义类型 第20条:类层次优于标签类 第21条:用函数对象表示策略 第22条:优先考虑静态成员类   第4章 类和接口 第13条: 使类和成员的可访问性最小化 尽可能使每个类或者成员不被外界访问.提供尽可能小的访问级别. final维持字段不可变性,…
第1章 引言 第2章 创建和销毁对象 第1条:考虑用静态工厂方法代替构造器(Consider static factory methods instead of constructors) 第2条:遇到多个构造器参数时要考虑用构建器(Consider a builder when faced with many constructor parameters ) 第3条:用私有构造器或者枚举类型强化Singleton属性( Enforce the singleton property with a…
自己的AC做法似乎离正解偏了十万八千里而且复杂了不少--不管怎样还是记录下来吧. 题意: 题目链接: JOISC2017 F - AtCoder JOISC2017 F - LOJ \(N\)个车站排成一行,第\(i\)个车站有一个在\([1,M]\)之间的权值\(l_i\).有\(M\)种列车,第\(i\)种在所有满足\(l_j \geq i\)的车站\(j\)停靠.如果搭乘一种列车从\(u\)到\(v\),需要在\(u\).\(v\)之间的所有停靠站(包含\(u\)和\(v\)),各停车一次…
前言: 读这本书第1条规则的时候就感觉到这是一本非常好的书.可以把我们的Java功底提升一个档次,我还是比較推荐的.这里我主要就关于覆盖equals.hashCode和toString方法来做一个笔记总结.希望可以与君共勉. 概述: 这一章主要是说明一些对于全部对象都通用的方法.我们知道Java的多态是其特色之中的一个,而多态的体现方式中就有一种方式叫做"重写".这些概念性的东西我想在大学我们学习Java的初期.老师就会如数家珍一样地灌输给我们.只是.在那个时候有多少人真的了解了什么是…
第1条:考虑用静态工厂方法代替构造器 通常我们会使用 构造方法 来实例化一个对象,例如: // 对象定义 public class Student{ // 姓名 private String name; // 性别 private String sex; public Student(String name,String sex){ this.name = name; this.sex = sex; } } // 实例化对象 Student student = neew Student("Mar…