博客文章
最近发表的话题
最近发表的评论
  • 程序员的键盘使用指南 at 3周前

    @panda-sir 我说科达怎么那么耳熟😂

  • 程序员的键盘使用指南 at 3周前

    @panda-sir 这篇文章的核心不是怎么挑机械键盘😂

  • 我是 Laravel 开发员,不是 PHP 开发员 at 3周前

    @Shuyi 关于标准这一块,我大概翻了一下评论,发现并没有人提到psr规范,只是围绕着团队规范。

    上述提到的一些命名问题都属于表层代码规范

    psr规范规划了表层的代码规范,规定了类的自动加载规则,类/函数/变量的命名规范,结构语句规范,函数参数等一些地方的空格规范,较为细化。

    在phpstorm中 command+option+l,会默认把
    代码按照该规范化格式
    但是我从来没有按过该快捷键,因为我写的代码就是按着psr规范来的,连什么地方应该空格都是精准的😁

    必须要提的一点是,psr规范的每一条规则都有其理由,其参考了编码界的常用规范,尊重了历史。而不是凭空想象,拍拍脑袋出来的东西。(其实很多的团队规范,就是拍拍脑袋,或者以技术负责人的习惯来定)

    比如我曾经有一个团队 $_ 来命名变量,但是这真的有意义吗?

    psr规范最重要的一点是,使得composer能够推行,composer的意义我就不言而喻了。

    laravel的产生很大程度就是因为php社区有symfony这样优秀的composer扩展

    当然laravel/symfony以及所有的composer包都是遵守psr规范

    关于团队规范制定我的几点看法,当然laravel社区的laravel开发规范的第一点就已经提到了这些问题。
    下面的几点不仅可以作为规范的制定,甚至可以将其作为个人的开发哲学,遇到问题时的指导思想

    • 最佳实践,实际上任何问题,任何存在的东西,如文中,平均中提到的规范等,都有其现阶段的最佳实践,编程人员要做的事情无非就是尽量的接近,或者找到它!

    • 官方推荐,这一点是找到最佳实践的首要参考依据,psr规范就是第一参考要素,团队需要做的就是拿来使用,并且把psr规范中的都可以,变成只可以。把psr规范中遗漏的进行补充,对深层规范进行细化

      psr自身制定时的官方就是php团队,psr规范也尊重了php本身

    • 主厨精选,让有经验的人来为你做出选择。但是这个有经验的人并不是个人,最好是一个团队,并且是一个有经验的团队。如阿里团队的java开发手册,其除了表层规范外还规范了深层的一些规范,如逻辑流的写法/面向对象的规范/mysql规范, 其中大部分规范,对所有语言,所有团队都有指导意义 ,当然其中一些java特有的规范可以忽略。

    • 尊重大多数人的想法,当上面两点都不能让你找到最佳实践时,那么大多数人的做法对你来说会是一个不错的选择。实际上官方制定一个新的规则时,也会反过来将大多数人的做法作为重要的参考依据

    • 简洁之道, 这是贯彻我个人整个编程生涯的一点,简洁之道并不特指编码,其包含测试流程,整个开发流程,逻辑流程,发布流程等等。其在各个专业可能都有相应的书籍,编码类的经典书籍,如《代码简洁之道》

    忽然发现字好多,可以水一篇博客了,不过我个人并不是很喜欢写这种情怀向的博客。
    手机打字,所以没有做矫正,见谅。

  • 程序员的键盘使用指南 at 3周前

    @大毛 感谢指正,已修改

  • 程序员的键盘使用指南 at 3周前

    @EDISONYANG 对于程序员或者长时间的键盘使用者来说,红轴或者静电容会对手指更加的友善

  • 我是 Laravel 开发员,不是 PHP 开发员 at 3周前

    @Caral

    实际上我个人一直以来的观点是,php并不值得深入.
    我认为php的深入只有一个方面 便是阅读源码,阅读php的源码可能会带来三个层面的知识

    • 编译原理层面

    • C语言层面

    • 网络模型层面

    编程学习的一个观点是,学习一样新事物时 拆轮子是非常不推荐的做法,尤其是php这种堆彻了近10年的轮子.

    如果你想学习编译原理,可以通过视频/书籍教程来学习.尤其是一些经典书籍 其比直接阅读源码更加的易于学习,甚至能够学的更好,C语言层面/计算机网络编程同理

    php无论是性能,还是外部接口表现都被各种诟病.
    而对于php的内部设计, 鸟哥曾表达过对php添加新功能举步维艰.

    php的创始人是非常棒的程序员,但却不是一个好的语言设计者(忘记是哪位大佬说了这句话)

    php被设计之初的目的只是一个c语言的扩展,后来被设计成了一个面向过程的编程语言. 由于面向对象的普及,php添加了面向对象的特性. 实际上从始至终从来没有站在一个语言的层面来进行设计.做过开发其实都清楚,这样的软件流程是非常致命的.

    这篇文章我没有细看,但我的观点是相同的. laravel之于php,就像rails 之于 ruby. 实际上 如果你去知乎提问php和python谁更优秀,大部分人会说php是世界上最好的语言,所以我选python.

    但是如果拿 laravel和diango(python的一个web开发框架)比较. laravel在生态/api/orm 等各方面都要优于diango的.

    上面的所有说法都是基于php的深入是源码阅读层面, 如果说php的深入是 nginx/mysql/面向对象/设计模式/高并发 层面的深入,那当我没说.

    关于编程语言的一点看法,编程语言本身只是一个软件,是对各种繁琐的细节进行层级封装暴露出更加简洁的api.
    框架同理,也只是一个软件, 是对各种繁琐的细节进行层级封装暴露出更加简洁的api.

    实际上编程语言的发展,已经停滞不前很久了.近些年并没有发展出新的普及的编程语言特性. 现代流行的编程语言 始终都在围绕着 几个传统的语言特性 封装各种语法糖而已

    当然当然上面都是我的个人观点,大家没必要说服我同意你们的观点,让我一个人蒙在鼓里就好.:smile:

  • 程序员的键盘使用指南 at 4周前

    @PhoenixIcy hhkb的ctrl键是不是很舒服,所以我才推荐把ctrl映射到和hhkb一样的位置, 实际上这是emacs程序员必备的一步操作

  • @StringKe 在 2019-01-23 10:16:41 的动弹 at 4周前

    平台可以参考 ping++
    扩展可以了解一下 支付网关

  • 使用 TreeQL 加速你的 API 开发 at 4周前

    @dreamfish apiato和dingo使用的是同一种东西,既transform. 实际上效果一般, 尤其不能避免n+1问题.

  • 执行 PHP artisan db:seed --class=ProductsSeeder 报错 at 1个月前

    composer dump

  • E-commerce 中订单系统的设计 at 1个月前

    @FreeMason 不会,跟原有地址相同格式保存, 可以保存关联关系, 保持数据结构一致, 订单地址修改也比较方便.和用户地址使用同一份表单

  • PHP 二维数组, 按某一个字段排序 at 1个月前

    $array->sortBy('sort'); 我喜欢这么写

  • E-commerce 中订单系统的设计 at 1个月前

    @安静 没有做复杂的处理,简单的加入时间和随机数在订单号中,防止重复

  • E-commerce 中订单系统的设计 at 1个月前

    @dinghua
    https://learnku.com/articles/21623 这篇文章,不知道你看了没有.

    优惠卷这里还有些特殊.
    如果用户对一笔订单使用了一张优惠卷(本质既促销,包含actions和rules).
    计算adjustments的时候 其实只需要直接应用action就好了. 不需要再进行rule的验证了.

    大概的逻辑像是这样
    file

    但优惠卷其实还是需要checke的. checker的时间点是在

    结账界面的,当前用户, 拥有的优惠卷的列表. 要分别判断每张优惠卷是否能够应用于当前订单. 本质上就是checke每张优惠卷的rules.看看返回的是true还是false.

    只有为true的优惠卷才能被用户所使用.

  • Linux 笔记分享五:VIM 文本编辑器 at 1个月前

    有一条命令至关重要 . 曾经是 stackflow vim相关问题搜索的榜首.
    这个问题是 怎么退出vim.
    相应的命令是

    :q  ;; 不保存退出
    :wq ;; 保存并退出
    :x  ;;不管怎样就是要退出
    
  • VIM 光标移动命令汇总 at 1个月前

    f/F 是在行移动最快的方式啦. 配上 w和e的微调

    C+u/d 配上 vim-snake 解决了屏间移动的难题

    在加上 / 搜索.
    基本上移动用到比较多就这几个了

  • E-commerce 中订单系统的设计 at 1个月前

    @overtrue 谢谢超哥赞赏 😁,有动力下一篇了

  • E-commerce 中订单系统的设计 at 1个月前

    @Destiny
    prdoucts 商品表
    product_variants 也就是sku表
    product_option_values 可选属性表 颜色: 红色/ 内存: 16G
    product_attribute_values 展示属性表 厂商: 小米, 频带 3.2hz 等

    product 一对多 product_variant

    在product_option_values这里遇到了点问题,没有得到比较好的实践. 所以没有写 产品系统相关的文章. :smile:

  • E-commerce 中订单系统的设计 at 1个月前

    @灰太狼来了 会呀, 但是对每一笔订单,单独冗余一个地址是必要的.

  • E-commerce 中订单系统的设计 at 1个月前

    @WensonSmith 自家商业项目, 结合公司的需求,然后参考了一些开源电商 算是比较不错的实践了

    参考的开源电商 https://spreecommerce.org/