笔记Mark日期:2016.04.08-2016.04.20
[业务解答]:问一个问题laravel 导出excel如果数据量特别大,比如5,6万多条的话 会超时,或者很慢,你们是怎么解决的?
答:1)[Lonquan]用其他的导出 2)[茄子]后端处理,提前生成
答案不详细!
[开阔视野]:茄子 - ES6
[福利分享]:超神 - HTTP API 设计指南
[开阔视野]:Judd - 为什么编辑器不要高亮
[业务解答]:怎样强制dingo使用https?
答:[茄子]使用的是 http 还是 https 协议,对于dingo 甚至于laravel框架应该是透明的。你应该在.htaccess 或者 web 服务器里配置重定向规则
[程序员必修]:提问的智慧
[推广]: Laravist教主要组建团队
[业务解答]: (Vue.js) Starriv 关于如何点击当前按钮 输出当前的value值
几个按钮是
答:Starriv 重新翻了下文档,发现还可以这样用
Starriv的完整解答
看这个代码会发现出现了 let 语法,这个据Starriv讲解,是ES6新增的
茄子补充:ES6 里 let 声明的变量是块作用域,就不用小心翼翼的担心变量提升引入的问题
群里 Starriv 和 茄子也是前端大神呀
[我们的小插曲] 翻页 - since_id
即当前页最后一个数据的id.
客户端负责保存 since_id,用since_id就不会出现普通翻页可能会出现重复数据的情况
[业务解答]
感觉自己这个分类导航拼url的方式不是很好,有什么状态管理的方式来处理这种一堆链接的导航?
答:Ab兄 两个地方,一个是 active 那里,我是这样的,你可以增强一下,放外面能让 html 直观一点。生成 url ,简单点的可以和 active 一样用一个函数包装下 http_build_query 方法,更科学的用 guzzle/psr7 库里面的 uri, 这个类实现了 psr7 合同谈判.
[我们的思考] url 与 base64
纠结一个问题,base64_encode生成的字符,要在url中传输,就把结尾的等号给去掉了,现在base64_decode的时候,不补等号也会解析成功,在纠结要不要补等号了
要是写php代码产生了warning,你是选择修改代码消除warning还是加@屏蔽还是选择修改error_reporting级别不报warning?
url传输数据也可以用rawurlencode
[福利分享] 超神 - 你懂得
[开阔视野] Starriv - 漂亮的网站设计
[经验分享] Redis缓存问题
Lonquan.Me laravel, 如果用 redis 作为缓存的话, 一定要记得重新 config/cache.php 里面 指定 redis connection 为另一个不是平常存储数据的 connection, 不然执行 artisan cache:clear 的时候, 就哭瞎了...因为 他是 直接 $this->connection()->flushdb(); (服务器阿里云)
Littlehz 别把redis当缓存,而是当存储.缓存尽量别用,不一致的情况哭瞎.要么是不一致,要么是命中率低,不可能完美.不是用什么,而是逻辑思维.用nosql存储的方式,把你需要的数据直接存储到redis,需要的时候从redis查询,数据只在这里存一份.而不是缓存思维,将数据存储在mysql,查询数据库的结果缓存到redis.当然redis并不太适合需要持久化的数据,持久化的数据可以考虑mongodb.redis的持久化不要考虑,rdb会占用双倍内存还会阻塞几秒,aof恢复起来没十几二十分分钟搞不定.除非你用redis从库,在从库里用rdb阻塞.
[开阔视野] NameCheap与GoDaddy
NameCheap是一家领先的ICANN认可的域名注册和网站托管公司. GoDaddy 拥有超过20年的域名购买和网站主机托管经验
godaddy的首年价和续费价相差比较大,续费的时候找优惠码累死人,namecheap的首年和续费相差不大.namecheap 上买 https 证书也很便宜.
最便宜的泛域名 ssl 去哪找,https泛域名 Comodo Positive SSL Wildcard https://zcmym.com/digital-certificate
1k多的EV(Extended Validation),GeoTrust BusinessID with EV https://www.namecheap.com/security/ssl-certificates/geotrust/true-businessid-with-ev.aspx
[群友见解] opcache
opcache只有opcode cache和realpath cache,没有object/data cache。要是这种命中率都能低,就难办了。
[群友见解] Docker使用见解
Littlehz 其实现在大家都用云主机的话,并不太推荐Docker,docker的意义在于环境标准化和统一运维,环境标准化 云主机 里 有镜像功能,统一运维 有 ansible 这样的工具。云主机本来就是虚拟化的,再套一层Docker虚拟化。网络方面云主机是在一个内网里的,Docker会多做一层NAT端口转发。主机A的Docker和主机B的Docker通信要多好几次转发。
[经验分享] 解决前端依赖
茄子 有两种,CommonJS专注后端解决依赖关系,比如node所有的模块都是这种格式;AMD专注于在浏览器里处理依赖关系,异步加载。可用的有RequireJS,还有A厂的SeaJS。 我和@Starriv 一样,也倾向于用构建工具后端打包。 Gulp是构建工具,打包还得找对应的插件,比如用gulp-browserify来处理CommonJS规范的打包。 但是有一个问题,Gulp的插件更新并不很及时,比如npm出了一个插件laravist,那我还得等 gulp-laravist 插件也出来了才能用。 我倾向于直接用 npm + webpack 的组合来做构建工具
gulp 是构建工具,webpack是打包工具。gulp有对应的插件,利用webpack来打包.bower解决依赖关系的 ,现在用webpack可以无视bower
[开阔视野]Judd与JellyBool 网站配色网址分享
[群友见解] 超神 - Trait
[开阔视野] Littlehz 发票
能不开就不开,能用别人的发票就用别人的,开了一张发票后,麻烦事多着,互联网的产品,像卖云存储的、租服务器的、开发软件、硬件维护,开发票,一般都开技术服务费,属于增值税,一般小公司都是开增值税普通发票,没到那么大规模不会去做一般纳税人认证所以开不了增值税专用发票。大多数地方增值税发票是买开票软件用针式打印机打印开发票,也可以到税局代开。自己打印,要买税控盘和开票软件,费用各地不一样,大概就是一千多一年吧。税局代开,那就每次都要排队等好久。增值税征收率是3%,意味着要交3%的增值税。但是自己开发票,每月票面金额3万以内免增值税。税局代开的发票不免增值税,同时占用免税额度。一旦开了发票,就要请会计做账,每个月的销售、利润、固定资产都要做报表给国税。一个兼职会计怎么也要几百一个月吧。然后还有一个所得税,是国税收的。理论上是你的销售收入减去各项成本得到的利润的20%左右吧,会计可以把利润做成0那就不会有所得税。但是不可能,实际上所得税有预警线,一般会计做账都会按税局的要求这么做。批发销售行业所得税不低于 开票总收入的0.5%,零售行业所得税不低于 1%,像互联网行业,哼哼,不低于3.5%。所以别没事想着注册个空壳公司就能怎么样。大众创业万众创新只是口号,政府根本没有落到实处,开公司的成本高着呢。没这么简单,没有稳定的业务往来,没有足够的收入,还是不要注册公司,即使注册,也是尽量不要开第一张票。
[开阔视野]超神 - What is Sass
[开阔视野] Starriv - 前端代码规范
[经验分享] Abraham - call_user_func
call_user_func 主要是运行的时候动态变更调用的对象和方法,图里可能显示不出这点,只是作者习惯这么写了。但在其他很多场景下,比如把这个方法提到父类中让很多子类重用, 这个技巧可以发挥作用。用 call_user_func 的方法可以闭包传参用来解耦,
[开阔视野] HSTS
HSTS(HTTP Strict Transport Security)国际互联网工程组织IETE正在推行一种新的Web安全协议.
[真的不懂] 但是还是想Mark下
去一个网站申请,审核通过之后,会通过云端下发到所有chrome浏览器的配置列表,然后访问这个网站就永远不会尝试http,不管你输入http还是https,都是走https,http试都不会试。不过https并不是不用备案,只是现在的机房检测备案程序都懒得升级,当然,很有可能阿里云会是第一个检测的。https在证书交换阶段会暴露明文的域名信息。
[开阔视野] Javascript生态之乱
[群友分享] 我是一个线程
[群友见解] 超神 - 老生常谈的命名
1)请尽量避免使用 data, info 这样无意义的命名
2)还有就是json 别用驼峰吧,使用类似这种error_message下划线.
原因:数组下划线的原因主要是为了json,与mysql字段保持一致,还有我的函数也是下划线命名,与php内置函数一样,方法、变量名与类名其它都驼峰.
[群友见解] Abraham - 丢丢丢错误
[业务解答] Post 与 Post
null 请问一下,android做第三方QQ登陆时,android是将QQ发给android的数据直接发给后端吗?需要android做处理吗?我做了一个POST路由处理android发过来的数据,但是他一直为我要POST格式?QQ给他的就是key,value啊?他直接发给我不行吗?
答:Littlehz 客户端的开发者并不理解form post,post有很多种,常见的是 form post、文件post,还有自定义消息体的post,raw和binary可以合并称为一种,反正都是双方协商自定义的格式,无所谓文本还是二进制了
[扩展视野]Starriv调研 ssdb
ssdb是一个高性能的支持丰富数据结构的 NoSQL 数据库, 用于替代 Redis.
[扩展视野]欢欢的comodo疑问
comodo 美国的软件公司,是世界优秀的IT安全服务提供商和SSL证书的供应商之一
comodo发来的ssl文件里并木有key,只有ca bundle和crt文件
ca bundle的作用是什么?
Littlehz: 将自己网站的crt与comodo中级证书合并,得到完整的证书链,有更好的兼容性
[业务解答]数据交互-Json
Lonquan 昨天是谁验证 json 格式来着, json_decode 的时候, 如果传入的是整形, 是直接返回 对应的值, 所以判断是不是, 还是得 is_object 跟 is_array 吧
Abraham return is_numeric($str) && null !== json_decode($str)
Littlehz 如果是内部函数调用,就不应该设计成参数是json串。如果是对外的API,接收php://input raw数据,那就粗略检查下是否以{开通、以}结尾就行。API的设计不可能没有key 而直接传数组或者数字或者boolean的
入口的地方粗略检查完了,再调用json_decode,然后给验证类去检查具体的每个值是否必须,范围是多少。如果数据量大,json_decode耗cpu也耗内存。先粗略检查,再验证具体的key和值
[业务解答] 获取微信头像
在做微信登陆API的时候,当用户注册时要获取用户的头像保存到七牛云,虽然用户注册和头像上传都正常,但是android那里报错timeout,应该是这一步太耗时了吧?如果用户的微信或QQ头像换了,那么之前的头像url不会出问题吧?
答:Littlehz 微信头像没有防盗链可以直接引用的,QQ空间的QQ登录,获取头像是公开的,并且官方文档建议直接引用,URL地址是以uid为路径的,永久不变。但是微信就没试过,你看看官方文档,或者自己试下头像URL是不是以uid做了某种hash。
[业务解答] PHP Sleep
如果sleep 100秒,万一10秒时窗口关闭了 100秒后还会执行代码吗?
答:Littlehz
http://php.net/manual/en/misc.configuration.php#ini.ignore-user-abort
浏览器关闭,php是否继续执行,受到此参数的影响。默认是浏览器关闭,php不会继续执行,当然不是立即停止,而是完成一次`系统调用`之后才会停止。至于怎么认为一次系统调用,就是触发一次 declare(ticks=1);
sleep 100; 关闭浏览器php不会立即停止,可能到php完全结束了,是没有触发系统调用。死循环 sleep 1; 循环了几次,关闭浏览器之后,延迟几十或几百毫秒php停止。
[群友分享] Nginx Https 高阶配置 一个Web开发者的博客