阅读视图

发现新文章,点击刷新页面。

通过dd命令测试硬盘读写速度/性能


要使用 dd 命令测试磁盘速度,可以写入一个临时文件并测量写入和读取速度。以下是一些示例:

测试写入速度

此命令将 1GB 文件写入磁盘,并提供写入速度

dd if=/dev/zero of=testfile bs=1G count=1 oflag=dsync
  • if=/dev/zero 使用空字节源。
  • of=testfile 指定输出文件。
  • bs=1G 设置块大小为 1 GB。
  • count=1 指定只写入一个块。
  • oflag=dsync 确保数据实际写入磁盘,从而提供更准确的速度测量。

示例输出:

1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.58025 s, 679 MB/s

测试读取速度

首先,清除文件系统缓存/Cache以避免缓存影响:

sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'

然后,将文件读回:

dd if=testfile of=/dev/null bs=1G count=1
  • if=testfile 从刚写入的文件读取。
  • of=/dev/null 丢弃输出,以确保仅测试读取速度。

清理

测试完成后,删除临时文件:

rm testfile

这些命令提供了近似的磁盘速度,但对于更准确的结果,建议使用专用的基准工具,如 fio 或 hdparm。

英文:How to Use dd Command to Test the Hard Disk Speed?

本文一共 234 个汉字, 你数一下对不对.
通过dd命令测试硬盘读写速度/性能. (AMP 移动加速版本)

扫描二维码,分享本文到微信朋友圈
75a5a60b9cac61e5c8c71a96e17f2d9c 通过dd命令测试硬盘读写速度/性能 I.T. LINUX 硬盘
The post 通过dd命令测试硬盘读写速度/性能 first appeared on 小赖子的英国生活和资讯.

相关文章:

  1. 智能手机 HTC One M9 使用测评 虽然我对手机要求不高, 远远没有像追求VPS服务器一样, 但是怎么算来两年内换了四个手机, 先是三星 S4 用了一年多, 然后 Nokia Lumia 635 Windows Phone, 后来又是 BLU, 半年多前换了...
  2. 按揭贷款(房贷,车贷) 每月还贷计算器 去年给银行借了17万英镑 买了20万7500英镑的房子, 25年还清. 前2年是定率 Fix Rate 的合同 (年利率2.49%). 每个月大概是还 700多英镑. 有很多种还贷的计算方式, 定率/每月固定 是比较常用的. 简单来说就是 每个月交的钱是...
  3. 同一台服务器上多个WORDPRESS站点的一些设置可以移出去 我自从把所有网站都挪到一处VPS服务器上 就发现很多事情省事很多 可以同时管理多个网站 包括 WORDPRESS博客. 比如我有四个WORDPRESS博客 然后我就把通用的一些资料给移出去 移到 HTTP或者HTTPS都不能直接访问的文件夹里这样就更安全许多. 文件 wp-conn.php 存储了 相同的数据库资料. 1 2...
  4. 比特币钱包线上和线下有啥区别? 我玩比特币比较晚, 最近1比特币能到1900多英镑, 真是吓人. 之前有一个线下的比特币钱包, 最近又在 CoinBase 开了一个线上的比特币钱包. 线上和线下的比特币钱包都是一长串的字母数字组合, 很像随机字符串 比如: 1J88t5UAgKBHhMgzkyH9bpY5mPdCYAe5XQ 这个明显是唯一的, 可以在 BlockChain 上查到所有交易记录和余额:...
  5. Naked 红酒 前几天在网上订车票加了1镑钱让送票上门,然后发现了一张 nakedwines 的优惠,买100镑红酒减 60 镑.然后就果断订了12瓶. 在提交订单的时候没看仔细点了一个确定,后来才知道那个是答应每个月成为会员,需要交会费 20 镑钱,然后好处就是每次买酒的时候能享受更大的优惠 (25% – 50%), 并且每个月都会送你一瓶红酒.后来我第一时间就发邮件取消了,但是可能已经下单了,所以第一次还是多送了我一瓶红酒,还有两个漂亮的杯子. 这样算下来, 13瓶红酒(2011, 2012年)+两个杯子,一共花了...
  6. GoPro运动相机可以拿来做什么? 自从新年打折入了GoPro Hero+运动相机以来, 也没怎么用上, 基本上是几天的热性就和其它电子产品一样被冷落到一旁. GoPro运动相机可以拿来做什么, 主要的几个用途是: GoPro 不太适合拍人像 拍孩子孩子容易动, 特别容易就糊了, GoPRO的摄像参数可以调的很少, 所以不要期望有大光圈能背景虚化, 唯一能拍的可能是大长腿, GoPro是广角镜头, 能拍出细长的身段和大长腿,...
  7. C++ 编程练习题 – 最多水容器 (递归) 题意: 给定一个数组, 每个数值代表柱子的高度, 那么求出这些柱子最多可以装多少水. 水的体积由较短的长度乘以两个柱子的距离. 上面的图的输入为 . 蓝色区域最可以装水为49. 最简单的方法就是暴力穷举, 那么复杂度为 O(n^2) , 需要穷举n*(n-1)/2对高度. 可以用递归来实现, 但是递归需要额外O(n)...
  8. 优化设计 个人主页 并且 PageSpeed Insights 双项 100分 坛子的个人主页 www.tanzhijun.com 不错 很适合个人主页的模板. 而且是手机友好. 于是我照着把 我的主页改了改. https://steakovercooked.com 并且做了几点修改: 0. 使用 google mod_pagespeed 把 JS,...

