编程小技巧:尽早汪汪汪的狗才是好狗;少用胶水;避免被僵尸吃掉脑子

尽早汪汪汪的狗才是好狗

我们的工作是去野外采摘药草,然后卖给药店,为了提高效率,我们打算买条狗,此刻有甲乙两条狗,可以购买...

甲狗:一旦发现药草,就立刻汪汪汪!

乙狗:发现药草后,默不作声,然后向随机方向走上100米,然后汪汪汪...

我们应该选择哪条狗?乙狗显然没啥用

对应到日常编程中,我们的代码,接收到不合理变量输入时,应尽快报错(汪汪汪),而不是等到程序崩溃了,再去回头找错误

少用胶水

我买了个手办,需在墙上固定一个木板,把手办摆上去,有两个方案:

方案A: 搞瓶胶水,然后把木板侧面与墙粘合在一起。

方案B: 在墙上打孔,然后在孔里加两根棍,形成一个支架,在支架上放一个木板。

胶水方案方便,问题在于,黏到墙上,就完全无法调整,而支架可以加小垫片精调。

需求也会随时间变化,多放几个手办,胶水粘性无法承担更大的重量,自然被废弃。

写码不是一锤子买卖,要留出精调的参数,也要方便修改,适应不断增长的需求

避免被僵尸吃掉脑子

内存泄漏是一个经典问题,用Javascript写程序,我们需要使用定时器,监听器,如果我们用完后忘记清理,就会造成内存泄漏。这些定时器,监听器就像一只只僵尸(Zombies),在地下室里蹒跚而行(参考植物大战僵尸中的普通僵尸)

僵尸

这些幽灵般的不死不灭的僵尸会吃掉大脑,让记忆外泄(内存泄漏), React Hook这类工具也给出了 useEffect return 函数的方式,专门清理这些僵尸;

内存泄漏无小事,关注代码运行的副作用,规范编码,不要让僵尸吃掉脑子

本文永久更新地址:

https://fangyuanxiaozhan.com/p/2023-02-04-14-57-27-good-code/

土地财政锁死了中国年轻人的未来,买房变租房,一念天地宽

原贴 本人目前是码农,关于是否要在 35 前进入体制内,和女朋友有了如下对话,不知道大家怎么看 https://v2ex.com/t/912179

本人目前是码农,关于是否要在 35 前进入体制内,和女朋友有了如下对话,不知道大家怎么看 - V2EX - v2ex.com

在V站看到篇帖子,发帖的老哥和他女朋友因为房子,体制,35岁后码农就业的问题,进行了一波儿深入的探讨。

我的看完后的,直观感受是,这也太没劲了。作为一个程序员,我和帖子中的老哥处境类似。

作为一个创业公司的程序员,我连下个月做什么需求都无法确认,当然也无法预测10年后某地段的房子会不会升值。

为了10年后所谓的资产升值,疯狂压榨当下的自己,并不是正常的做法。

儿孙自有儿孙福,如果父母很聪明,下一代的智商,大概率是比不上父母的,但智商比不上父母,并不代表下一代不幸福,还未结婚,就考虑下一代孩子阶级跌落,本就是一件很无厘头的事,那些疯狂鸡娃的人,就好比是宫崎英高世界里追求永生的人,无一例外全是悲剧。

我所在的小区,离腾讯滨海大厦很近,有三十多层楼,距今已有二十年,我感觉已经不太宜居了,物业也都是50岁左右的人,配合超高的楼层,再过十年,不知道还有多少户人家。

人要给自己留余裕,不要勉强自己,活得久比什么都重要。

本文永久更新地址:

https://fangyuanxiaozhan.com/p/2023-02-01-20-08-34-it/

流浪地球2真是量大管饱

看完了流浪地球2,近三个小时的膀胱局,真的是量大管饱。

流浪地球2展现了肉眼可见的经费爆炸,是我看过最棒的国产科幻电影,太空电梯,海量无人机,火炮塔防,核弹炸月球,每个场面都在展示电影工业的力量,看完后,我有点后悔没买IMAX厅的票。

