程序员全栈解决方案


构建标准化框架技术路线,减少选择内耗且持续优化的全栈方案

谨慎选择技术栈软件架构,选用开源且无商业授权风险的工具集

广泛研究前沿开源新技术,深入拆解其原理并融入到全栈框架中

每一个技术细节尽量简化,深入浅出实现原理,实现无依赖体系

源码运行 全民监督 逻辑极简


极简思维思考

广泛研究融合

原型规划

快速设计原型图,与用户不断交流修改,轮数越多越有效。
熟练使用RP、墨刀、Mockplus等工具。
使用CIY Item Creator交互式原型设计工具,快速创建移动端、管理端、大屏等原型。

重视原型沟通,降低研发成本,提升代码质量。
1、原型沟通,降低用户预期与研发理解的差异。
2、原型确认,有助于使编程思路清晰化,提高架构质量。
3、交互式原型几乎等同于实际交付效果,用户直观理解。
4、减少因预期偏差和理解偏差造成的返工和大范围修改。


大前端

选择无编译技术。
原生开发一般利用jquery、vue3等技术,实现快速响应,快速修改和部署,无需编译。
未来区块链原生环境中,无编译前端技术更容易被全民信任。

当前发展情况。
已脱离jquery、vue等框架,完整实现原生的JS框架封装各种组件库。
实现了Web3D、AI工作流、Web站、后台、数据大屏、小程序移动端标准化框架。
实现了基于vue3的无编译框架示例,实现了大部分部分常用组件,浏览器直接运行。

建议。
使用99.5%成熟的W3C标准语法,积极试验新语法做储备。
关注vm、performance等指标,尽量用好浏览器缓存。


后端智能合约化

智能合约式开发。
未来区块链原生环境中,将在服务器(矿机)上执行JS源码(智能合约)。
通过JS对后端数据库(区块)进行编程,实现流式事务记账,形成超集群架构。
避免使用过度封装的框架组件而产生依赖,越陷越深,自定义能力很差。

当前发展情况。
分别用PHP和Golang实现了可函数级替代的后端开发框架。
实现了AI助手、代码生成、AI、SaaS、SSE、Websocket、数字签名等封装。


PHP

适合快速开发,商业试错验证,验收型项目快速交付。
1、有运维优势,无需编译,修改便利,适合十台以下的小集群使用。
2、制定统一框架脚手架,制定统一规则,包括前端、后端、数据表设计。
3、使用PHP8+workerman满足绝大部分需求,必要时使用C++扩展。
5、人才市场成熟成本低,只做快速交付。
6、使用Golang编写的容器,可实现PHP与Golang函数级替代开发。


GoLang

深度应用的项目改造,函数级高并发替代,直至完全Golang化。
1、有高并发优势,充分利用服务器资源,成熟的业务,将能节省40%以上物理服务器资源。
2、制定统一框架脚手架,制定统一规则,前后端及数据表设计。
3、通用服务: 发现服务(CiySDM)、网关服务(CiyGATE)、单点服务(CiySSO)、安全服务(CiySS)、日志服务(CiyLOG)。
4、发现服务实现微服务注册、健康聚合、自动扩缩容、配置管理、代码关系、黑名单、告警。
5、网关服务实现反向代理、灰度路由、验证授权、流量控制、黑名单、服务降级熔断、安全策略。
6、单点服务实现注册、登陆验证、多端验证、三方接口Auth2.0、独立静态页、多地部署。
7、安全服务实现操作系统审计、文件异动报告、数据拦截规则。
8、日志服务实现订阅、聚类、分级归档。


PHP教学框架

CIYON框架,结构极简,前后端分离,DBA与后端逻辑可分离。
封装了加解密、极简结构数据、Ajax函数调用、安全传参、CSV解析、数字签名等
数据库结构体文档生成工具、自动化代码生成工具、简易后端界面框架、定时执行任务。
实现了systemctl系统级服务的多核数据处理能力,性能较高。
实现了一套原型图快速生成工具,支持PC端中后台原型、移动端原型、数据大屏原型设计。

CIYPHP源码(早期版本)  Ciyon(新版本) 最新源码不再公开分享,需加入【坤班】


