从人性角度解决算法问题 作者: 灯小笼 时间: 2023-12-08 分类: 开发 1 条评论 技术可以解决大部分的问题,但是只是从技术层面上出发去考虑,往往具有较大的局限性,且容易出现吃力不讨好的局面。因为,技术最终是用来解决实际问题的,需求源自实际场景,目标也是实际场景,单纯去完成一个纯技术的动作,很容易指标不治本,缺少足够的健壮性和可扩展性。 - 阅读剩余部分 -
GORM从v1升级到v2的破坏性更新 作者: 灯小笼 时间: 2020-11-23 分类: 开发 评论 今年GORM发布了新的版本V2,但是从V1到V2发生了一些破坏性的更新。在官网看的话,大部分关于V2特性的介绍都是有中文版本的,唯独对于破坏性的更新没有予以翻译,本文是直接从官网翻译过来的,有不妥之处还请指正。 原文链接:https://gorm.io/zh_CN/docs/v2_release_note.html#%E7%A0%B4%E5%9D%8F%E6%80%A7%E5%8F%98%E6%9B%B4 - 阅读剩余部分 -
Flutter中使用AudioCache播放资源音频文件 作者: 灯小笼 时间: 2019-07-21 分类: 开发 评论 ## Audio Cache 原文地址:https://github.com/luanpotter/audioplayers/blob/master/doc/audio_cache.md 为了使用本地资源,你必须使用`AudioCache`类。 Flutter没有提供对资源播放音频的简单方法,而这个类则提供了相应的方法。实际上它会将资源复制到设备中的一个临时文件夹中,然后将其作为本地文件播放。 它跟踪复制出来的文件,以缓存的形式工作,你可以毫不延迟地重播它们。你也可以实现对文件的预加载。 每个实例都有自己独立的缓存,因此,如果想优化加载时间,可以创建一个单例。 - 阅读剩余部分 -
Flutter中如何使用Audioplayers播放音频 作者: 灯小笼 时间: 2019-07-21 分类: 开发 1 条评论 目前在flutter中,并没有官方提供的音频播放插件,因此,需要我们自己去寻找第三方的widget或者自己开发。在google的时候,如果搜索“flutter audio”,那么出来的第一条结果一般都是“[audioplayers | Flutter Package - Dart Pub](https://pub.dev/packages/audioplayers "audioplayers | Flutter Package - Dart Pub")”。本文主要是翻译该项目的说明文件,用来简化大家对它的理解。 原文地址:https://github.com/luanpotter/audioplayers/blob/master/README.md # AudioPlayers 一个可用来同时播放多个音频文件的Flutter插件,兼容Android和iOS。 - 阅读剩余部分 -
完全随机发红包的php算法实现 作者: 灯小笼 时间: 2018-10-18 分类: 开发 评论 题目:有金额M元,给N个人发红包,最低0.01元,完全随机,不设上限,全部金额都需发放出去。 思路:可以借鉴发牌的算法,将金额以最小发放单位0.01元换算,等价于`M*100`张牌。那么我们要做的是,从`M*100`张牌里边随机抽出`N-1`张牌,计算这`N-1`张牌中间隔出来的`N`个区间的差值即可。 - 阅读剩余部分 -
lombok注解后的代码不能生成完整javadoc? 作者: 灯小笼 时间: 2018-09-22 分类: 开发 评论 将[Lombok](https://www.projectlombok.org/)注解应用到一个项目中可以大大减少在IDE中生成或手工编写的样板代码行数。这样可以减少维护开销,减少bug,提高类的可读性。 在idea中要使用lombok是很简单的事情,只需要安装一个[lombok plugin](https://www.projectlombok.org/setup/intellij "lombok plugin"),然后在pom.xml加入对[lombok](https://www.projectlombok.org/setup/maven "lombok")的依赖即可。 与任何技术选择一样,使用Lombok既有积极的作用,也会有消极的影响。而最典型的不好的一面就是,将源代码生成javadoc的时候,因为源码里边使用了lombok,只声明了private的属性,而未编写setter/setter方法等,最后生成的文档当然就不会包含这些属性的getter和setter方法。先通过一个简单的例子复现一下这个场景。 - 阅读剩余部分 -
jyaml解析float类型的问题 作者: 灯小笼 时间: 2018-09-13 分类: 开发 评论 今天在使用[jyaml](http://jyaml.sourceforge.net/)解析一个配置类的时候,发现一个问题: * 整型和字符串的解析都没有问题 * float类型的解析则总是返回`0.0F`,无论是对值用引号包括,或者在后面加上大写的F,都是不行的。 - 阅读剩余部分 -
composer常用高级技巧 作者: 灯小笼 时间: 2018-08-29 分类: 开发 评论 [Composer](https://getcomposer.org/)作为一个常用的php包管理工具,已经成为PHP项目包管理事实上的标准了。大部分开源的php项目,都可以从里边找到composer.json的身影。基本的知识本文就不介绍了,而是挑选一些日常开发中遇到的比较棘手又常见的几个问题予以记录。如:使用镜像、使用私库、如何使用非http项目、如何修改版本号等等。 ## 使用镜像 使用composer的第一要素就是配置中国镜像,否则,你将一直抱怨这个产品根本没法使用,你对`composer`的影响就会一直处于停摆状态。 一般我们使用作为最经典的配置了。 ```bash composer config -g repo.packagist composer https://packagist.phpcomposer.com ``` - 阅读剩余部分 -
phpstorm中使用phpunit进行单元测试 作者: 灯小笼 时间: 2018-07-23 分类: 开发 评论 PHPUnit 是一个用PHP编程语言开发的开源软件,是一个单元测试框架。PHPUnit由Sebastian Bergmann创建,源于Kent Beck的SUnit,是xUnit家族的框架之一。 单元测试是对单独的代码对象进行测试的过程,比如对函数、类、方法进行测试。单元测试可以使用任意一段已经写好的测试代码,也可以使用一些已经存在的测试框架,比如JUnit、PHPUnit或者Cantata++,单元测试框架提供了一系列共同、有用的功能来帮助人们编写自动化的检测单元,例如检查一个实际的值是否符合我们期望的值的断言。单元测试框架经常会包含每个测试的报告,以及给出你已经覆盖到的代码覆盖率。 总之一句话,使用 phpunit 进行自动测试,会使你的代码更健壮,减少后期维护的成本,也是一种比较标准的规范,现如今流行的PHP框架都带了单元测试,如Laraval,Symfony,Yii2等,单元测试已经成了标配。 另外,单元测试用例是通过命令操控测试脚本的,而不是通过浏览器访问URL的。 这里以phpstorm为例,说明如何利用phpunit做单元测试。 - 阅读剩余部分 -
Git HTTP Server的实现流程及php实现 作者: 灯小笼 时间: 2017-06-21 分类: 开发 2 条评论 团队内部的版本工具,从svn换到git之后,先用了一小段时间基于ssh的git服务以后,果断换到了高大上的gitlab。后期,随着git项目的不断扩大,到gitlab的不堪重负,以及升级的各种阵痛。再到后来团队对于代码规划化和文档规范的需求,我们基于php实现了一套完全自主的Git HTTP Server。 - 阅读剩余部分 -