在流浪地球2中,有星际穿越的影子,穿越时空的剧情交互,让科幻始终伴随剧情,而不是单纯的CG爽片。

中国需要强大的电影工业,争夺文化霸权,科幻题材更容易穿越国界,形成独特的科幻叙事文化,2023年,流浪地球2开了个好头~

本文永久更新地址:

https://fangyuanxiaozhan.com/p/2023-02-01-20-04-07-update/

最终幻想7重制版PS5版通关体验(附游戏摄影图)

最近一个月,前后花费了30小时,在PS5通关了最终幻想7重制版,做了游戏摄影,本篇先抑后扬,简单聊一下最终幻想7重制版的优缺点。

缺点

  • 地图做的像迷宫,有大量上下楼梯的场景,不看地图,很容易迷路。
  • 60%的时间都在赶路,赶路过程中绝大多少场景都很破败,不值得摄影留念。
  • 最后一章的公路追逐战,纯纯搞玩家心态,无法使用恢复补HP的道具,玩家需要骑着摩托拿着刀,冒着枪林弹雨,去刀砍技能丰富的装甲车,装甲车血量极其厚,纯纯刮痧,手都按麻,我是打了四遍才过。
  • 绝大多数场景过暗,走下水道的章节,要一边找路,一边解密,一边重复打怪,如果不是有妹子NPC一直给主角对话,真的玩不下去了。

优点

  • 剧情曲折,超有代入感,整个游戏分18章,在不被剧透的前提下,就像读一本极其上头的超现实主义小说。
  • 人物建模精致,女性NPC蒂法,爱丽丝的建模360度无死角的精细,爱看漂亮妹子的玩家心满意足。

  • 欲望之都的场景设计很棒,有点日本的感觉,光影舒服,男主角被迫女装的一段设计很搞笑。

  • 玩法丰富,很多章节设计了独特的小游戏,投飞镖,操控机械手臂,启动气压阀,跳舞,摩托车追逐,能看出游戏开发者的用心。

游戏摄影

FINAL FANTASY VII REMAKE_20221229231436

FINAL FANTASY VII REMAKE_20221229231438_1

FINAL FANTASY VII REMAKE_20221229231453_1

FINAL FANTASY VII REMAKE_20221230201243

FINAL FANTASY VII REMAKE_20221230201752

FINAL FANTASY VII REMAKE_20230101184452

FINAL FANTASY VII REMAKE_20230101184737_1

FINAL FANTASY VII REMAKE_20230101184921_1

FINAL FANTASY VII REMAKE_20230101185200_1

FINAL FANTASY VII REMAKE_20230101210530_1

FINAL FANTASY VII REMAKE_20230101215306_1

FINAL FANTASY VII REMAKE_20230101215322_1

FINAL FANTASY VII REMAKE_20230101220137_1

FINAL FANTASY VII REMAKE_20230101220321_1

FINAL FANTASY VII REMAKE_20230101220618_1

FINAL FANTASY VII REMAKE_20230101221029_1

FINAL FANTASY VII REMAKE_20230101222222_1

FINAL FANTASY VII REMAKE_20230102170218_1

FINAL FANTASY VII REMAKE_20230102170435_1

FINAL FANTASY VII REMAKE_20230102170528_1

FINAL FANTASY VII REMAKE_20230102171007_1

FINAL FANTASY VII REMAKE_20230102171206_1

FINAL FANTASY VII REMAKE_20230102172028_1

FINAL FANTASY VII REMAKE_20230102180301_1

FINAL FANTASY VII REMAKE_20230102181141_1

FINAL FANTASY VII REMAKE_20230102181247_1

FINAL FANTASY VII REMAKE_20230102181826_1

FINAL FANTASY VII REMAKE_20230102181840_1

FINAL FANTASY VII REMAKE_20230102181842_1

FINAL FANTASY VII REMAKE_20230102182016_1

