2022年9月

中国特色高水平高职学校和专业建设计划(“双高计划”)提出,“聚焦高端产业和产业高端,重点支持一批优质高职学校和专业群率先发展”。高水平专业群是高水平高职学校建设的关键所在,与学校改革发展定位密切相关,关系到人才培养与社会服务的方向性和有效性。如何立足学校实际,创新高水平专业群建设路径,是“双高计划”亟待解决的一个重大课题。

  专业群建设应突出“高”特征

  专业群是高职专业建设的“升级版”,外部对接产业链或岗位群需求,内部促进专业协作、资源共享。高水平专业群面向高端产业和产业高端,构建高水平技术技能人才培养体系,打造技术技能创新服务平台,是高水平高职学校办学特色、办学水平和办学效益的集中体现。

  对接产业吻合度高。产业发展是专业群建设的外驱力,是专业群组建的逻辑起点。衡量一个专业群水平高低,首先要看其是否精准对接产业需求,并动态调整、实时优化,实现与产业发展协调互动。高水平专业群紧贴区域产业结构调整规划,围绕区域经济发展战略规划的支柱产业和新兴产业,聚焦服务面向,优化资源配置,动态调整专业组成、专业结构和专业内涵,推动教育链、人才链和产业链、创新链有机衔接,有效服务企业技术研发和产品升级,为增强产业核心竞争力提供有力支撑。

  资源整合共享度高。资源整合是专业群建设的内驱力,是优于传统单体专业建设的直接体现。离散的单体专业建设模式,一个明显弊端就是办学资源割裂,造成单体资源不足与整体资源浪费并存。高水平专业群充分发挥集群效应,有机整合课程资源、教师资源与实训资源,实现资源整合和共享效益最大化,使原本“小”而“散”的单体专业相互支撑,形成人才培养合力。

  人才培养产出度高。人才培养是专业群建设的根本任务,是评价专业群成效的根本标准。“群”是专业建设的手段,而不是目的,根本在于实现更高水平的人才培养。高水平专业群是我国高职专业建设和人才培养的最新成果和最高水平,培养一批又一批大国工匠和能工巧匠,形成具有国际竞争力的人才培养高地,为中国产业走向全球产业中高端提供高素质技术技能人才支撑;同时,探索形成一系列的理念、标准、模式、资源、课程、教材,为全国高职人才培养提供指引和借鉴,带动提升高职教育的学生满意度、服务贡献度和社会美誉度。

  专业群建设并不是简单地把几个专业进行“物理组合”,而是在群统领下,实现专业之间的“化学融合”,促使资源配备和教学组织的系统优化乃至重构。

  搭建融合化的产教协同平台

  当前,我国由高速增长转向高质量发展阶段,着力建设现代化经济体系。面对快速变化的外部产业环境,专业群应发挥集群优势,实现与产业发展的深度融合。

  一是产教协同。服务区域产业转型升级,深化与产业园区、行业协会、企业的合作,建设集科技开发与咨询、技术推广与服务、人才培养等功能为一体的产教融合育人平台,推进实体化运作的职业教育集团化办学,与地方“走出去”企业深度合作,利用集群优势开展国际职业教育服务。

  二是教研互促。强化应用导向,围绕生产生活中的实际问题,打造跨专业的师生技术服务团队,推动中小企业的技术研发和产品升级,提升服务行业企业社会的技术附加值,成为区域性技术技能积累中心;构建科研反哺教学机制,把科研项目成果转化为课堂教学案例,实现教学内容与技术进步同步更新,在技术研发中提升师生实践能力和创新能力。

  三是育训结合。对接行业企业需求,大力开展高技能人才培训,积极开展职工继续教育,服务企业员工职业生涯成长,成为行业企业重要的继续教育基地。

  创新柔性化的组织管理模式

  专业群突破传统专业建设的刚性模式,促进资源整合共享,发挥“1+1>2”的集聚效益。

  一是建设结构化团队。改变传统专业教研室组织方式,打破专业限制,根据不同职业岗位面向,组建结构化教师团队,更好地贴近市场发展和技术变化前沿;打造高水平专兼结合的教学团队,校企联合建设一批名师工作室和大师工作室。

  二是建设模块化课程。探索柔性、可拓展、面向岗位群的课程建设新模式,按照“平台+模块+方向”思路,系统重构课程体系。平台课程相对稳定,整合群内共同必需的知识、技能和素质,帮助学生构建职业整体认知;模块课程对接职业标准,按不同职业方向分流培养,帮助学生形成岗位核心能力;方向课程机动灵活,跟随市场需求和技术进步不断调整,使课程体系实时保持与产业界的信息交流、资源共享。

  三是建立开放型培养模式。积极应对求学群体多元化、学习基础差异化、学习场景多样化的实际情况,实行弹性学制和学分制,赋予学生群内专业选择权、课程选择权、教师选择权,自主选择学习路径和进度,激发学习动力,满足多途径成长需求。

  完善动态化的持续发展机制

  专业群建设不是一成不变的静态结果,而是伴随产业发展持续优化升级的动态过程,要健全对接产业、动态调整、自我完善的专业群建设发展机制。

  一是动态调整专业构成。适应产业发展需要,在通用共享的群基础平台之上,灵活调整专业组成和专业方向,拓展相近或新兴专业,通过原有专业的衍生开发、滚动发展,在专业群主体面向保持稳定的同时,增强外部适应性,使专业群富有旺盛活力,生命周期远远长于单体专业。

  二是动态升级专业内涵。密切跟踪新技术、新模式、新业态,对接未来产业变革和技术进步趋势,调整人才培养定位,更新教学内容,将新技术、新工艺、新规范等产业先进元素纳入教学标准和教学内容,确保培养目标适应岗位要求、教学内容体现主流技术,人才培养体系与时俱进。

  三是动态优化评价机制。以教学诊断与改进为基本制度,以学习者的职业道德、技术技能水平和就业质量,以及产教融合、校企合作水平为核心,内部质量保证与行业、企业等外部质量评价有机结合,实现评价主体多元化、评价内容动态化,持续推动高水平专业群高质量发展。

