Becomin' Charles

算法 | LNMP | Flutter | Mac

Becomin' Charles

学习 UML 的历史可以追溯到 2003 年,即便在当年也不是什么新鲜技术。不过,我觉得,即便今天我也不敢说,我真的很懂 UML 了。

不过,如果想学习面相对象技术,比如 OOA——面向对象分析,OOD——面向对象设计,你就不可能绕开 UML 语言。除非你永远都是单打独斗,只编写规模很小的软件,而且从不依赖别人写的复杂软件库。要知道,在软件构建这个领域,这几乎是不可能的。

阅读全文 »

学习 Vue 真是十分“困难”的一个过程,作为一个十年以上的老程序员,我这么说,肯定很多人觉得不公平。不过这就是我的真实体验。

网上确实是有很多很多的教程,以及,Vue 确实简单易学,我想说的是,如果你自己完全独立自学,到能做出一个真正完整的应用,中间似乎有一些难以跨越的坎。即便对我这个工作十年以上的老程序员来说都很难。

本文尽量不记录那些普遍能找到的文档视图交给你的东西,比如怎么写这个代码,怎么写那个代码等等,你几乎无法找到怎么实现一个具体东西的代码。我尽量写一些,各种入门文章中都没写的东西。

阅读全文 »

事情都是环环相扣的,决定了要用网站生成器来管理个人博客,就要使用 Markdown 来撰写内容,发现可以使用 Obsidian 作为 Markdown 编辑器和内容管理器,于是更高频率的使用 Obsidian。

于是需要一个更舒适友好的 Obsidian 环境。

阅读全文 »

在高度系统化驱动的业务中,查看业务报表已经是一个很常见的需求了。在分工非常明确的大型企业里,往往有专门的数据分析团队或者数据开发团队,他们能够胜任此类需求(但也未必是轻松的,或者说高效的)。

但是,在都是业务开发的中小团队中,业务报表需求,往往就是业务系统的程序员自己进行开发。我不知道这种情况有多普遍,至少在我自己的团队是这样的。业务系统的设计往往是为了实现更强一致性,更高效率,而设计数据库的数据结构,在这基础上进行报表开发,往往会写出非常复杂的 SQL。

而不同角色的管理者要求的不同分析视角,使得报表的复用性无法达到理想的程度。开发繁复的报表统计需求,成为了程序员一个无法避免的负担。而在一个“管理信息”集中的系统里,这种矛盾变得尤为凸显。不光是实现这样的需求变得困难和不堪重负,仅仅是保持实现的正确性和高效性,都变得极为困难。

引入大宽表,可以有效降低开发的难度,以及提升代码的复用性。

阅读全文 »

因为工作的关系,必须学习使用 Metabase,所以,开辟此文,记录一些我的学习笔记。

阅读全文 »

最近在学习 Vue 开发,实现一个动态站点,很重要的一个功能就是实现用户的登录。在我以前熟知的前后端混合的项目中,实现用户登录是一个很平凡的事情,以至于我甚至一下子都想不起来它实现的方法和原理。

在前后端分离的网站里,到底怎么去实现用户的登录,验证等等功能呢?

阅读全文 »

最近,我在学习 Vue 3,一直以来想学习的,不过都没什么动力去学习。这次正好有个小项目,我可以借机学习一下。我这才发现,真是举步维艰,我对前端开发的知识,停留在 jQuery + Bootstrap 时代,这么多年就没有进步过。现在一上手,才深刻体会到自己的落伍。

我要想成功把项目给开发出来,必须从最基础的知识开始补课,才能完成目标。模块,就是我第一个要学会的知识。

阅读全文 »

hexo_github_actions

缘起

5 月 13 日晚间,一位 IT 互联网行业的前辈——陈皓(网名:左耳朵耗子)去逝。2004 年,从 Live Space 自定义脚本开始,我玩起了个人博客空间,到 2008 年正式建立自己的独立博客,很快就注意到了 CoolShell.cn 的个人博客,正是左耳朵耗子的博客。

他的博客内容原创性好,完整性强,有独到见解,是整个中文博客圈,数一数二的高质量博客。从他的博客我学习了很多的技术知识,也了解了他的个人风格和思想。

这些年,我也在认真经营自己的独立博客。当我知道左耳朵耗子逝世的消息后,我第一时间就打开了他的博客,这是一个下意识的行为,因为我认识他在此,验证消息也是在此,缅怀同样在此。我发现,他的博客打不开了(后来恢复了)。可以看到,他的博客托管在 CloudFlare 平台上,出现了欠费的提示页面。

这一瞬间,我就涌起一种凄凉和恐慌的感觉,因为左耳朵耗子逝世的消息,离事情发生才一两天,他的博客竟然就因为欠费出现了停服的情况。他作为一名行业前辈,写下的文字,怎么说也对广大读者有着重要的意义,但是在这个”互联网有记忆“的时代,竟然因为欠费瞬间就被抹去。

这使我不得不反思,撰写独立博客的意义;以及,我是否希望我的博客在我去世后,还能长期存续的问题。至此,静态网站生成器,才重新纳入我的视野。

阅读全文 »