在刚开始接触架构设计的时候,对于这个知识点我觉得很奇怪。因为架构设计看上去是一个很复杂的话题,然而他是属于设计的一部分。如果你懂得什么是 美、什么是丑,那么我想你也是懂得设计的。而设计是一件很有意思的事——刚开始写字时,我们被要求去临摹别人的字体,到了一定的时候,我们就可以真正的去 设计。 自我总结 总结在某种意义上相当于自己对自己的反馈: Output is Input 当我们向自己输入更多反馈
模型 这些模型基本上代表了应用程序的数据库设计。我们在本节中要做的是创建 Django 所表示的类,这些类就是在上一节中建模的类:Board,Topic和Post。User 模型被命名为内置应用叫 auth,它以命名空间 django.contrib.auth 的形式出现在 INSTALLED_APPS 配置中。 我们要做的工作都在 boards/models.py 文件中。以下是我们在Djang
前言 欢迎来到 Django 教程的第二节,在第一节中,我们安装了项目所需要的一切,希望你安装的是 Python3.6,并且在虚拟环境中运行 Django1.11,这节课我们继续在这个项目上编写代码。 咱们先讨论一些项目的背景知识,然后再学习 Django 的基础,包括:模型(models),管理后台(admin),视图(views),模板(templates),和路由(URLs) 动手吧! 论坛
语言处理程序 汇编程序 地址寄存器AR、数据寄存器DR、指令寄存器IR对汇编语言透明的不可见,程序计数器PC可见 算术指令 带符号数左移*2或右移/2 SAL算数左移:把目的操作数的低位向高位移,空出低位补0 SAR算术右移:把目的操作数的高位向低位移,空出高位用最高位(符号位)填补 逻辑指令 用于无符号数*2或/2 SHL逻辑左移:移位后空出位补0 SHR逻辑右移:移位后空出位补0 循环移位指令
面试的时候,设计模式会经常被问到。其实我们在写代码中或多或少会用到一些模式,面试官问你设计模式的问题,更多是看你有没有总结过。如果一直都是在那垒代码,你当然会认为这是个很难的问题。所以我们需要总结一下设计模式。 1. SINGLETON 单例模式 单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。 俺有6
C语言设计模式 关于软件设计方面的书很多,比如《重构》,比如《设计模式》。至于软件开发方式,那就更多了,什么极限编程、精益方法、敏捷方法。随着时间的推移,很多的方法又会被重新提出来。 其实,就我个人看来,不管什么方法都离不开人。一个人写不出二叉树,你怎么让他写?敏捷吗?你写一行,我写一行。还是迭代?写三行,删掉两行,再写三行。项目的成功是偶然的,但是项目的失败却有很多原因,管理混乱、需求混乱、设计
第20章 设计模式 C语言设计模式 单例模式 原型模式 组合模式 模板模式 工厂模式 抽象工厂模式 责任链模式 迭代器模式 外观模式 代理模式 享元模式 装饰模式 适配器模式 策略模式 中介者模式 建造者模式 桥接模式 观察者模式 备忘录模式 解析器模式 命令模式 状态模式 访问者模式
Apple Watch上的通知可促使用户与本地或者远程通知进行快速、轻量级的交互。这些交互主要发生在两个阶段,分别由Short-Look和Long-Look界面管理。当本地或者远程通知首次到达时展示Short-Look界面,该界面为用户展示了深思熟虑的最小化信息-保护一定程度的隐私。如果用户压低手腕,Short-Look会消失。如果用户手腕抬高或者点击Short-Look界面,则会展示Long-L
【实践题】 设计一个微信公众号的阅读服务 题目描述 用户订阅公众号之后,可以在自己的文章列表看到所订阅公众号发表的文章,文章列表按时间倒序排列。该产品的日活用户为 1 亿,已有 100w 个公众号,每个公众号每天平均生产1篇文章。用户可以订阅任意数量公众号。整个系统如何设计,需要考虑数据存储、接口设计等问题。 【算法题】 基本的二分查找 如果有重复元素找最开始的下标 找第一个大于等于的元素下标
【Java基础】 项目介绍 final字段有什么作用 String属于基础数据类型吗? 基础类型都有哪些 普通类和抽象类的区别,抽象类和接口的区别 抽象类可以被final修饰吗,为什么? 线程和进程的区别 Java中是如何实现线程的? 继承Thread类和实现Runnable接口有什么区别? Thread类中run方法和start方法有什么区别 线程安全有什么相关的操作? 常用哪些数据结构 Arr
主要内容:1.接口参数校验,2.注意接口的兼容性,3.充分考虑接口的可扩展性,4.接口考虑是否需要防重处理,5.重点接口考虑线程池隔离,6.调用第三方接口要考虑异常和超时处理,7.接口实现考虑熔断和降级,8.接口的功能定义要具备单一性,9.日志打印好1.接口参数校验 入参是否允许为空,入参长度是否符合你的预期长度。 比如你的数据库表字段设置为varchar(16),对方传了一个32位的字符串过来,如果你不校验参数,插入数据库直接异常了。 出参也是,比如你定义的接口报文,参数是不为空的,但是你的接
主要内容:1.GRASP:通用职责分配软件模式(共9种),2.SOLID:设计原则(共5种),3.GOF:设计模式(共23种),4.其他必要设计原则GRASP: 通用职责分配软件模式(共9种) SOLID:设计原则(共5种) GOF:设计模式(共23种) 其他必要设计原则 1.GRASP:通用职责分配软件模式(共9种) 告诉我们怎样设计问题空间中的类与分配它们的行为职责,以及明确类之间的相互关系等 Infomation Expert(信息专家) Creator(创造者) Low coupling
主要内容:1.迪米特法则,2.高内聚,3.松耦合,4.代码,5.总结1.迪米特法则 迪米特法则的英文翻译是:Law of Demeter,缩写是 LOD。 单从这个名字上来看,我们完全猜不出这个原则讲的是什么。不过,它还有另外一个更加达意的名字,叫作最小知识原则,英文翻译为:The Least Knowledge Principle。 它不像 SOLID、KISS、DRY 原则那样,人尽皆知,但它却非常实用。利用这个原则,能够帮我们实现代码的“高内聚、松耦合” “
主要内容:1.Kiss原则,2.Kiss原则意义,3.Kiss原则落地1.Kiss原则 Keep It Simple and Stupid Keep It Short and Simple Keep It Simple and Straightforward. 2.Kiss原则意义 KISS 原则算是一个万金油类型的设计原则,可以应用在很多场景中。它不仅经常用来指导软件开发,还经常用来指导更加广泛的系统设计、产品设计等,比如,冰箱、建筑、iPhone 手机的设计等等
主要内容:1.DRY 原则,2.实现逻辑重复,3.功能语义重复,4.代码执行重复,5.注释重复,6.数据重复,7.提高代码复用性1.DRY 原则 它的英文描述为:Don’t Repeat Yourself。中文直译为:不要重复自己。将它应用在编程中,可以理解为:不要写重复的代码。 很多人对这条原则存在的误解。实际上,重复的代码不一定违反 DRY 原则,而且。 DRY不是只代码重复,而是“知识”的重复,意思是指业务逻辑。例如由于沟通不足,两个程序员用两种不同的方法实现同样功能的校验。 2.实现逻辑