FINAL FANTASY VII REMAKE_20230102182821_1

FINAL FANTASY VII REMAKE_20230102183009_1

FINAL FANTASY VII REMAKE_20230102183108_1

FINAL FANTASY VII REMAKE_20230102183253_1

FINAL FANTASY VII REMAKE_20230102183508_1

FINAL FANTASY VII REMAKE_20230102183555_1

FINAL FANTASY VII REMAKE_20230102183620_1

FINAL FANTASY VII REMAKE_20230102193814_1

FINAL FANTASY VII REMAKE_20230102201220_1

FINAL FANTASY VII REMAKE_20230102201252_1

FINAL FANTASY VII REMAKE_20230104220831

FINAL FANTASY VII REMAKE_20230104221726

FINAL FANTASY VII REMAKE_20230104221750

FINAL FANTASY VII REMAKE_20230104221836

FINAL FANTASY VII REMAKE_20230104232929

FINAL FANTASY VII REMAKE_20230104234406

FINAL FANTASY VII REMAKE_20230104234526

FINAL FANTASY VII REMAKE_20230107220049

FINAL FANTASY VII REMAKE_20230107220534

本文永久更新地址:

https://fangyuanxiaozhan.com/p/2023-01-08-13-50-22-ff7/

玩最终幻想7重制版联想到一些编程趣事(持续更新…)

特定关卡中,丢弃关卡机器人BOSS身上的零件,可以弱化BOSS;最近接入Agora(声网)的SDK,我发现每次开启或关闭对麦克风设备的占用,Agora整个音频模块会直接重启,会导致喇叭中断不可用;我忽然感觉,神罗公司的机器人工程师真是良心,被主角团拆了5个模块,依然能保证机器人正常工作,换成现实中的Agora团队,缺失五个模块,机器人能不能启动,都是个问题

克劳德去杰西家「借」到钥匙,开后门,未关门(无法关),直走拐弯,回头看,门自己关上了,为了避免BUG, 程序模块会在「某些情况下」主动重置状态,而重置状态本身就是BUG

和tifa在钢铁森林走迷宫,全是断路;开发程序会用到很多现成的功能包,这些包并不能保证稳定,程序员更换依赖包的过程,就像是在走迷宫

本文永久更新地址:

https://fangyuanxiaozhan.com/p/2023-01-01-16-32-47-game-final-fantasy/

赚钱之外的爱好有什么用?

按照主流的价值观,除了赚钱,其它的兴趣什么的都是不误正业。

想要了解一个人,我会先询问一个人的兴趣

如果一个人的兴趣是玩游戏,玩的还是超高难度的魂类游戏,那他是个有坚韧精神的人。

如果一个人的兴趣是长期写博客,那他是个乐于分享且乐于探索新事物的人。

如果一个人的兴趣是长期健身,而且身材好于普通人,那他是个严于律己的人。

如果一个人的兴趣是疯狂抽烟,且除此之外别无爱好,那他可能是个热爱祖国痴迷纳税的乐子人…

兴趣体现了生命的质量与能量,一个人兴趣多一分,应付复杂环境的自由度就大一分。

本文永久更新地址:

https://fangyuanxiaozhan.com/p/2022-12-08-19-34-54-hobby/

2022年终总结

这篇文章总结一下2022年做了啥...

换工作

zhaoolee年初换了份工作,从一家金融公司转到一家互联网公司,金融公司会儿活儿多,互联网公司活儿会儿多。

研究开发桌面端应用

进入新公司,更新了一波技术栈,开始做Electron技术栈的桌面端应用,把已有的Web端应用,扩写为桌面端应用,路由适配,多窗开发,开机启动,托盘信息,日志收集,进程通讯,sdk集成,签名发版,自动更新...

与macOS Windows原生开发相比,Electron优化不够极致,优势是很省人力,一套核心代码打通Web, Windows, macOS, Linux ,目前的腾讯QQ也在切Electron技术栈,人力成本优化真的无处不在

