编程框架 way to explore https:https://cdn.v2ex.com/navatar/8fe0/093b/416_normal.png?m=1335305316 https:https://cdn.v2ex.com/navatar/8fe0/093b/416_large.png?m=1335305316 2022-11-28T07:02:06Z Copyright © 2010-2018, V2EX 开发累了就摸个鱼🐟,帮我修改一下中式英语 tag:www.v2ex.com,2022-11-28:/t/898515 2022-11-28T07:02:06Z 2022-11-28T07:02:06Z zhennann member/zhennann 上学时喜欢帮同桌找错,一个英文句子如果能找到 5 处错误,心里就美滋滋的。如今轮到自己写技术文档,面对满篇的中式英语却有心无力。好心的网友,如果开发累了,就摸个鱼🐟,帮我找找错吧,也找回学生时代的感觉

============ 正文分隔线 ============


How to Study CabloyJS?

Document Audiences

Software development is like building houses and bridges, which can be the towering palaces in the north, the elegant courtyards in the south, and even the precipitous and isolated bridges beyond mountains. Then, different languages and frameworks attract a group of fans by their inherent qualities. They work tirelessly to create different ecosystems and present different development styles and experiences. Just as Rails to Ruby, Lavaral to PHP, Django to Python, and Spring Boot to Java. So, what will be to Javascript? There is no doubt that Javascript faces more usage scenarios, such as front-end, back-end, mobile, IOT, etc. Different scenarios have excellent solutions. Moreover, based on different usage habits, the Javascript ecosystem is split into two style systems, which are Javascript and Typescript. So, based on business development, in terms of the current node ecology, we can say that Nest to Typescript, and Cabloy to Javascript

Because different languages and frameworks will have different solutions and styles. Therefore, whether you use CabloyJS or not, it is necessary to come in and see what kind of flowers can grow on the soil of sticking to the pure Javascript (Vanilla JS). Therefore, whether you are a fan of front-end development, back-end development, full stack development, or other languages, or a technical manager, product manager, or project manager, you can learn different ideas and methods for solving problems from the documents and videos provided by CabloyJS, communicate with each other, learn from each other, and make progress together!

Language Framework
Ruby Rails
PHP Lavaral
Python Django
Java Spring Boot
Typescript Nest
Javascript Cabloy

What is CabloyJS

CabloyJS is a NodeJS full-stack framework with workflow engine, a low-code development platform for developers, is also a PAAS platform with both out-of-the-box and flexible-customization. Only one set of codes is needed to realize the admin management system at backend and the applications at frontend at the same time. Only one set of codes is needed to adapt to PC and mobile at the same time, and the mobile is close to the native experience

Framework styles and design principles of CabloyJS

1. Framework styles: brief-but-not-simple

2. Design principles: out-of-the-box + flexible-customization

Many friends feedback that they are unfamiliar with the concepts of CabloyJS, so they don’t know where to start?

Different languages and architecture concepts determine the style of a framework. In order to create a truly easy-to-use full stack business framework, CabloyJS abstracts and refines the concepts behind the real business requirements, which not only achieves the effect of out-of-the-box, but also can be customized flexibly

Therefore, this also determines that the overall style of CabloyJS framework is: brief-but-not-simple. When you are familiar with this style, you will find that the really comfortable development experience should be like this

1. Take a case at backend

If you want to implement the CRUD features, the codes can be designed very simply, and you can even know how to use it without referencing the documents

We can recall that most of the other backend MVC frameworks or backend API frameworks provide the CRUD features, while often stop there steps here?

Then, let’s introduce some real business requirements:

  1. Add a draft copy of the data. When we modify the draft, the original data that has been formally submitted will not be affected

  2. Add some history copies of the data, so as to record the historical version of the data

  3. Add a approval workflow. Business data will be approved after the draft is submitted, and will be transferred to the formal copy only after it is approved

  4. Add cms static rendering mechanism: as CRUD are generally managed in the backend, we need to output the data statically for the frontend system to access, and realize the SEO optimization of the website

  5. Add category and tag features to facilitate further classification of data

  6. For these characteristics mentioned above:

    1. How to refine general concepts

    2. How to design the development interface (to achieve the effect of out-of-the-box and flexible-customization)

    3. How to configure flexibly (enable or disable some features conveniently). As the saying goes: it is easy to reduce dimensions, but difficult to increase dimensions. We need to have these features first, and then decide whether to enable them according to business requirements

    4. How to adapt more business scenarios (rather than only applicable to a certain type of business data), such as blog posts, community posts, leave forms, reimbursement forms, purchase orders, contracts, projects, assets, financial documents, etc.

  7. It is doomed that the concept of business data is not simple, but CabloyJS has implemented a brief development interface, which can be used out-of-the-box and flexible-customization

