九路 九路
4年前
理解go语言包导入路径的含义
Go语言是使用包(package)作为基本单元来组织源码的,可以说一个Go程序就是由一些包链接在一起构建而成的。虽然与Java、Python等语言相比这算不上什么创新,但与祖辈C语言的头文件包含机制相比则是“先进”了许多。编译速度快是这种”先进性“的一个突出表现,即便是每次编译都是从零开始。Go语言的这种以包为基本构建单元的构建模型使得依赖分
爱写码 爱写码
3年前
t-io的生态结构,可以大致看到t-io的性能
一张图描述tio生态结构1.tioutilstioutils是笔者在项目开发中积累的部分工具类里面有少部分代码是在开源许可范围内摘自第三方开源项目代码的,还有部分代码是其它开源作者提供的,譬如hutool的作者路神就提供了许多类,这么做,仅仅是因为广大用户强力要求tio减少第三方依赖当然笔者更愿意使第三方工具类,譬如hutool在tioutils中
待兔 待兔
4年前
聊聊软件设计原则
软件设计知识是一名软件开发人员必须要懂的知识,最近几天今天看了bob大叔的《敏捷软件开发》一书和软件设计相关的一些blog和资料,自己做了一个学习笔记设计目标正确性、健壮性、灵活性、可重用性、高效性降低复杂性所谓复杂性,就是任何使得软件难于理解和修改的因素。复杂性的来源主要有两个:代码的含义模糊和互相依赖
Wesley13 Wesley13
3年前
GOF二十三种设计模式之工厂模式
先说一下面向对象设计的基本原则:OCP:开放原则,一个软件的实体应当对扩展开放,对修改关闭。DIP:依赖倒转原则,针对接口编程,不要针对实现编程。LoD:迪米特法则,只与直接相关的类通信,避免和陌生人通信。在平常的编程中,我们都是直接new一个对象,而在工厂模式中,将对象的创建统一进行管理和控制,将调用者与实现类进行解耦。下边是一个简单的
Wesley13 Wesley13
3年前
JS实现在线生成带logo的二维码
      jquery.qrcode.js是一个能够在客户端生成矩阵二维码QRCode的jquery插件,使用它可以很方便的在页面上生成二维条码。此插件是能够独立使用的,体积也比较小,使用gzip压缩后才不到4kb。因为它是直接在客户端生成的条码,所以不会有图片下载的过程,能够实现快速生成。它是基于一个多语言的类库封装的,也不依赖于其他额外的服务。
Stella981 Stella981
3年前
Serverless架构:有明云PaaS
  今天大多数公司无论是在开发应用程序的时候还是将其部署到服务器的时候,无论是选择公有云还是私有云,都需要提前估算究竟需要多少台服务器,都需要部署运行应用程序和依赖的各种各样的软件到服务器上。如果我们不想在这些与业务无关的繁琐的细节上耗费精力,是否有一种简单的架构能够满足我们的需求呢?答案是Serverless(无服务器)架构。  Serverl
Wesley13 Wesley13
3年前
APP界面常用的五种颜色搭配
众所周知,每一种颜色带给用户的视觉感受也是不同的。现在人们对手机的依赖程度,就能看到手机中APP的发展前景,那今天就跟大家聊聊如何通过颜色搭配的不同来进行移动端APP界面的布局和排版设计。移动端UI界面中通常是需要选取主色,标准色,点晴色。它们各自代表的含义:  主色虽然是决定了画面风格的色彩但是往往不会被大面积的使用。通常在导航栏/部分按钮/i
Stella981 Stella981
3年前
MongoDB的安全写入GetLastError
这次聊聊业务中经常出现的重试现象,可能很多运维都被开发莫名其妙的艾特然后让查一查业务中出现失败的情况,很不巧刚接手MongoDB的运维就碰到了一个案例。前段时间与业务开发讨论过某业务服务的超时重试问题,这项业务依赖的数据库是一直很热门的MongoDB数据库,这里采用了复制集的模式架构,且底层硬件采用KVM。业务开发反映数据库实例慢,最近超时的业务较少
Stella981 Stella981
3年前
CoralCache:一个提高微服务可用性的中间件
摘要:当数据库出问题时能降级从本地缓存的数据中查询数据,CoralCache就是这样一个提高微服务可用性的中间件。背景有些场景下,微服务依赖数据库中一些配置项或者数量很少的数据,但当数据库本身有问题时候,即使数据量很少,这个服务是不能正常工作;因此需要考虑一种能支持全量极少变更的全局数据的场景,当数据库出问题时能降级从本
Stella981 Stella981
3年前
JavaScript启动性能瓶颈分析与解决方案
在Web开发中,随着需求的增加与代码库的扩张,我们最终发布的Web页面也逐渐膨胀。不过这种膨胀远不止意味着占据更多的传输带宽,其还意味着用户浏览网页时可能更差劲的性能体验。浏览器在下载完某个页面依赖的脚本之后,其还需要经过语法分析、解释与运行这些步骤。而本文则会深入分析浏览器对于JavaScript的这些处理流程,挖掘出那些影响你应用启动时间的罪