h2O

Results 100 issues of h2O

抽奖活动总结 ============ ### 场景 临近年底,产品提了一个「春运活动」的需求,主要是「抽奖活动」,用以实现用户导流. 活动主要分为三期抽奖,分别是:元旦,春运,新春. ### 问题 由于需求提出的时间为12月底,项目元旦前就要上了,只开发了短短3天就上线,导致后面有很多细节问题以及一些比较严重的 bug. 在这里整理下,用以记录. - 活动没有做后台,很多东西在代码写死(前端,后端),导致后期运营那边很多东西修改,都是需要修改代码重新上线,并且经常性更新 `SQL`. - 抽奖概率设计有问题,在第二期(春运)的时候,没有设置当期的时间段,导致(中奖概率过高)第二期开始的第一天,奖品几乎被抽完了,等运营那边反馈过来的时候已经晚了,几乎无法挽救. ### 总结 1. 当一个需求过来的时候,应合理评估,并且保持适当的开发时间,而不是仓促开发,仓促上线,这样是对自己的不负责,也是对自己代码的不尊重. 2. 当没有后台的时候,一些类似配置的东西不能在代码写死,而应该在配置文件里配置,根据环境(测试,预发布,生产)读取. 3. 当后期还需要修改活动信息什么的,必须要做后台来进行操作,项目上线之后不进行重复修改代码重复上线这个操作. 4. 上面所说的第二期的那个中奖问题,由于中奖概率那部分是另外一个同事写的,所以第二期来的时候,不知道要配置那个时间段,导致出现了严重的过失. 说明了自己对负责的项目没有一个全局的把控. 5. 由于中奖概率的过高,那天吸引来的用户是平时的5倍以上,这真的是不幸中的万幸(估计这是公司没有辞退我的原因 org)....

PHP

sqlite3 导出 csv 文件 ====================== ### 场景 把 `sqlite3` 一个表的数据导出为 `csv` 文件存储. ### 操作 ```bash $ sqlite3 xxx.db sqlite> .headers on sqlite> .mode csv sqlite> .output data.csv sqlite> select *...

sqlite3

ctags 处理 PHP trait ==================== #### 场景 使用 `ctags` 生成 `PHP` 的 `tags`,发现对 `trait` 关键字是没有进行处理的. ```bash $ ctags --languages=php -R . ``` #### 方案 使用 `--regex-php` 参数,生成 `trait` 关键字的 `tag`...

PHP

strtotime 函数 ============== ### 函数说明 `strtotime()` — 将任何字符串的日期时间描述解析为 Unix 时间戳 ```php int strtotime ( string $time [, int $now = time() ] ) ``` > 注意 $time 的日期与时间格式(见底部参考) ### 局限...

PHP

微信分享 - 苹果手机正常,安卓手机失效 ================================== ### 场景 一个微信页面,使用「苹果手机」打开,分享给朋友/朋友圈,页面可以正常分享. 使用「安卓手机」分享给朋友/朋友圈,分享失败. ### 原因 使用「微信开发者工具」查看 `js-sdk` 配置正常,`分享` 接口调用正常,但是「安卓手机」调用分享就是无法生效. 后来发现,问题出在**分享的链接**上. 「分享给朋友」的微信 `js-sdk` 接口代码如下 ```javascript wx.onMenuShareAppMessage({ title: '', // 分享标题 desc: '', // 分享描述 link: '',...

Wechat

sed ==== `sed` 是一个「流编辑器」,在 Unix(Linux) 用于修改文件. 无论你什么时候想自动修改文件,`sed` 都可以方便地实现. 大部分人都没有了解到 `sed` 的强大,只是简单地用来替换文本. 除了用 `sed` 来替换文本,你还可以做很多事情. 下面用一些示例来描述 `sed` 的功能. 默认将下面的文本作为输入 ``` >cat file.txt unix is great os. unix is opensource. unix is...

Shell

find 命令实用例子 ======================== ### 基础篇 首先,在主目录创建以下空文件,方便后面 `find` 命令例子演示. ``` # vim create_sample_files.sh touch MybashProgram.sh touch mycprogram.c touch MyCProgram.c touch Program.c mkdir backup cd backup touch MybashProgram.sh touch mycprogram.c touch MyCProgram.c...

Shell

Grep 命令的15个实用例子 ======================= 首先创建一个示例文件 `demo_file`,方便后面 `grep` 命令演示使用. ``` $ cat demo_file THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE. this line is the 1st lower case line...

Shell

test, [, [[ =========== ### 定义 #### test `test` 是 `shell` 的一个内置命令,主要用来检查文件类型和比较值. ```bash test -f "$filename" || printf '文件不存在或者不是普通文件: %s\n' "$filename" >&2 ``` #### [ ] ``[`` 是 `test` 的一个代名词(简写),用法同...

Shell

ssh 免密码登录失败 ================== ### 场景 本地有一个 `username1@Server:/path/to/repo.git` 的仓库,每次 `push` 代码的时候都要输入密码,想设置为免密 `push`. 由于仓库使用的是 `ssh`, 因此免密 `push` 其实就是:`ssh` 免密码登录. ### ssh 免密码登录 客户端使用 `ssh-keygen` 生成公钥和私钥 ``` $ ssh-keygen -t rsa ``` 生成两个文件:...

Linux
ssh