我翻阅了大量Electron开发相关的中文资料,普遍写的很烂,Electron相关的中文书籍也已经过时,水平很一般,废话多,关键地方一笔带过。

zhaoolee打算以一线开发者的身份,写一套实用的Electron开发经验博客,选用Github Wiki作为载体,挖个坑,留给2023年

更新一些树莓派家庭服务以及内网穿透玩法相关的博客

去年10月份zhaoolee开了一个把树莓派变身家庭服务器的开源项目 https://github.com/zhaoolee/pi 目前已经有1K Star, 但写了7篇后,树莓派就变成了理财产品(变得毫无性价比),比显卡价格还坚挺。不过zhaoolee还是保持了项目的更新,目前更到了15篇。

关于内网穿透,树莓派家庭服务器很多玩法都是基于frp内网穿透技术,最近几周,zhaoolee在普通Windows笔记本上,基于frp和v2ray,实现BT种子的双向网络穿透,可以和海外老哥进行硬盘资源的p2p交流

更新受欢迎的开源项目,折腾新的开源项目

较多维护的已有项目:

  • zhaoolee的《Chrome插件英雄榜》和《中国人的表情包》项目在Github依然保持更新;
    zhaoolee-github

  • 用Hexo方式管理WordPress的脚本支持了中文URL(虽然中文URL对SEO不友好,但收到issues后,我还是支持了);

今年又开了一些新坑:

  • 写了一个油猴脚本,可以为任何标准WordPress网站建立一个类似GitBook的目录;

  • 写了一个基于Github Actions的灵感收集库,可以对收录的网站,每天进行连通性测试并展示连接速度,支持HTTPS证书有效期检测(被阮一峰老师推荐了,目前1.5K Star);

为了消除魔幻新闻的的负面影响,玩了一些「后悔没早点玩到」的单机游戏

2022年有很多魔幻新闻,那些新闻总让人觉得很消极,后面我找到一种方法来抵消这种消极,那就是玩单机游戏,很感谢这些游戏,把我暂时拉到了另一个世界去逃避现实

今年把异度神剑2 和 异度神剑3 通关了,也许是对日式RPG情有独钟,目前在玩最终幻想7重置版;

玩游戏其实是一件很奢侈的事,一需要设备,二需要时间,三需要找到自己喜欢的游戏

好的游戏让玩家感觉时间没有虚度,听到异度神剑2的配乐 One Last You 响起,配合大结局的动画,让我后悔没有早点玩到这样的游戏。女神异闻录5的美术风格,让我发出游戏居然可以做成这样的赞许,也理解了P5天下第一这个梗。

p5

2022年是艰难的一年,三国耗尽英雄气 两晋皆是鼠辈出,小丑们粉墨登场,给全国人民演出一场场闹剧,这些小丑其实一直存在,只不过有了互联网,小丑们的荒诞直接呈现在了全国人民面前

控制饮食锻炼身体

今年尝试了5个月左右的过午不食,体重下降到了比较理想的范围,控制饮食和进行锻炼,都有助于体重下降,但实践下来,控制饮食的效果远好于锻炼

另外,控制饮食还有一个好处,吃不饱只有一个烦恼,吃饱了会有无数烦恼,保持相对饥饿的状态,能避开很多精神内耗

新一年的计划

  • 持续更新技术博客,树莓派和内网穿透系列会持续更新(Just for fun)
  • 保持身体健康,避免二次感染新冠
  • 开坑Electron实用开发技巧系列博客
  • 能做到以上三点,我就很满足

2022

本文永久更新地址:

https://fangyuanxiaozhan.com/p/2022-12-31-12-18-02-2022-mark/

年青人为什么会变成愤青

初入社会的年轻人,相信奋斗就能改变人生,然而大多数情况下,父母因素的决定性更大。

领导们倡议,给年轻人更多的生存空间,一个个都要一本正经地胡说一通,很享受那种唾星四溅的快感,但又不许年轻人讲话,于是,网络环境越来越扭曲变形。

