最新 | 最热门 | 最高评价

+0  记一次关于系统性能的有趣讨论

Tag: IT技术和评论 | 计算机架构
ideawu 发于 2021年09月04日 10:29 | 点击: 447 | 展开摘要
有个同事问我:"你开发的分布式数据库系统, 如何避免 scan 扫描操作返回了 pending 事务状态的数据?"

我说:"把数据扫描出来, 然后逐个判断过滤掉 pending 状态的数据."

我感到奇怪, 对于他的问题, 解决方案非常显然啊. 解决方案非常直观, 兵来将挡水来土掩, 我相信他也能想到, 不想要的数据当然要剔除掉, 否则呢? 那么, 他的问题的点在哪?

没错, 他接着问了:"我 scan 的时候只想返回 key, 但是, 要判断状态, 是不是还得去读取

查看全文: http://www.udpwork.com/item/18148.html

+0  程序设计核心原则: 直观

Tag: IT技术和评论 | 算法
ideawu 发于 2021年08月07日 09:41 | 点击: 143 | 展开摘要
好的代码应该是直观的, 简单的. 直观就是"所思就所写", 想的是什么样就要把代码写成什么样子, 不要七拐八绕.

例如, 在做结构设计和流程设计时, 我们分析出某个功能流程应该这样做:

先做步骤1, 然后做步骤2.

什么是程序设计? 程序设计就是流程, 是串行化, 是先后顺序. 所以, 文档设计完毕之后, 必须写下这样的代码:

step1();
step2();

没错, 就是非常直观的两个函数调用语句, 一眼就能看出有先后顺序, 先 1 后 2. 但是, 初学者往往

查看全文: http://www.udpwork.com/item/18115.html

+0  程序员的必备品质

Tag: IT技术和评论
ideawu 发于 2021年07月27日 21:31 | 点击: 225 | 展开摘要
1. 判断力

在开发复杂系统时, 有判断力(决断力), 懂得去选择简单正确的架构和方案, 先把系统做出来. 大部分的程序员并没有这种思考决断能力. 如果让他们自己做决策, 他们会陷入思维混乱, 面对多个选项时优柔寡断. 几乎每一次内心将要下决断, 都会被"性能优化"思想给驳回.

2. 持续改进能力

虽然大部分程序员没有开发一个完整系统的能力, 但是, 仅仅用最简单的方案把系统做出来, 还不是终点. 只要方案足够简洁, 第一版一般能满足短期需求, 也许不能满足. 但业务的

查看全文: http://www.udpwork.com/item/17980.html

+0  复杂软件系统开发的第一原则: KISS

Tag: IT技术和评论 | 计算机架构
ideawu 发于 2021年07月23日 21:44 | 点击: 187 | 展开摘要
俗话说:

Keep It Simple, Stupid!

由于大部分新手程序员在从学生转换成为工程师之前, 都经过所谓的"算法"编程训练, 特别是不少人还主动进行大量的"刷题"行为, 因此, 对"性能"的追求被潜移默化地植入了所有程序员的基因, 这就造成了程序员往往把细节上的所谓性能优化放到第一优先的位置.

这种片面追求细节性能, 从而缺少大局观的思维, 其实是非常错误的. 比如 C++ 程序员, 几乎把性能优化等同于减少内存拷贝和无锁(lock free), 认为内存

查看全文: http://www.udpwork.com/item/17983.html

+0  快速排序算法(QuickSort)的代码实现

Tag: Computer System | IT技术和评论
ideawu 发于 2018年05月10日 19:46 | 点击: 1532 | 展开摘要
快速排序算法,也即快排,是递归和分而治之这两种计算机基本思想的应用,再加上其实现逻辑复杂度较好,性能较快,所以快速排序算法非常经典。

快速排序算法经常作为面试算法题。快速排序算法本身并不复杂,其本身的逻辑非常简单,要掌握其思想不是难事,甚至基于其实现代码的形而上学的表面形状背下来也很轻松。但是,如果仅掌握了快速排序的思想以及代码表面形状,就认为自己懂了快速排序,就是没有真正地理解。

快速排序算法作为面试题,一是考查理论结合实践的能力,要求面试者除了知道快速排序算法的实现逻

查看全文: http://www.udpwork.com/item/16835.html

+0  Mac 下最好用的看图软件 Tovi 免费下载了!

Tag: IT技术和评论 | MacOSX
ideawu 发于 2018年03月03日 17:24 | 点击: 1599 | 展开摘要
众所周知,Mac 系统自带的图片浏览软件主要 Preview 预览和在 Finder 里按空格键,前者无法播放 GIF 动画,而后者的浏览方式非常不自然,例如不支持鼠标滚轮缩放操作。

我在 2013 年开发出了 Mac 系统使用的看图软件 Tovi - Total Image Viewer for Mac,自发布以来,以后被安装超过 10000 次,大部分是收费用户,其中有过一次限时免费。

目前,Tovi 2.0 版本已经发布了!新的 Tovi 2.0 重写了图片显示引擎

查看全文: http://www.udpwork.com/item/16685.html

