随笔分类 - 【02】软件设计
软件以及系统架构设计
摘要:前言什么是二维码什么是QR码创建QR码的步骤数据分析编码(1)选择纠错码级别(2)确定数据的最小版本(3)添加模式标识(4)添加字符数标识(5)进行编码(6)拆分比特串成8位一组,不足补0;生成纠错编码生成最终的数据结构将数据块放置二维码矩阵中(1)放置固定图案(2)放置数据位添加掩码添加格式和版本
阅读全文
摘要:前言初期中期非实时数据统计实时数据后期TOC 前言 如果想做好一款产品,数据统计一定是必不可少的功能,它为产品经理验证功能可行性提供数据支撑,为后期数据分析提供高纬度业务数据,同时产品经理会经常根据不同的业务场景,提出不同的统计需求。 不过大多数情况下,我们仅通过缓存、数据库,配合一些统计查询语句,就可以应付绝大多数的统计场景。这里结合我自身的经验,根据产品的不同阶段,分享一下数据统计的简单...
阅读全文
摘要:前言基于mysqlSELECT ORDER BY加索引加缓存借助redis实时排行榜实现原理为什么 Redis 要用跳表来实现有序集合,而不是红黑树?超过全国**%的用户参考TOC 前言 排行榜几乎已经成为互联网应用中的必备模块,特别是游戏领域,它是对某一相关同类事物的客观实力的反映,带有相互之间的比较性质,带有竞争意义。 对于平台来说,可以带来一定的权威性,提高平台影响力。 对于商家...
阅读全文
摘要:什么是签到功能?为什么要做签到功能?签到规则设计思路七天累计签到按月累计签到借助redis总结参考TOC 什么是签到功能? 和上班打卡一样,用户每天可以在应用内进行一次“签到”,用来表明用户今天已经登录且使用了该应用,同时签到后很能获取一定的奖励。 为什么要做签到功能? 培养用户使用习惯,签到功能设置的目的在于吸引用户每天去完成签到动作,培养用户使用习惯。 满足用户荣誉感,签到的奖励措施...
阅读全文
摘要:需求数据表设计推模式与拉模式核心逻辑TOC 需求 类似微信公众号通知中心,但这里主要讲的是对系统所有人发送系统通知,简单需求描述如下 1、有新通知时,通知图标右上角小红点提醒 2、通知列表页,通知状态分为已读和未读,未读的标题前面要有小红点提示。 数据表设计 很简单,没有中间表,是因为未读的通知id都放在了未读通知字段中,以英文逗号分割。 推模式与拉模式 一般获取消息的模式...
阅读全文
摘要:Provide an interface for creating families of related or dependent objects without specifying their concrete classes.为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体
阅读全文
摘要:App.config Define an interface for creating an object, but let subclasses decide which class to instantiate.Factory Method lets a class defer instanti
阅读全文
摘要:优点: 减少内存开支 减少性能开销 避免资源多重占用 拥有全局访问点 缺点: 一般没有接口,难以扩展。 测试不利,没有接口无法mock 使用场景: 整个项目需要一个共享访问点,共享数据 创建的对象需要消耗资源过多 需要定义大量的静态常量和方法(工具类) 最佳实践: 如果单例在内存长久不使用,则会被认
阅读全文
摘要:面向对象的最基本原则 Software entites like classes,modules and functions should be open for extension but cloased for modifications一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
阅读全文
摘要:using System; using System.Collections.Generic; using System.Text; namespace LawOfDemeter { //也叫Least Knowledge Principle ,LKP(最少知识原则) //Only talk to your immediate friends //一个类应该对自己需要耦...
阅读全文
摘要:using System; using System.Collections.Generic; using System.Text; namespace InterfaceSegregationPrinciple { //接口隔离原则(Interface Segregation Principle)ISP //Clients should not be forced to de...
阅读全文
摘要:关于抽象类和接口的区别,可以参考之前的文章~http://www.cnblogs.com/leestar54/p/4593173.html
阅读全文
摘要:using System; using System.Collections.Generic; using System.Text; namespace LiskovSubstitutionPrinciple { //里氏替换原则(Liskov Substitution Principle) LSP
阅读全文
摘要:using System; using System.Collections.Generic; using System.Text; namespace SingleResponsibilityPrinciple { //单一指责原则(Single Responsibility Principle) SRP //There should never be more than o...
阅读全文
浙公网安备 33010602011771号