如何实施开源协议,以及如何遵守开源协议的要求

网上有很多开源协议的介绍,但是很少有说明如何在你自己开发的软件中使用开源协议,保护自己的代码;以及当你使用别人开源项目时,如何遵守开源协议里面约定的行为。文本从github上找了些项目举例描述下这2个问题。至于各个协议的具体说明网上一搜一大堆,本文不再描述。…

教你在不使用框架的情况下也能写出现代化 PHP 代码


file

我为你们准备了一个富有挑战性的事情。接下来你们将以  框架的方式开启一个项目之旅。

首先声明, 这篇并非又臭又长的反框架裹脚布文章。也不是推销 非原创 思想 。毕竟, 我们还将在接下来的开发之旅中使用其他框架开发者编写的辅助包。我对这个领域的创新也是持无可非议的态度。

这无关他人,而是关乎己身。作为一名开发者,它将有机会让你成长。

也许无框架开发令你受益匪浅的地方就是,可以从底层运作的层面中汲取丰富的知识。抛却依赖神奇的,帮你处理无法调试和无法真正理解的东西的框架,你将清楚的看到这一切是如何发生的。

很有可能下一份工作中,你并不能随心所以地选择框架开拓新项目。现实就是,在很多高价值,关键业务的 PHP 工作中均使用现有应用。 并且该应用程序是否构建在当前令人舒爽的 Laravel 或 Symfony 等流行框架中,亦或是陈旧过时的 CodeIgniter 或者 FuelPHP 中,更有甚者它可能广泛出现在令人沮丧的  “面向包含体系结构” 的传统的 PHP 应用 之中,所以框架开发会在将来你所面临的任何 PHP 项目中助你一臂之力。

上古时代, 因为 某些系统 不得不解释分发 HTTP 请求,发送 HTTP

深入了解 MySQL 的 JSON 数据类型(关系型数据库里的 NoSQL 初探)

file

SQL 数据库正趋向于严格。

如果使用过它们,你会同意数据库设计在实践中有很多坑这个说法,尽管它们看起来很容易。SQL 数据库的精髓是结构,因此被称为结构化查询语言。

另外一种视角看,我们拥有了 NoSQL 数据库,它灵活性好也被称为无模式数据库。在无模式数据库中,没有强迫的结构化限制,仅仅只要存储数据。

JeremyKuang 翻译于 1周前
 由 Summer 审阅

炮打TCP – 关于一而再再而三的粘包拆包问题的大字报

炮打TCP – 关于一而再再而三的粘包拆包问题的大字报

TCP 所谓的粘包和拆包问题,是技术圈里最奇葩的问题之一!

一而再,再而三,就跟傻逼的中国球迷支持中国足球队一样,前赴后继。有时候同一个人多次在犯同一个错误,有时候是前脚一个犯错了后脚又来一个还犯同样的错。即使是最优秀的程序员,也会在这个问题上面栽跟头,思维甚至很难转过弯,很久才能意识到自己的错误。而低水平的程序员就更不用说了,很多人到死都没有理解这个错误并解决掉,只是逃掉了而已。…

swoole| swoole 协程初体验

date: 2018-5-30 14:31:38
title: swoole| swoole 协程初体验
description: 通过协程的执行初窥 swoole 中协程的调度; 理解协程为什么快; swoole 协程和 go 协程对比

折腾 swoole 协程有一段时间了, 总结一篇入门贴, 希望对新手有帮助.

内容概览:

  • 协程的执行顺序: 初窥 swoole 中协程的调度
  • 协程为什么快: 减少IO阻塞带来的性能损耗
  • swoole 协程和 go 协程对比: 单进程 vs 多线程

协程的执行顺序

先来看看基础的例子:

go(function ()

用PHP把 图片,文件上传到 mongodb gridfs 中

需要 php mongodb扩展, mongodb/mongodb 组件
安装 mongodb/mongodb 组件
composer require mongodb/mongodb
//把图片上传到 mongodb gridfs中
<?php
use \MongoDB\Client;

$host = '192.168.6.1:27018,192.168.6.2:27018';
$database = 'Images';
$bucket = (new \MongoDB\Client('mongodb://'.$host.'/'.$database,
[
'username'=>'admin',
'password'=>'admin',
//'ssl' => true,
// 'replicaSet' => 'myReplicaSet',
'authSource'=>'admin',
]) )->$database->selectGridFSBucket();

用 Algolia DocSearch 轻松实现文档全站搜索

话说,有两件事能让程序员抓狂,一是写文档,二是看别人的代码发现没写文档……

没错,咱程序员就是这么“双标”。 smile

不过麻烦归麻烦,出来混,文档还是要写的,不然哪天回头翻自己的项目,连自己都不知道写了个啥,就很尴尬了。当然,文档通常是为别人写的,特别是一些工具类的库或者开源软件,从最简单的 readme,到成体系的在线 wiki,再到自建在线文档网站,这大概是很多开源作者都有过的历程。…

MySQL 5.7数据库新增字段报 Incorrect date value: ‘0000-00-00’ for column ‘endtime’ at row 2的问题

MySQL 5.7数据库新增字段报 Incorrect date value: ‘0000-00-00’ for column ‘endtime’ at row 2的问题

在数据库执行 ALTER TABLE `smt_announce` ADD `ischildarea` tinyint(1) DEFAULT ‘0’ COMMENT ‘是否下发到子区域站点0:否;1:是’;报以上错误

是因为数据库里的记录的 endtime字段,存在0000-00-00这样的值. …

到底三段式版本号是什么,以及 Composer 的波浪线符号 ~ 和幂符号 ^ 到底有啥区别

曾经见过太多乱写版本号的(其实现在比以前好很多了),好多 1.9.0 的下个版本必然是 2.0.0, 2.9.0 下个版本必须 3.0.0……主要还是因为之前对版本号的命名就没有规范,大家都是看心情写。后来 semantic versioning 得到推广,版本号取名的情况得到改善,但依然有很多人不知道三段式版本号是什么含义(各种培训学校你们教一下这些规范会死么……)。

简单来说(我也就是搬运一下,上面提到的网站说的更清楚),三段式版本号各个段的含义是:…

Page 1 of 13312345...102030...Last »