Giter VIP home page Giter VIP logo

antiknot.github.io's People

Contributors

antiknot avatar

Watchers

 avatar  avatar

antiknot.github.io's Issues

A-Philosophy-of-Software-Design

设计原则
一切围绕降低复杂度

  • 复杂度逐渐增加,防微杜渐
  • 尽可能规划好能提前设计的所有部分 (从架构/组件/服务/流转/决策封装/层级结构/安全 etc. )
  • 作出的付出都是对未来的投资 会得到回报
  • 模块应该深,更缜密的决策,更简单的接口
  • 越通用,越底层的模块 接口应该越简单
  • 通用和专用代码分开
  • 不同层次不同的抽象
  • 写注释

危险标志

  • 浅模块 (没实现什么功能的方法,暴露大量的配置和很多细节接口)
  • 信息泄漏 模块中的部分会出现在其他的模块里
  • 时间分解 以人类对事件的顺序看法来划分模块
  • Pass-Through Method 一个函数call另一个函数但这个函数本身几乎啥也没做
  • 重复代码
  • 通用专用代码混用
  • 联合方法 需要过多的知识去了解这部分代码
  • 给很简单的代码写注释
  • 注释描绘代码细节 但用户不需要知道
  • 奇怪的变量名
  • 写的很难理解的代码 必须通过注释来解释

autocomplete

自动补全 前缀索引

Auto Complete with Redis
http://oldblog.antirez.com/post/autocomplete-with-redis.html

Two ways of using Redis to build a NoSQL autocomplete search index
http://patshaughnessy.net/2011/11/29/two-ways-of-using-redis-to-build-a-nosql-autocomplete-search-index

Radix Tree介绍与httprouter源码笔记
https://xixiliguo.github.io/post/radix-tree/

看图轻松理解数据结构与算法:Radix 树
https://toutiao.io/posts/o9anj0/preview

图解Redis中的Radix树
https://cloud.tencent.com/developer/article/1597128

Full Text Search with MongoDB, MySQL and SQLite – Part 1
https://blog.zedfox.us/full-text-search-mongodb-mysql-sqlite-part-1/
Full Text Search with MongoDB, MySQL and SQLite – Part 2
https://blog.zedfox.us/full-text-search-mongodb-mysql-sqlite-part-2/

python 实现trieTree
https://stackoverflow.com/questions/11015320/how-to-create-a-trie-in-python

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.