CiySocket.js组件

100行Javascript封装Websocket前端,主要实现了自动重连及心跳包维持功能
保持HTML5官方规范调用模式
建议使用WSS 443端口通讯,不自定义
设置客户端发起的心跳包data、心跳包频率
设置重连间隔时间,可以设定多组时间,逐渐增加重连间隔时间,防止服务器过载
心跳包仅用于维持TCP通讯不被路由器关闭,现代网络环境下,客户端主动发起心跳即可


无锁Socket框架

基于Workerman的PHP Socket框架,采用端口并发机制,基本实现了无需变量锁的编程方法
Workerman完全使用php代码,易于部署,易于完善底层代码。
编程过程可忽略变量锁,降低开发复杂度。提升效率。
建议与CiySocket框架结合使用

Ciyon

惯性优化

项目初建:
CDN隐藏真实IP,做好限流回源设置。
依托SQL慢查询日志,按需加索引。
自动化分析Web慢查询日志,持续优化代码。
逐步将本机文件存储,迁移至廉价云存储。

集群演进:
单点登录,实现跨域授权。
WEB/DB分离,多WEB分散压力,DB和WEB同一个内网。
DB主从孙扩展,DB业务纵向拆分,代码层面实现业务路由。
DB业务横向拆分,代码层面实现分段路由。
跨地区多中心的隧道数据共享,规划分钟级容忍的业务同步方案。

微服务:
微服务源于技术团队扩张而多种技术栈各自为战。
业务分块后,每个技术团队负责一类功能实现。
微服务团队间除了接口外,其他均不原生共享。

建立一套强化且极简的接口协议标准。
每个团队自行实现服务网关、服务发现、自动扩缩容等集群编排。
增设服务网关、服务发现、自动扩缩缩容。
尽量在前端代码实现微服务路由,避免建立集中网关。
只使用3种交互模式,HTTPS、SSE、Websocket。


Linux部署和调优

使用统一的部署方案,统一维护,统一安全支持,高一致性的运维。
Nginx反向代理、处理缓存及图片前置处理。
MariaDB、PostgreSQL、TDEngine三大数据库系统标准部署按需使用。
按长连接、短连接及大数据处理(AI容器)三个维度分别制定内核调优配置方案。

部署文档


代码评审

前置评审、调用描述监控、自测覆盖。
统一使用无状态模式开发。
涉及多主库事务、长周期接口交互、强引用对象使用、三方库,需前置评审。
避免缓存服务集群、有效利用CPU/GPU/NPU。
渐进式开发框架,实现单服务到微服务的代码级过渡,服务调用点描述规范。


服务器运维

从【单服务器】到【单机房多服务器】再到【跨机房可伸缩多服务器群】的演进。
标准环境,单服务器运维,非docker自动化部署。
DB同步实时备份,从孙DB扩展,避免主DB停机扩容。
WEB无状态开发,WEB集群自动扩缩容。
主DB垂直水平拆分,多主互备。
多地集群部署,建立系统级信道。
OpenStack自建云机房,国产指令集核心,节能降耗。

服务器安全

代码安全、端口安全、补丁安全、停机容忍。
设计一套标准化的开发范式,降低在代码层面的安全风险。
最小化配置运维入口,自动触发高危告警,白名单机制监控服务器文件及进程。
建立安全攻防团队,定期攻防演练。


开发安全

代码分级审计,技术前置审批,资源使用规范。
按照增删改查调接口、服务器文件操作、服务器命令执行三个维度进行分级审计。
前置审批项包括但不限于多主事务、文件资源存储、可执行脚本等方面。
前端业务Web接口封装,决不直连数据库。
审计所有输入来源判断,用风险攻击数据测试输入来源过滤可靠性。

设计能力

软件工程师,也需要有一些设计能力。
至少熟练掌握Photoshop,切图、图片加工等图片处理。
至少购买1个商业设计网站的会员,方便下载成品图。
至少掌握一个图标设计库,如iconfont。
有意识的搜集整理好看的界面模板或截图。
将已经用过的图片素材,放到一起保存。
目前已整理超过1TB的优秀设计稿及一个设计师平台。