尝试升级 WordPress 版本 和 PHP 版本,然后失败了

尝试把 WordPress 从 5.2 版本 升级到 6.6 版本,把 PHP 从 7.4 版本升级到 8.3 版本。

任务艰巨得完成不了。

非常的崩溃。


前提

我现在的线上的博客,以及线下的开发环境,以及(如果还在不为我知的某个角落存在的话)商用用环境,都是 PHP 7.4 的。

最早些时候,应该算是2015年,正式入坑 PHP ,那时候基本是公司用啥,我用啥。PHP 5.2 5.4 5.6 都用过了,尤其是 5.2 大坑一大堆,摔过很多次。然后到 2016 年的时候终于用上了革新的版本 PHP 7.0。真爽。再后来开始自己独立开发环境,直接开了 DAMP 的坑,最初也是用的 7.0 版本,然后就很随意的升到 7.3 版本,主要是当时开发负担少。然后博客站也都升级到了 PHP 7.3。

再后来 2021 年接了一个外包项目。虽然当时 PHP 8.0 已经发布了,但是貌似周边支持都不怎么地。为了保证开发速度,直接用了 PHP 7.4 版本。当时还涉及到前端开发,Node环境也是大更新,很早之前一直用的各种热门前端库基本都死绝了。博客和本地开发环境也都升级到了 PHP 7.4,博客的 WordPress 程序倒是没变,还是 5.2 版本(这里埋了个大坑),只是偶尔会从官网下载代码包然后手动更新对应的文件,以修复些潜在的安全问题。

现在是2024年年末,就连PHP 8.0 都已经停止维护快满一年了,最新版本 PHP 8.3 也已经发布快满一年了。WordPress 都到了 6.6 版本了,一堆 WordPress 插件都已经停止 5.2 版本的支持了。

想趁着有时间有机会,把 PHP 和 WordPress 都升级了。

天真了。


第一天

首先是把线上的代码全备份一遍。这个毫无工作量,我之前写了个备份代码,直接就把自己的整站扒下来。然后把备份的站再部署到本地的开发环境上,再改几个数据库字段,就完事了。打开后台,先禁用所有插件,以便升级之需。

Apache2 和 MySQL 不用动,因为用的一直都是 Docker 的最新版本,这几年也没什么巨大的兼容性变化。

PHP 这块我不知道算不算麻烦。我把 PHP 从 7.4 到 8.3 的所有 不向后兼容变更废弃功能 全都看了一遍。没多少,就几页,几分钟就看完了。个人感觉这么多变更,只有一条能实际影响到我日常开发工作,就是自 8.0 起不再支持 带有默认值的参数后面跟着一个必要的参数

