Code
文章平均质量分 50
铭记北宸
PMP/VCP/Niagara Developer
展开
-
Spring框架基础应用
根据书籍《名师讲坛_Spring实战开发》梳理Spring开发框架,代码在本人Mac运行通过,IDE是Eclipse-SpringToolSuite4。Spring知识图谱:建议学习方式:clone 我的代码:https://github.com/hanjing5024064/SpringBasic.git 根据代码注释及提交顺序一步步学习,可以对Spring有很好的理解。 库中代码进行了详细说明,且将原来单章节分布的代码融合到一起,一步步整合所有组件:)Commit效果截图: 如原创 2021-09-04 15:33:54 · 120 阅读 · 0 评论 -
SpringCloud微服务架构实战
根据书籍《Java微服务架构实战》重温微服务架构,代码在本人Mac运行通过,IDE是Eclipse-SpringToolSuite4,排除了随书源代码的各个BUG。建议学习方式:clone 我的代码:https://github.com/hanjing5024064/springcloud-microservice根据代码注释及提交顺序一步步学习,可以对微服务有很好的理解。 如果已经掌握一定微服务知识,可以下载思维导图学习。链接: https://pan.baidu.com/s/1qsb1ti.原创 2020-12-10 16:18:18 · 1482 阅读 · 7 评论 -
结合JQuery Bootstrap Swiper PHP的移动端网站
如题:结合JQuery Bootstrap Swiper PHP的移动端网站效果:项目地址:https://github.com/hanjing5024064/website示例:http://www.jyfrl.com原创 2018-12-20 21:09:19 · 254 阅读 · 2 评论 -
PHP面试宝典
组织一些代码片段,方便回顾。1. 随机排序数组uasort($gateways, function () { return mt_rand() - mt_rand();});2. 通过session统计在线人数defined('MAX_IDLE_TIME') or define('MAX_IDLE_TIME', 3); class onLineUser { publ...原创 2018-12-11 10:11:04 · 597 阅读 · 0 评论 -
GitHub 发布 2018 编程语言 TOP10
2018 年创建存储库数量最多的编程语言截至 2018 年 9 月 30 日,贡献者使用最多的编程语言截至 2018 年 9 月 30 日,语言趋势地理分布截至 2018 年 9 月 30 日,发展最快的语言原文链接:https://blog.github.com/2018-11-15-state-of-the-octoverse-top-programmi...转载 2018-11-26 21:17:11 · 244 阅读 · 0 评论 -
PHP是世界上最好的语言
早年间,要想让一个社区沸腾起来,你只要抛出这样一句话『PHP是世界上最好的语言』,各个语言的鄙视链就开始了。曾经有资深的PHPer说:能够用PHP解决所有问题;佛系的说法是:语言无分好坏,要看实际的需要;架构师的说法是:PHP适合做WEB应用,你的系统应该这样架构:PHP做业务展示层,Java做接口层,如果可以用C做底层;PHP不断在改善自己一直被诟病的性能问题,如今的PHP7性能...原创 2018-11-23 10:26:18 · 790 阅读 · 0 评论 -
CakePHP 权限管理1 - 代码创建可授权的action
Cakephp的权限管理可以基于Controller - Action,当用户访问某个方法时,判断是否已经针对该方法授权。数据库:actions表保存可授权的操作; roles表保存角色; roles_actions表保存角色授权的操作项 users表保存用户;从属于roles; 根据需要可以建立sys_menus系统菜单,其中的congroller和action可以与action...原创 2018-11-14 18:33:06 · 332 阅读 · 0 评论 -
CakePHP 数据表新增字段
需求的变更,数据库需要新增字段,CakePHP这样做:生成数据库迁移代码,执行迁移,为数据表新增字段 生成MVC基础代码 根据自己需求修改MVC代码 测试后,线上环境同样执行迁移,并更新代码,OK假设用户管理要增加帐号是否激活功能,计划在users表新增is_active(tinyint)字段,默认1-激活,0-未激活。生成数据库迁移代码,执行迁移,为数据表新增字段 php b...原创 2018-11-06 08:18:43 · 422 阅读 · 0 评论 -
Cakephp项目重构——查询优化
正在开发一个工程管理系统,项目层级上分为实体项目和单项工程,实体项目是按区域区分的,比如闵行区项目、静安区项目;一个实体项目有多个单项工程。其中每个单项工程都有很多控制节点,每个节点由不同的用户负责。节点之间有前后置关系,前置节点完成后,本节点成为用户的待办节点。功能需求:用户可以查看自己负责的节点、已经完成的节点、待办节点,可以通过时间段、区域筛选节点。查询功能的UI:数据结构:...原创 2018-12-11 09:47:26 · 207 阅读 · 0 评论 -
用SQL来修复项目数据
维护工程管理系统时,由于功能上线的时间差,导致数据不同步的问题。具体来看,就是项目信息中有合同签订的开始及结束时间,项目进度节点中的合同签订节点确没有将状态修改为已完成,并记录完成时间。最后用SQL修复该问题。涉及的表:project_contract_subs 采购订单表,这里保存有合同(采购订单)的签订日期(signed字段)project_engineerings 单项工程表,从...原创 2018-12-24 17:33:13 · 210 阅读 · 1 评论 -
Mysql中使用SQL删除多字段相同的重复记录
项目中有一个实体项目类别与单项工程列别关联的表,比如实体项目类别1,包含单项工程类别2,3,4;一段时间后发现添加了很多重复的关联记录,需要在数据库中删除;(为了避免再出现冗余的重复记录,添加时要增加验证是否是重复记录)这里有几个点:通过group by以及having count(*)>1 来查询到重复记录; 通过min(id)筛选出最小id保留到数据库中; 通过临时表来存...原创 2019-01-21 17:27:37 · 1337 阅读 · 1 评论 -
MacOS10.13.6 升级后 PHP7.3配置
几乎每次Mac系统升级后,PHP都要重新配置,最近升级了MacOS到10.13.6;PHP通过brew update php升级到7.3;随后要修改的地方:1. 从7.3开始,compact方法对没有定义的变量会抛出Notice级别的错误,官网描述:compact()issues an E_NOTICE level error if a given string refers t...原创 2019-03-06 20:10:25 · 1123 阅读 · 0 评论 -
通过优化接口、代码、SQL、缓存做性能优化
系统优化应该先从编码层面开始,这样能够让代码更容易维护,性能的提升很显著,又不会增加(反而会节省)硬件资源。接下来开始吧:优化前页面ajax请求最高的达到6.75秒,这样的体验是很糟糕的。从监控上可以看到几个优化点:1. 接口get-charts-time-v3和get-new-sale都请求了2次,最好合并为一个;2. 接口get-color-nums-v4和get-new-s...原创 2019-04-02 16:41:22 · 560 阅读 · 0 评论 -
SQL查询数据库中数据统计信息
项目背景业务系统上线经常面临历史数据与系统同步问题,我们项目中的做法是1. 新发生的项目严格走系统;2.历史项目逐年倒推,导入系统;因为工程项目的周期一般要超过1年,在导入2018年项目时,就会面临项目数据分布在17年、18年,甚至16年,需要对比系统中数据与财务数据、部门统计数据的差异,调整数据一致后再统一导入系统中,完成线下到线上的切换;需求描述需要导出系统中所有工程项...原创 2019-06-19 14:11:07 · 3502 阅读 · 0 评论 -
项目优化-角色不同样式不同数据不同-CakePHP实践
项目需要进行改造的需求:不同角色登录后显示的控制面板不一样不同角色登录后显示的统计数据不一样重构:1.不同角色登录后显示的控制面板不一样为了不影响已有代码,新增控制面板Controller:DashboardController;在控制面板Controller中添加角色对应Layout的数组;根据当前登录用户的角色,加载不同的layout和content,比如项目经理是la...原创 2019-07-23 18:09:21 · 414 阅读 · 0 评论 -
Python-正则表达式
Core Python练习:1.查找hat hit heat单词:\bh[a-zA-Z]+t\b2.查找姓名(英文单词中间空格):\b[a-zA-Z]+\b\s{1}\b[a-zA-Z]+\b3.单个逗号和一个空格分割的单词:\b[a-zA-Z]+\b, (最后有一个空格)4.匹配有效Python标识符(字母、数字、下划线构成,且首位字母):\b[a-zA-Z_]\w+\b...原创 2019-09-24 20:17:18 · 176 阅读 · 0 评论 -
Python-网络编程
原创 2019-09-25 20:24:54 · 155 阅读 · 0 评论 -
Python-因特网客户端编程
原创 2019-09-26 19:50:05 · 184 阅读 · 0 评论 -
优化下项目中的Excel导入
由于业务需要,项目涉及到导入电费、租金、服务费、协调费,老代码还是比较臃肿、不易维护的,做了一定优化,采用策略模式。类图:ImportExcel来做Excel文件的基础操作,以及根据解析结果返回固定格式消息及数据;ImportExcelStrategyInterface定义了解析策略的标准方法级函数;ImportExcelStrategyBase定义了解析策略的通用方法;I...原创 2018-10-24 17:32:24 · 338 阅读 · 0 评论 -
Web项目增加微信自动登录
流程:『公众号』配置请求发到『用户中心』; 当用户在『公众号』内点击『业务系统』入口连接时,会请求『用户中心』; 『用户中心』与『微信服务器』交互获取OpenId; 『用户中心』根据OpenId确定微信用户,校验该用户是否已经绑定『业务系统』的帐号;绑定了回传userId,执行5;没绑定回传wechatId,执行6; 『业务系统』根据用户中心回传的userId登录系统; 『业务系统』...原创 2018-10-29 17:43:13 · 1442 阅读 · 2 评论 -
改造工作流的代码
项目中用到了工作流:各项费用申请,代码的耦合度很高,设计下优化目标:流程模块与PHP框架解耦,与业务逻辑解耦。类图:原创 2018-10-25 18:26:21 · 224 阅读 · 0 评论 -
借助幕课网的资源重新梳理下PHP基础知识,用以备忘。
判断函数是否存在当我们创建了自定义函数,并且了解了可变函数的用法,为了确保程序调用的函数是存在的,经常会先使用function_exists判断一下函数是否存在。同样的method_exists可以用来检测类的方法是否存在。 来自 http://www.imooc.com/code/437>类是否定义可以使用class_exists。 来自 http://www.imo转载 2014-09-26 09:35:01 · 845 阅读 · 0 评论 -
Activiti工作流引擎使用
Activiti工作流引擎使用1.简单介工作流引擎与Activiti对于工作流引擎的解释请参考百度百科:工作流引擎1.1 我与工作流引擎在第一家公司工作的时候主要任务就是开发OA系统,当然基本都是有工作流的支持,不过当时使用的工作流引擎是公司一些牛人开发的(据说是用一个开源的引擎修改的),名称叫CoreFlow;功能相对Activiti来说比较弱,但是能满足日常的使用,转载 2014-08-04 11:28:36 · 700 阅读 · 0 评论 -
Java语言与应用框架——Struts官方文档
原文地址:http://struts.apache.org/primer.html翻译 2014-09-03 19:58:49 · 644 阅读 · 0 评论 -
CakePHP 开发(一)快速开发基本功能的项目
如果你对目标不感兴趣,那么就不要再浪费时间往下看了J 最终目标浏览器地址栏中输入http://localhost/myproject/mybooks/得到如下界面:可以对数据进行增加、删除、查看、编辑操作,列表中点击字段名称可以排序。 当你看到他时,恭喜你,一个目标已经完成了。原创 2014-06-26 19:48:52 · 1259 阅读 · 0 评论 -
微信开发(三)获取用户信息,同时整理代码
概述:获得与公众号进行交互的用户信息 步骤:1. 获得AccessToken2. 获得OpenID3. 获得用户信息实现:1. 将配置参数封装起来:创建config.php文件,内容如下://填写自己公众号的appiddefine("APPID", "***********");//填写自己公众号的secretdefine("APPSECRET", ...原创 2014-12-03 21:19:55 · 2279 阅读 · 2 评论 -
微信开发(二)自定义菜单
概述:通过get方法调用微信接口,创建菜单,菜单可以响应点击、跳转页面、打开二维码扫描器等。目前自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。步骤:1. 调用接口获得通讯Token2. 调用接口创建自定义菜单3. 响应自定义菜单操作实现:1. 调用接口获得通讯T原创 2014-12-02 20:16:30 · 1616 阅读 · 0 评论 -
微信开发(一)公众号接入服务器
1. 进入微信公众号登录界面https://mp.weixin.qq.com/2. 登录成功后,进入“开发者中心”菜单(左侧最后一个)3. 修改服务器配置原创 2014-12-01 21:02:47 · 5863 阅读 · 0 评论 -
SSH框架Java代码自动化生成
最近带领团队在用Java开发xiang'mu原创 2014-08-28 10:01:38 · 2156 阅读 · 0 评论 -
揭开计算机的神秘面纱
写在前面的话:从接触电脑以来,就一直对电脑充满好奇。当电脑连接上电源,按下开机键,我们就可以做所有我们想做的事情,打游戏、写文章、看电影、搭建web服务器、自己写程序等等。随着接触电脑的时间越长,反而对电脑更加的陌生,不断的问自己,计算机到底是怎么组成的?为什么就能够实现这些功能?如果让我穿越回多少年前,该如何搭建一台电脑?恰好这几天读完这本书《code:the hidden Language o转载 2015-02-28 12:46:50 · 476 阅读 · 0 评论 -
CakePHP 查询组件
框架:CakePHP功能:页面通过配置实现查询功能代码:src/Controller/Component/MySearchV2Component.php;src/Template/Element/search_index_v2.ctpsrc/Template/Element/date_time_picker.ctp已提交到https://github.com/hanjing502406...原创 2018-10-17 17:25:10 · 334 阅读 · 0 评论 -
PHP中的闭包
在PHP中闭包与匿名函数是一个概念;$sayHello = function($name){ echo("Hello $name");};在PHP中闭包是像函数的对象,是个Closure类,只是能够像函数一样调用;$sayHello("world");输出 Hello worldvar_dump($sayHello instanceof Closure);输出 bo...原创 2018-10-16 16:57:28 · 1731 阅读 · 0 评论 -
PHP 扩展开发 基于7.2.8
开发PHP扩展的目的:代码复用; 性能提升;开发过程:下载源码 https://github.com/php/php-src/tree/php-7.2.8 生成扩展架构 解压后的源码目录下: cd ext./ext_skel --extname=myext1 编写自己的函数 cd myext1 vi config.m4 去掉这几行前的注释'del' vi myext1....原创 2018-08-13 10:30:40 · 2974 阅读 · 0 评论 -
What is AI ? AI 是什么?
think or act, fidelity or ideal, like human or rationally.Act Human: Turning TestMachine learning knowledge representation natural language automated reasoningTotal Turning Test add two thin...原创 2018-07-17 10:10:11 · 1444 阅读 · 0 评论 -
AI 线性回归
基本理解:给出输入x及输出y的数组,求线性关系的W,如何设计神经网络?1.根据xy推导w与loss关系y'=wxloss=(y'-y)^2w, loss关系呈现为U型图;2.查找最佳w,将问题转换为求导w=w-r*(dloss/dw)dloss/dw=d(y'-y)^2/dw=2x(wx-y)设置r=0.01循环多次后越来越接近正确w使用touch:1.线性相关的问...原创 2018-07-17 10:07:34 · 274 阅读 · 0 评论 -
Linux中mysql数据库的自动备份策略
思路:挂载云数据盘用来做数据备份;编写shell脚本备份数据到数据盘,并删除历史备份文件;利用crontab建立计划任务,执行上述脚本;1.挂载云数据盘#查看数据盘信息,比如数据盘是/dev/vdbfdisk -l#对数据盘分区fdisk /dev/vdb #按照界面的提示,依次输入“n”(新建分区)、“p”(新建主分区)、“1”(使用第1个主分区),两次回车(使用默认配置),输...原创 2018-07-17 10:06:04 · 693 阅读 · 0 评论 -
XDebug - profiling your php code
任何疑问请加QQ:79811993Install PEAR=========================1. 下载pearcurl -O http://pear.php.net/go-pear.phar2. 安装pearsudo php -d detect_unicode=0 go-pear.phar3. 执行以上命令后会进行安装过程,会有一些配置选项输入1,回...原创 2018-07-17 10:03:33 · 182 阅读 · 0 评论 -
从头打造一个基础的PHP框架
当我们在能够使用框架开发业务功能之后,都会开始阅读框架源码,但是成熟的框架各个部分都较复杂,阅读起来就无从下手,我觉得从一个基础框架的搭建入手,能很好的理解框架各个组成部分是如何协作的。代码已经托管到github,建议通过查看commits来逐步学习,欢迎提出改进意见。20180718 新增支付 采用braintreegithubhttps://github.com/hanjing...原创 2018-07-17 09:43:06 · 1034 阅读 · 0 评论 -
ETL工具kettle与java结合使用程序生成一个简单的转化文件
最近项目中使用ETL工具kettle(4.+)对数据库的数据进行清洗,使用工具spoon来使用一些图形化的操作比较简单,抽空研究了下用使用kettle的一些jar包,把kettle结合到java(web项目一样)程序中。留作一个记录,以后备用查看。 先看看网站上下了很多资料看http://infocenter.pentaho.com/help/index.jsp?topic=%2Fcat转载 2014-07-31 12:20:12 · 1577 阅读 · 0 评论