ARVE插件(Advanced Responsive Video Embedder)可在Wordpress网站中嵌入优酷、QQ视频、Youtube视频,但bilibili视频不能插入。

但bilibili视频可以在bilibili网站找到“分享”按钮,复制“嵌入代码”,添加到wordpress的“自定义HTML”区块中

bilibili视频嵌入代码:

<iframe src="//player.bilibili.com/player.html?aid=602705956&bvid=BV1CB4y1g76c&cid=822007053&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>

QQ视频嵌入代码:

<iframe frameborder="0" src="https://v.qq.com/txp/iframe/player.html?vid=k0044ll2wyx" allowFullScreen="true"></iframe>

注意事项:如果需要完成Youtube视频插入,则Wordpress网站服务器必须能够访问www.youtube.com,否则无法起作用。

Kratos 是一款专注于用户阅读体验的响应式 WordPress 主题,整体布局简洁大方,针对资源加载进行了优化。Kratos主题基于Bootstrap和Font Awesome的WordPress一个干净,简单且响应迅速的博客主题,Vtrois创建和维护,主题设计简约友好,并且支持响应式,自适应访问,简seo单大方的主页构造,使得博客能在臃肿杂乱的环境中脱颖而出,Kratos内置主题设置,可设置seo关键字及站点描述页面伪静态,自定义的顶部样式(背景图 ),支持图片轮播、侧边栏文章聚合、广告栏、点赞和社交化分享等功能,以及漂亮的博客订阅功能组件,让你的个人博客更加与众不同。
安装方法:
登录 WordPress 管理员后台,进入 外观 > 主题 页面,然后点击 添加 按钮;
进入添加主题页面之后,再点击 上传主题 按钮;
点击 选择文件, 找到下载的 Kratos.zip 格式安装包,然后点击 现在安装 按钮;
进入 外观 > 主题 页面,找到 Kratos 主题,然后点击 启用 即可。
kratos-4.1.4.zip

主题:
1.Mynote 是一款具备回应式设计、简洁且对 Markdown 语法友善的 WordPress 部落格式布景主题。
2.JupiterX Lite
3.Kratos
4.Maupassant 博客主题

插件:
1.content views 文章列表插件
介绍:https://www.zhanzhangb.com/2952.html

PHP安装AMQP扩展(RabbitMQ消息队列扩展)

1.下载并安装rabbitmq-c
wget -O rabbitmq-c0.11.0.tar.gz -c https://github.com/alanxz/rabbitmq-c/archive/refs/tags/v0.11.0.tar.gz
tar zxf rabbitmq-c0.11.0.tar.gz
cd rabbitmq-c0.11.0

2.安装cmake
apt-get install cmake

3.执行cmake(相当于configure)
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/rabbitmq/rabbitmq-c-0.11.0

make && make install

成功安装rabbitmq-c
可以看到生成了下面文件
/usr/local/rabbitmq/rabbitmq-c-0.11.0/lib/x86_64-linux-gnu/librabbitmq.so

