一、序

今天是中国农历一年的最后一天,往年都叫年三十,今年没有三十,最后一天是二十九。厨房的柴火味、窗外的鞭炮声还有不远处传来的说笑声,一切都是熟悉味道,新年到了,家乡热闹起来了。平常左邻右舍都是看不到人的,门口的杂草随意生长。只有到了逢年过节,在外奔波的人们才会回到老家,这时的家乡就格外的热闹。

外面的天还是阴沉沉的,偶尔有阳光射进大厅,只停留一小会又消失了,希望明天是个好天气,疫情的原因已经两年没有挨家挨户拜年,今年应该可以拜年,很期待。现在 “拜年” 似乎成了走进邻居家的一个理由,平日大家各奔东西,交流太少,见面又不知到拿什么当话题唠嗑两句。

刚刚吃完年夜饭,稍坐了一会,构思着怎么给博文起个目录,介绍下这几天完成的一个项目,输出一下心得体会,上午写完了 README.md,代码已经发布到 Github 上了。

takoyaki 这个名字来自上次公司团建认识的一个妹子,只觉得姑娘长得好,相处时很舒心,名字起得也好,故引用作为项目的名字。别无他想,名字的故事到此为止。

这个项目的思路受启发于公司内部的一个管理后台,它用于对一些业务数据进行简单的增删改查,每个页面就是一个业务。当时让我感到好奇的是页面的 排版、按钮、背景色 都是统一的,不像是单独开发出来的,更像是一个模板里面配置出来的。当时,脑海隐约又想起以前供职的公司,也有类似的管理后台,供内部使用,比较粗糙,功能是类似。而且,当时我还参与过开发,都是一个页面一个页面的用HTML 写出来的,大致是下面这样:

瞬间觉得那时的自己好蠢啊,如果抽离出一个通用的模板,那么就可以减少好多的开发工作量。再往深入想,其实每个公司乃至个人开发者,都有这么一个页面的需要,如果是懂前端的开发者,虽然页面简单,但也是有一定的开发工作量;如果是不懂前端的后台开发者,那就有点麻烦了。如果此时有一个只需要简单配置,就可以生成上面这样的 增删改查 页面,就可以解决他们的问题,同时节省工作量。

二、takoyaki 介绍

takoyaki 是一个通用的数据表格组件,只需少量的配置,无需人力开发,就可以快速生成一个常见的支持业务 “增删改查” 的 Web 管理平台。 其受启发于业务场景,将常见的数据管理功能,抽离成通用的组件,目的是减少的重复开发工作,进一步帮助开发人员形成一种抽象的软件思维。

Features

  • 配置化,无需开发
  • 支持数据的增删改查
  • 支持 Excel 导出数据

产品图

页面配置

编辑数据

三、抽象能力

随着项目做的越来越多,现在有一些很深的感触。做这些项目耗费了我们大量的时间,但回头复盘却感觉收获很少。大部分时间都花在和不同的人反复沟通需求,编程方面很多都是重复的工作。

现在愈发觉得,写代码的速度应该要慢下来,将更多的时间用于思考,去做提升自己的事,而不是盲目填满自己的时间。

开始这个项目时,就想起前段时间学习了 左耳朵耗子的极客时间专栏-高效学习 一篇,里面提到的抽象能力:

抽象能力是举一反三的基本技能。平时你解决问题的时候,如果你能对这个问题进行抽象,你就可以获得更多的表现形式。抽象能力需要找到解决问题的通用模型,比如数学就是对现实世界的一种抽象。只要我们能把现实世界的各种问题建立成数据模型(如,建立各种维度的向量),我们就可以用数学来求解,这也是机器学习的本质。

我理解,这个项目就是抽象能力的一种实践,对问题进行抽象,找到解决问题的通用模型。放眼其它的领域,比如:Web 框架 Spring、前端框架 Vue、各种编程语言 其都是对特定领域的一种抽象的表现形式,都是将各种问题建立成数据模型,帮助人们更容易的理解。不敢妄言生活中的例子,生活阅历和修行还不够,或许数十载之后会加深这种理解吧。

说到底,我想表达的是,这个项目不是教你如何实现一个 “通用的表格组件”,而是想让你知道这么一个思维能力,掌握抽象能力可以站在更高视角看待问题,而且适用于任何领域。

尾声

新年好,感谢看到这里的你们,祝你们新年快乐,虎虎生威 !

新年好,takoyaki ,期待再次与你相见!

新的一年马上就要到来,希望你不要受限于教条的框框约束,敢于去突破自己,挑战自己,做自己未曾做过和不敢做的事。