See Also:Bilibili Video:新建业务表单+审批工作流 (Translation Wanted)

2. Take a case at frontend

  1. Question: With the popularization and upgrading of mobile devices, a large number of business scenarios need mobile support. Then, how can the admin management system support the mobile devices more elegantly?

  2. Traditional solution: At present, most of the admin management frameworks on the market are compatible with PC and Mobile by using CSS media query

    1. Disadvantages of the traditional solution: However, the UI interaction experiences of PC and Mobile are different, and the page layouts are different either. Therefore, only relying on CSS media query can only make PC pages available on the Mobile, but it is far from achieving the effect of the native Mobile
  3. New solution: CabloyJS provides a unique adaptive layout of pc=mobile+pad, so that only one set of codes is needed to adapt to PC and mobile at the same time, and the mobile is close to the native interactive experience

    1. Advantages of the new solution: This solution also implements the design principle of out-of-the-box + flexible-customization, with the style of brief-but-not-simple. All you need to do is to understand this mechanism by referencing documents or watching videos. The codes required for actual frontend page development will be much less than CSS media query

See Also:Bilibili Video: 独树一帜的跨端方案:pc=mobile+pad 自适应布局 (Translation Wanted)

Basic Concepts

It is recommended that you read the following documents to have a preliminary understanding of the basic concepts of CabloyJS

Basic knowledges

CabloyJS is based on EggJS, VueJS and Framework7. These underlying framework documents do not have to be read first. CabloyJS provides enough samples and test codes to facilitate rapid development. It is recommended to run CabloyJS project first, and then gradually introduce relevant knowledge as needed

Of course, if you have the knowledges of EggJS and Framework7 in advance, it is easier to understand what innovations and transformations CabloyJS has made on the basis of these two

Learn through practice

CabloyJS has many built-in core modules, which encapsulates and implements most of the functions and features commonly used in specific businesses. Therefore, it is recommended that you first create a project, run it, and preview the functions and features provided by CabloyJS. In this way, when you develop your own system, you will know how to refer to the existing paradigm to get twice the result with half the effort

Free Video Courses

CabloyJS offers some free video courses. This set of courses is taught by the author of CabloyJS, zhennann. Through on-site coding and actual combat, it takes you into the real scene of NodeJS full stack development, so that you can quickly improve development skills and quickly start the development of various business systems after learning

Tutorials

On the basis of CabloyJS framework, it is very fast and convenient to redevelop specific business modules. From the following tutorials section, you can see what steps are needed to develop a business module

EggBornJS

By reading the EggBornJS section, you can understand what features EggBornJS has extended on the basis of EggJS in order to achieve business modularity

CabloyJS

By reading the CabloyJS section, you can understand what core modules CabloyJS provides to improve the efficiency and convenience of business development

NodeJS Workflow Engine

NodeJS workflow engine is the core component of a business development platform. By reading this chapter, you can understand how CabloyJS’s own workflow engine supports the development of business systems in a simple, flexible and efficient way

Solutions

Based on CabloyJS, corresponding solutions are implemented for different business scenarios, including:

  1. Cabloy-CMS

  2. Cabloy-Community

  3. Cabloy-Wechat (Translation Wanted)

  4. Cabloy-Wechat Work (Translation Wanted)

  5. Cabloy-Dingtalk (Translation Wanted)

  6. Cabloy-Uniapp (Translation Wanted)

Test Modules/Suites

These test modules/suites not only facilitate the quick learning of knowledge points in all aspects of CabloyJS, but also provide a large number of code examples to facilitate the rapid start of actual project development. It is strongly recommended that you pay attention to and keep these test modules/suites updated, so as to always obtain the latest sample codes in time

Core Modules

By reading the source codes of the core modules provided by CabloyJS, you will find that the CabloyJS framework is flexible enough to allow you to deeply customize, replace, and extend the numerous functions and features provided by CabloyJS

Contributions

Welcome to participate in and contribute to the improvement of the CabloyJS full stack framework, which is also an effective way to quickly and deeply learn CabloyJS

]]> 开源项目如何盈利?发布的新版还不如老版本有人气 tag:www.v2ex.com,2021-09-27:/t/804650 2021-09-27T08:33:33Z 2021-09-27T11:31:34Z wizzer member/wizzer 官网 https://budwk.com