screenshot_on_b85m_by_flameshot_at_2024-10-24_22-51-45.png

其实个人工作中也很少这么用,因为易读性有点烂。论性能来讲的话这么写性能也很差,只不过以前工作过的公司里就有很多人这么写,主要是为了防止其他同事调用函数忘记传参(空参也是参)。

其余的改动基本影响不到我。我使用的基本都是 PHP 的官方建议用法,最多也就是会遇到某些外部库被遗弃然后有个平替的情况,比如数据库接口啥的,即使出错了立刻就能发现。

于是很自信的先把 PHP 环境升级到了 8.3 。因为是基于 Docker 的所以也完全不用担心环境污染的问题。

然后就崩了,WordPress 就打不开了。

这倒是意料之中,毕竟当年 WordPress 4.3 版本当年连 PHP 7.0 都不支持。我现在用的是 5.2 版本,最高能支持的 PHP 版本也才 7.3 ……

Screenshot_2024-10-24_at_23-02-46.png

什么?7.3?但我已经用 PHP 7.4 跑了 WordPress 满 3 年了啊???

什么兼容性测试……

下载了个 wordpress-6.6.2 的包,按官方文档手动安装。 崩得一塌糊涂

全部删除了重新来,这回用官方的自动升级功能,直接从 5.2 升级 6.6。真神奇,WordPress 官网被墙了这么久了竟然能秒下 WordPress 的安装包,我也不知道他是走的什么渠道。PHP 就这点恶心,前台所有操作你都看不到任何细节,就像是在用 Windows 一样。

成功安装。然后 崩得一塌糊涂 。这回不仅崩得稀烂,而且由于没手工删除后台的旧文件,新旧文件混在一起,更是手足无措。

就这么搞了超过6个小时,一直干到后半夜三点多,搞不定。

放弃,睡觉。

然后严重失眠,抽搐。

screen_IMG_2148.png


第二天 白天

首先考虑下到底是 PHP 的问题还是 WordPress 的问题。

按理来讲我已经把 PHP 的升级文档都看完了,并没有什么会天塌一般的变更,但是 WordPress 这边的确天塌了。

先在 PHP 8.3 环境下运行一下我的其他项目看看,结果我的个人主页就崩了。

screenshot_on_b85m_by_flameshot_at_2024-10-24_23-33-27.png

我用的是 2023 年 3.1.48 版本 的 Smarty,其基础版本是给 PHP 7.0 做的,可能旧了吧。

下载了最新版本的 smarty-5.4.1 ,然后

screenshot_on_b85m_by_flameshot_at_2024-10-24_15-36-49.png

什么玩意? implode is Deprecated ,我怎么不知道?

又去重新看了一遍 PHP.net 官网的 implode 文档和 PHP 升级文档。根本没有 Deprecated 。

然后在网上搜了一下,发现是 Smarty 的锅。而且 Smarty 还在 join 和 implode 之间反复横跳。更恶心的是,implode 和 join 在 PHP 7.4/8.0 中已经声明并废弃了 先数组后分隔符 的用法,但是在 Smarty 中却是强制要求 先数组后分隔符 ?甚至官方在 issue 里来来了句 Smarty is Smarty and PHP is PHP. 有病吧。而且你就算有病,你特么连个文档都没有,谁知道你有这种抽风的设计啊。

你要知道之所以我还用 Smarty 这种超级古董,就是因为这是一种 靠谱的、前后端分离、完全后端渲染、仅需要 HTTP 和 PHP 环境、不需要臃肿框架和特定语法,的网页渲染模式,是提供给搜索引擎最靠谱的传统模式。没有网页模板系统的话,想写这种纯后端渲染前端显示的页面,就只能 php 和 html 代码混写,非常的恶心。

现在 Smarty 抽风了,真就不知道以后还怎么不依赖框架写这种页面。我搜了下,Laravel 的 Blade ,和 Symfony 框架下的 Twig,貌似也可以独立使用,但是我对 Laravel 和 Symfony 基本一无所知,作为一个 PHP 开发者真是有点丢人。

