标签信息
  获得0次关注
  发布92篇文章

王老迪 2018-09-12 13:45:53

    新的一周开始了。

    上篇文章聊到了互联网的协议,之所以回去想看看协议,也是因为突然想学习swoole,进阶一下自己,但是我swoole示例简单,探究起来还得去琢磨操作系统,这块王二同志也是惆怅的cpu疼,一直拿不下决心去看。

    但总是要学习的。

        【

                傻迪:这就好比谈恋爱,不管怎样都要继续谈下去,对吧。

                王二:。。。。

          】 

    所以,今天我们来唠一唠‘模块化’。


---------- 华丽的分割线 -----------


    王二第一次听说模块化是在2016年的初秋,时之今日,两年以矣。

    那时候,有人说,以后前端的趋势就是组件化(模块化),到时候一个项目每个人只需要写组件,不同的项目用不同的组件,跟插件一样,还可以去一些开源的项目里面找一些。

    这主意一听,是个程序员都能感兴趣。

    不掌握这个那以后岂不是喝西北风,当时王二心想。(尽管王二每天面向谷歌编程的日子已经很HAPPY了,饿不死的前提下还能留点余粮还学费。)

    于是王二立刻上在网上乱搜了一波,最终收到了一个名叫FIS的构建工具,这是前百度的工程师,知乎的昵称是小爝,所在组的一个团队协商的,无关紧要,主要的是他们发布了一片文章重点介绍了几个重点(好像后来开来live,就把那篇文章删了- -!~)

    现在想来已经忘记的差不多了。

    大致大概提出的问题如下:

        1.怎样才能让你的代码资源定位问题统一。

        2.怎样才能让你的代码不受到同僚的干扰。。。

        3.怎样能保证你的代码上传时的间隙足够短,让用户体会不到。

        4. ▪▪▪▪

    到这里,我们得先了解下提出问题前的web目录是怎么分配的。

%KRIYZG@83%U~EPYADRF%SR.png

        如上图所示,这是王二的经历的第一个项目(因为当时没有团队没有明确的web规范,所以给整成这样)

        这是一个APP内嵌web的所有页面,有几个问题那?

            1.面对不熟悉这套东西的人,需要每个页面都看一下才能知道引用资源位置

            2.很难一眼就能精准定位到你需要修改的页面

            3.上传及覆盖,代码难返回

         无疑,这对王二的工作效率是个大大的考验。

        那有什么好的解决办法呢?

           



-----------------------------------------------------------------------------------------------------

 这篇文章我后面在写哈。需要从新把前端知识找回来 - -.

             

        

王老迪 2020-01-02 17:44:52

折腾了半天,上次在三板也没把这问题解决,正好网站要上传代码片段,去掉样式实在难看。

跟网上的原理相同,就是找出设置过滤规则的地方return掉即可

我这里生效的是  在ueditor.all.js中

执行注册的过滤规则 7936行左右
filterInputRule: function (root) {
return;
   for (var i = 0, ci; ci = this.inputRules[i++];) {
ci.call(this, root)
}
},
注册输出过滤规则 7954行左右
addOutputRule: function (rule) {
return;
   this.outputRules.push(rule)
},
根据输出过滤规则,过滤编辑器内容 7972行左右
filterOutputRule: function (root) {
return;
   for (var i = 0, ci; ci = this.outputRules[i++];) {
ci.call(this, root)
}
},


基本这样就可以生效了。

王老迪 2019-12-20 16:04:05


上个周末遇到个诡异的事情,就是在微信再次授权的时候登入就极其缓慢。



这真的困扰了好久,因为事情总是发生在过了一段时间的时候,登入就会慢,加上自己这边又是使用的session进行存储用户信息,所以自然就朝着这个方向走了。


一开始,我发现之所以要重新授权,是因为微信内置的浏览器总是会不定期清除掉用户的cookie。


结果又是框架又是原生调试了半天,发现cookie的清除不影响微信授权缓慢这件事,


