标签: 软件

  • Laradock:简化PHP开发环境的利器

    Laradock 是一个为 Docker 提供的全功能 PHP 开发环境,它支持多种常用服务的快速配置,为 PHP 开发者提供了一个便捷的开发环境。Laradock 的设计初衷是让开发者能够快速切换不同版本的 PHP、选择自己喜欢的数据库引擎,并且可以轻松运行各种常用的服务。

    Laradock 的特点如下:

    1. 轻松切换 PHP 版本:支持 PHP 8.1、8.0、7.4、7.3、7.2、7.1、5.6 等多个版本。
    2. 多种数据库引擎:支持 MySQL、Postgres、MariaDB 等常用数据库引擎。
    3. 自定义开发栈:支持 Memcached、HHVM、RabbitMQ 等各种常用服务。
    4. 每个软件运行在独立的容器中:PHP-FPM、NGINX、PHP-CLI 等软件都在自己的容器中运行。
    5. 容器定制化简单:可以通过简单地编辑 Dockerfile 来自定义任何容器。
    6. 基于官方基础镜像:所有镜像都是基于官方的基础镜像构建的,安全可靠。
    7. 预配置的 NGINX:预配置 NGINX 以托管根目录下的任何代码。
    8. 支持单个项目或多个项目:可以为每个项目单独使用 Laradock,也可以为所有项目共用一个 Laradock。
    9. 通过环境变量轻松安装/移除容器中的软件。
    10. 清晰、结构良好的 Dockerfile。
    11. 最新版本的 Docker Compose 文件。
    12. 所有内容可见且可编辑。
    13. 快速构建镜像。

    快速入门:
    让我们看看如何轻松设置我们的演示堆栈:PHP、NGINX、MySQL、Redis 和 Composer。

    1. 在你的 PHP 项目中克隆 Laradock:
    git clone https://github.com/Laradock/laradock.git
    1. 进入 laradock 文件夹,将 .env.example 重命名为 .env:
    cd laradock
    mv .env.example .env
    1. 运行容器:
    docker-compose up -d nginx mysql phpmyadmin redis workspace
    1. 打开项目的 .env 文件,并设置以下内容:
    DB_HOST=mysql
    REDIS_HOST=redis
    QUEUE_HOST=beanstalkd
    1. 在浏览器中访问 localhost:http://localhost。就是这样,尽情享受吧!

    Laradock 支持的服务:
    Laradock 遵循关注点分离原则,因此它将每个软件运行在自己的 Docker 容器中。你可以根据需要启动/关闭任意数量的实例,而不必担心配置的问题。要运行下面列表中的容器,请使用 docker-compose up -d {container-name} 命令。

    Web 服务器:

    • NGINX
    • Apache2
    • Caddy

    负载均衡器:

    • HAProxy
    • Traefik

    PHP 编译器:

    • PHP FPM
    • HHVM

    数据库管理系统:

    • MySQL
    • PostgreSQL
    • PostGIS
    • MariaDB
    • Percona
    • MSSQL
    • MongoDB
    • MongoDB Web UI
    • Neo4j
    • CouchDB
    • RethinkDB
    • Cassandra

    数据库管理应用:

    • PhpMyAdmin
    • Adminer
    • PgAdmin

    缓存引擎:

    • Redis
    • Redis Web UI
    • Redis Cluster
    • Memcached
    • Aerospike
    • Varnish

    消息代理:

    • RabbitMQ
    • RabbitMQ Admin Console
    • Beanstalkd
    • Beanstalkd Admin Console
      Eclipse Mosquitto

    laradock

    laradock/README-zh.md at master · laradock/laradock (github.com)

  • chatGPT对软件技术栈的冲击将逐渐显现

    软件研发的技术栈是逐步迭代形成的,其第一性原理是:通过技术栈对系统的复杂性就行分层控制。

    由此可知,如果系统复杂性由于chatGPT类AI的介入,导致原来控制不了的,现在非常好控制的话,那么一些原来看起来简单的技术栈又会复兴。

    以网站前端研发为例子,从最早的纯HTML到jQuery在到react/vuejs等,逐步复杂,其学习成本和难度也逐渐增加,但是对于越来越复杂的网站来说这是必要的。因为重写一个页面的成本太高了。

    以网站后端研发为例子,从最早的perl到PHP再到Java微服务,无不是为了控制复杂的逻辑,将复杂度逐层逐块分解,放在不同的系统里控制起来,以便促进系统的平稳演化。

    但是,现在chatGPT来了,如果一个prompt就可以写好一个PHP页面的话,谁还在乎每隔几周让AI重写一遍?


    chatGPT等AI对软件研发的最大冲击根源是,复用的标的物从source code变成了prompt。这是很容易被忽略了,现在说似乎太早,但是,等到GPT-5/6发布的时候,一切就会非常明朗了!