Skip to content

Instantly share code, notes, and snippets.

View sh7ning's full-sized avatar
👊
Go !

Shine Yim sh7ning

👊
Go !
View GitHub Profile
@sh7ning
sh7ning / Exception处理.md
Last active December 29, 2018 03:56
学习笔记

Exception处理

{
  "code" : 200,
  "data" : [],
  "error": '',
  "trace": array_slice($e->getTrace(), 0, 10),	//debug
}
@sh7ning
sh7ning / Laravel隐式路由.md
Last active February 6, 2017 01:32
Laravel隐式路由

Laravel在做一些admin后台的时候,不想麻烦定义routes的时候,可以采用

Route::any('/{module}/{controller}/{action}', function($module, $controller, $action) {
    $controller = \App::make("\\App\\Http\\Controllers\\" . $module . "\\" . $controller . "Controller");
    return \App::call([$controller, $action]);
});
@sh7ning
sh7ning / git-note.md
Last active November 2, 2021 03:02
Git使用笔记

Git分支开发工作流

git 配置

  1. git配置:
    git config --global user.name <用户名>
    git config --global user.email <邮箱>
    git config --global init.defaultBranch master
    

git config --global push.default simple

@sh7ning
sh7ning / a-docker-note.md
Last active January 10, 2023 13:12
Docker使用笔记

Docker笔记

参考文章

  • tips

    • 如果映射的端口不生效,容器中端口能访问,容器外不能(telnet $ip $port),则说明容器里边监听的时候设置了容器的host,改为 0.0.0.0 即可。
@sh7ning
sh7ning / redis资料概要.md
Created September 17, 2018 10:06
redis资料概要 @江南白衣

版本:V3.1 2014-3-36 (@江南白衣版权所有,转载请保留出处),针对Redis 2.8版。

1. Overview

1.1 资料

@sh7ning
sh7ning / PHP编码建议.md
Last active November 26, 2018 08:45
PHP编码建议
  1. 每个函数行数不宜过长,逻辑复用的地方尽量抽象出来,单个函数太长,做的事情会过多,而且会增加维护的时候看代码的上下文切换。单个函数小,功能少,更容易明白。如果一个函数调用了多个函数进行的逻辑,如果逻辑比较复杂,建议写好注释,减少对调用的具体函数的逻辑关注,调用的函数的正确性由被调用的函数去保证。
  2. 函数的参数建议传递的是普通的值,如 int, string, bool, 对象 等类型,不建议传递 数组。数组作为参数的时候,调用方还要关注里边的key,value等,不够明确类型。当然不做强制要求,综合开发方便和可维护性。
  3. 业务逻辑不建议直接在controller和console中书写任何的逻辑业务,所有的逻辑业务建议写在Service文件夹中,方便被共用。controller和console中只建议获取输入和输出响应以及对各种service业务逻辑的调用组装等,为了方便service中的函数的公用,不建议在直接吧 $request 这样的作为参数传递给 service中的函数,也就是不要在controller和console之外的地方进行输入参数的获取,而是用参数的方式传递。
  4. 编写代码的时候要将就可维护性,一定要简单,不要为了逼格复杂化,要方便其他同事也参与维护,除非是觉得很完美的设计,如果是公用的基础库(如composer包,基类)一定要具有可扩展性(如 public、protected、private 关键字的合理使用,一些属性的setter方法的提供等)和尽量具有可测试性
  5. 涉及到配置的地方,如果是不同的环境(开发环境,测试环境,生产环境)不同的,需要定义在.env文件中,如果不同环境相同但是是涉及到公司相关账户或则服务器账号密码等需要保密的变量也要定义在.env文件中,而且不建议采用其他的方式引入到git版本库中,避免所有有git权限的开发人员都查看到。
  6. 在composer包和一些基础的中涉及到环境变量和配置等的,一定要通过构造函数的方式进行设置,不要采用在__construct方法中调用获取配置的方式,如果框架用的是依赖注入,在类实例化的时候尽量建议不要采用new关键字的方式去生成对象,因为一旦类要进行修改构造函数的时候,会到处去修改,建议一律采用provider的方式去提供实例化的对象工厂方式生成,在调用的地方注入对应的类或则接口或采用框架容器的方式去(如laravel
@sh7ning
sh7ning / crontab-docker-note.md
Created November 3, 2018 03:24
crontab docker 相关

crontab 中 没有中断,所以。。

  • docker不能-it
# 更新前
php_exe="docker run --rm -v $sync_tmp_dir:/tmp -v $cur_dir:/tmp/code_base -it $php_img php "

# 更新后
php_exe="docker run --rm -v $sync_tmp_dir:/tmp -v $cur_dir:/tmp/code_base $php_img php "
@sh7ning
sh7ning / index.html
Last active December 3, 2018 06:18
XHR stream read write example
<script>
var xhr = new XMLHttpRequest();
xhr.open('GET', '/stream');
xhr.seenBytes = 0;
xhr.onreadystatechange = function() {
if(xhr.readyState == 3) {
var newData = xhr.response.substr(xhr.seenBytes);
console.log(newData);
document.body.innerHTML += "new data: " + newData + "<br />";
xhr.seenBytes = xhr.responseText.length;
@sh7ning
sh7ning / golang-note.md
Last active June 2, 2021 07:56
Golang笔记

Golang Note

Ide 配置

  • Tools -> file wathers 中增加:
    • go fmt
      • 手动处理: gofmt -l -w .
    • goimports
      • 手动处理: goimports -l -w .
    • 自定义: go二进制 + 参数