话题扯远了,回到刚才。

我目前是不太想动我的个人主页的,这 WordPress 是大头,是主要内容。主页只是个入口。虽然主页改动起来并不困难,代码量少,Smarty 抽风的部分比较好找。但主页这一块我其实并不满意,主要是多语言这块用的传参而不是独立页面,很受搜索引擎嫌弃,基本上没收录,收录的也搜不到。但我的确没有精力和欲望去重做。

另一方面,WordPress这边,崩溃得最多的部分其实是插件。WordPress的代码质量本来就很堪忧了,第三方插件更是三脚猫,各种天花乱坠的不规范语法,可以说基本上都不能在 PHP 8.3 上运行。

另外我虽然看了 不向后兼容变更废弃功能 ,但是 PHP 新版新增的语法糖也有点天花乱坠。我用的是最新版的 php-cs-fixer_v3.64.0 ,没配置好的话就会把那些插件的奇葩写法转写成 8.3 的语法糖,有时结果更是瞎眼,基本没有易读性。

综上考虑,先放弃 PHP 8.3 的升级。先把能通的条通。PHP 的升级难度应该不是最高的,但是底下这些撇不掉的小垃圾目前是必须要保且支持不到 PHP 8.3,没精力做修改。

放弃 PHP 8.3 继续用 PHP 7.4 。


第二天 晚上

看兼容性列表,WordPress 6.6 也是支持 PHP 7.4 的。

但是实际上 API 改动实在太大了,而 PHP 前端应用最恶心的一点,就是 出错了,不报错

即使开启了 define('WP_DEBUG', true); define( 'WP_DEBUG_LOG', true ); define( 'SAVEQUERIES', true ); ,也经常是

  • 功能好像开了但是没开
  • 功能好像崩了但是啥日志都没有
  • 功能正常使用但是页面上打了一堆不知道哪里来的错误日志

面对如此大的一个工程而大部分代码逻辑都是不可靠的。升级到 6.6 实在是消受不起。

放弃 WordPress 6.6 ,只升级到比较近的版本。

要不然试试 5.5 吧,毕竟我在用的一款插件,作者自评最高支持到 5.5。

下了个 WordPress 5.5 的安装包,装完了。崩,但是崩得没有 6.6 多。

主题 graphene

不开插件,只看主题,首先就是文章的评论显示不出来。检查后发现是评论的API变了,而我的主题 graphene 是 1.9.4.3 版本的,不支持 5.5 。

screenshot_on_b85m_by_flameshot_at_2024-10-25_00-48-04.png

有时候看其他人的代码就是折磨,代码里写法五花八门,空格TAB混着,一会拼接字符串,一会替换字符串。单引号双引号混着用,左边括号有空格,右边括号换行了。

说实话我都不知道这算不算改好了,反正现在是能显示出来。我更担心的是其实还有哪个不知道的角落还有错,但是看不到,毕竟 PHP 前端 出错了 不报错

官方倒是有个新版的 graphene,但是我现在用的这个主题就是我大量改动过的,因为 graphene 原版的代码实在是, 太错了 。好多代码完全不符合前端的理念。然后是颜色和界面也是要一点一点从设置里调,那复杂和麻烦程度,说真的我更乐意重写 HTML 和 CSS 。

我真的想过很多次自己做一个 WordPress 主题,这个想法可是足够老了。但是当时 WordPress 3 版本的主题文档就恶心到我了,真的超级麻烦。而到如今就 WordPress 现在的代码质量,我估计开发主题会更困难更恶心。

也是怪不得其他更轻量的博客程序能后追直上。

插件 Disable WordPress Core Updates

接下来是 Disable WordPress Core Updates 这个插件。

这个插件是为了禁用 WordPress 的界面更新的。但是其实只有一行有意义的代码:

add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );

首先 create_function 这个函数在 PHP 7.2 废弃,在 8.0 中删除,所以我改写成了。

add_filter('pre_site_transient_update_core', function ($a) { return null; });

