小确幸

Posted on Sat 29 August 2020 in Journal

很早就听过“小确幸”,查了下百度,百度知道上面是这么说的:

小确幸就是这样一些东西:摸摸口袋,发现居然有钱;电话响了,拿起听筒发现是刚才想念的人;你打算买的东西恰好降价了;完美地磕开了一个鸡蛋;吃妈妈做的炒鸡蛋;排队时,你所在的队动得最快;自己一直想买的东西,但是很贵,一天你偶然的在小摊便宜的买到了;当你运动完后,喝的冰镇透了的饮料——“唔,是的,就是它”……

它们是生活中小小的幸运与快乐,是流淌在生活的每个瞬间且稍纵即逝的美好,是内心的宽容与满足,是对人生的感恩和珍惜。当我们逐一将这些“小确幸”拾起的时候,也就找到了最简单的快乐!

软件行业是竞争日趋激烈,作为一个老程序员,常有一种力不从心的感觉,新技术层出不穷,人工智能大行其道,系统的复杂性也与日俱增,个人的力量很渺小,能发挥作用和影响的地方只有那么一点点,总觉得“夸父追日”,怎能不焦虑日增。

幸好还能抓住一个一个小确幸,给自己树立一个一个一踮脚就能够到的小目标,一个一个地实现这些小目标,就是一个一个微小而确实的幸福。

比如经常会写一些无聊和乏味的代码,与其重复自己,不如写一个工具自动生成样板代码,省得重复自己。

比如我们 CRUDS(Create,Retrieve,Update,Delete,Search),尽管写了无数遍,仍然不能在几分钟内完成一个任务或者书签之类的CRUDS应用。

  • 方法 1: 根据样板代码拷贝和粘贴代码

  • 方法 2: 根据配置和模板技术生成代码

  • 方法 3: 根据所定义的元数据,一套代码支持任意对象的CRUDS

从开发效率的角度的看 方法 1 不如 方法 2, 方法 2 不如 方法 3,可编码的难度也逐级递增。如果仅仅停留在方法1 ,那也就是一个码农,而真正的工程师在经过三次以上的重复工作之后一定会采用方法 2 直至方法 3。

让我们先看看一个 CRUDS 应用用 Flask 框架是怎么写的,为简化问题,我们拿一个最简单的书签应用举例:

  • models: 数据模型很简单, 这个不同的应用大相径庭

  • forms: 添加书签的表单,这个根据模型有所不同

  • views: 定义 CRUDS 的 url 映射,以及和前端的交互

  • template:HTML模板页, 其UI要支持增加,删除,修改以及搜索,分页功能

从以上例子可以看出 models 和 forms 区别比较大,不容易写出共用代码,而 views 和 template 都是差不多的,所以第一步,从方法 1 过渡到 方法 2,先给 views 和 template 来创建一个模板, 之后我们根据它们来创建一个新的 task 应用

参考资料