Category: 学习笔记

软件设计里的 “Throw often catch rarely”

QA工程师走进酒吧,要了一杯啤酒,要了0杯啤酒,要了999999杯啤酒,要了一只蜥蜴,要了-5杯啤酒,要了一个2345xcvvcasdtr,酒保从容应对,QA工程师很满意.接下来,一名顾客来到了同一个酒吧,问厕所在哪,酒吧顿时起了大火,然后整个建筑坍塌了. 用 try catch 来一直隐藏错误 但是这只会让可能的错误就越来越大. 在程序里 要经常的抛出异常 (throw exception) 而要少用 try catch (而且异常类型大部分要清楚, 确定的异常 而不是 general exception 通用异常) 新的酒吧继续开业,直到又有一名问厕所的顾客出现.周而复始,仿佛酒吧从来就没有坍塌过.酒吧老板对酒吧的经营很满意,因为老板从来不去自己酒吧也不会去问厕所. 本文一共 221 个汉字, 你数一下对不对. 软件设计里的 “Throw often catch rarely”. …

活到老学到老 – Udemy 在线学习

最近了解到一个 E-learning 的网站 www.udemy.com 上面有很多免费的课程 当然 主要是以付费的课程为主. 不仅是计算机 还有金融 医学等课程 课程主要语言是英语 – 可以搜索. 我搜索加入 Enroll 了几个计算机的课程 – 因为是免费的 所以一般是初级入门 也不排除有几个讲得挺深入 挺清楚的. 每个课程都有人给评分 – 那些基本是满分的课程一般都很不错 – 学生评论也是个很好的反馈方法. 进入课程后就有 课程大纲, 然后每节课的 …

C++ 使用 Parallel For 多线程 计算 圆周率 – Monte Carlo

计算圆周率是个老掉牙的课题. 最为简单的 直接易懂的无非就是通过 Monte Carlo 来随机撒点 然后 计算 在圆内的点和总共的点数的比例再乘于4就能得到一个估计的值. 当然随机数的产生一定要质量好 虽然计算机没有真正的随机算法 但是一些 伪随机 算法 比如 xorshift 就很不错. 单机版本的计算 简单明了. int monte_carlo_count_pi(int n) { int c = 0; for (int …

Delphi 软件分享: 智慧中国象棋 (Chinese Chess)

十年前(2005年)我本科的毕业设计做了一个中国象棋的 桌面程序 智慧 中国象棋 (Xiang Qi) 一款完全免费的 中国象棋 (Xiang Qi) 游戏 后来认识媳妇之后 改名成 ‘智慧’ 我俩名字的一个字. 最开始代码是在DELPHI 7下编译的 后来移到 DELPHI 2007 最近休假 又整了整代码 移到了 DELPHI XE8 下编译. DELPHI XE8 下支持 …

DELPHI 2007 下的 PARALLEL FOR 实现

Delphi XE7 之后 语法就加了 Parallel.For 用于多线程编程. 有一个第三方开源的库 OmniThreadLibrary (OTL) 也可以用 但是在 D2007 下由于没有 匿名函数和通用模板 一些OTL的高级语法就都不能用了. The AsyncCall 也是第三方开源的 库 支持 D2006到 XE2 但是也没有 Parallel.For 语法. 下面就简单在 D2007 下实现了 多线程 …

现代编译语言: 整数计算性能比较: Delphi, C, C++, C#, JAVA

现在的编译器已经非常强大, 在大多数情况下, 开发者无需手动进行底层代码优化. 正如计算机科学家 Donald Knuth 所说: “过早优化是万恶之源”. Pre-optimisation is the root of evil. 过早关注细节优化, 反而可能导致代码复杂度增加, 降低可读性和可维护性. 与其过度纠结于微小的性能提升, 不如专注于编写清晰/可扩展的代码, 并在真正的性能瓶颈显现后, 基于数据进行针对性的优化. 现代软件开发更强调架构设计/算法选择和合理的数据结构, 这些往往比局部优化更能带来实质性的性能提升. 以下测试是基于: Benchmark. 计算PI的程序在这里能找到 源代码. 测试机器的性能配置如下: 16GB …

升级到 Delphi 10 西雅图/Seattle

公司前不久买了DELPHI XE8 (花了1400多英镑 一套). 并且买一送一, 我选择了 Delphi 2007. 因为D2007是 ANSI版本中最好的WIN32开发利器. 由于当时选了一年的升级服务 所以昨天发布的 Delphi 10 Seattle 版本可以免费升级. 和WINDOWS一样 这次EMB公司没有出XE9而是直接跳到了DELPHI 10. 据说这也是DELPHI最后的一个版本之后的版本会以更新的方式推送给有更新服务的用户. 尊敬的Embarcadero公司的客户, Embarcadero Technologies公司很高兴地宣布,公司的RAD Studio 10西雅图,德尔福10西雅图和C ++ Builder 10西雅图的释放. 此版本是提供给XE8用户提供了一个积极的更新订阅.与10版开始,不再需要在更新订阅用户有10版的具体序列号和许可证.只要更新订阅是最新的,现有的许可证将自动更新的新版本. …