- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 设计模式-建造者模式
建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。1、封装性,在建造者模式中,调用方不必知道产品内部组成的细节,将一个复杂对象的构建与它的表示分离,使得相同的创建过程可以创建不同的产品对象。1、建造者模式所创建的产品对象一般组成部分相似,如果产品的内部变化复杂,需要定义很多具体建造者类来实现这种变化,导致系统变得很庞大。3、更关注"由零件一步一步地组装出产品对象"。2、相同的方法,不同的执行顺序,产生不同的对象或不同的运行结果。
2022-11-28 15:51:35
76
1
原创 设计模式--状态模式
场景:一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为;操作中含有庞大的多分支的条件语句,且这些分支依赖于该对象的状态。状态模式重点在各状态之间的切换从而做不同的事情,而策略模式更侧重于根据具体情况选择策略,并不涉及切换;定义:状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样。状态模式封装了对象的状态,而策略模式封装算法或策略。例子: 订单系统中的状态。
2022-10-09 17:57:04
118
原创 Docker compose LNMP+python+es+kibana
version: '3'services: nginx: image: nginx:latest ports: - "80:80" - "8082:8082" - "8083:8083" volumes: - "./conf.d/nginx:/etc/nginx/conf.d" - "./web-php:/var/www/web-.
2021-06-30 17:56:58
125
1
原创 golang 归并排序算法实现
package mainimport ( "fmt")func main() { arr := []int{5, 3, 2, 3, 1, 4, 9, 8, 6, 7} merge_sort(arr, 0, len(arr)) fmt.Println(arr)}func merge_sort(arr []int, p int, r int) { if p >= r || p+1 == r { return } q := (p + r) / 2 //中间值 s1 := .
2021-05-27 22:54:46
87
原创 线性表数据结构---数组
定义数组是用一组连续的内存空间,来存储一组具有相同类型的数据。连续的内存空间和相同类型的数据,使数组的随机访问时间复杂度为O(1)。但这两个特点也给数组的其他操作带来了低效,比如要在数组中插入(平均时间复杂度为O(n)),删除(平均时间复杂度为O(n)),某一个元素,因为需要保证内存的连续性,所以在做插入和删除的时候需要在哦大量的数据搬移工作。随机访问int[] a=new int[...
2019-02-19 21:51:12
191
原创 PHP 正则表达式
一 正则表达式的组成分隔符: 可以是除了字母,数字,下划线以及空白字符以外的任何字符(比如 / ,!,#,%,|,~等)。经常使用的分隔符是 #,~。 表达式: 由一些特殊字符和非特殊字符组成。 修饰符: 用于开启或者关闭某些功能/模式。二 元字符 元字符是正则表达式中具有特殊意义的专用字符,用来规定其前导字符(即位于元字符前面出现的字符)在目标对象中的出现模式。常用元字符如...
2019-02-18 22:14:34
928
原创 时间复杂度和空间复杂度
复杂度 快(代码执行效率),省(代码占用更少的存储空间),是数据结构和算法要解决的问题。 时间复杂度是算法执行的时间,空间复杂度是算法占用的内存的内存大小。 大 O 复杂度表示法 1: 算法的执行效率,初略的讲就是代码的执行时间。分析的时候,假设每行代码执行一次命令的时间都是一样的(unit_time),用代码执行的总次数乘以unit_time,即为代码执行的时...
2019-02-18 22:12:41
316
原创 数据结构导学
什么是数据结构?什么是算法 广义上讲:数据结构是指一组数据的存储结构。算法是指操作数据的一组方法。数据结构是为算法服务的,算法要作用在特定的数据结构上才有意义。 狭义上讲,就如下具体数据结构和算法: ...
2019-02-18 21:01:53
177
原创 读msyql 高性能的点点滴滴 第一章
1: 共享锁和排他锁,也称读锁和写锁。 读锁是不阻塞的,多个客户可以在同一个时刻读取同一资源,而不互相干扰。写锁是阻塞的,一个写锁会阻塞其他的写锁和读书。2: 锁力度: 表锁,开销小,并发支持度低(相对于行锁); 行锁,开销大,并发支持度高。行锁在存储引擎层实现,而mysql 服务器层没有实现。3: 事务的隔离级别:规定了一个事务内的修改,哪些是在事务内或者事务间是可见的,哪些是不可见的。事务是...
2018-05-05 09:37:53
114
原创 magento 国外建站,seo,url 自定义
商品product,分类category的url 可以通过后台的url_key,以及meta 的信息进行编辑自定义。这里不再重述,主要讲解如何通过自定义url,实现catalogsearch (商品搜索的方法)url rewrite。 方法一:通过设置 event 事件实现,最终实现 /custom_url/query/, /custom_url/query/2.html 的形式
2018-01-13 10:16:56
418
原创 Nginx 服务器基础配置指令
1 主要配置文件为 nginx.confworker_processes 1; #全局生效events{ worker_connections 1024; # 在events 部分中生效}http{ # 以下指令在 http中生效 include mime.type; default_type appliaction/octet-str
2017-05-17 21:18:07
253
原创 Nginx 服务器的启停控制
nginx 服务在运行时,会保持一个主进程和一个或多个 worker process 工作进程。通过给服务的主进程发送信号来控制服务的启动和停止。首先我们需要知道主进程的进程号PID。 获取PID 有两个途径。一个是Nginx服务启动以后,默认在Nginx服务器安装目录下的logs目录中会产生文件名为 nginx.pid 的文件,此文件保存的就是Nginx服务的主进程PID。另一个是通过命令获
2017-05-15 21:33:59
324
原创 编译安装 nginx
cd /tmp && \ wget http://nginx.org/download/nginx-1.12.0.tar.gz | tar xzvf - && \cd nginx-1.12.0 && \ ./configure --prefix=/usr/local/nginx --with-stream --with-http_stub_status_module --with-http_
2017-05-09 22:07:22
335
原创 负载均衡
负载均衡,一般包含两方面的含义。一方面,是将单一的重负载分担到多个网络节点上做并行护理,每个节点处理结束后将结果汇总返回给用户。第二个方面的含义,是将前端的并发访问和数据流量分担到多个后端网络节点上分别处理。 nginx 服务器的负载均衡策略可以划分为两大类。即内置策略和扩展策略。内置策略主要包含轮询,加权轮询和IP hash 三种。扩展策略主要通过第三方模块实现,种类比较丰富,主要有url h
2017-05-01 10:44:08
258
原创 HTTP 代理和反向代理
普通的代理服务器,只能代理内部网络对internet的访问,客户机必须指定代理服务器的地址,并将原本直接访问web服务的http请求发送到代理服务器上去。普通的代理服务器不支持外部网络对内部网络的请求。 当一个服务器能够代替外部网络的主机,访问内部的网络服务时,这种代理服务器是反向代理服务器。此时代理服务器对外部就像一个web服务器一样,外部网络就可以把它当作一个简单的web服务器,而不需要特殊的网
2017-05-01 10:16:35
413
原创 nginx 学习札记
1 nginx 启动后,在unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。master 进程主要用来管理worker进程,包括 :接受来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程(异常退出后),会自动重新启动新的worker进程。而基本的网络事件是在worker进程中执行的。
2017-03-24 11:42:11
257
原创 phpStorm 配置debug
1 :phpstorm ->preferences->languages&frameworks php->servers 2 Edit Configuration 3 添加 PHP Web Application
2017-03-13 14:02:54
605
1
翻译 vagrant 学习总结
vagrant 学习总结1 需要 ruby (>=2.2) 版本的,来开发和构造 vagrant.。ruby 和 vagrant对应的版本可在github 上的vagrant.gemspec 上查看。(1)不要用系统自带的ruby ,使用ruby的版本管理工具来控制ruby 的版本,例如rvm。 (2)vagrant 的配置是基于系统的当前环境,如果vagrant的安装是通过 source,他们是
2017-01-21 10:06:27
367
原创 magento 事物总结
方法 1 :$transaction = Mage::getModel('core/resource_transaction');此类中有详细方法方法2 :try{$write = Mage::getSingleton('core/resource')->getConnection('core_write');$write->beginTransaction();$sql='';$write
2016-12-05 11:31:28
205
转载 技术帮助文档
1 phpstorm+vagrant+virtualbox 配置debug http://www.sitepoint.com/install-xdebug-phpstorm-vagrant/
2016-11-29 17:14:41
355
原创 magento 文件上传类
class Uploadimg extends Mage_Core_Helper_Abstract{ protected $_supportedExtensions = array('jpg', 'JPG', 'png', 'PNG', 'gif', 'GIF','jpeg','JPEG'); protected $_file = null; protected $_bas
2016-10-21 17:46:10
437
原创 magento 1.x 方法总结
1 collection: 使用count 会使整个纪录load。 使用count后 ,collection 在使用 limit 会失效。获取 collection total 可以使用 方法 getSize()(该方法会使用另一个sql语句,会忽略 limit 的设置)例: Mage::getModel('catalog/product')->getCollection ->g
2016-10-14 17:42:15
554
转载 magento soap api
SOAP: simple object access protocol;WSDL: webservice description language;Magento Soap V1v1 扩展案例step 1: 在 etc 下 新建 api.xml,内容如下<config> <api> <resources> </resources> <ac
2016-10-14 17:31:31
339
原创 magento tax 管理
1 system->configuration->sales->tax 是对tax的管理。主要是有关tax的计算和tax 在前台的显示设置。 注:如果通过rest api 获取商品的tax数据,tax ->default tax destination caculation 下的default country 选项,应该与General->general->local options 下的 L
2016-08-11 12:09:26
507
原创 magento 商品价钱管理
1 设置商品货币种类: system->configuration->general->currency setup 。 2 当商品设置 special_price时候, group_price(用户组价格,不同用户组的客户将看到不同的价格),tier_price(可以理解为批发价格,可以针对不同组设置不同的tier_price) ,这两个价格将失效。3 apply MAP(Minimum Adv
2016-08-10 15:58:18
487
原创 magento 属性管理
Use in Quick Search: 当设置为yes 的时候,在网站的搜索栏中,可以根据改属性来搜索商品。即:所有拥有该属性的商品都会被搜索到。不仅如此,也可以根据商品的全名或者是部分名字,或则是其他单词,与该商品有关的作为搜索条件,也会被搜索到。Use in Advanced Search:任何属性,如果设置为yes,就会在search 表单中包含。这个链接一般在 footer 部分,Ad
2016-08-08 17:16:45
307
原创 magento cache
magento 两层缓存机制 1 默认情况下,magento 使用的是两层缓存机制。基本上,magento 存储缓存记录(在后段)有两种形式,一种是快的,例如 APC ,Memcached,Redis,和一种相对慢的,例如文件存储形式。2 每一种缓存后段都有他们的特点。APC,Memcached,Redis 是 key/Value 后段,不支持标签tag。文件和Redis 有标签支持。3 图例4
2016-07-09 18:45:06
562
原创 Mac 配置mysql 别名 alias
1 which mysql2 vim ~/.bash_profile 粘贴 # mysqlalias mysql='/usr/local/mysql/bin/mysql'alias mysqladmin='/usr/local/mysql/bin/mysqladmin'# lsalias ls='ls -G'3 输入mysql 就可以
2016-07-09 17:56:20
960
原创 Mac xampp 安装redis + PHPredis
1 在官网下载redis 文件 ,解压后,进入 redis的src文件夹,在mac终端输入 make,编译完成后,会生成 redis-serve 和 redis-cli 文件,一个是 服务端,一个是客户端2 ./redis-server 进入服务端 ./redis-cle 进入客户端3 下载PHPredis包 # cd phpreids # phpize
2016-06-25 20:16:16
1178
3
原创 Mac 配置多个git版本库
1 进入ssh目录 #cd ~/.ssh/2 用ssh-keygen 生成一组新的id_rsa_new 和 id_rsa_new.pub(前者是私钥,后者是公钥) # ssh-keygen -t rsa -C ‘test@emial.com’ -f id_rsa_new (邮箱为git服务器上用户名;id_rsa_new为新生成的公钥,私钥文件名)3 为 新生成的私钥 设置config
2016-06-22 13:53:11
928
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人