V5 演示 https://nutzwk.wizzer.cn

V7 演示 https://demo.budwk.com


两者的特点是,V7 更适合企业团队、大型一体化项目开发,V5 更适合个人或者项目快速开发。

V5 捐赠者不少,V7 几乎没有~个人觉得 V7 比 V5 设计更完美,修复和提升了不少功能,可是一、宣传不到位,太小众,二、类似功能的基础框架遍地都是,,我这个框架维护快十年了,star 还不及新手写的……惭愧

]]>
学习一下,有没有详细介绍微信小程序架构/框架设计的? tag:www.v2ex.com,2021-09-08:/t/800537 2021-09-08T01:06:35Z 2021-09-08T04:06:53Z yazoox member/yazoox 微信一个 app,是如何作为一个“平台”,能够管理并加载各种不同的“应用”,显示出来,并能够像一个普通 app 一样使用的。这个底层框架是如何设计的,我想学习一下。市面上有没有书籍,或者某些系列文章,专门讲解的。谢谢!

p.s.
其实,支付宝,也是类似的。

p.s.
我不知道直接开发一个微信的小程序能不能达到目的,还没有试过。

]]>
寻找一个帮助文档的源码 tag:www.v2ex.com,2021-01-19:/t/746489 2021-01-19T17:07:06Z 2021-01-19T19:14:10Z BestChen member/BestChen 之前在 V2EX 上搜网盘看到了这个贴子: https://v2ex.com/t/705012 然后发现其中的帮助文档还挺好看的,找了一圈没找到用的是啥,问问大神有没有知道的。 链接在这里: https://zpan.space/#/zh-cn/

]]>
大佬来帮忙看一下我这个需求 tag:www.v2ex.com,2021-01-14:/t/744791 2021-01-14T02:19:56Z 2021-01-14T03:00:37Z yilai member/yilai 我需要实现这样的一个功能,可以管理很多个服务(人脸识别?图片鉴黄?发送短信?文件上传) 总之看起来就是非常类似于云服务,但是假设我们对于价格很敏感,需要自己写,同时又有很多项目都需要这些服务,不能每个项目组都去写,所以想问一下大佬们,有没有这样的开源平台,带身份认证, 而且这种到底是属于什么?微服务?求大佬讲一下

]]>
数据库数据剥离思路 tag:www.v2ex.com,2020-12-02:/t/731448 2020-12-02T09:11:32Z 2020-12-02T09:11:32Z TmacV2 member/TmacV2 公司有一业务平台,里面有很多客户的数据,我想要从里面剥离出特定用户的数据(多表)然后导入到新的数据库中。目标数据库表结构绝大多数是我们自己定义的,也可能是客户提供的。

