美文网首页
2016-05-15 Laravist 群友杂谈 主讲代码规范

2016-05-15 Laravist 群友杂谈 主讲代码规范

作者: 郑方方 | 来源:发表于2016-05-15 15:32 被阅读275次

    [经验看法] (安正超)对代码规范的理解

    我们以前给雅虎做商城的时候,是严格要求一个方法不能超过30行的,

    之前我刚被那些规则强制要求的时候也觉得屎,

    我们整个团队48个开发人员,都觉得好不习惯,有的离职了,也有新人进来.

    面对从未见过的严格要求,精确到数组元素锁进少一个空格都会拒掉,不是人工的检验规范,整整花了4个月,整个团队的编码问题才基本调整完毕,也就意味着他们花了4个月工资,只为了代码规范,然后后面7个月开始写业务,不要依赖格式化工具.

    感慨:

    在编程问题上,工具,应该是将本来你就具有的能力加速,而不是替你存储能力,

    所以,我指的不要依赖工具,是说你应该具备这些知识与技能而不是说不要使用工具,

    随时换任何人的电脑都能写出一样的代码才是好的.

    这不是要求,所以没必要统一大家的看法。做好自己即可,我会强制要求自己去尽力做到,还在努力中

    (Abraham)

    的确,每天都遇到不明白的,然而过了一阵子,会恍然大悟原来之前他那么写,是因为这个。。。

    还是自己太嫩,就像这个理论一样,可能不同的时候,不同的人,读起来感觉都不一样吧,有的感觉总结的好棒,有的感觉纯粹是胡扯啊

    否则大家互相改代码,空格都不一样, git diff 会相当难看

    我之前一直是 psr2 的,但是发现随着自定义的地方越来越多,越来越趋向于 Symfony 风格了

    现在我的编辑器格式化,和  php cs fixer 格式化的是一模一样的。。。

    懂的,如果用肉眼看,还是能看出差异,比如前两天突然发现 (int)$var 括号后面的空格没了。。。给我急的这家伙

    写一写就郁闷了,同样是 psr2 的,风格迥异太多了,主要是空格和换行

    要是多几个人一起写东西,还是把什么地方不该换行都说明白


    [小技巧] (Littlehz) 搬服务器,删数据 

    为了避免下一个租户用了能恢复数据

    [网站/项目分享]

    http://www.freebuf.com/ 关注黑客与极客

    https://github.com/kalcaddle/KODExplorer Coding ide前端是用semantic ui写的

    KodExplorer是一款开源的基于Web的在线文件管理、代码编辑器。

    (null)http://www.iconfont.cn/阿里巴巴矢量图标库

    http://laypage.layui.com分页组件

    http://robo.li/一个任务组件

    (安正超)https://unsplash.com/壁纸网

    (Jellybool)https://pixabay.com/壁纸网2

    (茄子)http://mp.weixin.qq.com/s?__biz=MjM5MjAyNDUyMA==&mid=2650491226&idx=1&sn=306ac95dff72424614f63f243eb48060&scene=23&srcid=0513XMbnlDiXX4zpXmeneE78#rd壁纸网3

    (安正超)  http://www.uisdc.com/free-hd-picture-website 壁纸网4

    (安正超)  http://www.freeimages.com/ 壁纸网5

    (安正超)  https://unsplash.com/ 壁纸网6

    (Starriv)https://asciinema.org/回放终端操作的

    (安正超)https://github.com/ScienJus/qqbot qq聊天机器人

    (安正超)http://t.cn/Rq8dbWl屏蔽百度推广谷歌浏览器插件

    http://insights.thoughtworkers.org/setup-ie-series-testing-environment/ 快速搭建IE测试环境

    [博客分享] (Tomoe)

    http://yish.im/

    https://tangguangyao.github.io/

    [超神推荐] (安正超)

    http://weibo.com/ttarticle/p/show?id=2309403973633306419124redis实战

    [话题讨论] 哪个渲染大数据最快

    http://gold.xitu.io/entry/570f6cfa1ea493006b5e8401

    http://mithril.js.org/ 最快的,但是这个库维护者少,缺推广和社区。但是我记得它们的简介里一直是以秒杀 react 为傲的。很久没关注了。

    http://riotjs.com/ 

    [业务疑问] (AceForce) 

    我前天在vuex还是vue-router文档里看到,可以把vue-router的转态保存到vuex,这回有找不到在哪里有提到过。终于把 vue + vuex + vue-router + vue-resource + jquery + Scene + Shine 跑通了,现在剩下 vue-validator还没弄

    (Tomoe)https://github.com/vuejs/vuex-router-sync

    [业务疑问] (null) 队列

    消息队列并行执行,然后又有顺序依赖 ,那啥时候需要多个进程呢

    (Littlehz) 你只开一个进程做任务那就不会存在并行执行咯. 一个进程处理不过来的时候就开多个进程啊,但是多个进程就是抢任务,虽然队列本身能保证fifo,但是哪个工作进程能先执行完就不能保证了

    (Abraham) 分布式的队列并不能保证 fifo,不过也差不太多,还是要在出站的时候处理

    FIFO(First Input First Output),即先进先出队列。

    [经验分享] (Lonquan) Laravel redis使用心得

     如果使用 redis 作为cache,记得一定要指定一个不是存放业务数据的 db

    不然, cache:clear 的时候, 就会哭瞎了

    laravel, 如果用 redis 作为缓存的话, 一定要记得重新 config/cache.php 里面 指定 redis connection 为另一个不是平常存储数据的 connection, 不然执行 artisan cache:clear 的时候, 就哭瞎了...

    因为 他是 直接 $this->connection()->flushdb();

    我的放的不只 cache, 还有一些频繁读取修改的配置项


    [Redis疑问] (Abraham) 自建Redis

    (Littlehz) 

    普通主机,自建redis. 非持久化的队列可以用redis的 rpush、lpop 或者 lpush、rpop。持久化的rabbitmq、kafka都不错. 一个redis进程可以有16个db,可以换一个用嘛

    (Abraham) 我后来是这么做的,因为我的数据库非常小,可以说也就不到 100m 的核心配置,除了 redis,你有更好的办法吗?他那个不支持链表,几万个元素的数组,属于那种“最近被访问过的n条数据”,做定期统计用

    (littlehz) 鸟哥不是有个配置分发系统嘛,yaconf

    如果数据结构简单,每条数据设置成定长,存入到 xxx.db 文件,php直接读字节偏移量也是很快的

    [经验分享] (Littlehz) Nginx 新版本 注意点

    升级了nginx新版本,好像对 document_root 设置的文件夹如果是软链,有些变化了。假设 document_root 是 /data/web/www,而 /data/web/www 软链 -> /data/release/version1。

    以前的nginx版本,在index.php里拿到的 __DIR__ 是 /data/web/www,新的nginx版本,拿到的是 /data/release/version1。

    如果用的发布系统是基于软链更新代码的,比如发布新版本由 /data/release/version1 切换到 /data/release/version2。

    那么nginx好像有缓存,永远不会生效新的代码,改了软链后 index.php 拿到的 __DIR__ 依然是 /data/release/version1 不会变成 version2,只能 service nginx reload。与 php 的opcache无关。

    然后我试了下设置 fastcgi参数,

    把 fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

    改成 fastcgi_param  SCRIPT_FILENAME    $realpath_root$fastcgi_script_name;

    这个软链就可以自动更新了,index.php 拿到的 __DIR__ 是最新的。

    我的是啊,这样方便出问题快速回滚代码到某个历史版本。但是升级nginx版本之后发现这样做没用了,所以debug了下这个问题,貌似是这样的结论。

    是,某个版本的nginx开始缓存了document_root软链地址,要nginx reload才生效。或者不用 $document_root 变量,换成 $realpath_root 变量

    [经验分享] (Tomoe) 类3D的360度全景图

    他這個比較簡單,每10度一張圖之類的,偵測滑鼠移動去算現在角度是哪張圖

    基本上都這樣實現的XD

    除非真的要到全角度之類的功能,可能就要建模然後用WebGL render之類的

    不會難,真的,基本上就是把圖片先cache起來,然後再寫個算法處理滑鼠拖曳之類的,之前幫學校項目寫過,代碼量不多

    http://codepen.io/suprsidr/pen/rltni

    (Vikin)http://www.netfoucs.com/article/jia20003/52664.html  360度全景图文章

     (Littlehz) 证书

    这个 cacert.pem 应该就是所有信任的 root ca ,只要装好了 openssl 包,应该就会带上所有信任的 root ca。还是要想办法把系统环境装好,要不然执行 curl 命令什么也会有问题吧

    apt-get install --reinstall ca-certificates

    yum install ca-certificates

    把 root ca 装好,一劳永逸

    windows不熟悉,但我觉得应该用自己系统的ca,php内指定ca总感觉不妥。

    [疑问] 微信不是会验证  服务器 地址么?不是有 安全域名什么的?

    (Littlehz) 

    在这个提示的问题,意思是 服务器请求 https://api.weixin.com 时,系统认为 api.weixin.com的https证书不信任,找不到 root ca。所以需要先配置下信任的root ca,正常情况应该是用系统环境里的root ca就可以,不用额外在请求时或者在php.ini里指定root ca。

    [拓展视野] sketchs ui 设计软件

    [拓展视野]

    beanstalkd 一个高性能、轻量级的分布式内存队列系统.   教主新视频有介绍哦

    kafka 一种高吞吐量的分布式发布订阅消息系统. 

    rabbitmq  RabbitMQ是由 LShift提供的一个 Advanced Message Queuing Protocol (AMQP)的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang写成(因此也是继承了这些优点)

    (安正超) oh-my-fish

    [小问题]

    \w 代表数字字母下划线 , - 代表中横线

    以后固定两个星期更新一次.  

    相关文章

      网友评论

          本文标题:2016-05-15 Laravist 群友杂谈 主讲代码规范

          本文链接:https://www.haomeiwen.com/subject/hrmerttx.html