+0  国内公有云(云主机)服务商选择

Tag: IT技术和评论
ideawu 发于 2017年09月05日 18:53 | 点击: 1896 | 展开摘要
几年来,已经用过的公有云服务商的产品,将近十家。从最早的 Linode,AWS,到国内的阿里云,青云,腾讯云,UCloud 等,目前来说,国内靠谱只有那一家。具体哪家我不点名,下面分析之后相信你也有自己的答案。

公有云服务,首先是一个高度沉重的技术活,决不是表面功夫,不是资本牵头整合一下就能做成。

一方面,厂商必须有相关领域的技术积累,形成深厚的底蕴,最好在虚拟化技术刚出现时就尽早参与。据我所知,国内参与较早的巨头有百度,阿里,华为等,大概在2007年前后就启动并作为战略

查看全文: http://www.udpwork.com/item/16406.html

+0  自建一个电话呼叫中心要多少钱?

Tag: IT技术和评论 | SIP | VoIP
ideawu 发于 2017年06月18日 00:46 | 点击: 2053 | 展开摘要
我十分看不惯任何行业的潜规则行为。自建一个电话呼叫中心的报价是多少钱?没有人敢公开报价。我明说吧,自建一个电话呼叫中心,只需要3万元左右,而且还能更省钱。

这个报价是针对小型企业的,也就是广大人民群众。至于大型企业,它们自己去定制,钱不是问题。

3万元建一个电话呼叫中心,包括什么?包括硬件设备,软件。软件是硬件设备上免费赠送的,不要钱!有了这个呼叫中心,你可以有语音导航功能(也就是按0转人工客服),还有人工客服排队,电话录音。够用了,中小企业没那么多花哨的需求。

其它的

查看全文: http://www.udpwork.com/item/16306.html

+0  音频编码的一些笔记

Tag: Computer System | IT技术和评论 | RTP | SIP | VoIP
ideawu 发于 2017年06月15日 14:59 | 点击: 1577 | 展开摘要
名词解释

采样率/Sampling Rate/Sampling Frequency: 表示原始音频,每秒需要多少个值来表示(1秒时间内采样多少次)。

采样位数/Sampling Bit Depth/bits per sample(bps): 用多少比特来存储一个采样值。

采样比特率/Sampling Bit Rate: 指原始音频每秒需要多少比特来表示,显然等于 Rate x Bits。

帧长/Frame Duration/Frame Lenght: 表示每帧(数据块

查看全文: http://www.udpwork.com/item/16301.html

+0  关于TCP粘包和拆包的终极解答

Tag: Computer System | IT技术和评论
ideawu 发于 2017年06月02日 15:02 | 点击: 1802 | 展开摘要
程序员行业有一些奇怪的错误的观点(误解),这些误解非常之流行,而且持有这些错误观点的人经常言之凿凿,打死也不相信自己有错,实在让人啼笑皆非。究其原因,还是因为这些错误观点所对应的正确观点不符合人的正常思维习惯,是扭曲人的直观感受的。

有两个错误观点非常之经典,一而再,再而三的出现,就跟韭菜一样,割不完,还越长越多。一是经典的"服务器最多65536个连接"误解,打开链接看介绍。另一个就是这里要讲的TCP"粘包"和"拆包"问题。

基于前面的思路,我们先介绍人的正常思维习惯,然

查看全文: http://www.udpwork.com/item/16289.html

+0  新浪微博劫持iTunes链接加入陌生推广码

Tag: IT技术和评论
ideawu 发于 2017年02月16日 16:23 | 点击: 1419 | 展开摘要
有微博用户抱怨他在微博上面发布的带有自己推广码(可带来佣金收益), 都被微博替换成了某个陌生的推广码, 他自己的推广码被覆盖了!

@im61: 马勒戈壁的微博,我每天用 @PriceTag应用限免 这个账号发限免应用,链接里带了我的 iTunes 联盟令牌: 1001lsTF 和活动代码 wb_alet,结果发现几乎没有流量过来,刚刚 @图拉鼎 让我分析一下分享链接,大吃一惊啊,微博自动转换短链接,里面悄悄带上了自己的广告代码,我每天分享的收入都跑他口袋去了,无耻

我验证

查看全文: http://www.udpwork.com/item/16117.html

+0  正确的将浮点数转成整数的方法 – 避免强制类型转换

Tag: IT技术和评论
ideawu 发于 2016年12月08日 21:15 | 点击: 1520 | 展开摘要
基于思维惯性, 一般我们会直接利用语言的强制类型转换, 将浮点数转成整数. 事实上, 强制转换在计算机内部的实现相当于直接抹零, 而浮点数经过运算后, 往往不能准确地表示整数, 这会导致严重的问题, 特别是涉及到钱的时候.

例如,

double f = 9.99999;
int a = (int)f;
printf("%f, %d\n", f, a);

输出:

9.999990, 9

不要纠结 f=9.99999 是怎么得来的, 你只要记住, 浮点数经过计算后, 很

查看全文: http://www.udpwork.com/item/15993.html
|<<<1234567>>>| 一共7页, 74条记录