新年好 takoyaki,期待再次与你相见的更多相关文章

  1. 【循序渐进MVC】第一回——一物多用Project.json依赖关系之dependencies节点

    Project.json统一了ASP.NET vNext之前版本的packages.config.NuGet 配置(nuspec)以及项目文件(csprojs):并集成在Project.json中. ...

  2. 文章之间的基本总结:Activity生命周期

    孔子:温故而知新.它可以作为一个教师.<论语> 同样的学习技巧.对于技术文件或书籍的经典技术,期待再次看到它完全掌握,这基本上是不可能的,所以,我们常常回来几次,然后仔细研究,为了理解作者 ...

  3. YYModel底层解析- Runtime

    这段时间一直在忙新的需求,没有时间来整理代码,发表自己技术博客,今天我们来看一下YYModel的底层解析以及如何使用,希望对大家有所帮助! 一 概述 概括 YYModel是一个轻量级的JSON模型转换 ...

  4. HTML 圆心节点

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Python接口自动化--Json数据处理 5

    1.Json模块简介,全名JavaScript Object Notation,轻量级的数据交换格式,常用于http请求中. Encoding basic Python object hierarch ...

  6. C#如何解析JSON数据(反序列化对象)

    第一章:C#如何拿到从http上返回JSON数据? 第二章:C#如何解析JSON数据?(反序列化对象) 第三章:C#如何生成JSON字符串?(序列化对象) 第四章:C#如何生成JSON字符串提交给接口 ...

  7. 如何在 CentOS 7 上生成 SSL 证书为 Nginx 加密

    本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Let’s Encrypt 是由 Internet Security Research Group (ISRG) 开发的一个自由.自动 ...

  8. 如何在 CentOS 7 上安装 Nginx

    本文首发:开发指南:如何在 CentOS 7 上安装 Nginx Nginx 读作 engine x, 是一个免费的.开源的.高性能的 HTTP 和反向代理服务,主要负责负载一些访问量比较大的站点. ...

  9. C#解析JSON数组

    方式一 第一步:使用前,需下载:Newtonsoft.Json.dll 没有的,请到我百度云盘下载 链接:https://pan.baidu.com/s/1JBkee4qhtW7XOyYFiGOL2Q ...

随机推荐

  1. centos6.5-nginx搭建

    一.安装nginx 1.安装相关组件 yum -y install pcre-devel zlib-devel 2.创建启动用户 useradd -M -s /sbin/nologin nginx t ...

  2. MYSQL实现上一条下一条功能

    select id from(select *, (@i:=@i+1) as rownum from pre_bet_zhibo,(select @i:=0) as itwhere link_cone ...

  3. Cannot uninstall 'pyparsing'. It is a distutils installed project

    我的环境: [root@ansible ~]# python -V Python 2.7.5 [root@ansible ~]# cat /etc/redhat-release CentOS Linu ...

  4. mysql数据库安装教程

    centos 7安装mysql教程 一.卸载mariadb 注:卸载mariadb,否则安装Mysql会出现冲突 [root@mysqlmaster ~]# rpm -qa |grep mariadb ...

  5. SQL高级优化(二)之MySQL架构

    一.架构 想要学好SQL优化就必须从对应数据库的基本架构开始学习 架构图如下 二.架构分析 1. 连接管理与安全验证 ​     MySQL有连接池(Connection Pool)管理客户端的连接. ...

  6. 随机数Random 和枚举enum

    (一):生成随机数 要指定的话 需要在方法中指定最大的值 nextint(10)意思是 下一个的数是10需要导包:import java.util.Random; (二)枚举 enum    的语法和 ...

  7. Golang 常见设计模式之选项模式

    熟悉 Python 开发的同学都知道,Python 有默认参数的存在,使得我们在实例化一个对象的时候,可以根据需要来选择性的覆盖某些默认参数,以此来决定如何实例化对象.当一个对象有多个默认参数时,这个 ...

  8. python 读取配置文件ini ---ConfigParser

    Python读取ini文件需要用到 ConfigParser 模块 关于ConfigParser模块的介绍详情请参照官网解释:https://docs.python.org/2.7/library/c ...

  9. 在Rainbond上使用Locust进行压力测试

    Locust简介 Locust 是一种易于使用.可编写脚本且可扩展的性能测试工具.并且有一个用户友好的 Web 界面,可以实时显示测试进度.甚至可以在测试运行时更改负载.它也可以在没有 UI 的情况下 ...

  10. CAS学习笔记四:CAS单点登出流程

    CAS 的登出包含两种情况,一种是CAS客户端登出,另一种是CAS单点登出,使用流程图说明这两者的不同.(一图胜千言) 总结自官方文档 CAS客户端登出流程 如图,客户端的登出仅仅是过期当前用户与客户 ...