由于太缺乏改变人生的正常途径,才导致任何可能暴富的东西,都异乎寻常的流行,比如股票,炒房,P2P,传销,互联网金融,加密货币,赌球…

以上套路被年青人探索完成后,毫无收获,就容易变成愤青。有人说,青年是一个国家的希望,准确来讲,愤青才是一个国家的希望

本文永久更新地址:

https://fangyuanxiaozhan.com/p/2022-12-08-19-06-38-young-people/

软件开发随想录

大公司开发的软件普遍很难用,很重要的一个原因是:项目的设想太宏伟了,但是细节的设计没有跟上

小开发团队乐于打磨细节,因为打磨的成本很低,找到开发者,面对面,一杯咖啡的时间就能搞定,低成本高回报

而大团队修改一个细节,需要走一套流程,繁杂的流程足以劝退想要打磨细节的人

当然,以上规则不只适用于大公司的软件开发。

编写一个设计优雅,易于使用的软件产品,其实是很难的。

虽然看到最终成品的时候,你可能会觉得不难做,但实际上是很难的,就好比你在看精彩的相声演出,你觉得演员很轻松,实际上换了你就困难无比。

但毁掉一个优雅的软件产品,却意外的简单,只需要加一些晃动手机触发的开屏广告即可。

当然,以上规则不只适用于软件产品。

程序员们一直崇尚 talk is cheap, show me the code (多说无益,代码拿来)

偏偏很多人就只会 talk,团队越大,talk人的比例越高,小的团队,成员之间优势互补,大的团队,互扯后腿才是常态。

乐于talk的人有个特点,就是喜欢造新词,如果新词只有造词人自己懂,那就是好词,独占了新词解释权,talk什么都是对的。

本文永久更新地址:

https://fangyuanxiaozhan.com/p/2022-12-08-19-00-39-software-dev/

程序员编程能力会自发地退化

今天读了一篇十年前的博客文章,内容是作者对于计算机专业只进行Java教学,而不进行c系指针相关原理教学的担忧。

作者认为计算机专业课,应该使用难的知识筛选学生,淘汰那些没有兴趣编程,或者没有能力编程的学生,让他们不要浪费生命,趁早去读政治学或法学。

十年后,再看这篇文章,我忽然理解,大学java程序设计课老师,对于一些学生连java学起来都费劲的叹息。

校方一般会觉得,学生拿不到学位很可惜,但这部分人真的不适合编程,比较幽默的是,获得计算机学位80%的人,还是主动脱离了编程这个行业,因为真的没能力,写出的程序漏洞百出,真的很煎熬。

最近一个我鸟厂同学讲,某个同事问他「get大key为啥会cpu满,如果是内存读这种操作应该不会需要cpu吧」,同学只能尴尬笑笑「他估计也不知道什么是总线,那些所谓搞机器学习人工智能的,就会改几个参数,张嘴就要源码和论文」

只要降低难度,计算系的淘汰率就降低了,学生人数上升了,经费预算变大了,可谓皆大欢喜,但代价呢?

长期来看,我们会失去有能力编写操作系统内核的程序员,我们会像刘慈欣笔下的上帝文明一样,拥有极其先进的技术,而驱动这些先进技术的底层技术是核聚变产生的能量,但对于巅峰时期的上帝文明而言,核聚变就像钻木取火一般简单,所以没有任何记录,过了很多年后,上帝文明需要修复日渐老化的飞船时,竟发现无计可施。

美国1969年的阿波罗登月计划,让整个人类文明为之震撼,但到了2019年,美国再次期望登月时,却发现缺乏人才,一度延期到2025年…

当代,我们拥有不断优化操作系统的程序员,但随着时间推移,计算机系学生们,可能连Python都写不了就能毕业,无法从事改参数以外的工作,那时,人们望着没能力修改的系统内核代码,只能留下时代的眼泪…

本文永久更新地址:

https://fangyuanxiaozhan.com/p/2022-11-21-22-09-03-p/