- 博客(246)
- 收藏
- 关注
原创 252 (2017年回顾)划水,心得与反思
今天整理简历发现已经快1年没有更新博客了,其实技术积累一直在做,只不过现在更偏向于维护在自己的wiki里(编辑和查起来效率更高);另一方面,大公司实在是太忙了,技术提升不仅靠总结,也更靠读书.成长 一方面是技术的成长,一方面是关于流程,沟通以及自我的优化保持成长的心态和压力下的理性思考有机会遇到更多问题,积累定位问题的经验(开发和运维层面)知识面的拓展,认识优秀的人
2018-01-24 22:40:50
462
转载 251 ubuntu 跳板机下如何下载文件到本地
传输文件的解决办法:zssh 在自己的linux机上,如ubuntu等,安装上zssh,先用zssh登陆上跳板机,再在跳板机上ssh到相应服务器,然后ctrl+@,就可以相应上传下载文件了,先记着,后续再补详细资料。上传本地文件到服务器在服务器上先cd至相应要放上传文件的目录之后rz -bye //在远程服务器的相应目录上运行此命令,表示做好接收文件的准备ct
2017-05-05 11:01:54
6769
2
原创 250 ubuntu16.04/oh my zsh 开箱
安装sudo apt-get install zsh配置取代bashchsh -s /bin/zshoh my zshsh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"主题vim ~/.zshrcZSH_THEME="agnoster" # (t
2017-04-17 13:54:49
870
原创 249 atom-输入慢-问题解决
atom慢问题解决 最近在网上找了一波atom插件,然后atom在输入的时候就变得特别慢,类比以下大概是300ping玩魔兽世界,假设有以下几个怀疑 - 大文件问题,项目很大导致chromium内核的atom 文件加载慢 - 插件问题,这个最可疑 - 其他解决问题针对插件的问题,今天把所有community package都关掉,然后一个一个开并测试输入速度有无变化,发现开了linter
2017-03-15 10:01:48
1239
原创 248 php7,ubuntu16.04扩展安装 redis,memcached,yar,rdkafka
php扩展安装 本地环境 操作系统 : ubuntu16.04 / amd64 php 编译安装在 /usr/local/phpredis下载Git clone -b php7 https://github.com/phpredis/phpredis.git安装# mv phpredis/ /etc/# cd /etc/phpredis# phpize# ./con
2017-03-07 14:05:15
1140
原创 247 MIT6.828 hw0-shell.c
MIT6.828 hw0 前一阵子面试时候新公司的小领导让我把c的知识捡回来,正好最近在跟MIT的操作系统课程。这篇博客是在网吧写的,中间还打了2盘dota2,女朋友一出差简直为所欲为… 1.从main开始逻辑很清晰,调用getcmd从stdin获取命令,如果是cd命令,那么使用chdir这个系统调用,否则调用fork1新建子进程,用parsecmd获取命令,并 runcmd执行命令
2017-02-24 18:14:00
626
原创 246 重来 - 盘点一下最后一个项目(会员)
重来–会员系统 最近会员系统终于上线,后端从技术选型到逻辑实现大部分由我完成,搞完它总算可以功成身退,安心离职去往新的公司了。今天收拾东西之余盘点一下。会员系统做了很久,从设计到通用组件开发再到具体业务实现,前后大概花了4个月,首次使用lumen,以及相应一系列工具链,前面推进速度相对缓慢,后面填业务逻辑就效率很高了。做的好的地方因为读过laravel核心代码所以上手lumen很快而且一点不
2017-02-23 02:01:18
530
转载 245 swoole - 1 编译安装PHP7 和 swool
目前使用的操作系统版本 ubuntu 16.04卸载php$ service php7.0-fpm stop$ sudo apt-get --purge remove php7.0$ sudo apt-get --purge autoremove安装编译环境sudo apt-get update &&sudo apt-get install libxml2-dev &&sudo apt-g
2017-02-16 10:05:30
1158
原创 244 设计模式 -- 行为型 -- 依赖注入
这是之前我写在公司的jira上的关于设计模式的分享,后面会陆续转过来一些不涉及业务的其他文章。定义依赖注入(DI),或者控制反转(IOC),可以帮助我们开发出松散耦合的程序,以下stackoverflow高票答案stackoverflow给出的类比。When you go and get things out of the refrigerator fo
2017-02-03 22:17:31
515
原创 233 lumen 自定义console命令
最近用 lumen 写服务端api ,因为我在 model 和 controller 之间加了一个抽象层(repository),所以需要频繁新建不同的 repository,能不能自己定义个 php artisan make:repository命令来帮助我自行创建呢?需求
2017-01-17 09:52:22
2095
原创 232 linux 设置系统别名
最近搞一个Django站点,需要经常进入/var/www/site/mycitsm/这个目录,每次都得重复的输入这一长串路径进入该目录,显得麻烦而费时,有没有一种好的方式可以将cd /var/www/site/mycitsm这样一个命令取一个别名,每次只需输入该别名就可以进入该目录呢?很庆幸,Linux系统提供了一个有用的工具叫alias,可以让我们将一些需要频繁使用的但又过于冗长的命令设置一个别
2017-01-16 10:45:38
523
原创 231 php ArrayAccess
最近写facade 基类, 有个功能要从 container 里面取组件, facade 里面都是静态调用,但是container 里面都是动态调用,所以要么把container 里面都改成静态的(很麻烦),要么换其他解决方案ArrayAccess提供像访问数组一样访问对象的能力的接口。ArrayAccess {/* 检查一个偏移位置是否存在 */abstract public boolea
2017-01-12 10:45:51
492
原创 230 atom-beautify 安装 php-cs-fixer 和 phpcbf
atom-beautify 安装 php-cs-fixer 和 phpcbf 最近装了atom-beautify 插件,结果格式化php脚本时候报错”phpcbf”未安装通过Composer (Globally)To install PHP CS Fixer, install Composer and issue the following command:$ composer global
2017-01-06 01:30:46
2803
原创 229 用 composer 管理私有包
最近在搭建api脚手架,需要在项目中使用私有的包,只想在公司中重用,但不是真的想开源,不能放在 github 或者 packagist上面。 需要引入的包的 git 地址为 testRepo 原文地址 :https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md修改 testRepotestR
2017-01-05 15:40:14
3015
原创 228 php array_walk array_filter array_map
array_walk array_filter array_map构建参数$sample = [ 'brand' => ' toyota ', 'year' => '2010', 'city' => ' L A'];array_walk 很类似 foreach ,本身返回 true / false# array_walk(&$input, $funcna
2017-01-05 11:51:33
371
转载 226 关于同步、异步、阻塞、非阻塞
socket阻塞与非阻塞,同步与异步原文链接 : http://blog.youkuaiyun.com/hguisu/article/details/74533901. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步/异步主要针对C端:
2016-12-23 10:33:27
446
原创 225 业务 关于api自动化的思考
入职之初就在思考,如何在现有框架下实现 api 开发的自动化,因为只做转发业务重复性太高,如果不抽象出来比较可惜思路针对相同的业务做一系列约定(变量、业务步骤) 应该分离变与不变, 不变的部分应该可以直接生成,变化很少的部分应该可以实现外部登记,变化很多的地方要么暴露接口,要么再作分离目标接口应该有通行的解决方案(业务处理步骤)接口参数应该可以实现可配置终极目的是为了快速迭代开发应留
2016-12-22 17:59:17
391
转载 224 mysql 设置远程连接权限
MySQL设置远程账户登陆总结1. ERROR 2003 (HY00 12. ERROR 1045 (28000): Access denied for user 'test'@'x.x.x.x' (using password: NO) 13. 取回ROOT密码并设置远程登录 24. RROR 1062 (23000): Duplicate entry '%-ro
2016-12-22 15:40:05
483
原创 223 CS162 刷课指南 -- 第一课
最近在ucb的cs162,上来vagrant就挺头大的 https://cs162.eecs.berkeley.edu/static/hw/hw0.pdfvagrant 配置 – ubuntu我家里使用ubuntu 16.04,公司电脑是win10 ,先说ubuntu1.下载vagrant 和 virtualBoxvirtualbox vagrantupsudo dpkg -i xxxx
2016-12-12 21:29:29
4688
4
原创 222 laravel 服务容器,ServiceProvider,Facade的关系
没隔一段时间我就会怀疑自己是否真的用好了laravel 的这几个特性,那么这几个东西究竟是什么关系呢?概念服务容器:又称为IOC容器,是 laravel 内部类的组织形式,每个组件通过 bind()(singleton(),instance())注入其中,再通过make取出服务提供者:又称为 ServiceProvider ,是为了有序管理组件而提出的概念,实现的时候是通过register()
2016-12-09 12:23:56
625
原创 211 读书 《重构 改善既有代码的设计》
一直以来我以为自己掌握了面向对象编程,直到我看到这本书,原来我只是把代码写的看起来像是OOP,OOP编程的每一条规范都很重要。第一章
2016-12-09 00:07:21
425
转载 210 如何让业务逻辑写起来更好看
最近总感觉自己写的代码很丑,设计模式很难有用武之地,今天看了 https://www.zhihu.com/question/25339235/answer/90183763?group_id=692432194668343296想到,业务可以给自己定制一个业务逻辑最佳实践简化 if else业务逻辑可能看起来长这样 (转自上面的链接):switch (gender): case 'mal
2016-12-02 11:49:20
647
原创 209 php扩展填坑1
背景:最近一遍看csapp 一边准备开发一个php扩展文档暂时遵照这个文档做个demohttps://www.hongweipeng.com/index.php/archives/997/问题./ext_skel --extname=hello报错上来直接报错bash: ./ext_skel: /bin/sh^M: 解释器错误: 没有那个文件或目录因为php 源码从 windows 复制到ubun
2016-12-01 19:33:38
468
原创 208 VM 桥接模式以及网络问题
今天用vm 跑 ubuntu,为了可以从宿主机访问 vm 决定用 桥接模式连接网络问题 1无法设置“桥接模式”因为之前安装过visual box 导致vm自身虚拟网卡被覆盖解决以太网属性 -> 安装 -> 服务 -> 从磁盘安装 -> VM安装目录\netbridge.inf问题2桥接模式无法上网win + r -> services.msc -> 开启所有 VM服务
2016-11-30 16:54:54
463
转载 207 ubuntu 安装软件Could not get lock /var/lib/dpkg/lock
问题描述今天通过终端安装git-core 时候 报错E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)E: Unable to lock the administration directory (/var/lib/dpkg/), is another process usin
2016-11-30 14:11:52
370
原创 206 php array_reduce的使用
mixed array_reduce ( array $input , callable $function [, mixed $initial = NULL ] ) 使用回调函数迭代地将数组简化为单一的值,而array_map()则返回一个长度和原数组相同的数组。它接受三个参数, - 第一个是待处理的数组 $input - 第二个是迭代执行的函数 $function,它接受两个参数,第一个参数
2016-10-31 18:01:02
720
原创 205 laravel 中间件实现
laravel实现了管道机制, 即上一个中间件的输出是下一个中间件的输入,是对装饰器模式的成功应用。闭包有必要讲下闭包1.闭包做参数传递先来看一段代码class A { function go($next){ echo "step a".'<br/>'; return $next; }}class B{ function go($next)
2016-10-27 20:09:32
510
原创 204 IOC 仿照laravel实现一个最简容器 2
仿照laravel实现一个最简容器 2一、闭包实现bind由此我们实现了容器的核心功能<?phpclass Ioc{ protected $bindings = []; function bind($abstract,$concrete = null,$shared = 0){ echo "step bind abstract : [$abstract] <br/>
2016-10-25 23:40:23
418
原创 203 git hook 一次自动部署实践
最近申请了一个阿里云主机,准备搞个人项目,我希望最简化项目发布流程,用jenkins还是觉得不够简单,所以决定用git hooks假设本地仓库叫做home,远程库叫做base(只保存版本信息、不保存代码),远程发布的仓库叫做deploy(最终访问的目录)本地仓库$ mkdir home && cd home F:\UPUPW_NP7.0\htdocs\home>$ git init$ to
2016-10-11 18:17:12
628
原创 202 Ioc 仿照laravel实现一个最简的ioc容器
今天感觉对ioc的掌握不是很好,所以决定实现一遍看看。最基本的bind 和 make 容器类最少有两个方法,一个bind将类绑定容器中,一个make从容器中取得这个类bind()$mysql = new mysql();$Ioc::bind('db',$mysql);当然上面的new操作也可以用闭包来实现,一个效果,闭包的好处在于这里的new不会立刻执行$Ioc::bind('db',fu
2016-10-10 18:26:25
481
原创 201 laravel 未解之谜
laravel是个思想相对先进的框架,其中很多实现细节值得深究,在此记录laravel使用中的疑惑。未解之谜中间件在请求流程中如何起作用类似Auth::logout();这样可以直接使用的facade如何实现
2016-10-09 09:36:39
537
原创 200 git windows大小写不敏感导致的autoload失败
windows大小写不敏感导致的autoload失败最近在写一个接口的自动化框架,在本地好好的(windows),一放到服务端(centos)就各种报class 不存在, 而且本地小写的文件夹,如 “serviceFactory”到了服务端可能会变成“ServiceFactory”,当然也有可能保持不变。方案设置git大小写敏感$ git config core.ignorecase fal
2016-09-27 16:13:09
338
原创 199 c 通过函数名字符串调用函数
Illuminate\Foundation\Application 写194-源码分析的时候感觉有点费劲,想了想构造方法没看就直接看make()了,这节把构造方法补上 这次从_construct()说起1. registerBaseBindings()static::setInstance($this);讲自身实例赋值给static::$instance$this->instance
2016-09-20 22:30:56
2218
原创 198 jenkins 个人项目jenkins安装和设置
jenkins 安装 我的操作系统是win10下载jenkins 下载地址 http://mirrors.jenkins-ci.org/war-stable/下载jdkjdk下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmljdk安装和配置方法见 http://jing
2016-09-06 17:50:55
868
原创 197 laravel 源码分析-4
Illuminate\Foundation\Http\Kernelhandle()try { $request->enableHttpMethodParameterOverride(); $response = $this->sendRequestThroughRouter($request);} catch (Exception $e) { $this->reportExcept
2016-09-05 11:36:52
408
原创 196 laravel 源码解析-3
Illuminate\Foundation\Application我发现在看第一节所讲的make方法时候有点迷糊,可能是看代码的顺序有点问题.所以这次我们先回到 public/index.phppublic/index.php$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);发现这里的$kernel是make方法返回的一个对象
2016-09-05 11:05:26
293
原创 195 laravel 源码分析-2
Illuminate\Foundation\Application 写194-源码分析的时候感觉有点费劲,想了想构造方法没看就直接看make()了,这节把构造方法补上 这次从_construct()说起1. registerBaseBindings()static::setInstance($this);讲自身实例赋值给static::$instance$this->instance
2016-09-01 23:58:41
414
原创 194 laravel 源码分析-1
Illuminate\Foundation\Application 从make方法说起一、make()$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);1.getAlias()make()首先调用了这个方法if (! isset($this->aliases[$abstract])) { return $abst
2016-08-30 17:56:34
377
原创 193 nginx 配置location
nginx 配置background今天在本地调试程序,需要将 localhost/juhe-cn/index.php 映射到 local.juhe.cn,记录下操作步骤新建一个nginx 配置文件 因为我是在windows下使用的UPUPW,因此找到nginx目录(linux应该在xxx.conf文件夹下),新建文件local.juhe.cn打开nginx.conf,在后面改为 ...
2016-08-30 16:07:18
374
转载 192 IOC DI 通俗易懂的ioc
原文链接:http://www.yuansir-web.com/?p=1012&preview=true看Laravel的IoC容器文档只是介绍实例,但是没有说原理,之前用MVC框架都没有在意这个概念,无意中在phalcon的文档中看到这个详细的介绍,感觉豁然开朗,复制粘贴过来,主要是好久没有写东西了,现在确实很懒变得!首先,我们假设,我们要开发一个组件命名为SomeCompo
2016-08-29 23:57:52
377
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人