精华内容
下载资源
问答
  • 智慧城市的概念及内涵 智慧城市定义 智慧城市是以 智慧技术智慧产业智慧人文智慧服务智慧管理 智慧生活等为重要内容的城市发展的新模式是信息化向更高阶段发展的表现 具有更强的集中智慧发现问题解决问题的能力因而...
  • Atitit 快速开发的推荐技术标准化 规范原则   1. 如何评估什么样的技术适合快速开发?? 1 1.1. (重要)判断语言层次。。层次越高开发效率越高 4gl dsl> 3.5gl >3gl 1 1.2. 免编译(重要) 2 1.3. 热部署...

    Atitit 快速开发的推荐技术标准化 规范 大原则

     

    1. 如何评估什么样的技术适合快速开发?? 1

    1.1. (重要)判断语言层次。。层次越高开发效率越高  4gl  dsl> 3.5gl >3gl 1

    1.2. 免编译(重要) 2

    1.3. 热部署(重要) 2

    1.4. (重要)简化架构与层次。。工程架构与学院派理论架构层次相差很大往往。。 2

    1.5. 概念少 2

    1.6. 上手难度要低。容易理解 2

    1.7. 零配置或注解 2

    2. 非技术方面 优先级 备用计划 2

    2.1. 朝四暮三 vs 朝三暮四   二八原则 2

    2.2. 遇到麻烦的节点,先略过 3

    2.3. 大流程联动的优先处理 保证核心流程的正常使用 3

    2.4. 重要的Crud优先 3

    2.5. 报表方面的放后 报表比较复杂,费时间。 3

    2.6. 列表编辑字段也可分优先级,先解决重要字段的显示 3

     

     

    1. 如何评估什么样的技术适合快速开发??

    1.1. (重要)判断语言层次。。层次越高开发效率越高  4gl  dsl> 3.5gl >3gl

    层次越高,效率越高。

    4gl 包括dsl h5 sql 正则表达式  css ,html. Shell脚本  bat脚本。。

     

    3.5gl  一般是脚本语言  js php等。

    3gl就是编译型语言了  

     

    1.2. 免编译(重要)

    1.3. 热部署(重要)

    1.4. (重要)简化架构与层次。。工程架构与学院派理论架构层次相差很大往往。。

     

    比如iso网络最清晰划分是7层。。实际我们使用的http tcp只用4层。

     

    1.5. 概念少

     

    1.6. 上手难度要低。容易理解

    Mybatis就比hibernate要容易上手

     

     

    1.7. 零配置或注解

     

    2. 非技术方面 优先级 备用计划

    2.1.  朝四暮三 vs 朝三暮四   二八原则

    优先处理简单又重要的功能,这样只用小部分时间,就可以处理大部分功能。。剩余的20%细节将要耗费大部分时间。。但这样的进度就大大加快了。。

    虽然总体时间是一致的。但前期时间就大大加快了。

     

    2.2. 遇到麻烦的节点,先略过

    2.3. 大流程联动的优先处理 保证核心流程的正常使用

    2.4. 重要的Crud优先

    crud

    2.5. 报表方面的放后 报表比较复杂,费时间。

    2.6. 列表编辑字段也可分优先级,先解决重要字段的显示

     

     

    作者:: 绰号:老哇的爪子claw of Eagle 偶像破坏者Iconoclast image-smasher

    捕鸟王"Bird Catcher  kok  虔诚者Pious 宗教信仰捍卫者 Defender Of the Faith. 卡拉卡拉红斗篷 Caracalla red cloak 万兽之王

    简称:: Emir Attilax Akbar 埃米尔 阿提拉克斯 阿克巴

    全名::Emir Attilax Akbar bin Mahmud bin  attila bin Solomon bin adam Al Rapanui 埃米尔 阿提拉克斯 阿克巴 本 马哈茂德 本 阿提拉 本 所罗门 本亚当  阿尔 拉帕努伊

    常用名:艾提拉(艾龙),  EMAIL:1466519819@qq.com

     

     

    头衔:uke总部o2o负责人,全球网格化项目创始人,

    uke交友协会会长  uke捕猎协会会长 Emir Uke部落首席大酋长,

     

    uke宗教与文化融合事务部部长, uke宗教改革委员会副主席

    uke制度与重大会议委员会委员长,uke保安部首席大队长,uke制度检查委员会副会长,

     

    uke 首席cto   软件部门总监 技术部副总监  研发部门总监主管  产品部副经理 项目部副经理   uke科技研究院院长uke软件培训大师

     

    uke波利尼西亚区大区连锁负责人 汤加王国区域负责人 uke克尔格伦群岛区连锁负责人,莱恩群岛区连锁负责人,uke布维岛和南乔治亚和南桑威奇群岛大区连锁负责人

     Uke软件标准化协会理事长理事长 Uke 数据库与存储标准化协会副会长

     

    uke终身教育学校副校长   Uke医院 与医学院方面的创始人

     uec学院校长, uecip图像处理机器视觉专业系主任   uke文档检索专业系主任

    Uke图像处理与机器视觉学院首席院长

    Uke 户外运动协会理事长  度假村首席大村长   uke出版社编辑总编

     

    转载请注明来源:attilax的专栏  ?http://blog.csdn.net/attilax

    --Atiend  v8

     

    展开全文
  • 公差原则和相关要求是设计上根据功能要求确定几何公差与尺寸公差之间关系的原则和要求
  • GA 425.4-2003 指纹自动识别系统基础技术规范 第4部分 指纹自动识别系统产品代码编制原则
  • 以下是UI设计中应该注意和地方,也说不上是原则,是众多软件开发人员及UI设计人员总结的经验,我们应该学习: 一、应该做的 1.图标设计要遵循手机图标样式,不要简单用Web页面图标。 2.使用主题/样式, ...

    该文转自 http://www.jianshu.com/p/5cebc56784f6
    自己留着以备后用
    Java知识体系 Android知识体系
    Android项目流程

    Android开发者故事
    该流程不仅适用于Android项目开发,也部分适用于其他互联网和IT产品。

    史上最全APP前期、开发、后期工具:http://www.fdtx.org.cn/app.html
    一、产品前期

    1.市场调研:可委托第三方调研机构

    调研宝 http://www.diaoyanbao.com

    问卷星 https://www.sojump.com

    问卷网 http://www.wenjuan.net

    2.需求分析:产品经理的主要职责

    人人都是产品经理 http://www.woshipm.com 
    
    产品壹佰 http://www.chanpin100.com
    
    产品中国 http://www.pmtoo.com
    

    3.产品定位:公司领导层决策

    4.原型设计:产品经理的主要职责

    Axture中文网 https://www.axure.com.cn
    

    5.UI设计:UI设计师的主要职责

    UI设计规范请参考 http://www.tuyiyi.com/cc/
    

    6.交互设计:交互设计师的主要职责

    二、产品开发

    1.架构设计:系统架构师的主要职责

    2.项目研发:研发工程师的主要职责,可细分为APP、服务器、数据库等岗位

    掘金:https://gold.xitu.io
    
    DevStore:http://www.devstore.cn
    
    Android开发技术周报:http://www.androidweekly.cn
    

    (1)开发环境搭建:如租用云主机,安装Linux、MySQL、Tomcat、Android Studio等

    (2)数据库建表

    (3)服务器端编程

    (4)APP UI布局

    (5)功能模块开发

    (6)连接服务器和数据库

    (7)调用第三方接口

    3.内容填充:产品运营(有的公司叫网站编辑)的主要职责

    4.产品测试:测试工程师的主要职责

    三、产品后期

    1.产品发布:产品运营的主要职责

    酷传 http://www.kuchuan.com 一键上传到30多个应用商店
    
    百度开发者平台:http://app.baidu.com 百度手机助手、91助手、安卓市场
    
    360移动开放平台:http://dev.360.cn 360手机助手、360手机卫士、应用圈
    
    腾讯开放平台:http://open.qq.com 应用宝、QQ浏览器、手机管家
    
    阿里应用分发开放平台:http://open.uc.cn 豌豆荚、PP助手、UC、YunOS
    

    2.运营推广:产品运营的主要职责

    鸟哥笔记 http://www.niaogebiji.com
    
    史上最全站长工具:http://www.fdtx.org.cn/site.html
    
    史上最全自媒体平台 http://www.fdtx.org.cn/sns.html
    

    3.版本更新:研发工程师的主要职责

    4.内容更新:产品运营的主要职责

    5.产品销售:销售的主要职责

    销售与市场 http://www.cmmo.cn
    

    Android 7.1
    Android UI设计原则

       UI设计有时是一件非常耗时且枯燥的工作,但是,UI设计是Android开发必须要掌握、且要熟练掌握的一部分,也许当你熟练的时候你会发现其中的乐趣。
    
       以下是UI设计中应该注意和地方,也说不上是原则,是众多软件开发人员及UI设计人员总结的经验,我们应该学习:
    

    一、应该做的

    1.图标设计要遵循手机图标样式,不要简单用Web页面图标。

    2.使用主题/样式, 尺寸和颜色资源来减少多余的值

    3.正确处理屏幕方向变化

    4.使用适当的间距

    5.需要点击的元素要够大

    6.为高分辨率的屏幕创建资源

    7.整个软件风格统一、简洁

    8.和平面设计师合作

    二、不应该做的

    1.不要照搬其它平台上的UI设计,应该让用户感觉是在真正使用一个Android软件

    2.不要过度使用对话框,这对于用户来说是阻塞

    3.不要使用绝对定位的布局

    4.不要使用px单位 ,控件使用dp,文本应该使用sp

    5.不要使用太小的字体

    6.不要在页面有过多控件

    三、设计准则

    1.关注用户、注重用户体验

    2.显示正确的内容

    3.给予用户适当的回馈

    4.有章可循的行为模式、不要让用户猜怎么用

    5.容忍错误

    四、UI设计需要考虑的地方

    1.屏幕的物理尺寸

    2.屏幕的密度

    3.屏幕的方向

    4.主要的UI交互方式

    5.了解不同设备之间的相异之处

    6.了解屏幕尺寸和密度分类

    五、最重要的一点:对UI布局及控件要非常熟悉

    Android 7.0
    Android架构设计原则

    请参考 http://www.csdn.net/article/2015-08-20/2825506

    Android 6.0
    Android编码规范

    请参考 http://www.jianshu.com/p/0a984f999592

    Android 5.0
    Android技术特点(优缺点)

    1.免费开源,支持厂商众多

    2.跨平台,可移植性强

    3.开发容易,应用软件丰富

    4.碎片化,市场占有率高

    5.安全性差,隐私容易泄露

    6.耗电快,高度依赖硬件

    Android 4.4
    Android过时技术

    Eclipse和ADT
    一、Eclipse和ADT

    1.Android Studio于2013年5月发布,现在已经取代Eclipse

    Android Studio
    2.SDK取代ADT

    二、Actionbar

    Toolbar取代Actionbar

    三、Activity

    AppCompatActivity整合Activity、FragmentActivity、ActionbarActivity、PreferenceActivity

    四、Listview和Gridview

    Recyclerview整合了Listview和Gridview

    RecyclerView
    五、Asynctask

    Rxjava取代Asynctask

    RxJava
    六、HttpURLConnection和HttpClient

    Android6.0废弃HttpClient

    OkHttp
    官方Volley库,第三方OkHttp库可取代两者

    七、DVM

    Android5.0开始ART取代DVM成为Android默认运行环境

    ART模式
    Java发展简史:从Oak到Java8.0Java编程规范
    Android发展简史:从《未来夏娃》到Android7.1

    Android版本与API、NDK对照表,发布时间与市场占有率

    JDK的安装和配置Eclipse的安装、汉化、自动提示和常用快捷键

    Android Studio的安装、配置、使用技巧和常用快捷键

    Android系统架构、项目结构和APK文件目录
    App原型设计、UI设计、应用开发、内测、发布、推广常用工具大全

    2016年中国行政区划总表(截至2016年12月31日)

    2017年司法考试瑞达法考导学班讲义(全8本)PDF下载

    展开全文
  •  对此,《安全防范工程技术规范》提出了安全防范工程设计应遵循的七项基本原则、安全防范三种基本手段和三个基本要素,以确保安防工程的质量。  ▌七项基本原则  安全防范工程在设计时应遵循的七项...
  • 技术概念规范

    2020-07-10 21:18:06
    目录技术概念规范flag编程范式设计模式及原则数据结构与算法算法复杂度数据传输模型网络通信协议HTTPswitchdirectory和folder区别进制逻辑运算符字符编码Cron表达式命名规范GNU风格版本规则多线程线程数量控制缓存锁...

    技术概念规范

    更多请见个人主页https://www.bajins.com

    flag

    • 代码不是靠死记硬背,而是不停的写、不停的思考,在反复的练习中熟练掌握的。
    • 编程需要学习记住的是:不同的场景中一些实现方式的原理机制、思维方式,如:设计模式、排序算法、数据结构等,而不是具体的代码。
    • 千万不要尝试用记忆力去替代自己的理解力!

    RESTful是一种架构风格,其核心是面向资源,更简单;而WebService底层SOAP协议,主要核心是面向活动;两个都是通过web请求调用接口

    逃逸分析(Escape Analysis)

    是编译器用来决定程序中值的位置的过程。编译器执行静态代码分析,以确定一个构造体的实例化值是否会逃逸到堆

    逃逸是指在某个方法之内创建的对象,除了在方法体之内被引用之外,还在方法体之外被其它变量引用到;
    这样带来的后果是在该方法执行完毕之后,该方法中创建的对象将无法被GC回收,由于其被其它变量引用。
    正常的方法调用中,方法体中创建的对象将在执行完毕之后,将回收其中创建的对象;故由于无法回收,即成为逃逸。

    编程范式

    编程范型、编程范式或程序设计法(Programming Paradigm)是某种编程语言典型的编程风格或者说是编程方式

    范类:强类型/弱类型,动态语言/静态语言,编译/解释

    • 过程化(命令式)编程
    • 事件驱动编程
    • 面向对象编程
    • 链式编程
    • 函数式编程
    • 并发编程
    • 约束编程
    • 数据流编程(Dataflow programming)
    • 声明性编程
    • 分布式的编程
    • 泛型编程
    • 逻辑编程
    • 元编程
    • 响应式/反应式编程(Reactive programming)
    • 面向方面/面向切面编程(AOP)
    • 过程式编程

    设计模式及原则

    数据结构与算法

    算法复杂度

    O(1)O(n)O(logn)O(nlogn) 可表示时间复杂度,也可以表示空间复杂度

    O加上()里面是一个函数f()O(f()),函数指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。

    如果ax=Na>0,且a≠1),那么数x叫做以a为底N的对数,记作x=logaN,读作以a为底N的对数,其中a叫做对数的底数,N叫做真数。

    类型 意义 举例
    O(1) 最低复杂度,常量值也就是耗时/ 耗空间与输入数据大小无关,无论输入数据增大多少倍,耗时/耗空间都不变 哈希算法就是典型的O(1)时间复杂度,无论数据规模多大,都可以在一次计算后找到目标 (不考虑冲突的话)
    O(n) 数据量增大几倍,耗时也增大几倍 遍历算法
    O(n^2) 对n个数排序,需要扫描 n x n 次 冒泡排序
    O(logn) 当数据增大n倍时,耗时增大logn 倍(这里的log是以2为底的,比 如,当数据增大256倍时,耗时只增大8倍, 二分查找就是O(logn)的算法,每找一次排除一半的可能,256个数据中查找只要找8次就可以找到目标
    O(nlogn) 就是n乘以logn,当数据增大256倍 时,耗时增大256*8=2048倍。这个复杂度高于线性低于平方。 归并排 序就是O(nlogn)的时间复杂度
    数据结构 查找 查找 插入 插入 删除 删除 遍历
    平均 最坏 平均 最坏 平均 最坏
    数组 O(N) O(N) O(N) O(N) O(N) O(N)
    有序数组 O(logN) O(n) O(N) O(N) O(N) O(N) O(N)
    链表 O(N) O(N) O(1) O(1) O(1) O(1)
    有序链表 O(N) O(N) O(N) O(N) O(1) O(1) O(N)
    二叉查找树 O(logN) O(N) O(logN) O(N) O(logN) O(N) O(N)
    红黑树 O(logN) O(logN) O(logN) O(logN) O(logN) O(logN) O(N)
    平衡树 O(logN) O(logN) O(logN) O(logN) O(logN) O(logN) O(N)
    二叉堆 优先队列 O(1) O(1) O(logN) O(logN) O(logN) O(logN) O(N)
    哈希表 O(1) O(1) O(1) O(1) O(1) O(1) O(N)

    数据传输模型

    该模型用于帮助人们解决应用程序与服务器传递数据的问题

    • Web Service 模型
      • SOA 模型(面向消息)
      • RPC 模型(面向方法)
        • XML-RPC
        • JSON-RPC
        • SOAP + WSDL [SOAP 本质上是 XML-RPC 的升级版]
      • REST(Representational State Transfer) 模型(面向资源)
        • RestFul API
        • GraphQL
    • HTTP接口:基于HTTP协议的开发接口,如HTTP POST/GET
    • SOAP接口:是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。
    • Restful接口:一种接口规范,符合这套规范编写的接口就是restful 接口
    • Webservice接口:一种跨编程语言和跨操作系统平台的远程调用技术。SOAP/Restful都属于WebService接口。主要是系统间的调用。
    • RPC协议:远程过程调用,它是一种通过网络从远程计算机程序上跨语言跨平台的请求服务。主要是分布式式系统中应用。

    网络通信协议

    应用层

    • HTTP(Hypertext Transfer Protocol)超文本传输协议,显示网页
    • DNS(Domain Name System)
    • FTP(File Transfer Protocol)
    • SFTP(SSH File Transfer Protocol)和FTP不一样
    • SCP(Secure copy)基于SSH
    • SSH (Secure Shell)
    • SMTP(Simple Mail Transfer Protocol)
    • SNMP(simple Network Management Protocol)

    通信层

    网络层

    • IP(Internet Protocol)
    • ICMP(Internet Control Message Protocol,主要用于路由发送错误报告)

    链接层

    • MAC(media access control)

    HTTP

    Content-Type只会存在于POSTPATCHPUT等有请求数据实体时指定数据类型和数据字符集编码,
    GETDELETEHEADOPTIONSTRACE等没有请求数据实体

    Content-Length则视Content-Type而定,如text/htmltext/javascript等请求数据没有Content-Length

    POSTPATCHPUT等请求有请求数据实体的数据为表单参数,
    GETDELETEHEADOPTIONSTRACE等没有请求数据实体的查询参数拼接在URL?后面

    switch

    • 在Python中没有switch语法
    • JavaScript的switch语法跟Java一样
    • 在Java中

    如果default不是switch代码块中最后一个case,请记得用break;结束默认case

    switch ("A".toLowerCase()) {
    case "a":
        System.out.println("a");
        // 注意:此处如果条件满足但没有添加break,则代码会继续执行,
        // 会无条件执行后面的语句,直到遇到break
        //break;
        // fall thorugh
    case "b":
        System.out.println("b");
        break;
    default:
        // 如果default写在最前面,会先执行,
        // 但是如果没有写break;还是会无条件执行后面的语句
        System.out.println("default");
        break;
    }
    
    • 在Go中
    1. 左花括号{必须与switch处于同一行;
    2. 条件表达式不限制为常量或者整数;
    3. 单个case中,可以出现多个结果选项,以,分割;
    4. 与C语言等规则相反,Go语言不需要用break来明确退出一个case
    5. 只有在case中明确添加fallthrough关键字,才会继续执行紧跟的下一个case
    6. 可以不设定switch之后的条件表达式,在此种情况下,整个switch结构与多个if...else...的逻辑作用等同。
    switch strings.ToLower("A") {
    case "a":
        fmt.Println("a")
    case "b":
        fmt.Println("b")
    default:
        fmt.Println("default")
    }
    

    directory和folder区别

    • directory 目录,简称 dir
    • folder 文件夹

    两者一般情况下是可以相互通用的,都表示文件夹的意思;但是细细纠来,还是有区别的:

    Hi, please go to D:\files\images\directory, and then double click and open folder "travelImg".

    • 看完上面那句话,相信大家有点知道意思了:

    directory 也是一个folder,但是我们在说一个directory的时候,通常指它含有路径的意思在里面;

    folder 一般情况,是说某一个文件夹,通常不包含路径的意思,比如:双击这个文件夹,在里面找找看。

    进制

    进制 英文 范围 前缀 后缀
    二进制 Binary 0-1 0b B
    八进制 Octal 0-7 0/0O O
    十进制 Decimal 0-9 D
    十六进制 Hexadecimal 0-9, A-F 0x H

    逻辑运算符

    运算符 说明
    AND 与(&&)
    EQ EQUAL等于(==)
    GE GREATER THAN OR EQUAL 大于等于(>=)
    GT GREATER THAN大于(>)
    LE LESS THAN OR EQUAL 小于等于(<=)
    LT LESS THAN小于(<)
    NE NOT EQUAL不等于(!=)
    NOT 非(!)
    OR 或(||)

    字符编码

    Unicode 意义
    u0024 $
    u0028 (
    u0029 )
    u002A *
    u002B +
    u002E .
    u003F ?
    u005B [
    u005C \
    u005E ^
    u007B {
    u007C |
    u007D }
    u0009 t
    u000A n
    u000D r
    u0022 "
    u002C ,
    u003A :

    Cron表达式

    • 特殊符
    1. * 每一(每一分)
    2. ? 表示不关心,任意
    3. - 范围 (小时:1-12,1到12点运行)
    4. , 标示多个值 (小时 1,2,3 1点2点3点运行)
    5. / 递增触发(0/15,从0开始每15秒运行一次)
    6. L 最后(日L,当月最后一天,周L周六)
    7. W 指定日期最近的工作日(周一到周五)
    8. ## 序号(表示每月的第几个周几)
    • CronTrigger配置格式: [秒] [分] [小时] [日] [月] [周] [年]
    序号 说明 是否必填 允许填写的值 允许的通配符
    1 0-59 , - * /
    2 0-59 , - * /
    3 小时 0-23 , - * /
    4 1-31 , - * ? / L W
    5 1-12 or JAN-DEC , - * /
    6 1-7 or SUN-SAT , - * ? / L ##
    7 empty或1970-2099 , - * /

    命名规范

    • 驼峰式命名法介绍:驼峰式命名法由小(大)写字母开始,后续每个单词首字母都大写。
      • Pascal Case (大驼峰)式命名法:首字母大写。
      • Camel Case (小驼峰)式命名法:首字母小写。
    • 项目名:全部小写,可使用-_连接符以分割单词,且不能有空格、中文和其他特殊字符
    • 包名:全部小写,单词不需分割,且不能有空格、中文和其他特殊字符
    • 常量:全部大写,可使用_连接符以分割单词
    • 变量:小驼峰式命名法,前缀应当是名词。尽量在变量名字中体现所属类型,如:length、count表示数字类型;name、title表示字符串类型
    • 函数:小驼峰式命名法,前缀应当为动词。
    • 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
    • 代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。注意,即使纯拼音命名方式也要避免采用。
    • 类名使用UpperCamelCase风格,但以下情形例外:DO / BO / DTO / VO / AO / PO等。
    • 方法名、参数名、成员变量、局部变量都统一使用lowerCamelCase风格,必须遵从驼峰形式。
    • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长。
    • 抽象类命名使用Abstract或Base开头。
    • 异常类命名使用Exception结尾。
    • 测试类命名以它要测试的类名开始,以Test结尾。
    • 类型与中括号紧挨相连来定义数组。
    • POJO类中布尔类型的变量,都不要加is前缀,否则部分框架解析会引起序列化错误。
    • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。
    • 杜绝完全不规范的缩写,避免望文不知义。
    • 最好逐一声明每个变量而不是写在一行。
    • Java的变量声明尽量靠近变量第一次使用的地方。

    GNU风格版本规则

    • MAJOR.MINOR.PATCH即: 主版本号.次版本号.修正版本号
    • Major.Minor.Revision即: 主版本号.次版本号.修正版本号
    1. Major 主版本号:表示当前APR的主版本号,它的变化通常意味着APR的巨大的变化,比如体系结构的重新设计、API的重新设计、
      重大的重构、重大的feature改动、重大的不兼容性的变化等等,而且这种变化通常会导致APR版本的向前不兼容。

    2. Minor 次版本号:发布较大的新feature功能,或者较大的重构或者模块变化,或者出现不兼容性改动,会增加子版本号;
      子版本的发布会伴随着完整的change log,算是一个较大的版本发布,有仪式感

    3. Revision/PATCH 修正版本号:往往是bug fix,或者增加较小的feature,较小的功能改进或者模块变化,
      在保证完整向后兼容的前提下,会增加修正版本号

    4. 当主版本号增加时,子版本号及修正版本号置0

    5. 当子版本号增加时,修正版本号置0

    按照测试过程标识

    1. Alpha版:预览版或内部测试版,一般不向外部发布,会有很多Bug。
    2. Beta版:公测版。
    3. RC版:Release Candidate候选版本。也叫做Gamma版本。

    多线程

    并发、并行、同步、异步、多线程、协程的区别

    对操作系统来说,线程是最小的执行单元,进程是最小的资源管理单元。无论进程还是线程,都是由操作系统所管理的。

    协程(Coroutine)编译器级的,进程(Process)和线程(Thread)操作系统级的,Process -> Thread -> Coroutine

    • 并发

    同一时间段有几个程序都处于已经启动到运行完毕之间,并且这几个程序都在同一个处理机上运行,并发的两种关系是同步和互斥;

    • 互斥

    进程之间访问临界资源时相互排斥的现象;

    • 同步

    进程之间存在依赖关系,一个进程结束的输出作为另一个进程的输入。具有同步关系的一组并发进程之间发送的信息称为消息或者事件;

    • 并行

    单处理器中进程被交替执行,表现出一种并发的外部特征;在多处理器中,进程可以交替执行,还能重叠执行,
    实现并行处理,并行就是同事发生的多个并发事件,具有并发的含义,但并发不一定是并行,也就是说事件之间不一定要同一时刻发生;

    • 多线程

    多线程是进程中并发运行的一段代码,能够实现线程之间的切换执行;

    • 异步

    和同步相对,同步是顺序执行,而异步是彼此独立,在等待某个事件的过程中继续做自己的事,不要等待这一事件完成后再工作。
    线程是实现异步的一个方式,异步是让调用方法的主线程不需要同步等待另一个线程的完成,从而让主线程干其他事情。

    • 异步和多线程

    不是同等关系,异步是目的,多线程只是实现异步的一个手段,实现异步可以采用多线程技术或者交给其他进程来处理

    • 协程

    coroutine协程详解

    协程

    协程,又称微线程,纤程。协程(Coroutine)是一种轻量级的用户态线程,实现的是非抢占式的调度,即由当前协程切换到其他协程由当前协程来控制。
    协程本身可以做在用户态,每个协程的体积比线程要小得多,因此一个进程可以容纳数量相当可观的协程

    • 信号量

    进程间通信之-信号量semaphore

    信号量的使用主要是用来保护共享资源,使得资源在一个时刻只有一个进程(线程)所拥有。

    信号量的值为正的时候,说明它空闲。所测试的线程可以锁定而使用它。若为0,说明它被占用,测试的线程要进入睡眠队列中,等待被唤醒。

    上下文切换

    什么是进程、线程、协程

    进程的切换者是操作系统,切换时机是根据操作系统自己的切换策略,用户是无感知的。
    进程的切换内容包括页全局目录、内核栈、硬件上下文,切换内容保存在内存中。进程切换过程是由“用户态到内核态到用户态”的方式,切换效率低。

    线程的切换者是操作系统,切换时机是根据操作系统自己的切换策略,用户无感知。
    线程的切换内容包括内核栈和硬件上下文。线程切换内容保存在内核栈中。线程切换过程是由“用户态到内核态到用户态”, 切换效率中等。

    协程的切换者是用户(编程者或应用程序),切换时机是用户自己的程序所决定的。
    协程的切换内容是硬件上下文,切换内存保存在用户自己的变量(用户栈或堆)中。协程的切换过程只有用户态,即没有陷入内核态,因此切换效率高。

    多线程并不一定是要在多核处理器才支持的,就算是单核也是可以支持多线程的。

    CPU 通过给每个线程分配一定的时间片,由于时间非常短通常是几十毫秒,所以 CPU 可以不停的切换线程执行任务从而达到了多线程的效果。

    但是由于在线程切换的时候需要保存本次执行的信息,在该线程被 CPU 剥夺时间片后又再次运行恢复上次所保存的信息的过程就称为上下文切换。

    • 上下文切换是非常耗效率的。通常有以下解决方案:
    1. 采用无锁编程,比如将数据按照 Hash(id) 进行取模分段,每个线程处理各自分段的数据,从而避免使用锁。
    2. 采用 CAS(compare and swap) 算法,如 Atomic 包就是采用 CAS 算法。
    3. 合理的创建线程,避免创建了一些线程但其中大部分都是处于 waiting 状态,因为每当从 waiting 状态切换到 running 状态都是一次上下文切换。

    线程数量控制

    • IO密集型

    线程数 = CPU核心数/(1-阻塞系数)

    Blocking Coefficient(阻塞系数)(一般为0.8~0.9之间) = 阻塞时间/(阻塞时间+使用CPU的时间)

    • 计算密集型

    CPU有超线程:线程数 = CPU内核线程数*2

    CPU无超线程:线程数 = CPU核数+1

    缓存

    • 缓存穿透

    在高并发下,查询一个不存在的值时,缓存不会被命中,导致大量请求直接落到数据库上,如活动系统里面查询一个不存在的活动。

    • 缓存击穿

    在高并发下,对一个特定的值进行查询,但是这个时候缓存正好过期了,缓存没有命中,导致大量请求直接落到数据库上,如活动系统里面查询活动信息,但是在活动进行过程中活动缓存突然过期了。

    • 缓存雪崩

    在高并发下,大量的缓存key在同一时间失效,导致大量的请求落到数据库上,如活动系统里面同时进行着非常多的活动,但是在某个时间点所有的活动缓存全部过期。

    • 缓存命中率

    命中:直接从缓存中读取到想要的数据。

    不命中:缓存中没有想要的数据,还需要到数据库进行一次查询才能读取到想要的数据。

    • 缓存丢失

    常见解决方案

    • 直接缓存NULL值(时间不能过长,防止影响正常值)
    • 过滤器(如白名单,符合某种规则等)
    • 限流
    • 缓存预热
    • 分级缓存
    • 缓存永远不过期

    常见算法

    1. Least Frequently Used (LFU)
    2. Least Recently Used (LRU)
    3. Least Recently Used2 (LRU2)
    4. Two Queue (2Q)

    锁和事务

    单进程的系统中,存在多线程同时操作一个公共变量,此时需要加锁对变量进行同步操作,保证多线程的操作线性执行消除并发修改。
    解决的是单进程中的多线程并发问题。

    分布式锁

    只要的应用场景是在集群模式的多个相同服务,可能会部署在不同机器上,解决进程间安全问题,防止多进程同时操作一个变量或者数据库。
    解决的是多进程的并发问题。

    事务

    解决一个会话过程中,上下文的修改对所有数据库表的操作要么全部成功,要不全部失败。所以应用在service层。
    解决的是一个会话中的操作的数据一致性。

    分布式事务

    解决一个联动操作,比如一个商品的买卖分为:(1)添加商品到购物车,(2)修改商品库存-1;
    此时购物车服务和商品库存服务可能部署在两台电脑,这时候需要保证对两个服务的操作都全部成功或者全部回退。
    解决的是组合服务的数据操作的一致性问题。

    HTTP授权认证

    • SSO :单点登录(Single sign-on)是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
    • CAS :中央认证服务(Central Authentication Service),一个基于Kerberos票据方式实现SSO单点登录的框架,
      为Web 应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )

    Basic Auth:这种认证直接顺应HTTP协议的无状态性,每次执行业务的时候,将username与password参数发送给服务器进行验证

    Session:是指在客户端Cookie中存储一个Session Id。请求时携带Session Id,服务器从Session数据存储中找到对应的Session。
    Native App一般是不直接支持Cookie机制

    OAuth2和JWT区别与联系

    JWT是一种认证协议

    JWT(Json web token)提供了一种用于发布接入令牌(Access Token),并对发布的签名接入令牌进行验证的方法。
    令牌(Token)本身包含了一系列声明,应用程序可以根据这些声明限制用户对资源的访问。

    应用场景:JWT是用在前后端分离, 需要简单的对后台API进行保护时使用.(前后端分离无session, 频繁传用户密码不安全)

    OAuth2是一种授权框架

    OAuth2是一种授权框架,提供了一套详细的授权机制(指导)。用户或应用可以通过公开的或私有的设置,授权第三方应用访问特定资源。

    应用场景:OAuth2用在使用第三方账号登录的情况(比如使用weibo, qq, github登录某个app)

    • OAuth2是一个相对复杂的协议, 有4种授权模式:
    1. 授权码模式(authorization code)
    2. 密码模式(resource owner password credentials)
    3. 客户端模式(client credentials)
    4. 简化模式(implicit)

    加密哈希

    哈希(散列)函数

    • 不推荐:RC4, MD4, MD5, SHA-0, SHA-1, DES, 2DES 等
    • 推荐:SHA-2(SHA-256, SHA-384, SHA-512)、SHA-3、Blake2 等
    • 密码哈希函数(Password Hash):PBKDF2, Bcrypt, Scrypt, Argon2

    应对普通哈希容易被破解的策略

    • 加盐(salt)

    加盐就是对目标字段哈希前,拼接上另一个字段(salt)。注:盐值加到字段之前较为普遍。加盐对防彩虹表很有效。

    • 慢哈希
    展开全文
  • 墙体材料应用统一技术规范1.0.1 为统一各类墙体材料工程应用的基本要求及相应的设计原则和方法,确保墙体工程质量,做到技术先进、安全适用、经济合理,制定本规范。 1.0.2 本规范依据现行国家有关工程建设的法律、...
  • GB/T 18391.5-2001信息技术 数据元的规范与标准化 第5部分 数据元的命名和标识原则
  • 临床护理操作技术规范基础知识问答集广州护理学会2010年1月目录临床护理技术规范(基础篇)单选题3第一章护理技术操作原则3第二章医院感染预防与控制相关的护理技术5第三章护理评估技术15第四章患者安全护
  • mysql设计规范原则

    2018-04-10 10:06:00
    DB设计流程: 1,需求分析 2,ER设计 3,物理设计 需求分析的最佳实践是头脑风暴,把需求理解透彻。根据公司的现况和未来的发展,与pm一起来讨论...物理设计阶段,需要做具体的技术选型,选择合适的RDMS(比如O...

    DB设计流程:

    1,需求分析
    2,ER设计
    3,物理设计
    需求分析的最佳实践是头脑风暴,把需求理解透彻。根据公司的现况和未来的发展,与pm一起来讨论。
    ER(EntiyRelation)设计阶段要确定各个模块和模块之前的关系,用来表达的语言就是ER图,可以让人清晰的了解到表的设计和关系,工具用 workbench 来设计。
    物理设计阶段,需要做具体的技术选型,选择合适的RDMS(比如Oracle、MySQL等等),设计表的字段类型,给表取一个 更好的名字。

    物理设计的最佳实践和总计:

        1、数据库命名规范
            采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;
            命名简洁明确(长度不能超过30个字符);
            例如:user, stat, log, 也可以wifi_user, wifi_stat, wifi_log给数据库加个前缀;
            除非是备份数据库可以加0-9的自然数:user_db_20151210;  
        2、数据库表名命名规范
            采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;
            命名简洁明确,多个单词用下划线'_'分隔;
            例如:user_login, user_profile, user_detail, user_role, user_role_relation,
                user_role_right, user_role_right_relation
            表前缀'user_'可以有效的把相同关系的表显示在一起;
             
        3、数据库表字段名命名规范
            采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;
            命名简洁明确,多个单词用下划线'_'分隔;
            例如:user_login表字段 user_id, user_name, pass_word, eamil, tickit, status, mobile, add_time;
            每个表中必须有自增主键,add_time(默认系统时间)
            表与表之间的相关联字段名称要求尽可能的相同;
         
        4、数据库表字段类型规范
            用尽量少的存储空间来存数一个字段的数据;
            例如:能使用int就不要使用varchar、char,能用varchar(16)就不要使用varchar(256);
            IP地址最好使用int类型;
            固定长度的类型最好使用char,例如:邮编;
            能使用tinyint就不要使用smallint,int;
            最好给每个字段一个默认值,最好不能为null
        5、数据库表索引规范
            命名简洁明确,例如:user_login表user_name字段的索引应为user_name_index唯一索引;
            为每个表创建一个主键索引;
            为每个表创建合理的索引;
            建立复合索引请慎重;

    数据库设计范式:

    一,第一范式又称为1NF(First Normal Form),是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库。
    数据库表中的字段都是单一属性的,不可再分。这个单一属性由基本类型构成,包括整型、实数、字符型、逻辑型、日期型等。
    同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。 如果出现重复的属性,
    就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。

    简而言之,第一范式就是没有重复的列。

     二,第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式必须先满足第一范式(1NF)。
     第二范式要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。

    简而言之,第二范式就是属性应完全依赖于其主键。

     

    三,满足第三范式(3NF)必须先满足第二范式(2NF)。第三范式要求数据表中如果不存在非关键字段对任一候选关键字段的传递函数依赖。
    所谓传递函数依赖,指的是如果存在"A → B → C"的决定关系,则C传递函数依赖于A。

    简而言之,第三范式就是任一非主键属性不应依赖于其它任何非主键属性。它是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余

    数据表的关系:

    在关系型数据库中,弄清各个模块(或者叫实体或者叫表)之间的关系非常重要。关系型数据库中有三种基本关系:

    1. 1 - 1,比如一个国家对应一个首都
    2. 1 - N,比如一个分类下可以有多个商品,一个班级有多个学生,这种关系往往存在从属关系
    3. N - N,比如学生和课程,一个学生可以选多门课,不同的学生也可以选择同一门课

    数据库设计原则:

    1. 一般表除了“语义上”的主键之外最好有一个自增主键
    2. 避免使用外键约束,触发器
    3. 不要用预留字段
    4. 反范式设计提高效率
    详细解析:
    1、核心原则
            不在数据库做运算;
            cpu计算务必移至业务层;
            控制列数量(字段少而精,字段数建议在20以内);
            平衡范式与冗余(效率优先;往往牺牲范式)
            拒绝3B(拒绝大sql语句:big sql、拒绝大事物:big transaction、拒绝大批量:big batch);
     
        2、字段类原则
            用好数值类型(用合适的字段类型节约空间);
            字符转化为数字(能转化的最好转化,同样节约空间、提高查询性能);
            避免使用NULL字段(NULL字段很难查询优化、NULL字段的索引需要额外空间、NULL字段的复合索引无效);
            少用text类型(尽量使用varchar代替text字段);
         
        3、索引类原则
            合理使用索引(改善查询,减慢更新,索引一定不是越多越好);
            字符字段必须建前缀索引;
            不在索引做列运算;
            innodb主键推荐使用自增列(主键建立聚簇索引,主键不应该被修改,字符串不应该做主键)(理解Innodb的索引保存结构就知道了);
            不用外键(由程序保证约束);
         
        4、sql类原则
            sql语句尽可能简单(一条sql只能在一个cpu运算,大语句拆小语句,减少锁时间,一条大sql可以堵死整个库);
            简单的事务;
            避免使用trig/func(触发器、函数不用客户端程序取而代之);
            不用select *(消耗cpu,io,内存,带宽,这种程序不具有扩展性);
            OR改写为IN(or的效率是n级别);
            OR改写为UNION(mysql的索引合并很弱智);
                select id from t where phone = ’159′ or name = ‘john’;
                =>
                select id from t where phone=’159′
                union
                select id from t where name=’jonh’
            避免负向% ;
            limit高效分页(limit越大,效率越低);
            使用union all替代union(union有去重开销);
            少用连接join;
            使用group by;
            请使用同类型比较;
            打散批量更新;

    转载于:https://www.cnblogs.com/hk-faith/p/8718000.html

    展开全文
  • 论述了制造业信息化总体技术规范制定的迫切性、必要性, 体系框架的设计与几点粗浅认识, 阐述了制造业信息化要面向市场, 不断创新, 要以信息化...最后提出了总体技术规范的体系框架构成, 几个重要原则和基本评判指标。
  • 网站设计技术规范

    千次阅读 2008-05-11 10:05:00
    网站设计技术规范一.命名规范: 文件命名的原则:以最少的字母达到最容易理解的意义。 1.一般文件及目录命名规范: 每一个目录中应该包含一个缺省的 html 文件,文件名统一用 index.htm 或index.asp文件名称统一用...
  • IPTV 技术规范V3

    2013-04-25 17:48:45
    IPTV 业务技术体制 V3.0 ..................................... 1 1 范围 .......... 1 2 规范性引用文件 ............................................. 1 3 缩略语、术语和定义 ............................
  • 在BOSS 3.0规范的基础上,保持两级中心的原则,继承三层结构的思想,以可复用性、可扩展性、业务灵活性为设计原则,定义中国移动省级BOSS系统的系统架构、系统边界和系统接口,并对系统关键性技术提出要求,...
  •  对此,《安全防范工程技术规范》提出了安全防范工程设计应遵循的七项基本原则、安全防范三种基本手段和三个基本要素,以确保安防工程的质量。  ▌七项基本原则  安全防范工程在设计时应遵循的七项...
  • SDK开发技术规范总结

    2021-02-03 10:44:22
    SDK是Software Development Kit的缩写,译为“软件开发工具包”,通常是为辅助开发某类软件而...1.设计原则 优秀设计 SDK 必须要遵从原生、简短、执行迅速、代码干净、易读、可测试的原则。 一个接口尽量只做一件事
  • 三坐标测量技术规范

    2020-09-28 14:40:45
    1.1 基本原则 产品测量遵循以下基本原则: 所有零部件应尽可能在装配状态下测量,在装配状态下无法测量的部分可分两种情况处理:一是零件之间互相遮挡的部分,可采取逐层拆卸逐层测量的方法进行。二是零件的反面,应...
  • 2019公路路基施工技术规范,本规范修订的指导思想:突出安全、耐久、环保等要求, 注重路基的稳定与路床强度, 贯彻资源节约型、环境友好型的公路建设指导原则,合理利用各种路基填料, 充分总结十余年来公路路基...
  • 规范技术

    2011-11-14 16:31:06
    数据库的规范化理论不仅仅是关系模式设计的理论指导和强有力的工具,对其它数据模型数据库的逻辑设计也 同样有理论意义,数据的规范化不仅会带来空间上...文章陈述了在数据库建模过程中进行反规范化的基本原则和方法。
  • 前端开发技术规范1.0

    2019-05-17 10:13:01
    2.组件归属,非通用组件就近原则放置 2、现有层面代码优化 1.单页面行数限制不得超过300-500行 2.功能过于复杂页面拆分组件,通讯过于复杂时考虑使用全局状态管理VUEX 3.接口请求统一使用async function 方式...
  • 互域网络总结时下的网页制作技术标准如下: 一.命名规范: 文件命名的原则:以最少的字母达到最容易理解的意义。 1.图片的命名规范: 名称分为头尾两部分,用下划线隔开。 头部分表示此图片的大类性质。...
  • 规范规定了南方电网公司电力全域物联网的总体架构,包括系统建设目标、建设原则、系统架构及组成、信息交互架构等内容。 本规范适用于南方电网公司电力全域物联网的规划、设计、建设、验收及应用。
  • 本标准规定了110kV(66kV)及以上电压等级的新建、改(扩)建智能变电站继电保护及相关设备技术原则与要求。
  • 规范规定了变电站应用 DL/T 860 系列标准时...性以及选用参数的规范性并规定了在实际应用中进行模型扩充时应遵循的原则等。 本规范适用于应用 DL/T860 系列标准的变电站自动化产品的开发、设计、测试、应用等。
  • GB_T_4249-2009_产品几何技术规范(GPS)公差原则

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,401
精华内容 560
关键字:

技术规范原则