然后就见证奇迹了。能用是能用,但是 pre_site_transient_update_core 这个字段我在整个 WordPress 代码中都没找到。为什么做一个 pre_site_transient_update_core add_filter 就能抑制 WordPress 界面提示升级? 魔法啊?

然后开启这个插件的时候,更新页面是崩的。

screenshot_on_b85m_by_flameshot_at_2024-10-24_21-14-55.png

魔法。

插件 NIX Gravatar Cache

接下来是 NIX Gravatar Cache 插件。

这是个把 Gravatar 头像缓存到本地服务器的插件,只不过早就死透了。我当时随便改了点代码对付着用,大部分时间没出错也就那样了。

首先是这段代码。(红色部分是我添加的改动)

screenshot_on_b85m_by_flameshot_at_2024-10-25_01-04-29.png

不能直接执行 wp_enqueue_scriptwp_enqueue_style ,要先执行个 add_action('wp_enqueue_scripts', 引用能调用那俩玩意的函数); 。外国人看这种超长的单词时不会眼花吗?

然后是这么一段代码。

screenshot_on_b85m_by_flameshot_at_2024-10-25_01-00-47.png

WordPress 的 register_啥啥啥_hook(__FILE__, array($this, '函数名')); 写法全都作废了,要改成 register_啥啥啥_hook(__FILE__, array($this, '函数名'));

接下来底下那一节:

  • 假如 路径不可写 且 路径为目录,报错

否则

  • 假如 创建目录(权限777)失败 且 路径不为目录,报错

就这烂判断条件看得我脑子都快炸了也没弄明白为什么这破玩意能在我线上服务器上跑几年没报错,而我本地开发环境却根本跑不通。

screenshot_on_b85m_by_flameshot_at_2024-10-25_01-19-42.png

而且这玩意讨厌就讨厌在于,确在我的测试环境下报错了,但是 WordPress 只是多了个 .php-error 的样式并且高出来 2em 的一节,但是一点错误日志都没有!!! 出错了 不报错

最后还是靠自己写 debug 代码定位的问题。

这 TM 都是些不该是问题的问题,竟然多得到处都是。

2天,一点有效进展都没有。唯一有效收获就是这些屎山不碰就没事,一碰能崩得全身是屎。

反而自己写的没有引用那些垃圾玩意的插件和程序,没发现啥大毛病。


第三天

2天没啥进展,给我干懵了。

俗话说没事别升级,升级必出事。

原本的想法是先试着升级,如果不能平滑升级的话,大不了全摧毁了,然后把整个博客文章用导入的方法塞回去重建。如果插件出问题了,大不了找找看是否有新的替代品。结果搜了一下,靠谱的插件基本没有,一大堆商业推广的插件,和一大堆复合性插件,而且这些插件无论对 5.x 版本 还是 6.x 版本的兼容性都乱七八糟,问题解决不了,还有可能引入更多的问题。主题这边则是更不想换,一方面本身现在用的主题就是我大量修改过的,因为网上的各种主题,仅安全性就一塌糊涂,更别说 HTML 标准了。我这主题还是专门针对 1366×768 分辨率优化过的,能在 小屏幕 150% 比例正常显示。让我再去改个新的,工作量也是太大。

现在基本上没辙了。

PHP 这边其实还行,而且版本活跃度比较稳定。

screenshot_on_b85m_by_flameshot_at_2024-10-25_22-09-00.png

https://packagist.org/php-statistics 能看出各版本使用占比都跟维护相关。但 7.4 版本 比 8.0 版本还受欢迎 属实乐了。

但是周边应用真的是质量山体滑坡。WordPress自 3.0 版本就开始崩,后面很多发展都很魔幻,就连编辑器都是靠社区兜底,到现在已经想不清楚这玩意的产品路线是啥了。

其他生态我也不清楚,毕竟作为一个 PHP 开发,我连 Laravel 和 Symfony 都没用过,商用产品都是用 ThinkPHP 应付的,当然最爽不过不依赖框架没有条条框框自己从头写。