执行下面
cp -R /usr/local/rabbitmq/rabbitmq-c-0.11.0/lib/x86_64-linux-gnu/librabbitmq.* /usr/local/rabbitmq/rabbitmq-c-0.11.0/lib

4.下载AMQP扩展源码
http://pecl.php.net/get/amqp-1.11.0.tgz
tar zxf amqp-1.11.0.tgz
cd amqp-1.11.0

5.编译amqp--1.11.0
./configure --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq/rabbitmq-c-0.11.0

make && make install

注意事项:
如果缺少phpize则安装下面
apt-get install php7-dev

如果缺少OPENSSL path则安装下面
apt-get install libssl-dev

先安装PHP对应的RabbitMQ扩展,这里用的是 php_amqp 不同的扩展实现方式会有细微的差异.
php扩展地址: http://pecl.php.net/package/amqp
具体以官网为准 http://www.rabbitmq.com/getstarted.html

  1. 使用php库安装,使用composer 安装
    ~ composer require php-amqplib/php-amqplib
  2. 使用pecl库安装,安装步骤如下:
    (1)安装依赖 rabbitmq-c

wget https有问题的话链接改成http再试试

wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz
tar zxf rabbitmq-c-0.8.0.tar.gz
cd rabbitmq-c-0.8.0
./configure --prefix=/usr/local/rabbitmq-c-0.8.0
make && make install

(2)安装 amqp
下载地址 : http://pecl.php.net/package/amqp
$ cd ~/php-extension
$ wget http://pecl.php.net/get/amqp-1.9.4.tgz # 记得看你环境php版本,amqp版本必须参考网站说明,下载对应版本
$ tar -zxvf amqp-1.9.4.tgz
$ cd amqp-1.9.4
$ /youPath/php/bin/phpize
$ ./configure --with-php-config=/usr/local/php/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c-0.8.0 # 同上一步的 --prefix 路径
$ make && make install

根据提示查看是否安装成功,打开 php.ini 在末尾追加 extension=amqp.so

$ systemctl restart php-fpm

介绍

config.php 配置信息
BaseMQ.php MQ基类
ProductMQ.php 生产者类
ConsumerMQ.php 消费者类
Consumer2MQ.php 消费者2(可有多个)

config.php
<?php
return [
//配置
'host' => [
'host' => '127.0.0.1',
'port' => '5672',
'login' => 'guest',
'password' => 'guest',
'vhost'=>'/',
],
//交换机
'exchange'=>'word',
//路由
'routes' => [],
];


BaseMQ.php
<?php
/**

  • Created by PhpStorm.
  • User: pc
  • Date: 2018/12/13
  • Time: 14:11
    */

namespace MyObjSummary\rabbitMQ;

/** Member

  • AMQPChannel
  • AMQPConnection
  • AMQPEnvelope
  • AMQPExchange
  • AMQPQueue
  • Class BaseMQ
  • @package MyObjSummary\rabbitMQ
    */

class BaseMQ
{
/** MQ Channel

  • @var \AMQPChannel
    */

public $AMQPChannel ;

/** MQ Link

  • @var \AMQPConnection
    */

public $AMQPConnection ;

/** MQ Envelope

  • @var \AMQPEnvelope
    */

public $AMQPEnvelope ;

/** MQ Exchange

  • @var \AMQPExchange
    */

public $AMQPExchange ;

/** MQ Queue

  • @var \AMQPQueue
    */

public $AMQPQueue ;

/** conf

  • @var
    */

public $conf ;

/** exchange

  • @var
    */

public $exchange ;

/** link

  • BaseMQ constructor.
  • @throws \AMQPConnectionException
    */

public function __construct()
{
$conf = require 'config.php' ;
if(!$conf)
throw new \AMQPConnectionException('config error!');
$this->conf = $conf['host'] ;
$this->exchange = $conf['exchange'] ;
$this->AMQPConnection = new \AMQPConnection($this->conf);
if (!$this->AMQPConnection->connect())
throw new \AMQPConnectionException("Cannot connect to the broker!\n");
}

/**

  • close link
    */

public function close()
{
$this->AMQPConnection->disconnect();
}

/** Channel

  • @return \AMQPChannel
  • @throws \AMQPConnectionException
    */

public function channel()
{
if(!$this->AMQPChannel) {
$this->AMQPChannel = new \AMQPChannel($this->AMQPConnection);
}
return $this->AMQPChannel;
}

/** Exchange

  • @return \AMQPExchange
  • @throws \AMQPConnectionException
  • @throws \AMQPExchangeException
    */

public function exchange()
{
if(!$this->AMQPExchange) {
$this->AMQPExchange = new \AMQPExchange($this->channel());
$this->AMQPExchange->setName($this->exchange);
}
return $this->AMQPExchange ;
}

/** queue

  • @return \AMQPQueue
  • @throws \AMQPConnectionException
  • @throws \AMQPQueueException
    */

public function queue()
{
if(!$this->AMQPQueue) {
$this->AMQPQueue = new \AMQPQueue($this->channel());
}
return $this->AMQPQueue ;
}

/** Envelope

  • @return \AMQPEnvelope
    */

public function envelope()
{
if(!$this->AMQPEnvelope) {
$this->AMQPEnvelope = new \AMQPEnvelope();
}
return $this->AMQPEnvelope;
}
}


