Tristana 的个人博客   日拱一卒,不期而至。

Vue.js和微信小程序学习心得总结 有更新!

Vue.js 总的来说 vue 的官方文档做的真心不错,整个文档由浅入深,循序渐进的介绍了 vue 的基本概念和框架的设计理念。过程中辅以简单的实例加深了对概念性知识点的理解,不过要构建完整的 vue 项目还需要对 Node 和 commonJS 标准有所了解,有一定的学习成本。 Vue 的实例是整个框架的核心,依托强大的组件系统,可以轻松的操作和构建灵活的模板系统。 服务器端渲染(ssr)配合单文件的 Vue 组件开发是目前流行的开发方式,个人觉得单纯的开发简单应用完全没必要了解太多技术点,但是大型复杂项目需要深入理解核心原理和概念。 微信小程序 按照官方开发手册和网上的小程序实例跑了一遍小程序官方 Demo,开发效率应该比较高,这里着重以下几个开发的关键点: 首先是要对小程序的目录结构及其各个文件的作用充分了解,这样在构建页面布局和数据交互上会比较顺手。 其次要在小程序的事件机制的原理上多下功夫,尽管每个页面大体相似,但是也有必要清楚每一个事件的具体含义及调用过程。 第三点就是小程序的组件,微信官方提供大量现成的组件示例,例如视图容器、基础内容、表单、导航等等,即规范又....

关于我

基本信息 向余(Tristana)/男/汉/1992 本科/信息管理与信息系统/天津理工大学 520tristana@gmail.com 个人博客:https://520tristana.com 本科主修信息管理与信息系统,软件工程师,工作已 5 年有余,长于后端,游走于 PHP,Go 等技术栈,开源项目参与者,目前在杭州某公司担任技术负责人。

PHP 没有块级作用域

