关注点分离的问题

前端组件化时,有个很时髦的词语叫做关注点分离,这个用在组件上比较好,我们可以把大的模块分割成小的模块,降低了整个模块的复杂度。 但是有时候,我觉得关注点分离并不好。这个不是指在代码开发过程,而是解决问题的过程。 关注点分离的处理方式 假如我要解决问题A,但是在解决过程中,我发现了一个我不知道的东西B, 然后我就去研究这B是什么东西,然后接二连三,我从B一路找到了Z。 然后在这个解决过程耽误一段时候后,才想起来:我之前是要解决什么问题来着?? 关注点集中的处理方式 不要再深究的路径上走的太深 在走其他路径时,也不要忘记最后要回到A点

2019-09-06 12:37:25 · 1 min · Eddie Wang

TCP和UDP的区别畅想

web服务器如果是基于tcp的,那么用来监听端口端口例如80,一定只能用来接收消息,而不能从这个端口主动发消息出去。 但是udp服务器就不一样了,同一端口,即可以用来做listen的端口,也可以从这个端口主动发消息出去。

2019-09-05 14:59:32 · 1 min · Eddie Wang

PlantUML教程 包学包会

我觉得PlantUML非常适合绘制时序图,先给个完整的例子,我经常会用到的PlantUML画SIP请求时序图。 @startuml autonumber alice->bob: INVITE bob-[#green]>alice: 180 Ringing bob-[#green]>alice: 200 OK == talking == bob-[#green]>alice: BYE alice->bob: 200 OK @enduml 简单箭头 –> 虚线箭头 -> 简单箭头 -[#red]> 带颜色的箭头 @startuml alice->bob: INVITE bob-->alice: 180 Ringing @enduml 声明参与者顺序 先使用participant关键字声明了bob, 那么bob就会出现在最左边 @startuml participant bob participant alice alice->bob: INVITE bob->alice: 180 Ringing @enduml 声明参与者类型 actor boundary control entity database @startuml participant start actor a boundary b control c entity d database e start->a start->b start->c start->d start->e @enduml 箭头颜色 -[#red]> -[#0000ff]-> @startuml Bob -[#red]> Alice : hello Alice -[#0000FF]->Bob : ok @enduml 箭头样式 @startuml Bob ->x Alice Bob -> Alice Bob ->> Alice Bob -\ Alice Bob \\- Alice Bob //-- Alice Bob ->o Alice Bob o\\-- Alice Bob <-> Alice Bob <->o Alice @enduml 箭头自动编号 设置autonumber...

2019-09-05 12:55:27 · 1 min · Eddie Wang

编译器和女朋友有什么相同之处

编译器面无表情的说:xxx.cfg 189行,有个地方多了个分号? 但是你在在xxx.cfg的地189哼哧哼哧找了半天,满头大汗,也没发现有任何问题,这一行甚至连个分号都没有!! 而实际上,这个问题并不是出在第189行,而是出在前面几行。 所以说,编译器和女朋友的相同之处在于:**他们说的话,你不能全信,也不能不信。**而要从他们说的话中分析上下文,从蛛丝马迹中,寻求唯一的真相。

2019-09-03 21:12:59 · 1 min · Eddie Wang

ssh 私钥使用失败

报错信息如下 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for 'mmmmm' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. 解决方案:将你的私钥的权限改为600, 也就是说只有你自己可读可写,其他人都不能用 chmod 600 你的私钥

2019-08-17 18:53:37 · 1 min · Eddie Wang

在不打开文件,将全文复制到剪贴板

一般拷贝全文分为以下几步 使用编辑器打开文件 全文选择文件 执行拷贝命令 实际上操作系统提供了一些命令,可以在不打开文件的情况下,将文件内容复制到剪贴板。 mac pbcopy cat aaa.txt | pbcopy linux xsel cat aaa.txt | xsel windows clip cat aaa.txt | clip

2019-08-16 09:25:37 · 1 min · Eddie Wang

macbook pro 开机后wifi无响应问题调研

解决方案 方案1: sudo kill -9 `ps aux | grep -v grep | grep /usr/libexec/airportd | awk '{print $2}'` 或者任务管理器搜索并且杀掉airportd这个进程 参考 https://discussionschinese.apple.com/thread/140138832?answerId=140339277322#140339277322 https://www.v2ex.com/t/505737 https://blog.csdn.net/Goals1989/article/details/88578012

2019-08-15 08:48:22 · 1 min · Eddie Wang

mysql远程连接速度太慢

编辑/etc/my.cnf,增加skip-name-resolve skip-name-resolve 然后重启mysql

2019-08-08 16:56:12 · 1 min · Eddie Wang

xmysql 一行命令从任何mysql数据库生成REST API

github向我推荐这个xmysql时候,我瞟了一眼它的简介One command to generate REST APIs for any MySql Database, 说实话这个介绍让我眼前一亮,想想每次向后端的同学要个接口的时候,他们总是要哼哧哼哧搞个半天给才能我。抱着试试看的心态,我试用了一个疗程,oh不是, 是安装并使用了一下。 说实话,体验是蛮不错的,但是体验一把过后,我想不到这个工具的使用场景,因为你不可能把数据库的所有表都公开出来,让前端随意读写, 但是试试看总是不错的. 1 来吧,冒险一次! 安装与使用 npm install -g xmysqlxmysql -h localhost -u mysqlUsername -p mysqlPassword -d databaseName浏览器打开:http://localhost:3000, 应该可以看到一堆json 2 特点 产生REST Api从任何mysql 数据库 🔥🔥 无论主键,外键,表等的命名规则如何,都提供API 🔥🔥 支持复合主键 🔥🔥 REST API通常使用:CRUD,List,FindOne,Count,Exists,Distinct批量插入,批量删除,批量读取 🔥 关联表 翻页 排序 按字段过滤 🔥 行过滤 🔥 综合功能 Group By, Having (as query params) 🔥🔥 Group By, Having (as a separate API) 🔥🔥 Multiple group by in one API 🔥🔥🔥🔥 Chart API for numeric column 🔥🔥🔥🔥🔥🔥 Auto Chart API - (a gift for lazy while prototyping) 🔥🔥🔥🔥🔥🔥 XJOIN - (Supports any number of JOINS) 🔥🔥🔥🔥🔥🔥🔥🔥🔥 Supports views Prototyping (features available when using local MySql server only) Run dynamic queries 🔥🔥🔥 Upload single file Upload multiple files Download file 3 API 概览 HTTP Type API URL Comments GET / Gets all REST APIs GET /api/tableName Lists rows of table POST /api/tableName Create a new row PUT /api/tableName Replaces existing row with new row POST :fire: /api/tableName/bulk Create multiple rows - send object array in request body GET :fire: /api/tableName/bulk Lists multiple rows - /api/tableName/bulk?...

2019-08-06 13:56:20 · 2 min · Eddie Wang

Jenkins 全局变量参考

docker The docker variable offers convenient access to Docker-related functions from a Pipeline script.Methods needing a slave will implicitly run a node {…} block if you have not wrapped them in one. It is a good idea to enclose a block of steps which should all run on the same node in such a block yourself. (If using a Swarm server, or any other specific Docker server, this probably does not matter, but if you are using the default server on localhost it likely will....

2019-08-06 13:48:59 · 8 min · Eddie Wang