Skip to content

Commit

Permalink
✨ English version
Browse files Browse the repository at this point in the history
  • Loading branch information
tw93 committed Feb 29, 2024
1 parent 65a68d6 commit 66f7567
Show file tree
Hide file tree
Showing 13 changed files with 898 additions and 9 deletions.
1 change: 1 addition & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ collections:
posts_en:
output: true
permalink: /en/:year-:month-:day/:title.html
sort_by: date

include: [".htaccess"]
exclude:
Expand Down
3 changes: 2 additions & 1 deletion _layouts/home.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
<div id="main" role="main">
{% if page.url contains '/en/' %}
<!-- 英文文章,简单列出所有文章,不分页 -->
{% include post-item.html posts=site.posts_en %}
{% assign current_posts = site.posts_en | sort: 'date' | reverse %}
{% include post-item.html posts=current_posts %}
{% else %}
<!-- 中文文章保持原有逻辑,包括分页 -->
{% include post-item.html posts=paginator.posts %}
Expand Down
2 changes: 0 additions & 2 deletions _posts/2021-07-09-webstorm.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ categories: Creation

讲道理,JetBrains 公司真的很良心,提供了开源开发许可证福利,让大伙免费用他家软件进行开源贡献,一般项目维护在 3 个月以上大概率可通过。可从此入口 [免费许可证计划](https://www.jetbrains.com/zh-cn/community/opensource/#support) 进入申请,也可参考 [这篇教程](https://zhuanlan.zhihu.com/p/87370573);除去开源申请外,还可试试[学术许可](https://www.jetbrains.com/zh-cn/community/dev-recognition/)[用户组](https://www.jetbrains.com/zh-cn/community/user-groups/)[开发者活动](https://www.jetbrains.com/zh-cn/community/events-partnership/#developers)[开发者认可](https://www.jetbrains.com/zh-cn/community/dev-recognition/)方式获取,**但都「不能用于商业项目」请斟酌使用**

**综上,若资金允许就买个人正式版,有些紧就用开源项目的方案。** 同时 ~~不建议用淘宝购买自己邮箱授权的教育版或用 [ide-eval-resetter](https://gitee.com/pengzhile/ide-eval-resetter) 插件延迟试用期的灰色地带方式~~ 来开发公司项目。

## 二、如何让 WebStorm 好用不卡?

<div style="width:100%;text-align:center;font-size:12px">
Expand Down
2 changes: 1 addition & 1 deletion _posts/2023-08-20-edge.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ categories: Creation

## 开始配置了

假如没有安装 Edge 可以先去下载 [正式版](https://www.microsoft.com/en-us/edge/download)不过我使用的是 Dev 版本,**最近他们 Dev 版本变漂亮了不少,还带有圆角效果,假如你喜欢尝鲜,推荐下载** [Dev 版本](https://www.microsoft.com/en-us/edge/download/insider)下载完成以后,建议先登录同步功能,假如没有微软的账号,可以创建一个,方便后面的配置保存防止换新机器的时候丢失。
假如没有安装 Edge 可以先去下载 [正式版](https://www.microsoft.com/en-us/edge/download),下载完成以后,建议先登录同步功能,假如没有微软的账号,可以创建一个,方便后面的配置保存防止换新机器的时候丢失。

**开始配置之前,为了更顺畅的使用起来,建议将之前的历史纪录、书签的同步到新浏览器,可以点击菜单栏第一个 Tab `Microsoft Edge`,选择 `导入浏览器数据`,将你之前用的浏览器的记录给导入进来,好比一键搬家。**

Expand Down
File renamed without changes.
141 changes: 141 additions & 0 deletions _posts_en/2023-01-02-low-code.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
---
layout: post
title: What Makes a Good Low-Code Product
date: 2023-01-02 07:00:00
feature: https://gw.alicdn.com/imgextra/i4/O1CN01rIhOlN1GGYSuuxJaq_!!6000000000595-0-tps-3704-2568.jpg
summary: When it comes to low-code, there are those who love it passionately and those who are decidedly less enthusiastic. There are also those who "pretend" to like it and others who like it without really understanding why. Currently, I find myself somewhat fond of low-code, but only within specific domains where it can significantly speed up the development process compared to traditional coding by skilled engineers. Lately, I've been contemplating the next steps for team efficiency and decided to explore the open-source low-code products in the industry, which might offer some insights.
categories: Thought
lang: en-US
---

## Just Chatting

Low-code platforms are typically associated with tools that simplify the process of building web pages. Internally, there are quite a few platforms of this sort, but there are also low-code solutions focused on logic assembly or BaaS capabilities that offer a more visual approach to what traditionally requires coding. The goal of low-code is to "**enable the development of applications with minimal coding, leveraging more convenient methods to achieve what traditionally required code**."

People have mixed feelings about low-code: some love it, others hate it, and there are those who are somewhere in between. My current stance is that I appreciate low-code solutions, especially "**in specific domains where they can deliver solutions faster than an experienced engineer could through traditional coding**." These scenarios can truly benefit from low-code, making the experience quite satisfying. However, there might be times when using low-code isn't as pleasant, but this discomfort is far outweighed by the benefits it brings, minus the time investment required for traditional coding.

Creating a comprehensive low-code product is challenging, particularly those aiming to cover a broad spectrum of functionalities. The complexity of considering numerous factors can lead to slow progress and difficulty in achieving user-friendliness. This often results in a significant investment of resources with a pressing need to launch and implement the product, leading to a situation where the platform feels burdensome to the developers and unsatisfactory to the users. Success usually requires enduring a long period of discomfort before reaching a satisfactory state, but many products falter before achieving their goals. Niche solutions for forms, tables, or charts, as well as BaaS solutions focusing on specific domains, tend to perform better.

Integrated low-code platforms, which span both backend and frontend development, represent a significant challenge, particularly within large organizations where responsibilities are divided across multiple teams. The challenge stems from the difficulty in aligning standards, protocols, and database models across diverse teams. However, if a single team manages both frontend and backend, with a unified model and protocol, success is more attainable. The following are two examples of such products:

### [Appsmith](https://github.com/appsmithorg/appsmith)

Appsmith is an open-source framework designed for building internal applications, ideal for creating enterprise back-office systems, CRUD operations, Dashboards, and data reports. Originating from an Indian startup, it serves as an open-source alternative to [Retool](https://retool.com/), offering a similar development routine that includes UI design, data source connection, integration, and deployment, with a shift from traditional coding to visual programming.

![Appsmith](https://cdn.fliggy.com/upic/gVjjkM.svg)

Additionally, Appsmith offers a wide range of templates for various sectors like Project Management, Human Resources, Sales, Marketing, and Finance, providing valuable insights for low-code directions.

### [Budibase](https://github.com/Budibase/budibase)

Budibase positions itself as a low-code platform that developers enjoy using, focusing on speeding up application development. It distinguishes itself from Appsmith with a different approach and includes built-in databases, external data sources, GUI design, and automation features. Budibase's UI creation leans towards a design-centric method, resulting in more aesthetically pleasing interfaces.

![Budibase](https://cdn.fliggy.com/upic/bDoZda.jpg)

### [ToolJet](https://github.com/ToolJet/ToolJet)

ToolJet is another noteworthy low-code framework that supports integration with various data sources through a drag-and-drop interface, including mobile support. It uses JavaScript, making it developer-friendly.

![ToolJet](https://cdn.fliggy.com/upic/9eo9NR.jpg)

Other notable mentions include [nocobase](https://github.com/nocobase/nocobase), [illa-builder](https://github.com/illacloud/illa-builder), and [refine](https://github.com/refinedev/refine), which are also worth exploring.

## BaaS (Backend as a Service) in Low-Code

The concept of BaaS became familiar to me around 2019 while working on Serverless, highlighting the potential ease of developing FaaS functions with robust BaaS capabilities. BaaS allows developers to focus on frontend development by offloading backend infrastructure management, facilitating rapid application development and market deployment. This sector, particularly in the international market, features several commendable services.

### [Supabase](https://github.com/supabase/supabase)

Supabase is a combination of open-source tools that builds the functionality of Firebase using enterprise-level open-source products. Firebase is a BaaS cloud service company under Google, allowing developers to easily develop an App through Firebase's framework without the need for servers or infrastructure. Knowing what it is, you roughly know what Supabase is.

![Supabase Overview](https://cdn.fliggy.com/upic/XppYbm.jpg)

Its main features include database hosting, authentication and authorization, automatic API generation, function services, file storage, etc., meaning users do not need to write these codes themselves, but just need to call them. Additionally, it provides client libraries for JS/C#/Flutter/Go/Java/Python/Swift/Rust, and more can be found in the [documentation](https://supabase.com/docs).

![Supabase Features](https://cdn.fliggy.com/upic/NiGx5z.jpg)

### [Appwrite](https://github.com/appwrite/appwrite)

Besides Supabase, Appwrite is also a famous complete backend service capability that can be considered its competitor, with similar functions. It greatly simplifies the tedious process of writing APIs from scratch through a visual interface, creating an efficient development environment for developers under the premise of ensuring software security. It is an end-to-end developer platform based on Docker, and its containerized microservices library can be applied to web, mobile, and backend.

![Appwrite Overview](https://cdn.fliggy.com/upic/045fTb.png)

It provides corresponding software services, such as accounts, users, teams, databases, storage, cloud functions, multilingual, avatars, and other general capabilities, along with corresponding client or server development kits, using a microservices architecture method for better expansion.

![Appwrite Features](https://cdn.fliggy.com/upic/8Wp6qC.svg)

In addition, in the database field, there is an end-to-end cloud-native database called **[SurrealDB](https://github.com/surrealdb/surrealdb)**, suitable for Web, mobile, serverless, backend, and traditional applications. It reduces the development time of modern applications by simplifying database and API calls, eliminating the need for most server-side components.

## Headless CMS

Backend colleagues who have been coding for nearly 10 years should be very familiar with frameworks like Discuz, DedeCMS, WordPress, which were very popular at the time. I remember frequently using DedeCMS for commercial projects during my college days, which was quick and satisfying. Now, this type of backend solution has further developed to become simpler, more beautiful, and easier to use. Here, I will briefly introduce the Strapi-like headless CMS, which in simple terms is a content management system that only provides data, does not focus on UI, and prioritizes content.

### [Strapi](https://github.com/strapi/strapi)

Strapi is an open-source headless CMS, using JavaScript, very flexible and fully customizable, supporting many plugins. It can quickly generate a REST API service, and overall it is quite familiar for front-end colleagues to use, worth trying.

![Strapi Overview](https://cdn.fliggy.com/upic/IviIfL.gif)

### [Cube](https://github.com/cube-js/cube.js)

Cube is a headless business intelligence framework for building data applications, using data from any source, organizing it into consistent metrics, and using it for every data application.

![Cube Overview](https://cdn.fliggy.com/upic/LhZJs7.png)

In addition to Strapi and Cube, which are two well-known headless CMSs, you can also try [payload](https://github.com/payloadcms/payload) and [webiny-js](https://github.com/webiny/webiny-js).

## Workflow Orchestration

It appears that many companies have their own service orchestration platforms. For larger enterprises, it's possible that each Business Unit (BU) has one. However, it's generally difficult to achieve user-friendliness, and it's hard to convey the point that "service orchestration is faster and more convenient than coding". Usually, there's a lot of enthusiasm in the early stages, stability in the mid-stage, and it becomes difficult to continue in the later stages. The journey is long and challenging, but I'm looking forward to those who are working on it reaching the point where "after enduring, one sees the light", and exploring this capability deeper.

However, in some specific workflow domains, there are some well-executed examples, such as Automate and n8n. These tools can serve as references for building workflow orchestration.

### [Automa](https://github.com/AutomaApp/automa)

Automa is a browser automation workflow extension that uses connectable blocks to conveniently orchestrate your common operations. It includes capabilities like auto-filling forms, taking screenshots, data retrieval, scheduled triggering, browser operations, and web interactions. It can efficiently take over your repetitive tasks, similar to quick commands.

![](https://cdn.fliggy.com/upic/7lTSua.gif)

Its strengths lie in its ease of use and the provision of many out-of-the-box capabilities, allowing users to quickly meet their needs.

### [n8n](https://github.com/n8n-io/n8n)

n8n is an expandable workflow automation tool. From what I've seen, it's quite good for orchestrating process nodes and logical control. Moreover, it supports self-deployment based on code.

![](https://cdn.fliggy.com/upic/eZ0K1t.png)

## Other Unique Tools

Aside from the commonly used low-code capabilities mentioned above, there are three very unique tools. In fact, the widely used Notion notebook is also a low-code tool. Its open-source counterpart is called AppFlowy. Another tool, YAO, builds functionalities of various parts through writing configuration DSL JSON. Lastly, there's an open-source method called NocoDB that follows the [Airtable](https://www.airtable.com/) model.

### [AppFlowy](https://github.com/AppFlowy-IO/AppFlowy)

As mentioned, those working on low-code should definitely try out Notion, which has been extensively utilized by many. Additionally, you can try the open-source AppFlowy. Based on this, you can explore how to control the data-to-interface display process.

![](https://cdn.fliggy.com/upic/LOFHaV.jpg)

### [YAO](https://github.com/YaoApp/yao)

YAO is an open-source application engine written in Golang and exists as a command-line tool that is ready to use upon download. It's suitable for developing business systems, website/APP APIs, admin panels, and building your own low-code platforms. YAO uses a flow-based programming model and allows for the implementation of various functionalities by writing YAO DSL (JSON format logic description) or using JavaScript to write processors.

![](https://cdn.fliggy.com/upic/SpKs8N.jpg)

When I first encountered YAO last year, I was attracted by its innovative approach. Additionally, its built-in interface capabilities are well-designed, and the overall installation experience is smooth. The product implementation of YAO should provide valuable insights for those interested in protocol-driven approaches. For example, the system below is astonishingly created using JSON configuration, including UI presentation.

![](https://cdn.fliggy.com/upic/n2J5a3.gif)

### [NocoDB](https://github.com/nocodb/nocodb)

NocoDB is an open-source alternative to [Airtable](https://www.airtable.com/). What is Airtable? It's a spreadsheet-database hybrid with the functions of a database but essentially a spreadsheet. It can integrate text, images, links, documents, and various materials. Looking back, Notion follows a similar approach, though with a focus on collaborative usage scenarios.

NocoDB transforms MySQL, PostgreSQL, SQL Server, SQLite, or MariaDB into a smart spreadsheet. Its use cases are quite imaginative, as shown in the gif below.

![](https://cdn.fliggy.com/upic/7mUPKT.gif)

Additionally, there's a newcomer in the Airtable domain called **[ApiTable](https://github.com/apitable/apitable)**, which has recently been open-sourced. Overall, it's quite refined and highly recommended to explore.

![](https://cdn.fliggy.com/upic/JmDgxL.gif)

## Conclusion

The low-code segment is highly competitive, but if you find the right application scenarios and can truly solve problems more efficiently than traditional coding, then there is a significant opportunity for growth. Moreover, some opinions in this article are personal; if you find any inaccuracies, please feel free to point them out.
Loading

0 comments on commit 66f7567

Please sign in to comment.