CODE, ARCHITECTURE & AI

代码、架构与 AI 时代.

记录工程实践,也探索 AI 时代软件与人的新可能。

484 篇记录保持好奇,慢慢积累

关于Mixin和Trait

其实在想文章题目时,有过纠结,虽然现在有些人将Mixin翻译为“混入”,不过感觉有点怪怪的,所以还是直接用了英文,至少不会出错。 言归正转。 现在排名靠前的面向对象的编程语言中,Java、C#等都是以 单继承+接口 来实现面向对象,但是这在一定程序了稀释了继承的力量, 因为在业内推荐以组合的方式使用类。这在一些常见的设计模式中有明显的体现,想想在GOF的23…
继续阅读 ↗

你可能不了解的strtotime函数

在 前面的文章 中, 我们提到strtotime函数在使用strtotime("-1 month")求上一个月的今天时会出一些状况, 因此也引出写这篇文章,本文包括如下内容: strtotime函数的一些用法 strtotime函数的实现基本原理 strtotime("-1 month")求值失败的原因 strtotime函数的一些用法 1、 strtoti…
继续阅读 ↗

使用PHP计算上一个月的今天

一日,遇到一个问题,求上一个月的今天。 最开始我们使用 strtotime("-1 month") 函数求值,发现有一个问题,月长度不一样的月份的计算结果有误。 比如:2011-03-31,得到的结果是2011-03-03。我们先不追究什么问题,先看如何解决问题。 此时,想起PHP中有一个mktime函数,于是自己写了如下代码: echo date ( "Y…
继续阅读 ↗

关于编码规范

当提到编码规范,自然而然就会想到约束,没错,编程规范本来就会约束开发人员的编码风格。 但是约束并不是所期望的最终目的,约束只是一种表现形式,关键在于建立编码过程中的一种秩序, 以及团队编码风格的统一和稳定,从而提高编码质量,进而提高产品的质量。 当下的我们处于一个需要团队协同作战的世界,一个项目可能需要几个人、十几个人或几十几百人的技术团队,而在产品的生命周…
继续阅读 ↗

PHP中的函数嵌套层数限制

函数嵌套,这个名字有点纠结,也许不太好理解。一个比较常见的函数嵌套特例:递归函数,即函数自己嵌套自己。 一直以为在PHP中不能有太多的函数嵌套,这是因为在以前某些时候不小心用到了递归,在递归的深度达到100时, 即函数嵌套的层数达到100时,程序会报一个 Fatal error 。如下示例: function rt ( ) { static $i ; ech…
继续阅读 ↗

TIPI儿童节版发布

少年智则国智,少年富则国富,少年强则国强,少年独立则国独立,少年自由则国自由,少年进步则国进步...... 各位自认为是儿童的,不是儿童的;扮萌的或已成为大叔的同学,儿童节快乐! TIPI团队 选择在这个应该纯粹一点的节日里,发布努力了两个月的成果。 自最近一次的版本发布(2011-04-01)以来,关注的同学可能会注意到网站上 没有新的变化,其实这段时间我…
继续阅读 ↗

理解PHP中的stdClass类

在百度百科中,对于 stdClass 的定义如下: stdClass在PHP5才开始被流行。而stdClass也是zend的一个保留类。stdClass是PHP的一个基类, 所有的类几乎都继承这个类,所以任何时候都可以被new,可以让这个变量成为一个object。同时, 这个基类又有一个特殊的地方,就是没有方法。凡是用new stdClass()的变量, 都…
继续阅读 ↗

思考PHP之五:访问控制

面向对象三大特性:封装性、继承性和多态性。 封装隐藏了对象内部的细节和实现, 使对象能够集中而完整的描述并对应一个具体的事物。 它使对象只提供对外的访问接口,这样可以在不改变接口的前提下改变实现细节,而且能使对象自我完备。 除此之外,封装还可以增强安全性和简化编程。 继承的目的是为了实现代码复用,它是一种一般化与特殊化的关系,其中子类是父类的细化。 在实现继…
继续阅读 ↗