首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏dino.c的专栏

    了解模板化控件(10):原则技巧

    原则 推荐以符合以下原则的方式编写模板化控件: 选择合适的父类:选择合适的父类可以节省大量的工作,从UWP自带的控件中选择父类是最安全的做法,通常的选择是Control、ContentControl、ItemsControl 2. 命名模式 一个控件是否好用,很大一部分取决于名称。好的命名能让使用者用起来更得心应手,坏的命名只会让代码更混淆。下面总结了UWP控件命名的一般模式: 根据控件实际功能命名,譬如Button。 小技巧 对于复杂的控件或控件库项目,以下技巧可能对你有帮助。 3.1 partial class 在编写模板化控件时,依赖属性最大的缺点会暴露无遗:它太复杂了。

    1.3K30发布于 2019-01-18
  • YashanDB索引设计原则优化实战技巧

    本文围绕YashanDB数据库索引的设计原则及优化实战,深入分析索引工作原理、存储结构及调优策略,旨在帮助用户充分发挥索引的性能优势,提升系统整体性能。 索引设计原则1. 合理选择索引列索引类型索引应建立在业务查询频繁且选择性较高的列上,特别是作为过滤条件或连接条件的字段。如外键列建议创建索引以减少锁冲突。 2. 充分利用索引的组织特性YashanDB的BTree索引按照键值有序存储,实现快速定位和范围扫描。设计索引时应考虑索引列的顺序,确保查询条件尽量使用索引的最左前缀列以最大化利用索引效率。 索引优化实战技巧1. 统计信息维护优化器支撑统计信息对优化器生成合理执行计划至关重要。YashanDB支持多种统计信息收集方式,包括动态采样、并行统计和手动触发统计信息刷新。 2. 利用索引扫描类型根据信息类型和查询需求选择合适的索引扫描:索引唯一扫描适用于唯一键等精确匹配,索引范围扫描处理区间查询,全索引扫描和索引快速全扫描适用于遍历索引列或聚合函数。

    23910编辑于 2025-09-05
  • 来自专栏开源技术小栈

    最佳PHP代码审查关键原则实践技巧

    核心原则 1. 功能检查:代码是否完成了它的工作? 代码审查最重要的方面是确保代码实现了其预定目的。重点关注代码逻辑,从接收输入到产生输出的执行流程。 2. 代码功能:是否按设计工作? 在一个可靠的代码审查的核心,我们需要回答一个基本的问题:这些代码做了它应该做的事情吗?开始直接将代码项目的需求或规范进行比较。您是否已实现所有必要的功能? PSR等社区标准最大限度地减少了新加入项目的开发人员的学习曲线,并提高了不同开发工具的兼容性。 在代码审查期间,仔细评估变量和函数命名。 它们清楚地将SQL结构用户提供的数据分开,允许数据库安全地处理数据并消除SQL注入尝试。删除危险字符(例如,<script> 标签以防止XSS)并强制执行规则以确保输入符合你的期望。 使用数据库集成的分析工具(例如,MySQL的慢速查询日志)或Blackfire/New Relic等扩展来识别最有效的优化。

    62210编辑于 2024-05-11
  • YashanDB数据库设计的核心原则技巧

    尤其是在涉及到海量数据处理时,设计不合理的数据库无疑会导致查询效率低下系统崩溃等问题。因此,深入理解数据库设计的核心原则技巧是每个从业者必须具备的技能。核心设计原则1. 使用规范化原则,开发者可以确保数据的完整性和连接效率。2. 事务管理ACID特性事务管理是保证数据库一致性的关键因素。 数据分区分布式存储在处理大规模数据时,数据分区分布式存储是不可或缺的技术。YashanDB支持表数据的分区,可以根据分区键将数据分散到不同存储空间,实现负载均衡、提高查询性能。 分库分表设计是保证系统高可用、高并发的重要技巧,合理规划分布方案能够有效利用系统的存储和计算能力。5. 备份和恢复策略数据备份恢复是确保数据安全的必要手段。 通过应用上述设计原则技巧,可以极大地提升YashanDB的应用价值运行效率。

    15110编辑于 2025-10-25
  • 来自专栏AI算法札记

    塑胶产品设计的基本技巧原则

    本文从涉及产品设计过程中的原料选择、加工过程选择、强度考虑、模具设计等方面,介绍了塑胶产品设计的基本技巧原则2.原材料比较 与其他传统原材料相比,设计塑料原材料零件时需特别注意。 塑料的特性可在很大的范围内变化多端。通过添加填料、增强材料和改性剂,其性质会产生很大的转化。 有时在相同的操作条件下,塑料会呈现出金属完全不同的表现。因此,对浇铸金属经济有效的功能设计,如果仓促地用於于塑料,将会很容易失败。

    75560编辑于 2022-08-02
  • 来自专栏架构之家

    代码重构的原则技巧

    要写出高质量代码,我们就需要掌握一些更加细化、更加能落地的编程方法论,这就包含面向对象设计思想、设计原则、设计模式、编码规范、重构技巧等。 单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。 分离对象的数据结构行为 备忘录 在不违背封装原则的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后恢复对象为先前的状态 用于对象的备份恢复 命令 将不同的请求封装成对应的命令对象 listen、build/publish、encode/decode、submit/commit、push/pull、enter/exit、expand/collapse、encode/decode 重构技巧 空引用的问题在Java中无法避免,但可以通过代码编程技巧(引入空对象)来改善这一问题。

    1.1K30编辑于 2022-07-12
  • 来自专栏Coco的专栏

    Web 动画原则技巧浅析

    在 Web 动画方面,有一套非常经典的原则 -- Twelve basic principles of animation,也就是关于动画的 12 个基本原则(也称之为迪士尼动画原则),网上对它的解读延伸的文章也非常之多 类似的,看看这个购物车动画,运用了非常多的小技巧,其中之一就是,车在向前冲之前会后退一点点进行一个蓄力动作,整个动画的感觉明显就不一样,它让动画看起来更加的自然: ? Web 动画的一些常见误区 当然,上述的一些技巧源自于迪士尼动画原则,我们可以将其中的一些思想贯穿于我们的 Web 动画的设计之中。 主要有下面几点: 增强动画页面元素之间的关联性 不要为了动画而动画,要有目的性 动画不要过于缓慢,否则会阻碍交互 增强动画页面元素之间的关联性 这个是一个常见的问题,经常会看到一些动画主体之间没有关联性 在我们的交互过程中,适当的增加过渡动画,能够很好的让用户感知到页面的变化。类似的还有一些滚动动画。丝滑的滚动切换比突兀的内容明显是更好的体验。

    1.1K30发布于 2021-06-29
  • 来自专栏sickworm

    《敏捷软件开发:原则、模式实践》笔记(2

    第六章 一次编程实践 原文保龄球规则:(文末) https://www.twblogs.net/a/5b957acb2b717750bda47bd5/zh-cn/ 原文需求: 记录一届保龄球联赛的所有比赛 uint8 round9_0, uint8 round9_1, uint8 round10_0, uint8 round10_1, uint8 round10_2, } uint8 round9_0,    uint8 round9_1,    uint8 round10_0,    uint8 round10_1,    uint8 round10_2,} 不存储最终该轮得分 这符合尽量简单的原则,依照他们的思路,确实也不需要这个。我现在觉得我这个 scores 数组也非常累赘。 文中先考虑一般情况,再考虑特殊情况,这也是正确的。 是否允许多投 1 或 2 次取决于输入(裁判)。 文中提到,大意:增加各种类来提高软件通用性不等于易于维护(需求变更),易于理解才时易于维护的。

    41710发布于 2019-12-23
  • 来自专栏开发笔记

    Chapter 2 :重构的原则

    2,为什么重构? 为了后续的代码维护和修改,易读是重构的核心价值。 难顶) 5,重构性能优化 重构:使代码更易读 性能优化:使代码运行速度更快 先写出可调优的软件(重构),然后对其调优达到足够的速度(性能优化)。

    78110发布于 2020-01-22
  • 来自专栏java学习java

    索引的创建设计原则2)(适合创建索引情况 )

    索引的设计原则 数据准备 第1步:创建数据库、创建表 CREATE DATABASE atguigudb1; USE atguigudb1; #1.创建学生表和课程表 CREATE TABLE ` VARCHAR(40) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 第22. 频繁作为 WHERE 查询条件的字段 某个字段在SELECT语句的 WHERE 条件中经常被使用到,那么就需要给这个字段创建索引了。 先看一下字段在全部数据中的选择度: select count(distinct address) / count(*) from shop; 通过不同长度去计算,全表的选择性对比:   公式: count 同时,由于"最左前缀原则",可以增加联合索引的使用率。 11. 在多个字段都要创建索引的情况下,联合索引优于单值索引

    68641编辑于 2022-11-15
  • 来自专栏国产程序员

    面向对象的7种设计原则(2)-接口隔离原则

    或许有的人认为接口隔离原则和单一职责原则很像,但两个原则还是存在着明显的区别。单一职责原则是在业务逻辑上的划分,注重的是职责。接口隔离原则是基于接口设计考虑。 例如一个接口的职责包含10个方法,这10个方法都放在同一接口中,并且提供给多个模块调用,但不同模块需要依赖的方法是不一样的,这时模块为了实现自己的功能就不得不实现一些对其没有意义的方法,这样的设计是不符合接口隔离原则的 接口隔离原则要求"尽量使用多个专门的接口"专门提供给不同的模块。 解决 将臃肿的接口I拆分为独立的几个接口,类A和类C分别他们需要的接口建立依赖关系。 ?

    96410发布于 2020-07-13
  • 来自专栏huofo's blog

    设计模式(07)——设计原则2

    KISS原则 Keep It Simple and Stupid 这个原则听起来比较简单,重点是理解什么样的代码是简单的,代码行数少就是简单的代码吗??? 因此如果没办法,在特定场景下,只能采用该算法的实现,那么使用这种复杂逻辑就不是违反 KISS 原则了,因为没办法。 但该规则跟 KISS 原则一样,听起来可能比较简单,但是在实际使用中,却要注重的一个原则。 因为在该原则中,有一个很关键的点,什么样的代码是重复的代码,只是简单的代码一样就是违反该原则了吗? 迪米特原则 定义 迪米特原则是用来指导设计高内聚、低耦合代码的原则,因此我们先看一下什么是高内聚、低耦合。 看到想要完成的目标,现在再来看一下什么是迪米特原则。 其概念是:每个类或模块只需要了解他关系密切即紧密关联的类或模块。再换句话说: 不该有依赖关系的不要有依赖; 有依赖关系,只依赖必要的接口。

    41620编辑于 2022-03-17
  • 来自专栏小樱的经验随笔

    设计模式六大原则2):里氏替换原则

            肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。 定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 定义2:所有引用基类的地方必须能透明地使用其子类的对象。 问题由来:有一功能P1,由类A完成。现需要将功能P1进行扩展,扩展后的功能为P,其中P由原有功能P1新功能P2组成。 新功能P由类A的子类B来完成,则子类B在完成新功能P2的同时,有可能会导致原有功能P1发生故障。 解决方案:当使用继承时,遵循里氏替换原则。 看上去很不可思议,因为我们会发现在自己编程中常常会违反里氏替换原则,程序照样跑的好好的。所以大家都会产生这样的疑问,假如我非要不遵循里氏替换原则会有什么后果?        

    63680发布于 2018-04-08
  • 来自专栏产品优化

    JavaScript-设计模式·设计原则和编程技巧

    设计原则和编程技巧 本篇是《JavaScript 设计模式开发实践》第三部分读书笔记,主要讲解面向对象的设计原则及其在设计模式中的体现,还介绍了一些常见的面向对象编程技巧和日常开发中的代码重构。 设计原则通常指的是单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、合成复用原则和最少知识原则。 单一职责原则 设计模式中的 SRP 原则 单一职责原则(SRP)的职责被定义为“引起变化的原因”。如果我们有两个动机去改写一个方法,那么这个方法就具有两个职责。 利用对象的多态性来让程序遵守开放-封闭原则,是一个常用的技巧。 利用多态的思想,把程序中不变的部分隔离出来,然后把可变的部分封装起来,这样一来程序就具有了可扩展性。 不管是具体的各种设计模式,还是更抽象的面向对象设计原则,比如单一职责原则、最少知识原则、依赖倒置原则等,都是为了让程序遵守开放-封闭原则而出现的。

    61930编辑于 2022-12-01
  • 来自专栏编程

    设计模式六大原则2):里氏替换原则

    SpringCloud实战视频下载 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。 定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 定义2:所有引用基类的地方必须能透明地使用其子类的对象。 问题由来:有一功能P1,由类A完成。现需要将功能P1进行扩展,扩展后的功能为P,其中P由原有功能P1新功能P2组成。 新功能P由类A的子类B来完成,则子类B在完成新功能P2的同时,有可能会导致原有功能P1发生故障。 解决方案:当使用继承时,遵循里氏替换原则。 里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义: 1、子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。 2、子类中可以增加自己特有的方法。

    70290发布于 2017-12-29
  • 来自专栏机器学习/数据可视化

    pandas技巧2

    总结下pandas使用的技巧 读取json数据并转成Python格式 计数功能实现 # 方法1 def get_counts(sequence): counts = {} # 将计数值保存在字典中 counts[x] += 1 # 存在则计数加1 else: counts[x] = 1 # 不存在则定为1 return counts # 方法2 from collections import defaultdict def get_counts2(sequence): counts = defaultdict(int) for x in

    40110发布于 2021-03-02
  • 来自专栏各类技术文章~

    设计原则设计模式

    编写高质量代码的方法概述:面向对象设计思想、设计原则、设计模式、编码规范、重构技巧。 多态也是很多设计模式、设计原则、编程技巧的代码实现基础。 接口隔离原则单一职责原则区别:单一职责原则针对的是模块、类、接口的设计。接口隔离原则相对于单一职责原则,一方面更侧重于接口的设计,另一方面它的思考角度也是不同的。 代码复用性: 减少代码耦合 满足单一职责原则 模块化 业务非业务逻辑分离 通用代码下沉 继承、多态、抽象、封装 应用模板等设计模式 迪米特法则(LOD) 高内聚,松耦合:“高内聚、松耦合”是一个非常重要的设计思想 编码技巧 将复杂的逻辑提炼拆分成函数和类。 通过拆分成多个函数或将参数封装为对象的方式,来处理参数过多的情况。 函数中不要使用参数来做代码执行逻辑的控制。 函数设计要职责单一。

    1.1K40发布于 2021-11-02
  • 来自专栏云原生实验室

    Kubernetes 设计开发原则

    在这篇文章中,我将通过揭示其底层的设计原则,帮助您更深入地了解 Kubernetes。 1. 而在声明式 API 中,你可以声明期望的状态,系统将不断地调整实际状态,直到期望状态保持一致。你可以把这两者类比成手动驾驶自动驾驶。 2. 内部不存在隐藏的 API 如果你了解 Kubernetes 各个组件的工作原理,就能体会到 Kubernetes 的第二个原则:控制平面是透明的,因为它的内部不存在隐藏的 API。 这意味着 Kubernetes 各个组件之间相互交互使用的 API 和客户端 Kubernetes 交互 使用的 API 相同。 Kubernetes提供了一个功能强大的 volume 插件系统,可以将许多不同类型的持久存储系统 Kubernetes 工作负载一起使用。

    1.2K20发布于 2019-08-29
  • 来自专栏芋道源码1024

    谈谈架构:设计原则

    来源:http://t.cn/EZMtRwz

    49911发布于 2019-10-29
  • 来自专栏一个小程序员的成长笔记

    网页结构表现原则

    网页的结构表现原则总的来说为: 先按结构和语义编写代码 然后进行CSS样式设置 减少HTMLCSS契合度(精简页面结构) 我们可以通过一个微博用户发言信息列表的制作案例来分析该原则。 DOCTYPE html> 2 <html lang="zh-cn"> 3 <head> 4 <meta http-equiv="content-type" content="text/html DOCTYPE html> <em>2</em> <html lang="zh-cn"> 3 <head> 4 <meta http-equiv="content-type" content="text/html 9 span{color: #ccc;float: right;font-size: 12px;} 10 p{overflow: hidden;} 11 12 #demo<em>2</em> img{float: left;margin-left: 40px;} 13 #demo<em>2</em> .right{width: 440px; padding: 20px; margin-left: 160px

    80070发布于 2018-03-07
领券