但是像 Smarty 这种原行业标志都走奇葩路线了。可以说整个IT行业,基本上,正常的元老人物都退出舞台了,剩下的这些,刨去臭鱼烂虾,就只有偏执而扭曲了,假若走向歪路,那就没得旧,而这一点在开源社区上也极为明显(因为闭源商业的死不死没人关心),Godot 基金会开搞政治正确炮轰特朗普和动画头像用户,Linux 基金会直接开踢俄罗斯的代码贡献者。IT 行业现在就像是一个患了早期癌症的癌细胞轻微扩散病人,看似有救但却是谁都不想救。


结论

给我干哑火了,懵逼了,现在不知道咋整了。

The post 尝试升级 WordPress 版本 和 PHP 版本,然后失败了 first appeared on 石樱灯笼博客.

[Frightening Dream] 梦见求职怀旧「003」

「部分噩梦是因为本人在现实中遭受精神上的打击,使得心情低落,导致创伤后心理压力紧张综合征后,会在梦中体现。这种噩梦可能会引发一些疾病。」

——摘自维基百科「恶梦」词条。

声明:「本故事是做梦梦到的,如有雷同那你精神有问题」


章节一

找工作,出门去面试。

大下午,刚下完大暴雨,北京天黑得跟深夜一样。积水没过鞋。

面试地点在一个小区的四层小楼里。

天黑,小区里一个路人也没有。

到了楼下,从一个入口找到了一个特巨大的电梯,看着像货运电梯,但是保养得特干净,应该是被载人载货混用了。

电梯外边墙上一个大彩色海报,上面写着各楼层的用途:

  • 1楼,美食城(请从正门进入)
  • 2楼,酒吧(此电梯不到2楼)
  • 3楼,用棕色的胶带贴住了
  • 4楼,XXX幼儿园

我要去的是4楼,应该是个IT行业的公司,怎么是幼儿园?

我看看手机,离约定的面试时间还有一个多小时。不如直接上去看看是不是走错地方了。

坐电梯上到4楼,出电梯一看,楼层空无一人,有几个房间亮着灯,往里面看,装修的确像是个幼儿园,只不过里面都是空的。地上有些幼儿园家具和玩具,看起来以前是个幼儿园,只不过没在运营。

我继续往里走,看看能不能遇到个人,问问是什么情况,这是我等会要面试的地点吗?


章节二

突然从走廊对面呼啦啦上来好多人,挨个进房间开灯,好像在规划什么似的。我走进一看,领头的那个不是我以前的前同事W(代名)嘛!W也看到我了,赶紧互相打招呼。

W后面跟过来的人,我一看,这不都是以前我在公司时比我先离职的老前同事嘛!

我问他们这是在干啥,W说,老公司打算用个新名字开个子公司,把这里三楼四楼都租下来当公司了,人都是以前的老人,直接在这简单收拾一下就要开干了,今天就是过来看看四楼怎么分配工位比较合适,大家都过来看看,看完了之后在这团建,玩一下午,然后楼下应该是个美食城,还有酒吧,晚饭也直接在这解决,反正公司报销。

W问我:咋这么巧你咋上这来了?

我:我是来面试的,说是在这四楼。

W:那要是知道是你那还面个啥啊,直接来就行了。等会别走啊团建玩游戏直接带你一个。

随便看了一下,都是以前的老同事,互相寒暄一下,发觉之前出国的几个前同事都没来,还是满遗憾的。


章节三

不大一会,前同事们把最大的那个房间收拾出来了。原本应该是幼儿园的给小孩玩耍的活动教室,现在一堆大人在地上坐了一圈有说有笑。

我进屋,有的前同事看到我,一愣,「哎呦,老猫(代名)咋也来了」,我说我本来是来面试的,「那还面试啥啊你想要啥岗位等完事了直接跟我们说就行了。等会做游戏你可得在我们这一组啊。」

W:「那可不行,我先遇上的老猫,他就得跟我们一组了」

另一个前同事:「唉W你不能这样,你看我们组人少,你得给我们匀几个」

W:「那我把最后进屋那几个人匀给你!」

得,我还是个抢手货。

