小花花 的回答 (59)
  • 小花花
    foreach (ConfigModel::all(['name', 'value']) as $config) {
        config([$config['name'] => $config['value']]);
    }
  • 小花花

    有必要,因为Nginx是专业的完备的HTTP/HTTPS服务器,像很多服务如PHP-FPM,Java Tomcat,Node普遍都躲在Nginx后面跑,这样做的好处就是后端语言只处理自己的请求,不需要处理各种静态资源(img/css/js/file)的请求,比如用户下载一个大文件,如果是后端语言自己处理,那肯定会拖累应用性能,但如果委托给Nginx(X-Accel-Redirect: file_path),Nginx就会用自己的AIO线程池来实现大文件下载支持,就不需要后端语言费力去折腾.

  • 小花花

    简单版本:

    location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://localhost:8080;
    }
    

    一般静态文件由 nginx 提供,所以可以这样写

    root /home/demo/goproj/src/Test/public;
    try_files $uri/index.html $uri.html $uri @goapp;
    
    location @goapp {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://localhost:8080;
    }
  • 小花花

    我说下我们的做法,我们每天的交易数据量是 200 万以上,核心在后半夜交易量极少的情况下做跑批清算,这个动作每天只做一次,在早上上班之前跑出结果,然后由清算人员进行人工审核。

    数据库用的是 oracle 10g,公司购买的正版。

    即使是埋点,从运营角度出发,也是要写入日志库,然后再做二次分析。

  • 小花花

    就单说技术方面
    前端目前比较流行的:

    1. ES5,ES6,ES7... 【能用,见了能明白什么意思,尤其是异步处理async/await】
    2. TypeScript(Vue3.0大有用处), 【必须要会】
    3. Angular.js,Angular2+, 【了解,进了公司可能以前的老项目是用Angular.js写的,语法类似于vue】
    4. Vue全家桶, 【熟练,目前前端最火的框架了】
    5. React全家桶, 【掌握 配上antd 简直就是爽到爆】
    6. 后端:Node.js, express(Koa),Egg.js,mongodb ... 【不做全栈就了解,会用就行】
    7. 小程序:Mpvue,Wepy,Taro ... 【小程序也正在崛起,这些都是基于Vue和React开发的】
    8. 移动端:
      flutter 【了解,要求有点大,要会dart语言,学习成本有点高】
      React Native 【了解 react】
      Weex 【了解 vue】
    9. 构建工具:webpack,gulp 【webpack必须要会,项目构建用得着】
    10. 代码管理:git,svn 【git常用命令,代码提交等等】

    上面这些都是硬实力,你要是都会了,那找工作没有什么问题。
    其他方面就如楼上所说。需要自己刷刷面试题啊,可以去bilibili看些免费视频,前期也不要期望能拿到很好的offer,先去小公司练练手。先打开进入这个行业的第一扇门。Good luck!!!

  • 小花花

    这种东西,搜一下就出来的,不要什么都想着依赖别人。

    https://blog.csdn.net/weixin_...

  • 小花花
    //遍历的方法
    //有资料才启动,空资料不工作
    if(data.length>0){
      //预设第一个元素为目标
      let target = data[0]
      //遍历全部元素
      for(let index=0;index<data.length;index++){
        let item = data[index]
        if(item.nums && item.nums.length > 0){
          target = item
          break
        }
      }
      //用拿到的target呼叫后台拿资料
      //callAPI(target.id)
      console.log("ori", target)
    }
    
    
    //find方法
    //有资料才启动,空资料不工作
    if(data.length>0){
      //find 方法遍历所有元素,call 判定元素是否为目标
      let target = data.find(element => element.nums && element.nums.length > 0)
      //没有找到目标,取第一个
      if(!target){
        target = data[0]
      }
      //callAPI(target.id)
      console.log("find", target)
    }
  • 小花花

    C 语言有一种叫做未定义行为(Undefined behavior)的东西。意思是,你不要这样写,如果你这样写了,我就不能保证会发生什么了。

    这个,使用一个 double 指针去解引用一个 int 变量是一个未定义行为(strict aliasing rule)。

    [[ Note

    使用 %d 来输出一个 double (*p) 是另一个。C11(draft) 7.21.6.1(THe fprintf function)/9

    9 ...... If any argument is not the correct type for the corresponding conversion specification, the behavior is undefined

    End Note]]

    换句话说,未定义行为是一些编译器无法检测的“错误”。(现在的编译器已经可以检测到一些了,比如用 %d 输出 double 在适当的编译选项下,会被 gcc 据掉。)如果程序里有未定义行为,那么程序结果就不能保证/不可预测。C 语言只能保证没有未定义行为的程序有可预测的结果。保证程序没有未定义行为是程序员的责任。

  • 小花花

    有点晚了... 既然大家都是程序猿, 那就不多说了, gevent-socketio 是你的好朋友, 总之就是在 gevent-socketio 建立连接之后在里头跑 Redis PubSub 的 listen() 循环

  • 小花花
    db.Unscoped().Where("deleted_on is null").Delete(&Tag{})
最近访客
  • 董俊俊
    董俊俊 3个月前