ProductMQ.php
<?php
//生产者 P
namespace MyObjSummary\rabbitMQ;
require 'BaseMQ.php';
class ProductMQ extends BaseMQ
{
private $routes = ['hello','word']; //路由key

/**

  • ProductMQ constructor.
  • @throws \AMQPConnectionException
    */

public function __construct()
{
parent::__construct();
}

/** 只控制发送成功 不接受消费者是否收到

  • @throws \AMQPChannelException
  • @throws \AMQPConnectionException
  • @throws \AMQPExchangeException
    */

public function run()
{
//频道
$channel = $this->channel();
//创建交换机对象
$ex = $this->exchange();
//消息内容
$message = 'product message '.rand(1,99999);
//开始事务
$channel->startTransaction();
$sendEd = true ;
foreach ($this->routes as $route) {
$sendEd = $ex->publish($message, $route) ;
echo "Send Message:".$sendEd."\n";
}
if(!$sendEd) {
$channel->rollbackTransaction();
}
$channel->commitTransaction(); //提交事务
$this->close();
die ;
}
}
try{
(new ProductMQ())->run();
}catch (\Exception $exception){
var_dump($exception->getMessage()) ;
}


ConsumerMQ.php
<?php
//消费者 C
namespace MyObjSummary\rabbitMQ;
require 'BaseMQ.php';
class ConsumerMQ extends BaseMQ
{
private $q_name = 'hello'; //队列名
private $route = 'hello'; //路由key

/**

  • ConsumerMQ constructor.
  • @throws \AMQPConnectionException
    */

public function __construct()
{
parent::__construct();
}

/** 接受消息 如果终止 重连时会有消息

  • @throws \AMQPChannelException
  • @throws \AMQPConnectionException
  • @throws \AMQPExchangeException
  • @throws \AMQPQueueException
    */

public function run()
{

//创建交换机
$ex = $this->exchange();
$ex->setType(AMQP_EX_TYPE_DIRECT); //direct类型
$ex->setFlags(AMQP_DURABLE); //持久化
//echo "Exchange Status:".$ex->declare()."\n";

//创建队列
$q = $this->queue();
//var_dump($q->declare());exit();
$q->setName($this->q_name);
$q->setFlags(AMQP_DURABLE); //持久化
//echo "Message Total:".$q->declareQueue()."\n";

//绑定交换机与队列,并指定路由键
echo 'Queue Bind: '.$q->bind($this->exchange, $this->route)."\n";

//阻塞模式接收消息
echo "Message:\n";
while(True){
$q->consume(function ($envelope,$queue){

$msg = $envelope->getBody();
echo $msg."\n"; //处理消息
$queue->ack($envelope->getDeliveryTag()); //手动发送ACK应答

});
//$q->consume('processMessage', AMQP_AUTOACK); //自动ACK应答
}
$this->close();
}
}
try{
(new ConsumerMQ)->run();
}catch (\Exception $exception){
var_dump($exception->getMessage()) ;
}

docker-compose安装rabbitmq
建立文件夹: rabbitmq
切换到文件夹rabbitmq中,并编写 docker-compose.yml:
version: '3'
services:
rabbitmq:

image: rabbitmq:3.10.7-management
container_name: rabbitmq
restart: always
hostname: myRabbitmq
ports:
  - 15672:15672
  - 5672:5672
volumes:
  - ./data:/var/lib/rabbitmq
environment:
  - RABBITMQ_DEFAULT_USER=root
  - RABBITMQ_DEFAULT_PASS=root

启动rabbitmq:
docker-compose up -d

浏览器访问 ip:15672即可,用户名,密码输入root登录