前同事M(代名。M以前是W的项目组组长)进屋,看到我,「呦,老猫来啦,你分哪个组了?」

W:「分咱们组了。」

M:「你给他手环了吗?」

W:「还没有呢。」

说罢,W拿出来个浅绿色的手环,直接套我手腕上了。「这是咱们公司的手环,也是门禁卡,你进门的时候刷这个手环,门就开了。另外今天做游戏咱们一个组的,手环颜色是一样的,都是浅绿色的。」

我看了一下周围,所有人手上都带着个手环,颜色一共四种,看来今天做游戏是分四组。


章节四

开始团建,做游戏。

第一个游戏,一个前同事竟然捧出来一摞 3DS 出来,第一个游戏竟然是要在 3DS 的一个排队游戏里比赛的。

然后果然我们组首推我第一个参赛……果不其然就拿了第一。怪不得每个组都想争取我当组员。

自己玩了第一个游戏,然后又看着老同事们继续玩。

我突然一愣,想起以前大家还在老公司的时候,开会啊,团建做游戏啊,都是有零食有饮料的,怎么现在没有了?

W:「这附近貌似还真没看到有超市,没买着。」

我:「我下楼去一楼那个美食城看看有没有吧。」

W:「你手环拿着呢吗?等会从3楼进来直接刷手环就能开门。」


章节五

我从货运电梯下楼,直接到了楼外,绕着整栋楼走了半圈,才看到整栋楼的正门。

天仍旧很黑,像深夜一般。

从正门进入,映入眼帘的,是一排排餐饮用的桌子,而大部分椅子则倒扣在桌子上,看起来像是很久没有用过一样。

继续往里走,看到有亮灯的柜台,有个人弯着摇拿着拖把在柜台后面拖地,也不像是在营业的样子。听到我的脚步后也没有站起来看我一眼的意思,弯着腰就回应了一句「还没到营业时间呢」,说罢就进里面的屋子了。

我四处看了一下。基本所有柜台都没有亮灯或者营业,都没有人在。

有个通向二楼的楼梯,但是整个楼梯都被椅子堆死了,根本不可能从那里上到二楼。

最里面有个柜台则是有个人坐在那玩手机,不过那个柜台连牌子也没有,看起来更像是值班的保安。

我过去问保安哪里能买东西,保安:「不营业。」

我又问从哪里能上楼,保安:「都说了不营业。」

我示意我其实是要去3楼4楼,保安竟然用嫌弃的眼光瞟了我一眼:「3楼4楼早就黄了好久了根本没东西,你上去干啥!」


章节六

没办法只能出大楼,然后走到大楼后门坐电梯再上去。

到了4楼,电梯打开,却发现整个楼层一丝光亮都没有。没有房间开灯,也没有人。我往里面走了一点,整个楼层除了我脚步声的回音之外,什么都没有。没开灯,房间里有什么也看不到。

很伤心的从电梯下楼,到楼下,外边又下起来大暴雨了。

门前积水很快就涨了上来,水深得能划船。


章节 Nostalgic PTSD

想拿手机看看几点了,却发现自己手腕上还套着手环,只不过在这乌七八黑的大黑天里,手环不是浅绿色的,是橙棕色的。

醒了。

The post [Frightening Dream] 梦见求职怀旧「003」 first appeared on 石樱灯笼博客.

程序员的修炼-04-关于测试的一些思考

本文是 <程序员的修炼-从优秀到卓越> 的读书笔记的第四篇,这本书的作者是 Jeff Atwood,StackOverflow 的创始人之一,Jeff 的文章涉及面很广,他是一个经验老道的程序员、管理者、创业者,这本书谈到了编程之外的很多东西,不管你是初级工程师,还是资深工程师,本书都值得一读。随着你的阅历的增加,每一次重读这本书,都会有不一样的感悟,正如书名“从优秀到卓越”,作者为你指明了道路,至于是否能成功,则要看自己的修炼了。