目前思路就是
1.用 sql 语句建立临时过滤表
2.建立源数据库与过滤表、目标数据表 字段映射关系,用过滤表去过滤源数据表 、然后插到目标表(插入前可能可以简单的进行数据处理、譬如默认值)
3.配置好各个表字段映射关系

]]>
微服务杂念 - 最近的一些思绪整理 tag:www.v2ex.com,2020-08-15:/t/698500 2020-08-15T09:44:26Z 2020-08-15T09:43:26Z wenerme member/wenerme
  • 微信链接 微服务杂念
  • Markdown 原文
  • 不知道对错,只是想梳理下想法,有错误请指正

    微服务杂念

    微服务已经是一个不再新鲜的概念,但我却依然模糊不清。

    微服务,抛开 微 不看,首先是一个面向服务的架构,即 SOA 。系统模块,业务逻辑之间的界限是服务,服务为 服务名+方法名,与 CRUD/REST 不同。服务重在交互,CRUD/REST 重在数据。

    SOA 曾经有 SOAP 、Java RMI,现在主流的 gRPC 和常见的 JsonRPC 。这些定义的都是服务交互协议,而微服务更多的关注服务的组合、分布、编排、容错、发现、通信、跟踪等。因此会想到这样的一些主题:

    服务通信

    服务之间的通信可类比为网络通信,主要分为点对点,广播和网关:

    从服务提供方来说服务的通信也可以区分为主动和被动:

    点对点通信

    HTTP

    目前 HTTP 在快速发展,新的协议提高的主要是性能和对长链接流的支持,如果选择简单实现服务调用,HTTP 请求足以。

    使用 HTTP POST 实现 单次请求响应,使用 WebSocket 实现流式请求。使用 HTTP 的好处是能利用现有的基础设施,HTTP 是目前支持最为广泛的协议,也是最受关注的协议。

    但选择 HTTP 时,如果自行实现,则最好选择 HTTP 1,避免使用 HTTP 2 等新增特性,HTTP 2+ 能传递 HTTP 1 的所有语义,且性能各方面能得到很好的提升,这样足以。如果要独立使用 HTTP 协议新特性,例如 Trailer,则实现会变得过于复杂。

    非 HTTP 语义

    当使用非 HTTP 语义语义时,可能是基于 TCP,也可能是对 Payload 进行定义,抽象传输层,但如今想要跨语言,使用非 HTTP 协议阻碍会非常大,因此宁愿选择对 Payload 做自定义也不会选择不使用 HTTP 。

    点对点网关

    通常点对点是需要直接通信,但现今有提供 Mesh 网络的网关组件,使得原本不互通的网络服务能够互相访问。同时也能实现对应的服务之间的权限管理和监控。

    使用 Mesh 网关则可以让客户端的网络层实现更为简单,由网关去维护服务网络的稳定性,对服务网络的变化也能更快的反应。但成本是维护额外的基础设施组件,且注册中心与网关有强关联和交互,每个节点运行一个网关也是额外的资源消耗。

    广播通信

    服务总线本来是一种设计模式,比较常见的是基于事件驱动的设计,但在服务场景会有所不同。事件驱动一般有固定的 主题 /Topic,在定义之初已经确定了部分语义。而服务总线则可以理解为只有一个 Topic,通过消息的内容来进行过滤谁处理谁不需要处理。

    总线的通信模式解决了服务之间网络隔离的阻碍,不再需要 A 服务 与 B 服务 网络互通,网络的变化也不会阻碍服务的通信。但如果总线本身如果不支持一些 meta 信息的模式匹配,则会导致流量过大,处理能力受限。

    选择广播通信,则必然会选择某种形式的 消息队列 /MQ 实现,因此会牵扯到其他的基础设施服务,从部署跟踪上来说,这是扣分的。

    网关通信

    网关通信与 Mesh 网关不同,Mesh 的目的在于打通节点,网关的目的在于磨平 /适配不同的环境服务,提供相同的能力。

    所有的请求通过网关,由网关进行路由,这是典型的 Nginx 反向代理场景。因为所有请求都加了中间层,因此很多事情都可以在中间层完成:

    该模式与实际最底层的服务通信有有一点区别,主要作为适配和耦合存在,如果网关功能越多做的事情越多也越容易造成单点瓶颈。

    通信与其他组件的关联

    通信是服务的根本,对于微服务更是如此。通信的模式间接或直接的影响其他组件的选择和设计。但不同的通信模式并不是互斥的,在对于的场景选择对于的方式才是最好的选择。

    服务发现

    服务发现通常只是一种行为,但实际使用的应该是服务注册中心,主要能力包括:

    服务注册中心通常不是,而是一个集群,其中的服务元信息也可被同步到 RDBMS 便于开发人员查看和使用,场景例如:

    服务容错

    服务容错包含服务异常、节点异常、网络异常,不同的异常可能采取不同的应对方式,我理解的常见功能包括

    容错的实现通常配合监控,网关,注册中心。算是优化服务体验的一部分,可以作为延伸支持考虑。

    微服务

    微服务,微的是除了服务之外的部分,也就是上述的所有内容。微服务的期望是让开发只关心业务逻辑的编写,开发好的业务逻辑能够快速稳定的上线被使用。

    如果不在一套完善的体系下谈论开发微服务都是没有意义且难以实现的,而这套体系的搭建不背靠现在的 K8S 之类的体系也是难以成形的。

    总结

    将最近混乱思绪进行梳理,不一定都是正确,仅作为参考便于理解,引导之后的选择和决定。

    参考

    ]]>
    网易邮箱大师 Windows 客户端是用什么语言开发的? tag:www.v2ex.com,2020-01-21:/t/639648 2020-01-21T05:30:03Z 2020-01-21T07:11:52Z Exp member/Exp RT,想问问有人知道吗?比较好奇这种软件界面的实现,以及其使用的框架啥的。

    ]]>
    请问lisp有什么web框架吗? tag:www.v2ex.com,2013-11-15:/t/89412 2013-11-15T08:19:48Z 2013-11-15T09:26:19Z yuelang85 member/yuelang85 ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86