工程实践:给函数取一个"好"的名字 早在2013年,国外有个程序员做了一个有意思的投票统计(原始链接请见:<程序员:你认为最难做的事情是什么?>),该投票是让程序员从以下几个选项中选出平时在工作中自己认为最难做的事情: 做项目方案设计 编写测试用例 撰写设计文档 向别人解释我们在做什么事情 实现你不认同的feature 在别人写的代码基础上做改造 与人沟通 给函数.变量命名 进行工作量估时 也许在大家的印象中,撰写设计文档和在别人写的代码基础上做改造应该是最难的事情.但是最…
redis对写入的key长度有限制吗? 太长的key对性能有影响吗? key越长对性能影响越大? 如何评估键长度对性能的影响? talk is cheap, show me the code! 今天我们一起用代码来验证一下key的长度对redis读取key的性能影响. 网络环境:本地 内存:8G redis版本:redis-5.0.7 实验代码如下,读写1000次长度为16.128.512.1024.2048.4096.9012.20000.100000长度的key获取执行的总时长: 随机生成指…
来某厂接近半年了,几乎没写过C++代码,说实话还真的有点手生.最近刚好有一个需求,然而我感觉我也没有办法用C++以外的语言去实现它.于是还是花了几天时间用C++完成编码,这是一个简单的任务执行引擎,它被我称作panguan.写这 篇文章主要记录一下开发过程中的一些思路和想法.不足之处,劳烦大家给予指出. 1.写在前面 1.1需求来源 最近有一个需求,假设我们有很多任务需要定时执行甚至定时重复运行,并且其中有一些任务之间可能存在控制依赖和/或数据依赖,甚至我们希望可以利用一些原子任务去组成一个更大…
打算把C++工程过程中的一些总结写下来.从打算写这个内容到今天(2017/1/12)已经很多年了,但是一直没有想好如何写,反正就这样,有什么写什么吧. C++工程实践之所以难产,主要原因有几个 内容比较繁多,细节艰难. 工程实践很难说良好,更多各种程度的妥协.失去了当时环境,只是记录下这种妥协的结果,并没有太多的意义. C++这些年(2010-2017)在飞快的变化,C++1y让很多以前的实践需要重新验证. 但是道理总要讲一讲才能更明白,所以写一点是一点吧.…
在今年 1 月由七牛云主办的 ECUG Con 十周年盛会上,真有趣技术总监陈明达带来了题为< Go 在游戏行业中的工程实践>的精彩分享,深入讲解了 Go 的工程经验,错误和异常处理,interface 的应用以及去 DSL 的尝试等内容,以下是对他演讲实况的记录. 陈明达 真有趣技术总监.从事游戏行业,开发过<神仙道><仙侠道>等项目. 先从工程说起 软件工程三要素 我创业后,总结了过往工作和创业过程中参与的项目,发现不论做什么,软件工程都回到三个问题上: 需求.首先…
在AI业务的开发的过程中,我们常常需要对模型文件进行加密.我们从以下几个方面来说一说AES的加密原理以及AOE里的工程实践. 常见的加密算法 AOE对模型加密需求的思考 AES的加密原理 AOE工程实践-AES和AOE的结合 常见的加密算法 常见的加密算法,主要分为两种:对称加密,采用单密钥的加密方法,同一个密钥可以同时用来加密和解密.常用的对称加密算法有DES,3DES,AES等.非对称加密,需要两个密钥来进行加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(pri…
from:https://www.jianshu.com/p/9349c30a6b3e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要解决的是什么问题? 对webpack的主要配置项进行分析,虽然不会涉及太多细节,但是期待在本节能让我们知晓如果…
百度的搜索引擎有反爬虫机制,我先直接用guzzle试试水.代码如下: <?php /** * Created by Benjiemin * Date: 2020/3/5 * Time: 14:58 */ require ('./vendor/autoload.php'); use QL\QueryList; //进入网页 $jar = new \GuzzleHttp\Cookie\CookieJar; $client = new GuzzleHttp\Client(['cookies' =>…
目录 一.准备工作 1.C/C++环境搭建 2.VSCode的配置 (1) 安装插件: (2) 设置配置文件: 二.工程化编程实战 1.模块化设计 2.可重用设计:进一步抽象 menu的进一步优化 可重入函数和线程安全 可重入的概念 线程安全的概念 两者之间的关系 对linktable模块的分析 计算机软件发展也有很多年了,软件工程越来越复杂,对代码的重用,工程的抽象和模块化需求越来越大,从一开始的面相过程,到面向对象,再到组件,微服务--现借本次课程的机会,梳理一下软件工程中基本的实践方法,看…
第11章函数 函数提供了一个有力代码复用机制, 并且让你的代码保持简洁和易懂. 它们同样也是EF运行时能利用的数据库层代码.函数有几类: Rowset Functions, 聚合函数, Ranking Functions, 和标量值函数. 函数要么确定,要么不确定.当用一些指定的值调用函数,而函数返回的结果总是一样时,它就是确定的函数.当甚至用同样的一些值调用时,而函数每次返回的结果也可能不一样,它就是不确定的函数. 在前七小节,我们探讨“模型定义”的函数,这些函数允许我们在概念层上创建.这些函…
研究生二年级实习(2010年5月)开始,一直跟着王益(yiwang)和靳志辉(rickjin)学习LDA,包括对算法的理解.并行化和应用等等.毕业后进入了腾讯公司,也一直在从事相关工作,后边还在yiwang带领下,与孙振龙.严浩等一起实现了一套大规模并行的LDA训练系统——Peacock.受rick影响,决定把自己对LDA工程实践方面的一些理解整理出来,分享给大家,其中可能有一些疏漏和错误,还请批评指正. Rickjin在<LDA数学八卦>[1]一文中已经对LDA的数学模型以及基本算法介绍得比…
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 #2.形参.实参概念和其余语言的概念相同 def greet_user(username): """显示简单的问候语""" print("Hello!"+username) greet_user("Mike"…
我们都知道,各种主流的社交应用或者阅读应用,基本都有列表类视图,并且都有滑到底部加载更多这一功能, 对应后端就是分页拉取数据.好处不言而喻,一般来说,这些数据项都是按时间倒序排列的,用户只关心最新的动态,而不关心几个月甚至几年前消息,所以后端返回给客户端的数据是不会一次性传递全部内容的(不仅耗费流量,而且还给服务器带来巨大压力). 举个例就说MySQL,它已经给我们提供了相应的语句来支持这一功能,那就是limit关键字.比如我要拉取一个消息表中用户id为1的前10条最新数据,SQL语句如下: s…
作者:iamlaosong DateAdd函数返回一个日期.这一日期加上了一个时间间隔.通过这个函数能够计算非常多我们须要的日期,比方上月上年同期日期等. 语法 DateAdd(interval, number, date) DateAdd 函数语法中有下列命名參数: interval  必要.字符串表达式.是所要加上去的时间间隔. 它具有好多设定值,比方"m"为月:"d"为日:"yyyy"为年等等. number  必要. 数值表达式,是要加上…
一.什么是用例建模(Use Case Modeling) 1.用例(Use Case) (1)概念:用例是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术. (2)作用:每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标. (3)注意点:编写用例时要避免使用技术术语,而应该用最终用户或者领域专家的语言. (4)用例一般是由软件开发者和最终用户共同创作的. 2.用例建模的步骤…
这个月的8号.9号,个人很荣幸参加了China.NET Conf 2019 , 中国.NET开发者峰会,同时分享了技术专题<.NET技术架构下的混沌工程实践>,给广大的.NET开发小伙伴介绍混沌工程和高可用性改造实践.会后大家伙聚餐的时候,陈计节老师建议大家将各自的议题分享到社区,分享给大家.因此,今天和大家分享我的技术专题<.NET技术架构下的混沌工程实践>. 整个专题主要分为四个部分: .NET分布式.微服务架构下的高可用性挑战 混沌工程简介 .NET混沌工程的实践和成果分享…
为什么一般hashtable的桶数会取一个素数 设有一个哈希函数H( c ) = c % N;当N取一个合数时,最简单的例子是取2^n,比如说取2^3=8,这时候H( 11100(二进制) ) = H( 28 ) = 4H( 10100(二进制) ) = H( 20 )= 4 这时候c的二进制第4位(从右向左数)就”失效”了,也就是说,无论第c的4位取什么值,都会导致H( c )的值一样.这时候c的第四位就根本不参与H( c )的运算,这样H( c )就无法完整地反映c的特性,增大了导致冲突的几…
定义和用法 array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有其他的键名都将丢失. 如果原数组中的值的数据类型不是字符串或整数,函数将报错 array_unique() 函数移除数组中的重复的值,并返回结果数组. 当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除. 返回的数组中键名不变. 在PHP中,用于删除数组中重复元素有一个可用的函数,那就是 array_unique(), 但是它并不是一个最高效的方法,使用array_fl…
在Python动态执行的函数中,exec是用于执行一个字符串内包含的Python源码或其编译后对应的字节码. 一.    语法 1.    exec(Code, globals=None, locals=None) 2.    参数说明 本函数的参数与eval的参数及含义完全相同,不过第一个参数eval函数要求是表达式字符串或其编译的字节码,exec要求是Python语句或语句块或其编译的代码,如果是编译的代码,要求是'exec'模式编译,如果表达式,则也不会报错,但达不到eval返回计算值的效…
ProtoBuf 作为一种跨平台.语言无关.可扩展的序列化结构数据的方法,已广泛应用于网络数据交换及存储.随着互联网的发展,系统的异构性会愈发突出,跨语言的需求会愈加明显,同时 gRPC 也大有取代Restful之势,而 ProtoBuf 作为g RPC 跨语言.高性能的法宝,我们技术人有必要 深入理解 ProtoBuf 原理,为以后的技术更新和选型打下基础. 我将过去的学习过程以及实践经验,总结成系列文章,与大家一起探讨学习,希望大家能有所收获,当然其中有不正确的地方也欢迎大家批评指正. 本系…
西方经典管理理论认为,组织效率可以归为劳动效率.组织效率和人的效率.美国管理学家泰勒所著的<科学管理原理>被德鲁克誉为"20 世纪最伟大的发明",劳动效率说认为分工提升生产效率,福特的流水线就是分工和工业化的典型代表.经济学家亚当斯密也在<国富论>里描述了螺丝制造的十八道工序,通过工具的分解能分别由十八个专门的工人负责完成,实现效率上的提升. 让组织效率最大化的手段是专业化水平与等级制度的结合,意即让不同专业能力的人匹配适合的岗位.在现代,数字化.平台化的企业强…
题目描述:给定K个字符数组,从这k个字符数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合结果! 样例: input:[["a","b","cd",["de"],["e","f"]] output:["adee","adef","bdee","bdef","cddee",&quo…
今天我无意间看到一个面试题: 如何用javascript 写个函数返回一个页面里共使用了多少种HTML 标签? 不知你看到 是否蒙B了,如果是我 面试,肯定脑子嗡嗡的响.... 网上搜了搜也没有找到答案,静下心想了想,突然..有了方法,完整代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Demo</…
11-3. 为一个”模型定义”函数返回一个计算列 问题 想从”模型定义”函数里返回一个计算列 解决方案 假设我们有一个员工(Employee)实体,属性有: FirstName, LastName,和BirthDate, 如 Figure 11-3所示. Figure 11-3. An Employee entity with a few typical properties 我们想要创建一个”模型定义”函数,让它返回FirstName 和LastName 合并后的full name . 我们想…
11-5. 从”模型定义”函数返回一个匿名类型 问题 想创建一个返回一个匿名类型的”模型定义”函数 解决方案 假设已有游客(Visitor) 预订(reservation)房间(hotel ) 的模型,如Figure 11-5所示. Figure 11-5. A model for hotel reservations 想要返回每位游客房间预订条数和带来的总收入.因为很多地方需要这些信息,所以想要创建一个”模型定义”函数,接受一个查询参数,返回一个包含游客合计信息的匿名类型的集合: 2. 把Li…
在程序中一般用cout和插入运算符“<<”实现输出,cout流在内存中有相应的缓冲区.有时用户还有特殊的输出要求,例如只输出一个字符.ostream类除了提供上面介绍过的用于格式控制的成员函数外,还提供了专用于输出单个字符的成员函数put.如:    cout.put('a');调用该函数的结果是在屏幕上显示一个字符a.put函数的参数可以是字符或字符的ASCII代码(也可以是一个整型表达式).如    cout.put(65 + 32);也显示字符a,因为97是字符a的ASCII代码. 可以…
在c++中是不允许数组作为函数的返回值的 int [] someFunction( ); //ILLEGAL 要想实现函数返回一个数组,那返回对应数组里面类型的指针 you must return a pointer to the array base type and have the pointer point to the array. So, the function declaration would be as follows: int* someFunction( ); //Leg…
eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. 需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值,简单示例如下: 复制代码 代码如下:var code1='"a" + 2'; //表达式 varcode2='{a:2}'; //语句 alert(eval(code1)); //->'a2' alert(eval(code2)); //->unde…
公司简介 - CCDI悉地国际-工程实践专业服务的引领者 关于悉地国际         CCDI悉地国际(以下简称"CCDI")创立于1994年,是在城市建设和开发领域从事综合专业服务的大型工程实践咨询机构.我们拥有上海.北京.深圳.成都.纽约五大区域,在重庆.南京.天津.武汉.西安.昆明等国内主要城市设置分公司或办事处,实现在遍布全国各地的服务网络.CCDI曾成功主持设计了国家游泳中心"水立方".国家网球中心.深圳平安国际金融大厦.上海洛克菲勒外滩源.济南奥林匹克…
// test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <windows.h> #include <crtdbg.h> /// 在C++工程中main函数之前跑代码的廉价方法 /// 利用全局变量可以赋可变初值的事实 /// mainCRTStartup() => _cinit() => 全局变量(静态, 普通…