我会把读书过程中一些精彩的言论摘录下来,有时会加入一些自己的见解或者经历,读书笔记的大纲与书本身的大纲是一致的,这也是我从另外一个地方学到并一直在用的“如何阅读一本书”,记录下来方便自己经常查看,也方便读者查看。下面是<程序员的修炼-从优秀到卓越> 读书笔记系列:

  1. 程序员的修炼-01:绝地反击之术
  2. 程序员的修炼-02:编程之道
  3. 程序员的修炼-03:Web 设计原则
  4. 程序员的修炼-04:关于测试的一些思考
  5. 程序员的修炼-05:了解你的用户
  6. 程序员的修炼-06:互联网那些事
  7. 程序员的修炼-07:游戏与编程
  8. 程序员的修炼-08:阅读之美

单元测试是必要的

单元测试真正的价值在于,它迫使你停下来,为测试思考一番。大部分开发人员都不做测试!他们只是随意输入一些数字,然后点几个按钮,如果这个过程中没有发现尚未处理的异常,他们就觉得代码已经足够好了,可以交付给测试团队了。

单元测试让你为刚刚写下的代码思考一连串艰难但又不得不思考的问题:

  1. 我该怎样测试这块代码?
  2. 我该执行何种测试?
  3. 通常的情况是怎么样的?
  4. 可能碰到的异常情况有哪些?
  5. 我有多少外部依赖关系?
  6. 我可能碰到哪些系统故障?

有时候是硬件问题

作者这一节主要举了一个他们实际遇到的例子,由硬件引起的 bug,排查起来异常困难,但如果用对了工具,那么将事半功倍。

尽管软件是不可靠的,但我们不能总把矛头指向软件,有时候,你面对的确确实实是一个硬件问题。

异常驱动的开发

作为一个开发者,你不应该让用户来指出哪里有错误,你应该比用户更加熟悉你的系统。所以你需要建立一种异常和错误报告机制,你需要集中在一个地方去处理所有的错误,这个地方是你团队里面的所有的开发人员非常熟悉的,而且每天会接触到的。比如 Stack Overflow ,用 ELMAH

对于 “测试驱动开发” 的一个思考是时间投入回报比,如果你修复了一个真实用户永远也碰不到的 bug,那么你的修复有什么价值呢?

作者建议大家使用 “异常驱动的开发”:

  1. 将你的软件发布出去,让尽可能多的用户去使用它
  2. 然后一心一意地研究他们产生的错误日志,使用那些异常日志去找出问题的根源,并且专注在你的代码中有问题的区域
  3. 重新架构,重构代码,以消除最严重的3个问题
  4. 快速迭代,部署,如此周而复始

这种数据驱动的反馈机制是非常有效地,几个迭代下来,你的程序将非常稳定,坚如磐石。


《程序员的修炼——从优秀到卓越》是《高效能程序员的修炼》的姊妹篇,包含了Coding Horror博客中的精华文章。全书分为8章,涵盖了时间管理、编程方法、Web设计、测试、用户需求、互联网、游戏编程以及技术阅读等方面的话题。作者选取的话题,无一不是程序员职业生涯中的痛点。很多文章在博客和网络上的点击率和回帖率居高不下—— from 豆瓣

Jeff Atwood于2004年创办Coding Horror博客(.codinghorror.),记录其在软件开发经历中的所思所想、点点滴滴。时至今日,该博客每天都有近10万人次的访问量,读者纷纷参与评论,各种观点与智慧在那里不断激情碰撞 —— from 豆瓣

《程序员的修炼——从优秀到卓越》的写作风格风趣幽默,且充满理解和关怀;适合从新手到老手的各个阶段的程序员阅读,也适合即将成为程序员的计算机和相关专业的学生阅读。《程序员的修炼——从优秀到卓越》能够帮助读者更多地关注技术工作的人性和人文因素,从而实现程序员职业生涯的成功转折 —— from 豆瓣

关于我 && 博客

下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!

  1. 博主个人介绍 :里面有个人的微信和微信群链接。
  2. 本博客内容导航 :个人博客内容的一个导航。
  3. 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
  4. Android性能优化知识星球 : 欢迎加入,多谢支持~

一个人可以走的更快 , 一群人可以走的更远

微信扫一扫

❌