也就是说,微信授权根本就不缓慢!!!!!



后面我把我在授权的回调地址里面所有的sql语句拿出来测试了一遍,


发现真正的问题是updateOrInsert这个语法,因为回调的时候我需要插入和更新了用户的数据。



后记:


    1.laravel 的 session 必须得有 cookie 在能正确取到。


    2.laravel 的 session 时长的设置是有效的,设置在 redis 就是在 redis 设置在 file 就是在 file


    3. 非微信浏览器的 session 关闭后再次打开必然取不到,不关闭的情况下视你的 session 时长


为准;微信端在后台的情况下默认是 2 个小时?(不确定)会自动清除掉 cookie。




再次后记:


    服务器也可以通过URL重写的方式来传递SessionID的值,因此不是完全依赖Cookie。


    如果客户端Cookie禁用,则服务器可以自动通过重写URL的方式来保存Session的值,并且这个过程对程序员透明。 飞雷神


    可以试一下,即使不写Cookie,在使用request.getCookies();取出的Cookie数组的长度也是1,


而这个Cookie的名字就是JSESSIONID,还有一个很长的二进制的字符串,是SessionID的值。


王老迪 2020-01-06 15:35:01

  写活动类型的项目,经常会遇到并发问题,有时候甚至会把服务器给撑爆,那么遇到这种问题一般很急,而且这类活动通常还不少,自然应当记录一下。(正常逻辑上的错误当然不会单独去说,这里指出一些常见的问题)


  假设我们的服务器在这次活动中崩溃了。我们怎么进行操作呢。


1.检查服务器(这里以阿里云为例)   

  首先得知道服务器的指标,最重要的指标有cpu,内存,宽带。这三者,每一个都会直接造成服务器卡顿不止,前两者甚至会使服务器崩溃。

  配置图如下图所示-》

image.png

  实例图如下所示(12-30号12点我们的服务器就卡爆了)

image.png

所以,如两个示例图,出现的原因就在于宽带,所以一般的解决方案就是三种

1、升级宽带(少量钱,最为直接,无需任何配置

2、购入新服务器(负载均衡或者高性能按量付费,一般来说是要提前有准备,因为也比较花费时间)

3、限流(看业务情况,也需要花费一定时间)


以上三者,不管哪一种,我们首先都得知道一个问题就是宽带怎么计算的。

这里以上图一为例,已知我们服务器的宽带的峰值是5M,我们的的网站每个页面大小是10KB,所以我们的宽带仅能支持并发量是 5000/8/10 = 63人(1Byte=8bit) 。


2.服务器检查完毕之后,就是代码的编写情况,最最常见的是两种情况

1、超发

   超发的问题一般而言也就是并发的问题,如果非并发情况你还能超发,那,哥算你厉害。

   一般而言,在活动类型项目,当并发量高并且涉及到金钱的交易的时候一定要在逻辑判断的最后一项在补充一个用户抽奖记录的查询判断(比如只能抽取一次,你就要判断有几条这个用户的记录,并且所有的更新和插入语句都要在事物当中);并发的人很有可能是同一个人,尤其是在于页面比较卡顿的情况下,没有给他返回信息;而我们的中奖信息又必须及时返回(同步)。(当然,我们还可以使用php锁之类的方式)


2、如果是现金红包不实时的问题

   如果可以,还是不建议实时发,当然,无奈得很,都得实时,目前老迪这边在高并发的情况下确实没有什么高招,现在都是微信的接口,一般而言采取队列的方式,并且记得要在队列的当中在次验证一遍确保准确无误,可以采用多进程的方式,让红包发送的更快。


王老迪 2020-01-06 16:32:52

  1.找到一个好用的镜像地址

composer config -g repos.packagist composer https://php.cnpkg.org

  2.接着开启多进程下载

composer global require hirak/prestissimo

  3.镜像地址切换(不好使话继续尝试)

   飞雷神