imooc-free】的更多相关文章

http://www.imooc.com/article/2325…
爬虫目标:获取http://www.imooc.com/learn/348网页中的章节标题和视频信息. var http = require('http'); var cheerio = require('cheerio'); var url = 'http://www.imooc.com/learn/348'; //获得html后,取得章节标题和视频信息 function filterChapters(html) { var $ = cheerio.load(html); var chapte…
数据对象映射模式 1.数据对象映射模式,是将对象和数据存储映射起来,对一个对象的操作会映射为对数据存储的操作 2.在代码中实现数据对象映射模式,我们将实现一个ORM类,将复杂的SQL语句映射成对象属性的操作 3.结合使用数据对象映射模式.工厂模式.注册模式 具体代码如下: 1.定义一个user表,结构如下: 插入一条数据: 在User.php中定义User类,用来操作数据表: 在index.php中new一个User类,修改其属性,在脚本结束时,调用析构方法,将修改后的属性存入数据表,从而实现对…
原型模式 概述: 1.与工厂模式作用类似,都是用来创建对象 2.与工厂模式的实现不同,原型模式是先创建好一个原型对象,然后通过clone原型对象来创建新的对象,这样就免去了类创建时重复的初始化操作 3.原型模式适用于大对象的创建,创建一个大对象需要很大的开销,如果每次new就会消耗很大,原型模式仅需内存拷贝即可 代码如下: 1.编写一个画图类: <?php namespace IMooc; class Canvas{ public $data; /** * [生成一块宽为20,高为10的包含*的…
适配器模式 1.适配器模式,可以将截然不同的函数接口封装成统一的API 2.实际应用举例,PHP的数据库操作有mysql.mysqli.pdo三种,可以用适配器模式统一成一致,类似的场景还有cache适配器,将memcache,redis,file,apc等不同的缓存函数,统一成一致.APC参考鸟哥博客(http://www.laruence.com/tag/apc) 以数据库操作接口为例: 1.定义数据库操作类的接口,用来约束不同的数据库操作类 在IMooc/Database/I_Databa…
一.工厂设计模式 index.php $db = IMooc\Factory::createDatabase(); 使用工厂类的静态方法直接创建一个dababase对象,当类名发生修改时,在工厂里修改即可. IMooc/Factory.php 二.单例设计模式 保证在整个脚本运行期间,只有一个对象的实例,比如数据库操纵对象 Database.php Factory.php index.php output同一个对象: object(IMooc\Database)#1 (0) { } object…
SPL标准库的使用 SPL是用于解决典型问题(standard problems)的一组接口与类的集合. 1.SPL提供了很多数据结构类,如SplStack.SqlQueue.SqlHeap.SplFixedArray等 实例代码如下: a.栈 b.队列 c.定长数组 2.PHP链式操作的实现 index.php IMooc/Database.php 3.PHP魔术方法 a.__get\__set:对象属性的管理 index.php Object.php output : string(19)…
为导航条添加标题.二级菜单及状态 加入导航条标题 在Web页面制作中,常常在菜单前面都会有一个标题(文字字号比其它文字稍大一些),其实在Bootstrap框架也为大家做了这方面考虑,其通过"navbar-header"和"navbar-brand"来实现,示例查看代码编辑器(11-22). 原理分析: 此功能主要起一个提醒功能,当然改良一下可以当作是logo(此处不做过多阐述).其样式主要是加大了字体设置,并且设置了最大宽度: /*源码查看bootstrap.css…
基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分以下几步: 第一步:首先在制作导航的列表(<ul class="nav">)基础上添加类名"navbar-nav" 第二步:在列表外部添加一个容器(div),并且使用类名"navbar"和"navbar-default"…
imooc网的主体框架,主要是里面的导航动画做的比较好,大家可以学习下. git地址:https://github.com/xiangzhihong/ImoocPro…
课程地址: 进击Node.js基础(一) 进击Node.js基础(二) 1. nodejs创建服务器 var http = require('http'); //加载http模块 //请求进来时, 告诉服务器做什么, 于是给createServer传递一个匿名回调函数. //两个参数, 前面是请求体, 后面是响应体. 请求体用来获取请求相应信息,比如请求ip地址,请求的类型get/post,res用来返回响应 http.createServer(function(req, res) { res.…
一.视频学习相关的课程列表: C++远征之起航篇http://www.imooc.com/learn/342: C++远征之离港篇http://www.imooc.com/learn/381: C++远征之封装篇(上)http://www.imooc.com/learn/382: C++远征之封装篇(下)http://www.imooc.com/learn/405: C++远征之继承篇http://www.imooc.com/learn/426: C++远征之多态篇http://www.imoo…
慕课网的nodejs教程:http://www.imooc.com/learn/348 这人讲的很赞,特别是在事件驱动这点上,耳目一新. 视频略老,所以demo有些过时了,摸索着写了一个自己的小程序. 比较痛苦的是最近半年几乎没写过jQuery,不少用法实在想不起来,好在翻着API也不是什么问题. 首先,npm install cheerio,可以认为cheerio这货就是nodejs版本的jQuery,用法应该完全一致. 然后就可以愉快的敲代码了: var http = require('ht…
第三章 Python变量和数据类型 3-4.变量 变量名必须是大小写英文.数字和下划线(_)的组合,且不能用数字开头. 同一个变量可以反复赋值,而且可以是不同类型的变量,例如: a = 123 # a是整数 print a a = 'imooc' # a变为字符串 print a 这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言.和静态语言相比,动态语言更灵活,就是这个原因. 当我们写:a = 'ABC'时,Python解释器干了两件事情: 1.在内存中创建了一个'ABC'的字符…
第三章 Python变量和数据类型 3-1.数据类型 在Python中,能够直接处理的数据类型有以下几种: 整数 Python可以处理任意大小的整数,当然包括负整数,表示方法和数学上的写法一模一样,十六进制用0x前缀. 浮点数 浮点数也就是小数.整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差. 字符串 字符串是以''或""括起来的任意文本. 布尔值 可以直接用True.False表示布尔值(请注意大小…
当我使用 mysql授予用户时, GRANT ALL PRIVILEGES ON *.* TO hehe IDENTIFIED BY 'some' WITH GRANT OPTION; 出现:1044: Access denied for user 'hehe'@'localhost' to database 'imooc' 修改成这样: GRANT ALL PRIVILEGES ON *.* TO hehe@localhost IDENTIFIED BY 'some' WITH GRANT O…
Java高并发秒杀API之业务分析与DAO层 Java高并发秒杀API之Service层 Java高并发秒杀API之web层 Java高并发秒杀API之高并发优化 除了并发部分外的这个web开发的总结:https://www.imooc.com/video/11737 springmvc运行流程 BOOTSTRAP 和 JS 的使用技巧.(模块化.不混乱.抽取字典方便修改) JQ插件(countDown && cookie 等) 高并发部分: java读取内存需要10纳秒,1秒等于1亿纳秒…
ViewPagerIndicator+ViewPager 要想使用ViewPagerIndicator,要使用到viewPagerlibrary开源库 top.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width…
FragmentPagerAdapter+ViewPager 与之前直接用ViewPager不同的是,数组里面放的不再是View,而是Fraagment; 使用FragmentPagerAdapter xml文件没有变化,只有代码发生变化 package com.imooc.tab03; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.support.v4.ap…
Fragment实现Tab 首先把activity_main.xml 文件中的ViewPager标签改成Fragment标签 <FrameLayout android:id="@+id/id_content" android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" > </FrameLay…
1.ViewPager实现Tab 首先实现底部和底部布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="4…
IntelliJ IDEA 快捷键整理-from imooc 学习了:https://www.imooc.com/learn/9241, main2, 100.for 3, new Date().sout 4, sleep -- 需要自己编写live template5,可以使用postfix completion 1, ctrl+shift+f ,find in path 2, ctrl+鼠标左键点击之后,ctrl+alt+向左键可以返回,ctrl+alt+向右键可以又过去: 1, ctrl+…
https://www.imooc.com/video/3529 Windows Vs Linux Linux: (other linux overall   https://onedrive.live.com/edit.aspx?resid=A42E44970A2B2F18!104&cid=a42e44970a2b2f18&app=OneNote&wdorigin=701) 4. 操作文件和目录 Linux 系统中的目录:  http://www.runoob.com/linux…
https://www.imooc.com/video/14718 1. BS Vs CS BS架构: browser server CS架构: Client server(安装到本地)…
前言 imooc的机器学习一个最基本的介绍类课程,http://www.imooc.com/learn/717 ,不怎么涉及具体的算法或实现,只是讲了讲一些理论概念. 概述 机器学习: 利用计算机从历史数据中找到规律,并把这些规律用到对未来不确定场景的决策. 主体的不同: 计算机--机器学习. 人--数据分析. 数据分析是依靠人从历史数据中找到规,学习效果很大程度以来于人的经验与知识水平: 机器学习就是想要抛弃对人的依赖,靠机器来挖掘规律. 机器学习与统计学 <概率论><数据统计>…
第一章 数据类型 1,六种数据类型:原始类型(number,string,boolean,null,undefined) + object对象(Function Array Date) 2,隐式转换:NaN≠NaN,null==undefined,new Object≠new Object(用引用来比较而不是值), new Object()==new Object(),null==undefined 3,类型检测:typeof(typeof null==="object") 原始类型…
一.介绍js移动端框架:zepto.js与jquery mobile 对比:zepto特点 1.与jquery相似度95%,会jquery基本会zepto: 2.API少,轻量级框架 3.移动端无缝接入 4.高性能 jquery mobile特点 1.高度组件化 2.加载多内容,性能降低 二.zepto入门 1.自带模块:核心模块,事件,ajax,IE兼容性: 2.$认识:构造函数,与jquery区别在: i,$()相当于$(document).ready(function(){}); ii,$…
装饰器模式(Decorator) 概述 1.装饰器模式可以动态地添加修改类的功能 2.一个类提供了一项功能,如果要在修改并添加额外的功能,传统的编程模式,需要写一个子类继承它,并重新实现类的方法 3.使用装饰者模式,仅需在运行时添加一个装饰器对象即可实现,可以实现最大的灵活性 代码实现如下 使用原型模式中的Canvas类,如果当前想设置draw()方法画图的颜色为红色,传统的方式实现如下: 定义一个子类,重写draw()方法,从而实现特定的功能:如果需要增加很多功能呢?就会遇到问题: 使用装饰者…
观察者模式 概述: 1.观察者模式(Observer),当一个对象状态发生改变时,依赖他的对象全部会收到通知,并自动更新 2.场景:一个事件发生后,要执行一连串更新操作,传统的编程方式,就是在事件的代码之后直接加入处理逻辑.当更新的逻辑增多之后,代码变得难以维护,这种方式是耦合的,侵入式的,增加新的逻辑要修改事件主体的代码 3.观察者模式实现了低耦合,非侵入式的通知于更新机制 代码如下 传统的方式是如下:事件触发时,会执行逻辑1,逻辑2,逻辑3....... 事件和更新操作时耦合在一起,编程是侵…
策略模式 1.概述:策略模式,将一组特定的行为和算法封装成类,以适应某些特定的上下文环境,这种模式称为策略模式 例如:一个电商网站系统,针对男性女性用户要各自跳转到不同的商品类目,并且所有广告位展示不同的广告 传统的是使用条件分支进行判断,代码不灵活 使用策略模式,要先定义一个约束行为的接口,I_UserStrategy 定义两种策略,男性male和女性female策略类,分别实现了I_UserStrategy. MaleUserStrategy.php FemaleUserStrategy.p…