一下描述适用于外包公司
软件项目开发中工时评估是一门玄学。不同的软件公司 ,不同的角色对工时评估有不同的看法与标准, 这就导致工时评估可能会变成一项非常『难』的工作, 但是越是『难』或者越是不可描述的事情,越要以简单的方式处理。
工时评估的目的
报价
工时评估的目的对于公司来一个...
shanhuhai
4年前 (2020-06-23) 4792℃
21喜欢
域名的使用规划, 看似不重要,但是在大型的软件架构中实际非常关键。域名是用户的请求入口,设计不恰当, 使用不规范,非常容易造成系统的不稳定。在系统架构过程中,我总结了以下经验, 供君参考:
资源域名与动态域名分开
网站打开时,页面上的图片、js、 css 等文件是无状态的,不需要...
shanhuhai
4年前 (2020-06-13) 2580℃
3喜欢
composer 提供的 autoload 机制使得我们组织代码和引入新类库非常方便,但是也使项目的性能下降了不少 。
composer autoload 慢的主要原因在于来自对 PSR-0 和 PSR-4 的支持,加载器得到一个类名时需要到文件系统里查找对应的类文件位置,这导致...
shanhuhai
7年前 (2018-03-16) 17641℃
8喜欢
Laravel 框架是一个功能丰富、架构完善的框架,然而对于一个野路子 PHP 程序员来说要想上手不是那么简单的事,为什么呢?
Laravel 的核心概念你掌握了吗?
Laravel 中可能有许多你之前闻所未闻的概念,比如服务容器(Service Container) 、服务提供...
shanhuhai
7年前 (2017-09-06) 10438℃
29喜欢
当你学习OOP面向对象的时候也许经常会接触到“多态”这个概念,但是总是学了又忘忘了又学,其实多态是面向对象中是一个很基础的概念,它是许多设计模式的组成部分,今天我们来通过一个实例重温和回顾下什么是多态。
多态的定义
多态(Polymorphism )描述了类有不同的功能,但是他们...
shanhuhai
7年前 (2017-09-01) 5353℃
8喜欢
前面几篇讲了观察者模式,这篇讲一下同样很有用的适配器模式。
“适配器”顾名思义,是用来做适配的,将不同规格的设备通过统一规格的适配器对接到你的系统中。
看一个简单的例子:
<?php
/**
* 微博提供的登录类
* Class Weibo
*/
class We...
shanhuhai
7年前 (2017-08-29) 4140℃
3喜欢
上一篇我们在观察者模式中加入了事件,插件可以根据不同的事件来做不同的业务处理,基本上很简单,我们直接通过主体对象携带事件名称即可。
下面我们要实现的是,只有在知道具体事件后才去实例化绑定了此事件的插件。
下面是具体的实现:
<?php
/**
* Author: shan...
shanhuhai
7年前 (2017-08-28) 3905℃
5喜欢
上一篇通过一个简单的例子介绍了下什么是观察者模式,在实际的业务中,观察者应该对不同的情况做出不同的发应,这个其实很简单,我们加一个给主体对象加一个event的属性就ok了。
看对上一篇修改后的代码,可以自己对比下,改动并不大:
<?php
/**
* 支持了事件的版本
...
shanhuhai
7年前 (2017-08-27) 2500℃
3喜欢
今天来介绍一个很有用的设计模式,“观察者模式”,顾名思义,既然有“观察者”, 那么一定就有“被观察者”,从这个层面可以理解到,在这个设计模式中有两个对象, 一个是主体对象,一个是客体对象,在实际的代码实现上实际是“被观察者”主动通知了“观察者”。“被观察者”是主体对象,现在看不懂...
shanhuhai
7年前 (2017-08-26) 4003℃
8喜欢
设计模式是一系列的软件设计思想,这些思想是跨越语言和时间的,它们的主要作用是帮助我们设计出更好的程序。
也许你编程已经很多年了还从未接触过设计模式,不用慌张,很多人和你一样,不会设计模式并不会影响你完成业务代码,相反懂得了设计模式,也许你减慢你的开发速度,这听你起来有点耸人听闻,...
shanhuhai
7年前 (2017-08-25) 3870℃
3喜欢