摘要: 作为公司最朴实、最不引人注目的一枚码农、一名程序员,我们这个群体连同其他很多岗位,共同扮演了公司里最基础的执行力角色。 现在,连我这样一名小小的程序员,都来谈领导力了,难道领导力的门槛变得这么低吗? 实则是,领导力思维太过重要,没有这种导向,平时做事的时候可能会有迷失感。 在我看来呢,领导力的本质是 阅读全文
posted @ 2020-03-09 10:25 溪边静禅 阅读(302) 评论(0) 推荐(3) 编辑
摘要: 这一次我们探讨的主题是 企业部署 Kubernetes 的终极目标是什么 。 Kubernetes,是一个开源的,用于管理云平台中多个 主机 上的 容器化的应用 。Kubernetes 这个名称中间有 8 个字母,所以也简称为 K8S 。 答案其实不复杂,企业部署 K8S 的终极目标是 节约运营成本 阅读全文
posted @ 2020-03-05 19:52 溪边静禅 阅读(303) 评论(0) 推荐(0) 编辑
摘要: Scrum 的角色划分是它最鲜明的特征,它是团队协作的代名词,是过程增量和循序迭代的护航舰艇,它所包括的三个角色分别为:产品负责人、ScrumMaster和开发团队。 阅读全文
posted @ 2020-03-03 18:28 溪边静禅 阅读(5343) 评论(0) 推荐(11) 编辑
摘要: 今天去苏州微软中国,参加了微软技术俱乐部苏州站的成立大会。 大会的历程悉数经历,这会儿仍在为各位大佬、社区领袖的奉献精神所感动。 在通过我们公司同事分享的链接报名时就了解到,大会上有苏震巍老师和蒋金楠老师的分享,便笃定了要抽出时间去现场感受一番,而且幸运的是两位大佬都选择了以 .NET Core 为 阅读全文
posted @ 2019-01-19 22:26 溪边静禅 阅读(1948) 评论(10) 推荐(19) 编辑
摘要: 软件开发实际上跟英语比较类似,都是一项工具,服务于各行各业。从程序员的个人修养上来讲,一是要研习好软件开发这门技艺,二是要深入到所服务的行业。说到底,软件的终极目标是模拟业务,在此期间常常会有一个认知层面的小误会,即软件开发人员在入行之初所学习的都是与计算机、编程语言相关的知识,于是就形成“只需要把 阅读全文
posted @ 2018-05-11 08:19 溪边静禅 阅读(2570) 评论(25) 推荐(54) 编辑
摘要: 原文来自 "RabbitMQ 英文官网" 的 "教程(6.Remote procedure call RPC)" ,其示例代码采用了 .NET C 语言。 In the second tutorial we learned how to use Work Queues to distribute t 阅读全文
posted @ 2017-12-26 09:11 溪边静禅 阅读(1695) 评论(13) 推荐(54) 编辑
摘要: 原文来自 "RabbitMQ 英文官网" 的 "教程(5.Topics)" ,其示例代码采用了 .NET C 语言。 In the previous tutorial we improved our logging system. Instead of using a fanout exchange 阅读全文
posted @ 2017-12-21 09:47 溪边静禅 阅读(1267) 评论(16) 推荐(32) 编辑
摘要: 原文来自 "RabbitMQ 英文官网" 的 "教程(4.Routing)" ,其示例代码采用了 .NET C 语言。 In the previous tutorial we built a simple logging system. We were able to broadcast log m 阅读全文
posted @ 2017-12-18 08:30 溪边静禅 阅读(1435) 评论(14) 推荐(41) 编辑
摘要: 原文来自 "RabbitMQ 英文官网" 的 "教程(3.Publish and Subscribe)" ,其示例代码采用了 .NET C 语言。 In the previous tutorial we created a work queue. The assumption behind a wo 阅读全文
posted @ 2017-12-14 10:15 溪边静禅 阅读(1608) 评论(11) 推荐(32) 编辑
摘要: 原文来自 "RabbitMQ 英文官网" 的 "教程(2.Work Queues)" ,其示例代码采用了 .NET C 语言。 In the first tutorial we wrote programs to send and receive messages from a named queu 阅读全文
posted @ 2017-12-11 10:52 溪边静禅 阅读(2108) 评论(15) 推荐(35) 编辑
摘要: 原文来自 "RabbitMQ 英文官网" 的 "教程(1.Introduction)" ,其示例代码采用了 .NET C 语言。 RabbitMQ is a message broker: it accepts and forwards messages. You can think about i 阅读全文
posted @ 2017-12-06 15:46 溪边静禅 阅读(3410) 评论(10) 推荐(66) 编辑
摘要: 像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引用一下,不需要就删除。故观念使然,尽管 Nuget 和 Maven 用得顺溜,但对 NPM 仍不带感,兴许是周边无人带动的稀薄气氛,也或者是没参加过类似的大型活动,于是 阅读全文
posted @ 2017-11-20 15:35 溪边静禅 阅读(12564) 评论(16) 推荐(40) 编辑
摘要: 对 Newtonsoft.Json 的应用可以说司空见惯,在 JSON 格式层级不深的情况下使用很方便,但有时遇到的 JSON 字符串层级非常多,且真正需要的数据往往都“埋”得很深,这时如果去定义一个与之对应的多层嵌套实体类就显得不划算,下面通过实例来演示如何一步到位抓取到期望的数据(集)。 一、把 阅读全文
posted @ 2017-10-20 16:46 溪边静禅 阅读(4921) 评论(23) 推荐(28) 编辑
摘要: 在 Activiti 流程引擎中,尽管通过 setAssignee(taskId, userId) 可以设置受理人,但这毕竟要先把下一步的任务查出来才能设置,比较繁琐;借助 Activiti 的 activiti:assignee 属性就可以自动化设置,即在当前任务完成之时就给下一个任务的受理人赋值 阅读全文
posted @ 2017-10-19 08:58 溪边静禅 阅读(4523) 评论(0) 推荐(0) 编辑
摘要: "Chloe.ORM" 是国人开发的一款数据库访问组件,很是简单易用。目前支持四种主流数据库:SqlServer、MySQL、Oracle,以及Sqlite,作者为这四种数据库划分出了各自对应的组件程序集,以 MySQL 为例即 Chloe.MySql.dll,其他以此类推,可以同时引用这些程序集从 阅读全文
posted @ 2017-10-16 17:22 溪边静禅 阅读(11817) 评论(28) 推荐(78) 编辑
摘要: 下拉框的显示样式: 针对下拉框的绑定等操作时,在最后务必调用一次 form.render(); 1、基本定义: 2、Json 数据绑定(以下为 Ajax 成功后的回调函数): 需要预加载 layui.use(['form', 'test'], function () { }); 这两个插件。 如果要 阅读全文
posted @ 2017-10-16 09:11 溪边静禅 阅读(3106) 评论(0) 推荐(1) 编辑
摘要: 在日常开发中,涉及表单的处理司空见惯。过往,在取值和赋值的过程中,借助 jQuery 常常只是逐个控件进行操作,可惜这样开发效率并不高。那么能不能批量获取整个表单的值呢,以及批量为表单赋值。 一、取值、赋值的扩展方法 formClear:清空表单中所有控件的值 formFill:填充表单所有控件 f 阅读全文
posted @ 2017-10-13 13:52 溪边静禅 阅读(1328) 评论(0) 推荐(1) 编辑
摘要: 一、普通输入框 input 二、自动完成式输入框 1. 确保 layui 引入了 autoComplete 插件。 2. 确保初始化代码运行于 layui.use 的回调函数里。 3. 引入 baseUtility.js。 1. HTML 2. js 数据源初始化 需定义在 layui.use 的回 阅读全文
posted @ 2017-10-13 08:36 溪边静禅 阅读(15922) 评论(0) 推荐(1) 编辑
摘要: 通常在窗体里放置的都是表单,或者使用分栏(Tab)来陈列信息也是非常的好用。在这里特别记录一下在窗体里同时放置表单和表格的设计思路。 仅放置一个表单 通常 Dialog 里只放一个表单,而且表单的行数并不多,所以这也是最简单的情形。 备注: 不需要指定高度,因为 90% 情形下表单的行数并不多 不需 阅读全文
posted @ 2017-10-12 16:08 溪边静禅 阅读(2266) 评论(0) 推荐(2) 编辑
摘要: 注意事项: 1. layui 中提交按钮是基于“监听”机制实现的。 2. form.on() 的调用需置于 layui.use 的回调函数中。 3. 末尾的 'return false' 不可或缺,以确保不会触发页面刷新。注意必须是 'return false',而不能简单写成 'return'。 阅读全文
posted @ 2017-09-30 18:18 溪边静禅 阅读(15786) 评论(0) 推荐(2) 编辑
摘要: 一、定义枚举 还有 BooleanEnum 和 OptTypeEnum 这两个枚举,这里暂且省略了它们的定义。 二、服务端方法 这里总共转化了 3 个枚举 注意,除了枚举自身名称之外,其余之处一律采用 Json 后缀,方便识别。 三、客户端请求 1、数据定义 服务端的枚举,对应于 js 端的数组 2 阅读全文
posted @ 2017-09-29 11:00 溪边静禅 阅读(2221) 评论(0) 推荐(1) 编辑
摘要: 该转换过程需要引用 Newtonsoft.JSON,这其中的转换过程还是蛮有意思的。 一、定义枚举 通常来说,这些值会绑定于类似下拉框这样的控件中,一个用于显示文本(text),一个则是值(value)。 二、定义转换方法 在以上转换过程中,枚举首先被转化为字典,接着才被序列化为字符串。 三、转换成 阅读全文
posted @ 2017-09-28 12:16 溪边静禅 阅读(3380) 评论(0) 推荐(1) 编辑
摘要: 问题阐述 通常每一个“用户任务”都会对应一个表单,以供用户录入信息。尤其是在“流程定义”拥有多个版本的情形下,明确的指定表单显得极其重要。 一份新版本的“流程定义”通常对表单有以下几点影响: 1. 新增了环节(用户任务),这时紧跟着新增一个表单即可,以及脚本、样式、Web API; 2. 删除了环节 阅读全文
posted @ 2017-09-27 14:50 溪边静禅 阅读(9654) 评论(0) 推荐(2) 编辑
摘要: 概述 在一些场景里,某个大表单里常常嵌套着一个或若干个小逻辑块,比如以下表单里“设计预审”中包括了一个子模块表单“拟定款项”。 在这种情况下该怎么去设计实体类以及表单呢? 实体类的设计 在设计实体类时最好的方式是“主模块包括了自己的字段,而子模块只通过一个属性被引用过来”,如下(以下字段都省略了 g 阅读全文
posted @ 2017-09-26 08:26 溪边静禅 阅读(2254) 评论(0) 推荐(1) 编辑
摘要: 过滤的必要性 一般来说,HTTP 请求都会被映射到 DispatcherServlet,进而由具体的类来承接处理,但对于类似 js 或者 css 这样的静态资源则没必要这样,因为对资源的获取只需返回资源本身即可,无需做其他处理,那么这时就需要对一系列的资源文件做过滤处理。 首先来看 web.xml 阅读全文
posted @ 2017-09-23 20:12 溪边静禅 阅读(2034) 评论(0) 推荐(1) 编辑
摘要: 页面仍然使用 JSP,在跳转时如果想传递参数则需要用到类 RedirectAttributes。 首先看看如何打开一个普通页面: 很简单,直接为 Model 对象添加 属性对 即可,然后在 JSP 页面里,通过 ${name} 就可以得到它的值 Tom。 那么,在页面发生了跳转的情况下该如何传递 属 阅读全文
posted @ 2017-09-22 15:55 溪边静禅 阅读(741) 评论(0) 推荐(1) 编辑
摘要: 运行 SpringMVC 首先要理解 SpringMVC 应用程序的入口是配置文件 web.xml,其路径为“src/main/webapp/WEB INF/web.xml”,通过它再去关联 SpringMVC 的配置文件 springmvc config.xml。 所涉及文件如下图: 此处列举了 阅读全文
posted @ 2017-09-21 16:38 溪边静禅 阅读(742) 评论(0) 推荐(1) 编辑
摘要: JDK:1.8 Maven:3.3.9 三层架构:基于 SpringMVC 的 UI 层、业务逻辑层以及数据访问层 从对 Maven 的了解可以看出,三层架构的创建在于对文件夹的合理安排,他们通常是主子结构,其次还要运用到 Maven 的聚合和继承。 基本的 Archetype 搭建 创建 sln 阅读全文
posted @ 2017-09-21 16:36 溪边静禅 阅读(1004) 评论(0) 推荐(1) 编辑
摘要: 为 datagrid 加载数据分两种情况: 一种是基于 Ajax 请求获取数据然后通过"loadData"方法来赋值; 另一种是直接使用 datagrid 自带的"load"方法向服务端发起请求。 无论采取哪一种方式,通常建议将 datagrid 的定义(Init)和加载(Load)分作两个方法来撰 阅读全文
posted @ 2017-09-17 10:44 溪边静禅 阅读(8981) 评论(0) 推荐(2) 编辑
摘要: 要解决的问题: 如何组织客户端参数? Ajax 方法的配置属性如何定义才能传递复杂参数? 基于 SpringMVC 的服务端该如何接收? MyBatis 怎么处理批量更新? 客户端脚本 在传递复杂类型的数据时,注意 Ajax 方法的 data 和 contentType 两个参数的设置。在 data 阅读全文
posted @ 2017-09-16 10:54 溪边静禅 阅读(1361) 评论(0) 推荐(1) 编辑
摘要: 在一个查询里,针对各种不同数据库,有时候只是一部分 SQL 是不相同的,为避免相同的部分复制多次,所以将不相同的部分进行适当的隔离,再重用就可以了。 在 MyBatis 里声明两段 片段,它们分别对应不同数据库: 可以发现,id 属性的值是相同的,而 databaseId 不同。在引用时将该 id 阅读全文
posted @ 2017-09-14 23:12 溪边静禅 阅读(1127) 评论(0) 推荐(1) 编辑
摘要: 一般的部署途径 Tomcat 的部署途径很多,一般有如下几种: 1. 直接将 War 包拷贝到 webapps 目录中,然后启动 Tomcat。 2. 登陆 Tomcat 管理控制台http://localhost:8080/,输入用户名和密码后便可管理应用并动态发布。 接下来记录一下多端口项目部署 阅读全文
posted @ 2017-09-13 20:32 溪边静禅 阅读(5028) 评论(1) 推荐(1) 编辑