<?php $arr = range(0, 9); foreach ($arr as $k => $v) { if ($v/2 == 0) { $flag = true; } else if ($v > 6) { $flag = true; } if (isset($flag)) { // do something echo "I Love PHP!\n"; } } 以上代码除了 $arr 中的值为偶数和大于 6 时会输出”I Love PHP!" ,其它情况也会输出,一开始,我是有点困惑的,搞了好些时间才搞明白。 简单分析下解决的过程:这个代码片段是在最近排查系统的 bug 是看到的,流程做了些简化。代码是我本人写的😓,系统在最开始并没有出现问题,上线一段时候后,就出 bug 了。有的人可能一眼就看出来问题在哪了,但是如果你对 PHP 的变量的作用域不太了解的话,就很容易栽进这坑里。 PHP 有函数作用域,但没有像 c/c++、java 等语言的块及作用域。例如在 c++ 里: for (int i = 0; i < 10; i++) { cout &lt....

502 Bad Gateway 什么意思,如何解决?

中文解释 "Bad Gateway" 百度翻译是错误的网关,专业解释是 Web 服务器作为网关或代理服务器时收到无效的响应。 图片来源 http://server.zzidc.com/fwqcjwt/729.html 产生原因 客户端向服务器发送的请求数量超过了服务器的处理能力,导致服务器无法给于正常的响应。 解决措施 客户端 一般情况下我们只需等待片刻再访问或者使用快捷键 ctrl+F5(mac 用户 cmd+R) 强制刷新一下,重新向服务器发送请求或者清理一下电脑的缓冲文件。(如果还是出现同样的问题,那我们就只能依赖服务端处理了) 服务端 服务端出现这种情况就会稍微复杂一些,可能是由多种原因导致,这就需要我们逐个进行排查了 查看服务器当前的 PHP FastCGI 进程数是否够用; ps -fe | grep "php-fpm" | grep "pool" | wc -l 如果实际使用的 "FastCGI进程数" 接近预设的 "FastCGI进程数",那么说明 "FastCGI进程数" 不够用,需要增大; 部分 PHP 程序的执行时间超过了 Nginx 的等待时间,可....

Redis Snippet

基本数据类型 字符串 string、列表 list、无序集合 set、有序集合 zset、散列表 hash。 支持的特性 将内存中的数据持久化到硬盘 使用复制来扩展读性能 使用分片来扩展写性能 键的过期时间 对于散列表这种容器,只能为整个键设置过期时间(整个散列表),而不能为键里面的单个元素设置过期时间。

网络时代的认知惰性

网络时代的认知惰性:对互联网的依赖本身是一种成瘾。 现在走在任何一个地方,都能看到“低头族”——两眼无法从手机屏幕上挪开——这些人中有玩游戏的,有聊天的,有刷微博的,有混朋友圈的,要说这专注的劲头,的确值得欣赏。 注意力是互联网经济的一个核心要素,人们依赖网络,便捷只是原因之一,更重要的是网络上的信息能够把注意力牢牢吸引住。只要所控制的注意力够专够强,那么网络实际上也就控制了个体的行为,激发了个体潜在的偏好和需求。 网络对于人的行为控制不在技术层面,而是在注意力层面。平时三心二意的人或者马马虎虎的人,在互联网面前似乎都专注起来,对周边事物充耳不闻。 这种注意力的控制是怎么产生的?其实就是有趣。 人都有好奇心,只是在没有互联网的时代,好奇心由于缺乏激发因素而被抑制了,毕竟每个个体都会受到自身社会环境和社会网络的限制,发生在身边的趣事少,出现的频率低。 互联网改变了这一切,它打破了信息传播的空间限制,瞬间聚集各领域的信息,从而让有趣的事情能够高频率地冲击眼球。在这种高频信息的冲击下,人的好奇心会不断被激发出来,从而形成一种认知上的依赖,这种依赖就体现在注意力上。人们无法离开网络环境,一旦到....

MySQL 慢查询优化

建立索引的五大原则 最左前缀匹配原则。 “=” 和 “in” 可以乱序。 尽量选择区分度高的列作为索引。 索引列不能参与计算。 尽量扩展索引,不要新建索引。 查询优化神器 - explain命令 慢查询优化基本步骤 先运行看看是否真的很慢,注意设置 SQL_NO_CACHE where条件单表查,锁定最小返回记录表。这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始查起,单表每个字段分别查询,看哪个字段的区分度最高 explain查看执行计划,是否与1预期一致(从锁定记录较少的表开始查询) order by limit 形式的 sql 语句让排序的表优先查 了解业务方使用场景 加索引时参照建索引的几大原则 观察结果,不符合预期继续从0分析

Linux 设置系统时间及同步网络时间

Linux 的时间分为 System Clock (系统时间)和 Real Time Clock (硬件时间,简称 RTC)。 系统时间:指当前 Linux Kernel 中的时间。 硬件时间:指主板上有电池供电的时间。 1. 查看系统时间bash # date # 例: ➜ ~ date # Output 2018年 3月 7日 星期三 12时01分15秒 CST 设置系统时间: # date --set "月/日/年 时:分:秒" # 例: ➜ ~ date --set "01/01/2049 00:00:00" # Output 2049年 1月 1日 星期五 00时00分00秒 CST 同步网络时间 除了手动设置系统时间外,也可与采用和网络时间进行同步的方式。下面介绍一下不同发行版本如何与时间服务器上的时间同步的方法 安装 nptdate 工具 CentOS $ sudo yum -y install ntp ntpdate Ubuntu $ sudo apt-get install ntp ntpdate 设....

从多任务到专注思考:如何让生活化繁为简?

有步骤的分解任务 每天留出一段黄金时间,不受任何打扰,什么都不干——就算还有许多事情没做完,也不要急着开工,而是静下心来,安静地冥想。 在冥想的时候,我会按照这几个步骤思考: @复盘 我今天做了什么? 近段时间里,各个项目的进展如何?是否按照预想的方向前进? 在项目的执行中,遇到了什么问题,分别是由什么原因造成的?可以如何去规避? @策略 我接下去要做些什么 通过这些事情,我要达到什么目的 这个方向是最好的吗?有没有别的方向? @规划 我要如何达到第二步目标 如何把这个任务分解成小任务,分别在什么时候完成? 有哪些信息需要了解,我需要在什么时候确定这些信息? 具体操作 通常,这些问题很难一下子全部都得到答案。我会打开 Onenote,将想到的各个点记下来,画成层次图,不断修正、调整,整理自己的思维。 也许,思考的结果,会推翻昨天得到的某个结论。这个时候,就会重新打开昨天的笔记,进行审视和对比,然后将修改结果重新写下来。 最后,我会留下某几个问题,放到一则叫做「聚焦」的笔记里面——它们就是我经过分析之后,需要去思考和处理的最重要的问题。 这也就是我第二天工作和思考的重心。 简....

PHP 函数 header() 的用法归纳

301 永久重定向 <?php header('HTTP/1.1 301 Moved Permanently'); header('Location: http://www.example.com'); exit(); ?> 302 临时重定向 <?php header('Location: http://www.example.com'); exit(); ?> 404 页面未找到 <?php header('HTTP/1.1 404 Not Found'); ?> 503 服务不可用 <?php header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); exit(); ?> 设置内容类型 <?php // html header('Content-Type: text/html; charset=iso-8859-1'); head....

Ubuntu_16.04 卸载 LN(A)MP 软件包

Start 删除软件包 卸载 Apache2 sudo apt-get --purge remove apache2* sudo apt-get autoremove apache2 (--purge 是完全删除并且不保留配置文件) # (重新安装 sudo apt-get install apache2) 卸载 Nginx sudo apt-get remove nginx-* sudo apt-get purge nginx-* 卸载 php7.0-fpm 或者 php5 sudo apt-get --purge remove php7.0* (或者 sudo apt-get --purge remove php5* libapache2-mod-php5) sudo apt-get autoremove php7.0*(php5) 卸载 MySQL sudo apt-get --purge remove mysql* sudo apt-get autoremove mysql* End 清理残留文件 dpkg -l |grep ^rc|awk ’....